HNHacker News
TopNewBestAskShowJobs

jbjohns

421 karma · joined December 13, 2008

submissionscomments
jbjohns··on Permanently remote workers seen doubling in 2021 due to pandemic productivity
And we should resist this. Do other global products cost less if purchased in cheaper locations? The value we bring to a company is the same regardless of where we're working from. We shouldn't accept lower compensation because of irrelevant "cost of living" arguments.
jbjohns··on Permanently remote workers seen doubling in 2021 due to pandemic productivity
Ack, thanks. Corrected.
jbjohns··on Permanently remote workers seen doubling in 2021 due to pandemic productivity
Some additional things to consider:

1) Remote work does not necessarily mean WFH. It means work where is most effective for you instead of going to some office. These days there are many different kinds of solutions for having office space if you want/need it. It also becomes more of a commodity that you can simply use when needed (e.g. a final push before release, a workshop preparing for a big new project, etc.).

2) Companies who recognise this and get rid of their local offices may experience a cost advantage because having offices costs more than just the building. There are a lot of utility costs involved, you need people who manage the facilities, etc., etc.

3) If we're really serious about the environment, avoiding people having to commute to work should be a serious goal. Companies tend to talk about reducing how much they fly around but what is the Co2 footprint of flying in total compared to commuting?

jbjohns··on Permanently remote workers seen doubling in 2021 due to pandemic productivity
You already have been for decades at this point. The high salaries seen in some places is not due exclusively to locality but the quality of the employee.

What I'm seeing is people from low cost locations which traditionally migrated as soon as they could to get western salaries are not getting those western salaries without having to leave. I would say if you were at the highest compensation level you may see a decrease but it will remain that the best command large salaries as now. The difference will probably be that some who were the best and underpaid will have an easier time getting reasonable compensation and some people who were taking advantage of locality factors will now approach a more reasonable salary for their actual contribution.

jbjohns··on The majority of Facebook's traffic now uses QUIC and HTTP/3
I think people will notice as BYOD gets more and more standard. There is already a situation in my company that everyone who is part of the BYOD initiative doesn't even use their company laptop anymore because everything is so much slower.
jbjohns··on The majority of Facebook's traffic now uses QUIC and HTTP/3
Well, I think UDP is about as minimal as can be when using IP. So it makes sense to use to design a potential TCP replacement.

Having said that, I wish we could replace the "port" concept. With the size of address space IPV6 allows, 16 bits for ports is looking a bit small.

jbjohns··on Stable 1.2 Gigabit/s Internet achieved in moving train in Switzerland
Some states have 0 income tax AFAIK but it's irrelevant. Contrary to Switzerland, in the US the big tax bill (by a huge amount too) is federal.
jbjohns··on What ORMs Have Taught Me: Just Learn SQL (2014)
What I don't see a lot of mention here is database selection. If you really need an Object->? mapping, why not just use a document store or the like? I don't know how many remember but in the earlier days of Java everyone was talking about OO-databases. I think they didn't work out because they tended to be language specific but now you could serialise your object tree to JSON and store it in a document store if you wanted to.
jbjohns··on What ORMs Have Taught Me: Just Learn SQL (2014)
But if your answer to all those questions is yes, why are you using an RDMS to begin with? Wouldn't some other kind of data store map better to those use cases, and then you wouldn't need a bit abstraction to make it look like something it isn't.
jbjohns··on Facebook, Twitter block the NY Post from posting
Then I can guess a few places you don't live. :)
jbjohns··on How to answer questions in a helpful way (2017)
Couldn't disagree more. The first thing that should always be done is answer the question as asked. Do what ever you want after that but anyone who doesn't should have their post removed.

The issue is this: it is completely irrelevant why the person asking wants to do X or A. Stackoverflow and others are public websites and anyone who ever will want to do X/A will probably only find that page as an answer. It is beyond arrogant to assume anyone who could ever ask the question is just missing your guidance on what they really want to do.

To be concrete, I find myself in these situations due to company restrictions that I simply cannot lift. So I need to do something I know very well shouldn't be done or fail (and someone else will do that or worse anyway). So I search all over the web and find a Stackoverflow page... that tells me why I shouldn't be doing it. And since it's been "answered" no one else will ever bother, and if I ask anywhere I get linked to that page.

jbjohns··on Facebook, Twitter block the NY Post from posting
But I believe most participating countries in the EU have pretty strong social safety nets. And the US' social safety net system is at the federal level. How would a world safety net be financed?
jbjohns··on Facebook, Twitter block the NY Post from posting
But your "right to go wherever I want to on this planet" must already have limits, right? Do you lock the doors on your house/car?
jbjohns··on A Picture of Java in 2020
>you really get a lot out of a good tool that has integration with the application server

I like the really powerful code completion and refactoring tools a good IDE brings to the table but this one strikes me as extremely odd. In 2020, I would want all IDEs to remove this kind of functionality because I don't want to deploy from my IDE ever and I don't want teams that work with/for me to ever use it either. I want to push my git commit and have everything building in my CI/CD pipeline.

jbjohns··on Build versus Buy
Personally, I (as a software engineer who loves to write software) would advocate buy anywhere and everywhere you can. Even your core business. In my personal experience it's rarely code that's giving you an advantage, it's more likely to be your data, your connections, your efficiency, etc.

