HN user

ssp

3,341 karma

Søren Sandmann Pedersen (soren.sandmann@gmail.com)

http://ssp.impulsetrain.com

Posts141
Comments296
View on HN
www.macys.com 9y ago

Macy's Christmas Gift Ideas 2016

ssp
1pts0
software.intel.com 12y ago

AVX-512 Instructions

ssp
3pts0
ssp.impulsetrain.com 13y ago

Celebrities die 2.7218 at a time

ssp
3pts0
www.google.com 13y ago

"that would be like a car"

ssp
11pts4
lwn.net 13y ago

Havoc Pennington on GNOME History

ssp
1pts0
software.intel.com 14y ago

Knight's Corner resources, including Instruction Set Manual

ssp
3pts1
mattst88.com 14y ago

Optimizing pixman for Loongson: Process and Results

ssp
2pts0
mattst88.com 14y ago

Optimizing pixman for Loongson: Process and Results

ssp
3pts0
www.electronicsweekly.com 14y ago

28nm will not deliver cheaper chips, says Scott McGregor

ssp
4pts0
ssvb.github.com 14y ago

Xorg drivers, software rendering for 2D graphics and cairo 1.12 performance

ssp
1pts0
www.electronicsweekly.com 14y ago

Fabbing FPGAs At Intel

ssp
1pts0
www.roughtype.com 14y ago

The web expands to fill all boredom

ssp
1pts0
asktog.com 14y ago

Ask Tog: Browse vs. Search - Which Deserves to Go?

ssp
1pts0
11011110.livejournal.com 14y ago

Fast Go game recognition

ssp
2pts0
lwn.net 14y ago

H.264 and patents

ssp
2pts1
www.contrib.andrew.cmu.edu 14y ago

Analysis of Boolean Functions

ssp
3pts0
perilsofparallel.blogspot.com 14y ago

The Parallel Power Law

ssp
1pts0
www.linaro.org 14y ago

A Case for Open-Source GPU Drivers

ssp
82pts46
fedoraproject.org 14y ago

History of Red Hat Linux

ssp
2pts0
www.eetimes.com 14y ago

ARM reveals little dog A7 processor

ssp
63pts25
www.roughtype.com 14y ago

Beyond words: the Kindle Fire and the book's future

ssp
1pts0
ssp.impulsetrain.com 14y ago

Over is not Translucency

ssp
1pts0
www.mailund.dk 14y ago

The problem with p-values

ssp
2pts0
ssvb.github.com 14y ago

SIMD DCT/IDCT in libjpeg-turbo and bit-exactness

ssp
2pts0
www.pagetable.com 15y ago

The story of FCopy for the C-64

ssp
78pts29
www.planetclegg.com 15y ago

Warping Text To Bezier Curves

ssp
4pts0
ebb.org 15y ago

Bradley Kuhn: Project Harmony Considered Harmful

ssp
30pts9
software.intel.com 15y ago

New instructions in Intel's Haswell microarchitecture

ssp
37pts14
www.linleygroup.com 15y ago

Intel Should Break Up

ssp
2pts0
reviews.cnet.com 15y ago

E3 2011: John Carmack on Rage, PC graphics, iOS games, and OnLive

ssp
2pts0
Alpha Compositing 7 years ago

If we assumed a radially symmetric kernel, then coverage would just be some monotonic function of the distance from the pixel center to the edge

I don't think that's true. Consider a simple case where the shape is a square and you are sampling in such a way that the closest edge point is closer to a corner of the square than the filter width. Using a function of distance you will get the same result as when sampling far from the corner. But the coverage is different in the two cases.

The equivalent in Oort produces:

    localhost:~/oort/examples% ../oort callcc2.nl 
    2
    1
as expected since Oort uses heap allocated activation records.

The Oort program:

    typedef continuation_t = fn (p: int32) -> void;
    
    call_cc (fun: fn(k: continuation_t) -> void) -> int32
    {
        retval: int32;
    
        fun (fn (v: int32) -> void {
            retval = v;
            goto current_continuation;
        });
        
        // If fun returns without calling the continuation,
        // then just return 0
        return 0;
    
    @current_continuation:
        return retval;
    }
    
    x: int32 = 0;
    
    print call_cc (fn (k: continuation_t) {
        x = 1;
        k (2);
        });
    
    print x;

Does copying the stack really work? What if some local variable changes in between the call/cc and calling the continuation? If the stack is a copy, that change will not be reflected when the continuation runs.

> But unfortunately, it is probably a billion users too late to start again from scratch.

A potentially interesting way around this is to make the client open source and get it shipped by all the Linux distributions. That would give application developers an initial audience which would help solve the chicken-and-egg problem.

That would be my take anyway. A big issue with Java is that it required installing a huge standard library - that should just be downloaded as required. And flash was never really intended for applications; it was always about "rich content". And Air (the application framework built on flash) has the problem that it's proprietary so you have to trust Adobe.

- GTK3 uses the triangle technique

GTK+ uses the triangle technique along with a delay of 225 ms. When the pointer is inside the triangle, the delay is 1500 ms.

