Forgot your password?

Comment: Re:Predictable (Score 4, Interesting) 484

by am 2k (#47315163) Attached to: Supreme Court Rules Against Aereo Streaming Service
So, why is the spirit of the law ignored when it comes to tax code? Why are there so many companies with their seat in places like the Cayman Islands or San Marino, while 99% of the work force is in other countries like the US or somewhere in the EU? They still don't have to pay any taxes.

Comment: Re:Yes, but for the wrong reason (Score 1) 220

by am 2k (#47274515) Attached to: US Supreme Court Invalidates Patent For Being Software Patent

But what's an abstract idea?

Isn't the definition that you have to be able to give a patent to a developer skilled in the specific art and he/she can implement exactly the device described by the patent without inventing anything new? If that's not possible, the patent is supposed to be invalid because it's an abstract idea instead of a concrete implementation.

Comment: Re:Debuggers (Score 1) 294

by am 2k (#47031785) Attached to: Fixing the Pain of Programming

Simplest case, trying to debug remote code running on a server for which you have deploy-but-not-debug permissions on (this comes up a lot for me, actually).

For these cases, you should set up a local mirror environment where you are allowed to debug. Of course, if you can't reproduce the problem locally (because of system-interdependencies or a critical database you aren't allowed to copy for testing due to privacy issues), you have a problem...

Comment: Re:I would think (Score 1) 379

by am 2k (#46800525) Attached to: OpenSSL Cleanup: Hundreds of Commits In a Week

If a change is security related and non-obvious, then won't doing it in such a rush probably introduce new bugs/vulnerability into the code?

I guess you're not a programmer? When programming, you develop mind models of the code. This means that you can see behind the structures and write complicated stuff very quickly. After a while of not working on the code, you forget that model, and small changes are very dangerous, since they might result in side effects in other parts of the code you didn't consider.

That means that when you're constantly working on the same codebase and add features quickly, you get better code and less bugs. Note that this only stands true without a deadline looming ahead (which I don't think the OpenBSD devs have), since then you tend to make dangerous shortcuts and litter the code with "FIXME"s you tend to forget about.

That's also how hackathons work. I've been able to create full products in a weekend that otherwise would have taken months.

Comment: Re:I would think (Score 3, Insightful) 379

by am 2k (#46800473) Attached to: OpenSSL Cleanup: Hundreds of Commits In a Week

The often repeated mantra that high level language compilers do a better job than humans isn't true, and doesn't become true through repetition. The compilers can do no better than the person programming them, and for a finite size compiler, the optimizations are generic, not specific. And a good low level programmer can take knowledge into effect that the compiler doesn't have.

While I agree, there are also specific cases where a human cannot reasonably do an optimisation a compiler has no troubles with. For example, a CPU can parallelize subsequent operations that are distinct, like talking to different units (floating point math, integer math, memory access) and not using the same registers. A human usually thinks in sequences, which require using the result of an operation as the input for the next operation. Everything else would be unreadable source.

Finding distinct operations and re-ordering commands is easy in compilers, and the optimized result has no requirement of being readable.

C tries to find a middle ground there, where the user still has a lot of possibilities to control the outcome, but the compiler knows enough about the code to do some optimizations. The question is where the correct balance lies.

A computer scientist is someone who fixes things that aren't broken.