Also, try to use the product as off-the-shelf as possible. Little or no customisation. If people in your business are unable to work with a product without customisation consider firing them and replacing them with people who can before you get involved in customisations.

For me the dominating factor here is human resource pool. For whatever we build there are no experts on the system except the ones who already work for us. So aside from all the build, maintenance, etc. costs associated with build, I also can't find any employees on the market who are experts or even competent in the software.

jbjohns··on Make Linux Fast Again (2019)
The problem with the scenario you describe is: how will you ensure that no one ever forgets that this server is vulnerable and can never be used for certain things? And everyone on here advocating turning off the mitigations is assuming the only exploits are the ones we know about. But when has that ever been the case. If more people turn off the mitigations black hats will be invested in finding ways to exploit it we haven't realised before.
jbjohns··on Real Time Internet Peering for Telephony (RIPT) Comparison with SIP
Yet another protocol that sits on top of HTTP. I have a general heuristic I like to use, which admittedly isn't always right but is right enough to be useful to me: if someone wants to make a new protocol and their solution is that protocol needs to be on HTTP that person shouldn't be making protocols.
jbjohns··on Make Linux Fast Again (2019)
I didn't ignore it. My point is, the kind of people who truly need this kind of performance are already translating hotspots to assembler and so on, a kernel module is plenty practical for them. For nearly all computer users there is no excuse for turning off these mitigations.
jbjohns··on Make Linux Fast Again (2019)
I'm truly shocked by the comments I'm seeing here. When did so many people forget everything we've learned about security? You know what a zero-day attack is right? You know how fast those can cover the whole internet these days right? So why would you purposely leave a gaping security hole in your system to get some performance on a CPU that's probably too fast for your realistic workload already?
jbjohns··on Make Linux Fast Again (2019)
And dropping those lines of config is opening vulnerabilities on your system. In 2020, that's insane.
jbjohns··on Make Linux Fast Again (2019)
So there's a known exploit in CPUs and your response is "prove to me it can be exploited or I won't use mitigations"? In 2020 no less? What can you possibly be doing that would even notice the slowdown from these mitigations? Virtually everything we actually do will be bottlenecked by something else long before the CPU becomes an issue.
jbjohns··on Make Linux Fast Again (2019)
While we're being honest, how many programs that get written are so desperate for performance that the only thing left to do is turn off security? And are the people who are able to even make this determination the kind of people for whom making a kernel module is unrealistic?
jbjohns··on How to Avoid the Assignment Statement (2010)
I'm not sure what you mean here. The only thing I can come up with is you're talking about writing specific code recursively but when doing functional programming we usually just use the applicable recursive function (e.g. map, filter, reduce) in which case we have better context than with a loop because a loop has a lot of irrelevant implementation details cluttering up the context.
jbjohns··on How to Avoid the Assignment Statement (2010)
From a perspective of what we do in real life, I think looping and recursion are the same thing. Pound 100 fence posts into the ground is either "do this, then loop back and do it again until some stop point" (iterative) or "the base case is no posts left where you stop, otherwise pound the current posts into the ground" recursive.

Recursive has the advantage that when you use the tools for it, recursive is easier to read. If I see e.g. a map, I know we're converting a collection of things to some other things without restriction. With a look, I just have to read through it to see what it's doing.

jbjohns··on The JavaScript Black Hole: A playbook for ethical engineering on the web
Or you can just compile to web assembly and ignore the Javascript. Compiling down to a high level language which, itself, can often be a bit surprising or even ambiguous has always struck me as an approach of last resort. And it's not really our last resort anymore.
jbjohns··on The Troublesome Active Record Pattern
Then why are you dying on it?
jbjohns··on Ask HN: Have you been laid off?
>I definitely got the impression that companies were just idly trawling for fresh meat, without seriously pursuing any senior talent

Well, there are also laws to consider. I can't prove this but I believe companies put out requests for super high level roles with bad conditions purposefully so they can go to the government and say they need HB1/Outsourcing/whatever because they can't fill all these open positions.

jbjohns··on Ask HN: Have you been laid off?
Paying $350k to a junior just starting out isn't sustainable but those numbers look closer to what the numbers should like like or even be low. What your work is worth is a function of the level of value you produce so software developers are probably still ridiculously underpaid.

What is it that owners do that is worth billions exactly, when developers should be happy with less than the numbers you presented?

jbjohns··on I Don't Use Classes
Dylan also supports it and it can be done in Python with a library [1]. I don't know if you'd count it but it's also straight forward in Haskell [2] at the type class level.

[1] https://en.wikipedia.org/wiki/Multiple_dispatch#Python

[2] https://stackoverflow.com/questions/26303353/can-multiple-di...

jbjohns··on I Don't Use Classes
What's more, languages like Smalltalk which only have "virtual" dispatch achieve their performance by recognising that most dispatch is just to one type. And of the remaining cases, most of those are just to 2 types, etc. Pushing this further resulting in Strongtalk which lead to the Hotspot JVM [1].

[1] http://strongtalk.org/index.html

← PreviousPage 3 of 10Next →