HNHacker News
TopNewBestAskShowJobs

lmilcin

13,853 karma · joined July 8, 2014

I decided to leave HN for being rate limited. Makes it too irritating to take part in any real discussion.

You can still contact me if you want to.

perl -MMIME::Base64 -le 'print decode_base64("bGVvbmFyZEBtaWxjaW4ucGw=")'

submissionscomments
lmilcin··on Going IPv6 Only
> Also, I feel the biggest obsticle to IPv6 deployment is mostly the Enterprise firewall tech. Many residential users and mobile users have working IPv6 just fine right now.

I agree and I feel a little bit ashamed to be part of the problem myself.

Consumers use whatever they tech provides them by default. Which means devices can go from not supporting to supporting something within span of one generation of devices.

On the other hand, enterprise uses whatever their engineers know. And most enterprise engineers learned stuff a long time ago when IPv6 wasn't the thing and in environments where it did not make sense to deploy IPv6.

I never needed to learn IPv6 because incentives were always against doing so.

lmilcin··on What do you really get from IDE-driven development?
> There is an arrgument that the details matter a lot in code.

The details of resulting code. Not the details of how exactly you wrote it.

lmilcin··on What do you really get from IDE-driven development?
> This is an argument against programming by autocomplete, not an argument against programming with IDEs.

Exactly. IDEs fulfil an important function of removing repetitive and mundane tasks. The goal is to be you, the programmer, to know what you want to do and the tool, IDE, to make it happen as efficiently as possible.

That can happen through parsing code, showing documentation, showing references, alerting to obvious bugs, etc. But it can also be fulfilled by generating code (esp. in environments that like boilerplate) and possibly also by finding pieces of code to achieve the operation you need.

Sure, by using autocomplete constantly I may impair my memory same way that using Google Maps impairs my ability to drive without navigation. So what? I care that the task is completed and my mind is available to thinking about higher level problems rather than how to exactly search the code for references or locate the documentation.

Isn't the goal of software development actually building something rather than obsessing about the process?

lmilcin··on 4-5C scenarios are implausible, 2-3C more plausible, 2C within reach
Except this is kinda important, and so we must pay attention to less likely worse case scenarios.

You don't just stroll through the minefield because somebody said that the most likely result is going to be you passing the field unharmed, and there is just 10% chance you get blown into pieces.

Another reason for paying attention to worst case scenarios is that most people just don't get it. And so it makes sense to oversell it a little bit if the end result is that there is less chance 1B people starve.

I think it is fine as long as these scenarios are plausible and grounded in truth.

lmilcin··on Rethinking Levels, Promotions and Salaries
> Incentives will always be a tradeoff because you can't measure skill.

Oh, so because it is hard let's just stop trying?

You can't measure skill accurately. But you can try to find correlations and you can measure other things that are as much or even more important like... erm... results?

lmilcin··on Rethinking Levels, Promotions and Salaries
Salary based on your "experience" as measured by the number of years you survived sitting by the computer.

This is absolutely, fucking dumbest idea I ever heard.

Say you have two engineers that both have 10 years of experience, one is barely scraping by and one is working his ass off and significant contributor to the team.

They earn the same money and, more importantly, they both know it. And the team knows it. And the manager knows it.

Can you guess which one will feel treated unfairly and will start looking for a new job?

Imagine a good employee comes to you and says she is going to leave because she has been offered better salary somewhere else.

You have now only two choices:

1) break the commitment you made to entire company,

2) let her go.

You can also decide to promote her, but management is really a different job and you lost your team member anyway.

Over time your business will accumulate people who just barely passed your recruitment process and are just barely competent to avoid being let go.

If you think you will keep the better one just because you say some nice words and give them recognition token, guess again.

Let me explain what this means: it promotes people who sit idly by the computer (because they gain regardless of their involvement) and punishes people who actually give a shit and who try hard being better every day.

It punishes your business HARD. In most businesses, most progress is being done by small minority of employees. And now you are leaving gates open and saying you are not going to even try to keep them doing good job.

lmilcin··on Against Pair Programming
Pair programming is exhausting and definitely not for everybody and for every single day.

But.

This is still the best way to exchange knowledge and produce code when normally you would need a code review.

