Hacker Newsnew | past | comments | ask | show | jobs | submit | PhineasRex's commentslogin

Congress did pass a law decades ago allowing federal prosecutors to face civil suits for cases like this but the Supreme Court subsequently just said nah, prosecutors are exempt from the law while performing their job.


All decentralized domain systems by definition do not address universality and thus require a change in user behavior. The core idea is a return to pre-internet naming where "Sal's Pizza" refers to a different establishment in different cities.

There are pros and cons to this approach but the point is not to exactly replicate DNS.


As long as you don't mind the astronomical operating cost once such a system reaches the scale of DNS, sure.


Unfortunately enforcement mechanisms for rental law in NYC are virtually non-existent so AirBNB and like are still rampant.


The problem is right there in the title: Global Housing Market. The commodification of housing has been disastrous. The cost to develop new housing and the length of time it takes has means market manipulation is always going to be an easier path to profitability. Why would anyone build something new when they can just sit on what they have and let it appreciate while renters subsidize the mortgage and taxes.

Imagine if you could just put iron ore in a warehouse and make a 25% return every year, we'd have no steel!


The dynamic typing example doesn't have anything to do with dynamic typing and is in fact already a feature of some statically-typed programming languages.


Common Lisp can do that:

    CL-USER> (defvar i 1)
    I
    CL-USER> (declaim (type (integer 1 10) i))
    (I)
    CL-USER> i
    1
    CL-USER> (setf i 8)
    8
    CL-USER> i
    8
    CL-USER> (setf i (1+ i))
    9
    CL-USER> (setf i (1+ i))
    10
    CL-USER> (setf i (1+ i))
    ; Evaluation aborted on #<TYPE-ERROR expected-type: (INTEGER 1 10) datum: 11>.
    CL-USER> i
    10


in pike:

    #pragma strict_types
    void main()
    {
      int(1..10) i = 3;
      i += 7;
      i += 1;
      write("%O\n", i);
      i = 11;
    }
output:

    typetest.pike:6: Warning: An expression of type int cannot be assigned to a variable of type int(1..10).
    typetest.pike:8:Bad type in assignment.
    typetest.pike:8:Expected: int(1..10).
    typetest.pike:8:Got     : int(11..11).
    Pike: Failed to compile script.


You wouldn't schedule downtime for the middle of the day. You schedule downtime during your period of least usage.


An extra nine lines and extra runtime complexity just to avoid putting it in a comment.


I did explicitly mention that it might not be a good idea, though this is an exaggerated case since situations like these realistically constitute a very small portion of actual codebases.

But a sibling comment [0] did provide an example that would give a much simpler approach to accomplishing the same thing in this particular instance, with zero extra lines and runtime complexity.

[0]: https://news.ycombinator.com/item?id=31822657


This is a great example of why documentation is important though. If that comment had documented why 75 had been removed and what the impact of that was you would know how to address this situation.

In fact, even the fact that the comment is now wrong tells you that the change was ill-considered and needs to be revisited.


I have to disagree here.

Any fix should produce at least a test to guard against regressions of the bug it's trying to fix and encode the correct business logic.

The test name would then explain the why. The test variables present the story of the what. And finally, the API calls tell the story of how how.


It's very odd that you would group Hellen Keller in with facilitated communication. Keller communicated with many people without Anne Sullivan's help and was the author of many works.

There are even videos of her on YouTube speaking, reading braille, and communicating through hand-spelling.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: