News for hackers. Stuff that matters.

oshepherd

Re:Why Is Anime Obsessed With Power Lines? on Tuesday December 12, 2017 @12:42PM (#15907620)
The use of christian symbology in evangelion is both meaningless and deep.

like, the use of christian symbology is arbitrary and it poses basically no meaning to the plot, merely being used for texture; but someone with sufficient knowledge of it can use it to predict some short term plot points.

Re:Why Ruby App Servers Break on MacOS High Sierra on Thursday October 19, 2017 @05:36PM (#15511748)
POSIX has deprecated pthread_atfork because it is unworkable. In particular, atfork handlers can only call AS-safe functions, which means they're useless.
The idea of only getting 10 days PTO a year continues to be incredible to me.
Re:A history of branch prediction on Wednesday August 23, 2017 @11:11AM (#15082092)
It's the same just with redundant representations (the 2-bit repr is the count of ones in the 3-bit repr)

  '00' -> '000'
  '01' -> '001', '010', '100'
  '10' -> '011', '101', '110'
  '11' -> '111'
this kind of transformation is truly bread & butter in hardware; we regularly numbers between binary counts, mask/number-of-set-bits and one-hot representations for optimisation purposes.
Re:Inside a fast CSS engine on Tuesday August 22, 2017 @03:04PM (#15075421)
> Not all GPUs have the Z-Buffer fillrate to make that approach viable(esp on mobile). I've seen more than a few cases where it was actually faster to turn off Z-Buffering and do the overdraw. More than a few architectures share Z-Buffer bandwidth with other pipelines.

Uh, mobile GPUs tend to be way, way ahead of desktop GPUs in Z-Buffer bandwidth (especially in relative terms)

and you can't increase your tile count; there's a fixed number of tiles in the frame buffer (unless you're referring to not drawing some tiles at all - in which case set your scissor rect appropriately. oh, and if you can find out the GPU's tile size round your rectangle up to cover whole tiles)

(And to put things another way: of course we've come back empty in all searches so far. If we hadn't, we'd stop looking!)
> It is interesting that those who are looking experimentally for both dark matter and dark energy have come up empty in every experiment so far performed.

Given that <1% of the dark matter search space has been covered, this is an entirely unsurprising result.

The ΛCDM model doesn't come out of theory, it comes out of observation - the only thing we can make fit our observations of the universe is cold dark matter (and a cosmological constant, aka dark energy)

The thing a lot of people don't seem to get is that astronomers hate¹ dark energy and dark matter - they're really quite inelegant - but nothing else fits. Every other attempt (and lots and lots of time and energy have been spent on this) to explain our observations without hypothesising the existence of a lot of weakly interacting matter out there (e.g. MOND) has failed to match them

¹ In much the same way physicists dislike the standard model in all of its' ugliness - even though it works

Re:Why don't schools teach debugging? (2014) on Tuesday April 25, 2017 @06:37PM (#14198801)
Sadly, late breaking (post silicon or just late in development process) bugs aren't generally particularly more exciting in terms of debugging than earlier ones - other than the urgency/annoyance and rarity, of course.

They do tend to be 10x as annoying to debug though. Not more difficult - just tedious - especially because you often end up triaging what turns out to be somebody else's bug (i.e. a checker on your block fails, so you need to trace it back to somebody else, and often they also trace it outwards to somebody else).

And this is where using it as a class example gets really difficult - even people on the design team are specialists in their own blocks. Giving students all the knowledge they'd need to debug a problem would be incredibly difficult.

Re:A tale of an impossible bug: big.LITTLE and caching on Tuesday September 13, 2016 @07:58AM (#12487278)
The architecture states that CTR_EL0 reports the _minimum_ ICache line size across all cores.

In this system, that would be 64 bytes.

Re:A tale of an impossible bug: big.LITTLE and caching on Tuesday September 13, 2016 @07:56AM (#12487269)
IC IVAU instructions are broadcast to all cores in the same 'inner shareable domain' (all cores running the same OS instance are in the same inner shareable domain)
Re:Intel Licenses ARM Technology to Boost Foundry Business on Tuesday August 16, 2016 @10:23PM (#12302100)
I noticed that I missed out mentioning that, yes, Thumb-2 made Thumb variable length (it already sorta-was, branches were always kinda 32-bit)

Any halfword where bit[15:13]=='111' && bit[12:11]!='00' is the leading half of a 32-bit Thumb instruction

Re:Intel Licenses ARM Technology to Boost Foundry Business on Tuesday August 16, 2016 @10:08PM (#12302038)
Thumb-2 (about 13 years old at this point) extended Thumb to cover the entirety of instruction set. That is, every* ARM instruction has a corresponding Thumb instruction (The converse is not quite the case)

There is very little reason to use ARM code in ARMv7 and up.

Incidentally, ARMv8's 64-bit mode (AArch64) adds a whole new instruction set, called A64. It's fixed width 32-bit per instruction, and the only option for 64-bit code.

* Excluding some really obscure, mostly long deprecated ones

Re:Fuchsia, a new operating system on Friday August 12, 2016 @04:34PM (#12278597)
I took a quick peek at the redox source code and found kernel mode audio and network drivers. This is not a microkernel.

As for UB: Maybe it has less, but that which exists (e.g. noalias on mut refs) is very dangerous.

Re:Fuchsia, a new operating system on Thursday August 11, 2016 @10:00PM (#12272993)
I love Rust immensely, and it is perhaps my favorite programming language as of late.

However.

This is a microkernel. There is very, very little code inside a microkernel which, if written in Rust, would not end up inside an unsafe block. You are building the safe abstractions here; that code is inherently unsafe.

You could use Rust as a C replacement, but it is a worse C than C, and unsafe rust contains more perils (i.e. UB) than C.

Re:GCC Non-bugs on Sunday March 01, 2015 @06:29PM (#9129404)
Type punning by pointer is explicitly UB per the standard.

Type punning by union is implementation defined behavior. Everyone fortunately defines it to Do The Right Thing (TM).

The truly standard supported way to type pun is by memcpy

float f = ...; int x; memcpy(&x, &f, sizeof x);

Re:Python 3 can revive Python on Tuesday May 27, 2014 @09:43AM (#7804367)
The people who call Go a systems programming language are fundamentally misguided. It is an applications programming language under any reasonable definition.
Re:Swype makes almost 4000 location requests every day on Monday May 05, 2014 @10:10AM (#7698624)
So I have an application which can attach location information to posts made from it. It requests access to location data (as is necessary) when installed, then lets you turn that feature on or off from an internal setting.

The request for location data implies the usage of the location feature, so the Android package manager won't let you install it on devices without a coarse location provider.

Therefore, like most Android apps which lookup location information, it just assumed that it could do location lookups. No point testing for a feature which will always be present, right?

Now guess what would happen if you used AppOps to turn location off? That's right, it would crash.

Not exactly acceptable user experience.

Now, what Google should do is probably: * For apps targetting Android 4.5+, certain features with privacy implications will default to OPTIONAL rather than REQUIRED when implied by a permission request. * AppOps is then able to toggle access to features which are declared optional, which apps must handle the absence of anyway.

Re:Backdoor found in Linksys, Netgear Routers on Friday January 03, 2014 @10:54PM (#7009902)
Hah! A Dual_EC_DRBG implementation would be an infinite improvement over the highlighted random number generator (which just calls libc functions srand(3) and rand(3)).