Pair programming is not a waste of time. It does not cost twice as much -- it actually costs less.

It costs less because having another person working with you cuts all the procrastination and keeps things in focus.

It costs less because now you have to discuss every part of the design with another person which is likely going to lead to better design.

It costs less because if one person doesn't know it or spot it, the other person will.

It costs less because you get immediate knowledge transfer and two people who can continue the project. Things can continue moving forward even if one person gets sick or leave the project.

It costs less because people learn new stuff crazy fast when they can observe other person doing things they don't know.

It costs less because actual people (like me) like to work with other people. It is fun.

It costs less because code review is a shitty process where 99% of people fake they made a review and only pick on stuff that immediately stands out rather than actually trying to thoroughly understand and analyse the change.

Unless you have a brilliant developer that can do everything by his/her own with no help or review. Consider yourself lucky.

lmilcin··on Ask HN: Why should I trust password managers?
You should not trust password managers with critical stuff.

Even if the product is secure. Even if it actually does end-to-end encryption. Even if it is open-source and you can audit code.

Even if all of the above are met, somebody still can upload a malicious package or commit malicious change that gets propagated to you.

It is probably fine to use password managers for stuff where damage would be limited (accounts to low value things).

But for stuff that matters I know of no better system than a piece of paper, a tamper evident envelope and a logbook.

lmilcin··on The Existential Terror of LinkedIn
If other people succeeding causes you discomfort the problem is not with them or the medium where they advertise their success. The problem is with you.

I suggest to chill out and be stoic about it.

It is unlikely there is only one way you could have reached happiness in your life and that you just missed it.

lmilcin··on Education Department Forgives $415M of For-Profit College Debt
> Prior to student loans you more or less had to fund it yourself,

Or become a citizen of a country that is not hostile to its population.

In many countries you can get decent education for free.

As it should be. Because educated population that is drowning in debt is probably going to lead to better outcomes in the future.

You can have poor parents, not be particularly bright, work hard to get your education and start your life with no debt at all.

lmilcin··on History's deadliest air raid happened in Tokyo during World War II (2020)
> As many as 100,000 Japanese people were killed and another million injured, most of them civilians, when more than 300 American B-29 bombers dropped 1,500 tons of firebombs on the Japanese capital that night.

Most bomb raids during WWII did absolutely nothing. Only very rarely a bomb strikes a target and does any damage.

Here you have an average of over 300 kills per aircraft and 60 per bomb. Absolutely mind blowing.

lmilcin··on How to manage software developers without micromanaging
> You don’t manage people. If you do, you’re a bad manager.

People are not spherical beings in vacuum. Of course, you have to manage people.

My experience is that throwing projects at people and assuming that they are all interchangeable cogs that will be able to complete projects if they fit the project is just asking for problems.

Now, managing people does not have to be tantamount to standing there and pointing with your finger what they have to be doing next. "If you do, you're a bad manager."

But there are other more subtle ways of managing people and learning to be a manager means learning to be able to influence people to do what you want them to be doing as much as learning what they should be doing.

lmilcin··on What does it mean to listen on a port?
Link local addresses are something completely different.
lmilcin··on What does it mean to listen on a port?
I also always think it would be easier if we could have the addressing to extend to individual receivers within the machine.

In effect, a machine would have its own internal network with individual, publicly addressable nodes representing various receivers.

Just imagine how virtualisation/containerisation would get simplified.

lmilcin··on The Kobayashi Maru of comparing dates with times
My favourite is battling with people who use 23:59:59.

Where I work (banks and other financial institutions) there is frequently a need to check whether something happened within a particular day. Or maybe select records from the database for a day, or do some other kind of logic or filtering.

For some unknown reason, most people decide that best way to do this is to take start date as the beginning of the period and then add to it 23 hours, 59 minutes and 59 seconds and use that as the end of the period.

Explanations that they are missing a whole second do not seem to be working. People are absolutely convinced they are doing this correctly.

I thought about this for a long time and I arrived at an explanation.

It seems that some people use the time as a label for a span of time of unit length. March 21st is a label for an entire day. 12 pm is a label for an entire hour that starts at 12pm and lasts an hour, etc. 2021 is a whole year.