Firefox subscribes to the misguided "fake the look and feel of the default toolkit" idea, so on Linux it has a 225 ms delay, but without the triangle. Unfortunately 225 ms is way too short when there is no triangle.

A camera might produce a pixel by computing the average light input over a square, and in that sense you could consider the pixel itself a square.

But in signal processing you interpret it as a two step procedure: First, for every mathematical point of the scene, compute the average light input of the surrounding square to produce a band limited signal. Second, for every pixel report the value at the corresponding point in the band limited image.

The first step is filtering (in this case with a box filter), the second is point sampling.

I suspect there is some incoherent thinking about the BSD license. If you are a BSD advocate, consider this:

Someone takes a BSD project and bases a proprietary program on it. Is that person doing something wrong? Well, no, you say, because that's the whole point of the BSD license. It's also fine to keep rolling in new versions of the BSD project.

Now suppose someone takes a BSD project and relicenses it under the GPL, announces it on the internet, gets it into all the Linux distributions, and starts soliciting contributions of new GPL-only features while also rolling in new versions of the BSD project as they become available. Is that person doing something wrong?

I suspect that a calm, "No, that's also great. That's why we made it available under BSD." would not necessarily be the response.

There is a difference though: The IBM PC was the undisputed gold standard for compatibility. Software typically listed the hardware requirements as "IBM PC or 100% compatible". (Some non-IBM-compatible DOS hardware was sold, but it died out pretty quickly).

It doesn't look like there any similar gold standard is emerging for phones.

Very good comment, though broadcast and video are much harsher environments for graphics than a computer monitor. The resolution is lower as you point out, especially chroma resolution, and there may be interlacing and/or compression going on too. Each of these makes heavier blurring more desirable for high-frequency images such as text.

Regarding this:

So a controlled amount of blur, and I'm not talking about anti-aliasing,

it's worth pointing out that anti-aliasing is a form of blur, but most software usually uses a box filter which is a really a poor filter. I have some demonstration images here:

http://www.freedesktop.org/~sandmann/tigers

Compare these two especially:

http://people.freedesktop.org/~sandmann/tigers/tiger-box.png

http://people.freedesktop.org/~sandmann/tigers/tiger-jinc-ga...

The first one is what cairo produces; the second is improved in three ways: (1) The antialiasing filter is based on the Jinc function rather than a box, (2) white and black are offset slightly from the top and bottom, and (3) the compositing is done in linear light, not sRGB.

The strokes in the second image are also somewhat wider in order to compensate for the lighter appearance that gamma-aware compositing produces.

XOR Linked List 14 years ago

The prefetcher knows what a linked list looks like

That seems unlikely to me. Which processors do this?

The principle is "compiler optimizations should pay for themselves."

This principle may seem deep because there is an element of self-reference in it, but it is really totally stupid. It's nothing but an arbitrary benchmark that will reject lots of useful optimizations. It's not "forgotten" wisdom from the golden ages; nobody ever abided by anything like it.

It's cool that the optimizing Oberon compiler did manage to make its own object code smaller than that of the non-optimizing compiler, but I'll eat my hat if they started out by stating this "principle", rather than just noticing after the fact that it had happened.

It was also called "web browser" one of the last times it was tried. Those became quite popular I believe.

Flash has done quite well actually, but one flaw is that it is completely tied to the web browser, so it doesn't provide a really native experience. AIR would be a better counter-example. Also, flash is quite unreliable.

Java applets had an addtional problem in that they required a huge standard library and took forever to start up. I'd suggest instead to download the standard library on demand.

I've sometimes wondered whether you could solve those problems within a system that provided a more native experience. For example, consider a new kind of client that would download and run bytecode instead of HTML/CSS/JavaScript.

The bytecode would have a built-in abstraction layer over various platform facilities such as graphics and sound, allowing it to look and feel much more like a native application.

Pierce branded a potential employer "evil" because of a minor detail in his contract

That's not true. This is the reason he gave:

An evil company is trying to get rich quick, and has no regard for the harm they're doing along the way. It's not making things of value, it's chasing a gold rush. An evil game company isn't really interested in making games, it's too busy playing a game -- a game with the stock market, usually. It views players as weak-minded cash cows; and it views its developers as expendable, replaceable tools to create the machines that milk those cows.

It was an epic screw-up to position it as a head-to-head competitor with NVIDIA and ATI for Direct3d. They should have positioned it as an HPC chip from the beginning and then perhaps later said: "Oh, btw, it has these texture samplers, so let's make a video driver just to see how this CPU of ours compares to GPUs for gaming." That would have set expectations at a much more realistic level.

There are some simple things that could be done to protect against this kind of abuse:

- Loser pays the winner's costs, but capped such that the loser won't be bankrupted. This effectively means that when a big company loses, they get to pay for all of the trial, but individuals can still lose without being totally doomed.

- A judge could be allowed to grant "free trial" if he thought the case had merit and one of the parties couldn't afford the legal costs. This would mean that the state would cover the legal costs of that party no matter the outcome.