HN user

peq

128 karma
Posts0
Comments50
View on HN
No posts found.

It would be nice if pure benchmark papers were a thing. Most of the time system papers get accepted for some new idea. The evaluation section is often biased towards the new idea. Independent benchmarks could fix this.

Fastly Outage 5 years ago

How would you make the button send a request without js and without navigating to another page?

Maybe css to load an image on :active or is there some better way?

I tried following the webdev topic and it's just interaction-baiting bullshit. Like loops vs reduce. Or "offend a webdev with 3 words".

Scala 3.0 5 years ago

I think implicit conversions were added originally to support Java compatibility without boilerplate code.

It then turned out that they could be used to simulate extension methods, which is probably the main use case for implicit classes in Scala2.

And implicit parameters were probably just the result of trying to make type classes modular.

The CanBuildFrom approach came later than implicit parameters (https://stackoverflow.com/questions/1722726/is-the-scala-2-8...).

Scala 3.0 5 years ago

I don't think i will be much of a problem. Braces are already optional in Scala2 if you only use a single expression. The change just gives you the option to be more consistent and remove braces everywhere.

If I rememver correctly, the python plugin for vscode asks me whether I trust the project before running anything. At least that was the case when I last opened a Jupyter notebook in vscode.

Applications don't need generics, but libraries do.

The lack of generics is the reason for a lack of many useful libraries that I miss when writing applications in Go.

Things I missed lately: Sets, maps with arbitrary keys, lists, sorting, removing duplicates, priority queues, parser combinators, list transformation functions (map, filter), transactions.

Some of these exist for Go, but with awkward APIs.

At first "mathy" objects seem not so important, but it also involves:

- Vectors, matrices

- Immutable containers (lists, sets, maps, etc.)

- Domain specific languages (regular expressions, constraint languages, etc.)

And without good support for matrices, the data science and ML people will just use Python instead of Java to build their libraries. And then everyone will use the language with the best libraries, even if they don't use matrix math in their code.

For regular expressions, you have to use a DSL embedded in Strings in Java instead of using operators like | as operator on regular expressions directly.

I would be careful in mirroring a site. It's very likely to violate copyright or similar laws, depending on where you are. I think archive.org is considered fair use, but if you put it on a personal or even business page it might be different. For example Google News in EU is very limited in what content they may steal from other web pages.

An underappreciatd feature of Zoom is the 40 minute restriction in the free version. Meetings are more productive with an enforced time limit.

Some problems I had with Snaps:

* Installed VScode. The terminal in VScode was in a different environment from the system terminal, so used different Python environments. Took me a while to figure out why installing a package was not working. * Installed Slack. When I click a link in Slack it opens a new Firefox process that does not have access to my normal profile, saved logins, etc. and is not shown as a Firefox window in the sidebar.

In both cases I uninstalled the Slack version and installed the "real" version.

As I understand this, the approach here is to bet on personal responsibility. This technology cannot be used to enforce quarantines as the authorities have no access to the data.

Basically, we have to stop 2/3 of infections to get an R<1. If 2/3 of the population use the app honestly and we keep up some other measures (no indoor events where people are in close contact, wearing masks while shopping, no visitors in nursing homes and hospitals, etc.) then this might be enough to contain the virus until we have a vaccine.

it would be even better if TS could do this automatically like Flow though

That would imply that the same function signature could produce different type checking results at the call site. That is something I find extremely frustrating as you can no longer reason about type checking locally.

Your version still has the problem that since Java 7 the substring method allocates a new String, which in unnecessary when it is only borrowed to the parseLine function and not needed afterwards. What you probably want is a view that reuses the same underlying data. With the following I get around 2 GB/s:

    public void readString(String data) throws IOException {
        int lastIdx = 0;
        for (int idx = data.indexOf('\n'); idx > -1; idx = data.indexOf('\n', lastIdx)) {
            parseLine(subSequenceView(data, lastIdx, idx));
            lastIdx = idx + 1;
        }
        parseLine(subSequenceView(data, lastIdx, data.length()));
    }

    CharSequence subSequenceView(CharSequence base, int beginIndex, int endIndex) {
        return new StringView(base, beginIndex, endIndex - beginIndex);
    }

    static class StringView implements CharSequence {
        final CharSequence base;
        final int offset;
        final int length;

        StringView(CharSequence base, int offset, int length) {
            if (length < 0) throw new IllegalArgumentException("length must be >= 0");
            this.base = base;
            this.offset = offset;
            this.length = length;
        }

        @Override
        public char charAt(int n) {
            if (n < 0 || n >= length)
                throw new IndexOutOfBoundsException(n);
            return base.charAt(offset + n);
        }

        @Override
        public int length() {
            return length;
        }

        @Override
        public CharSequence subSequence(int beginIndex, int endIndex) {
            return new StringView(base, offset + beginIndex, endIndex - beginIndex);
        }
    }

Mathematicians should do more computer verifiable proofs to avoid discussions like this.

Definitions went on for pages, followed by theorems whose statements were similarly long, but whose proofs only said, essentially, “this follows immediately from the definitions.”

This sounds perfect for machine checked proofs, but I guess the proofs are actually a lot more involved than they are presented.

FLAVOR: Ubuntu desktop

HEADLINE: fix smart autohide of unity launcher

DESCRIPTION: it is really annoying that the launcher does not appear sometimes, when moving the cursor to the edge of the screen. There are several bug reports for this issue, which are open for a long time.

In general I would love to have a way to pay an Ubuntu dev to fix a specific bug.

I agree. In particular in languages without null you will have a lot of Option types in the mapping. You no longer can generate useful type definitions from the proto spec.

I think sometimes types lead to simpler designs. For example why can't "then" just have the following type:

Promise A E -> (A -> A') -> (E -> E') -> Promise A' E'

That would eliminate some strange corner cases and make it easier to explain the function. The special cases could just get their own functions. Real algebraic data types would probably eliminate the need for E entirely and make it even simpler.