And in some contexts it makes sense. Way say something happened on 12th of January -- we use Jan, 12th as a label for an entire day that we would otherwise have to denote with two timestamps. But in some contexts what we need is an exact point in time, a timestamp. And here is where a lot of people just don't think / can't recognise a difference between timestamps and labels for a span of time.

If you use a wrong model then yes, the day starts with a second labeled 00:00:00 and ends with a second labeled 23:59:59.

Except that's not how most of the underlying software works. Most software in this case expects two exact timestamps to denote the end of the span of time. And 23:59:59 is just 1 second shy of the actual end of day which means that, even if we are missing an entire second of the day, most of the time everything seems to work fine.

Unless you are large bank and you have millions of transactions all over the clock that have to accumulated exactly. Then yes, it makes a lot of difference.

Another explanation is that people don't seem to be comfortable with the concept of selecting items from between 00:00:00 of one day and 00:00:00 of the next because they are seeing another date.

lmilcin··on Why won’t anyone teach me math?
> For example, though we were provided with practice problems to prepare for our exams, we were never given solutions. My class consistently begged my professor for these, yet all he could say was that not providing them was departmental policy, and it was out of his control.

> This begs the question: what interest does a department have in making it impossible to study?

Well... math is not about knowing solutions, it is about knowing how to find them.

You can't learn math by memorising all math books in existence because math is dynamic activity -- it is about training your ability to find solutions to problems.

Your math skill is trained by solving problems you don't know solution for, not by looking up the solution.

Your teachers did not make it more difficult for you to learn math -- they made it easier. They were forcing you to do the right thing.

The solution in itself is worthless.

If you are really after problems with solutions -- go find any book that already has problems with solutions listed. There is a lot of these, you can look up solutions to problems to your hearts desire.

lmilcin··on Interview questions to ask your interviewer
That depends.

I personally believe manager should be hiring their team. If only for the candidate to meet the manager and have a chance to make their decision based on the fit.

But I also was many times asked to stand in for another person. Maybe the manager was very busy and he trusted me I can do good job?

In any case, if you go for a large company and for a long haul it is likely you are going to be changing managers (but still it is good to get to know the first one).

lmilcin··on Interview questions to ask your interviewer
The contract that the interviewer has may not look anything like the one you are going to get. The only contract that matters is the one you sign.

Every company will negotiate the contract with you and they will frequently be happy to negotiate other things than just your bare salary. There might be things that you care more than others and the company will be happy to provide you with.

A lot of people treat the contract as a formality. Don't. The contract is there for you to feel safe and for the company to get what they need, too. This is the actual agreement between you, everything you had before should lead to writing down what you figured out in form of a contract.

As to asking for reasons of previous person leaving, I think turnover rate is definitely better question. One that can be followed with an actual discussion about the reasons for this or the actions that are being implemented, etc.

lmilcin··on Interview questions to ask your interviewer
> Am I allowed to have side projects that I own? > Does your insurance cover my preferred doctors? (obviously more of an email question)

Your contract specifies that and other answers to other questions. Don't ask your interviewer this question, the only thing he/she can do is rely to HR. Best ask HR directly.

> Why did the person before me leave?

It is unlikely you are ever going to get answer to that and even if you get it, it will have low value.

First, there does not necessarily exist a link between your position and the person before you. If you are a developer then it is more like a pool with new developers replenishing losses over time.

Second, a lot of people do not really know why they leave.

Third, even if they do know, they do not give truthful answer. They might be saying something like "I needed a change", or they might be rationalising it in some way, where in fact they just got a better offer from FB.

Fourth, as an interviewer you might not be privvy to that information officially.

Fifth, even if, by accident you got to know this information privately, I still don't feel ok passing private information especially one that can be basically gossip.

lmilcin··on You cannot police misinformation in a fair, reproducible, and representative way
> People just don't trust authorities anymore, because authorities time and time again have misled them.

No, that's wrong model.

Authorities have always misled us. There was no time in the past when authorities would be truthful.

What changed is us, our access to information and our ability to shout out whatever you want and reach another person on the other side of the world.

> That's not to mention that it's gotten easier than ever to falsify evidence using technology

Again, not true. It is easier than ever to point out untrue. With so many data points on every event it is very difficult to completely falsify a piece of information. You can fake somebody saying something publicly but you can't easily ensure there were no 50 other people who have recorded it in some other way.

You say you can fake photo. You had NO photos back in the past. Police did not have cameras on them. A lot of events were not recorded or the records were not easily available.

There was only a very, very short time where data was easily available for everybody but the tools to subvert it at scale were not yet usable.

What happened is that there is more information noise that completely overwhelms most people who don't have "mechanism to sort true from false". In the past you would have other people sort true from the false for you (say television or Catholic Church or whatever organisation you have trusted) but there were not too many of those organisations. If those organisations lied and were caught it was possible for enough people to remember that.

lmilcin··on Can a $310M startup avoid due diligence?
It is.

Everybody just focuses on two possible outcomes that are easy to define -- what is the probability it goes bust and what is probability it is going to add a letter to FAANG.

I think the answer is laziness. If you invest money you shouldn't care much about the size of the company you are investing. From a purely financial point of view should be looking at return on your investment where return is defined as an integral over all possible future payouts adjusted for their probability and adjusted for your risk tolerance.

lmilcin··on Spotify deletes 70 Joe Rogan episodes
> Spotify is NOT the open web.

Of course it is not.

It is bait and switch process.

First you get a company create a large platform that makes it very difficult to for individual people to thrive in the space around it.

Then the large company starts deciding what can or cannot be published, effectively making it impossible for some people to even be present in that space.

Now, imagine the same happens for every possible space you could use to contact other people. Videos, podcasts, have a web page searchable on search engines, tweet, instant messaging, and so on and on. You are effectively excluded because your views do not match mainstream or touch controversial or taboo subjects.

I may not agree with Rogan or other people that are being excluded but that does not necessarily give me right to decide whether they shouldn't be heard by other people.

I strongly believe this is where judicial system is supposed to represent us to follow laws to judge which instances of speech are and which are not lawful.

What we have now is effectively mob rule.

Imagine some people win and decide that talking about racism should quieted down. Is it that hard to imagine?

lmilcin··on Highly virulent HIV variant found to be circulating in Europe for decades
People are offered life saving vaccines for free and still don't take it.

I don't want to throw completely baseless statistics, but I would guess over 95% of the world either a) does not have access to that kind of thing, or b) has other priorities, financially, or c) does not care about this because they are either not informed or they know this exists but is not important enough for them to actually do it.

And if you are from US remember, western countries where these things are easily available and people can generally afford it are only small percentage of the world's population.

lmilcin··on Highly virulent HIV variant found to be circulating in Europe for decades
Most people do not immediately go for comprehensive testing the moment they feel worse for a little bit. And most doctors that see flu-like symptoms will assume you have a flu.

The reality is that almost every person diagnosed with HIV is diagnosed because:

1) They developed full blown AIDS

2) They got contacted by somebody who just discovered they have HIV/AIDS to get checked

3) They went through some routine unrelated test (for example they wanted to give blood)

lmilcin··on Highly virulent HIV variant found to be circulating in Europe for decades
Majority of people who practice safe sex do not affect HIV transmission. HIV transmits mostly through networks of people who do not practice safe sex.

Unlike a normal virus where people exchange it at random, here people that are more likely to get the virus also seek out other people that are more likely to get the virus. Normal r-value calculations do not apply because you no longer have homogenous population.

You do not need a lot of these people to keep the virus alive. A person that practices unsafe sex once is more likely to do it more than once, with other people who will do the same. In effect forming a network within general population.

While people who practice safe sex might become collateral damage (like spouses of people who practice unsafe sex or patients at a clinic that used untested blood) they are very unlikely to transmit it further (safe sex practices are very effective at preventing spread of HIV).

Also no need to bring politics to it. Viruses do not care about politics.

lmilcin··on Highly virulent HIV variant found to be circulating in Europe for decades
Hope you realise that mine was completely made up example just to show the basic characteristic of exponential growth in presence of static component.

I chose 10x growth factor to make sure the reader gets a point you can have absolutely disastrous epidemic brewing and still be invisible for many years.

With smaller reproduction rate and other confounding factors detecting a new epidemic like that could be even more difficult if you only look at total number of cases.

lmilcin··on Highly virulent HIV variant found to be circulating in Europe for decades
A new strain, due to nature of exponential growth, can spend a long time before it noticeably moves the total number of cases and causes people to notice change.

Think about it this way:

Year 1) 10.000 normal cases + 1 new = total 10.001

Year 2) 10.000 normal cases + 10 new = total 10.010

Year 3) 10.000 normal cases + 100 new = total 10.100

Year 4) 10.000 normal cases + 1.000 new = total 11.000

Year 5) 10.000 normal cases + 10.000 new = total 20.000

Year 6) 10.000 normal cases + 100.000 new = total 110.000

You see how for a long time, if you were looking at a total number of cases, nothing was happening and then it suddenly became absolute, unmitigated disaster?

This is one of the unfortunate characteristics of exponential growth. If there is a new exponential growth that is masked by noise -- it could be very invisible for a long time and then suddenly become a huge problem.

---

Edit: here another example with more realistic reproduction rate (2x annually and delay of 5 years before developing symptoms)

Year 1) 10.000 existing steady state + 100 new = 10.000 with symptoms

Year 2) 10.000 existing steady state + 200 new = 10.000 with symptoms

Year 3) 10.000 existing steady state + 400 new = 10.000 with symptoms

Year 4) 10.000 existing steady state + 800 new = 10.000 with symptoms

Year 5) 10.000 existing steady state + 1.600 new = 10.000 with symptoms

Year 6) 10.000 existing steady state + 3.200 new = 10.100 with symptoms

Year 7) 10.000 existing steady state + 6.400 new = 10.200 with symptoms

Year 8) 10.000 existing steady state + 13.000 new = 10.400 with symptoms

Year 9) 10.000 existing steady state + 26.000 new = 10.800 with symptoms

Year 10) 10.000 existing steady state + 51.000 new = 11.600 with symptoms

Year 11) 10.000 existing steady state + 102.000 new = 13.200 with symptoms

Year 12) 10.000 existing steady state + 204.000 new = 16.400 with symptoms

You see, adding a delay to symptoms of exponential growth makes it even more heinous.

Year 11 when a somebody that watches statistics of symptomatic patients might notice a rise is already when you have over 10x more new cases than the steady state you think that is happening.

We could complicate this example (some cases get symptoms earlier than 5 years, etc.) but the basic reality is still the same -- when there is a noise and the signal is delayed, the moment you notice a rise in total number of cases and you suspect it being caused by an exponential growth, you should be worried that the reality is much, much, much worse.

lmilcin··on Highly virulent HIV variant found to be circulating in Europe for decades
I hope you understand that HIV takes years to decades to develop symptoms.

A lot of people could get infected before anybody realises there is an epidemic.

lmilcin··on Why are mathematicians so bad at arithmetic? (2017)
The simple reason is that what you think is math is actually not math at all.

When I started studying theoretical math, on my first day, I was told to completely forget what I have learned in school because "it is not math". And then when we talked with our professors about them giving lectures for other students (studying electrical engineering or physics, etc.) we would hear from them something like "Yeah, these guys think math is hard but they don't actually study math".

In short -- adding or multiplying things, applying numbers to formulae -- isn't math.

Actual mathematicians do not need to calculate a lot of stuff in their heads (though estimating things is sometimes helpful) and don't need to remember formulae (although if you spend any time doing actual math you will learn a lot of formulae). And if they need to they are just as likely to pull out a calculator or Google as any other person.

And funny thing is -- before I went to study math I have attended trade school. There, besides a lot of useful topics like economics, accounting, law, touchtyping, etc., we had one semester of actual arithmetic. Which was actually about calculating stuff in your head, fast. We would spend ENTIRE time learning tricks to calculate things faster. And the exams would consist solely of sheets of paper with columns of things to calculate (multiply these three six-digit numbers, etc.) which we had to do in memory.

lmilcin··on Bittersweet Symfony: Devs accidentally turn off CSRF protection in PHP framework
The statement was that they acted professionally.

I don't know if they are or are not professionals.

It is just my opinion that being nice and prompt about removing cause of the damage after they have caused damage through recklessly ignoring industry standards cannot be reason to call their entire set of actions around this particular issue as "professional".

← PreviousPage 3 of 34Next →