NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
Paged Out #9 [pdf] (pagedout.institute)
Rendello 1 days ago [-]
I like page 30: The Subpixel Zoo. It must be hell for text rendering:

https://en.wikipedia.org/wiki/Subpixel_rendering

gynvael 1 days ago [-]
Sorry, we moved this. It's on page 37 now - "Hardware" section works better for this one than "Food for thought".

https://pagedout.institute/webview.php?issue=9&page=37&artic...

Rendello 17 hours ago [-]
> Sorry, we moved this.

Isn't the borrow checker supposed to prevent these things? I was still holding an immutable reference.

gynvael 15 hours ago [-]
Actually the title is what doesn't change, not the page number. I.e. the object manager has a mapping where a given object (article) is in memory (on what page, pun intended). So you have to go through the object manager to resolve the mapping each time you want to interact with the object... or at least that's how we have it implemented in the web viewer ;)
brainwad 1 days ago [-]
Desktop OSes just assume the vertical subtiles (at best with an option between RGB and BGR). TVs and mobile devices don't generally support subpixel rendering at all.
lubujackson 1 days ago [-]
I've never seen this before, it's like a modern 2600 - deeply technical, scattered topics and depth, all very hacker-curious - and beautifully designed to boot.
Rendello 1 days ago [-]
For those interested, anyone can write a (one-page) article:

https://pagedout.institute/?page=cfp.php

inigyou 11 hours ago [-]
And it blocks IP ranges it doesn't like, so who knows what's in it?
gynvael 10 hours ago [-]
Wait, you're getting blocked trying to download Paged Out!? This most likely is a problem with your ISP, not with the zine's server. Check with them first.
inigyou 10 hours ago [-]
Yep they seem to be hard-blocking Tor users.
gynvael 10 hours ago [-]
That might be something at Google Cloud ingress then. We're not blocking on IP level (we have some other stuff, but it shouldn't interfere with Tor).
inigyou 9 hours ago [-]
> Google Cloud

Ew. Do you need hosting donations?

gynvael 50 minutes ago [-]
Hahaha thank you, if needed we have a few more options. For now I'm sticking to it since it's familiar territory for me.
zOneLetter 1 days ago [-]
`Baby Steps in C` is hilarious lol. I'll be buying the print editions going forward. They hooked me right in with that.
malfist 1 days ago [-]
That article triggered me to send it to my friends. C be crazy.
asveikau 20 hours ago [-]
It's not standard conforming C. asm() is an extension.
blueSky1989 24 hours ago [-]
Simultaneously triggered my PTSD and made me laugh
walrus01 1 days ago [-]
It reminds me a little bit of a Phrack textfile, but if Phrack had raster image art advertising in it.
gynvael 1 days ago [-]
What you've described is the printed version of Phrack!
unprovable 1 days ago [-]
Fun fact - the computiles piece is an uncredited rediscovery of Wang's work from the 1960's on computable tilings. Specifically, he went as far to show that the halting problem is equivalent to the 'domino problem' - can we tile the plane using a given finite set of dominoes (aka tiles) where we have infinitely many copies of each and the tiling must preserve edge-meet criteria. Every tiling is a computer program, every computer program is a tiling.
Graziano_M 1 days ago [-]
It’s credited in section 3
bbayles 1 days ago [-]
Michał Zalewski's article on page 42 is very funny.
mixedmath 1 days ago [-]
Would someone be interested in explaining what in the world is going on in that article?
pillmillipedes 1 days ago [-]
I'll try to do the first one since I think it's the most illustrative:

  1  long typedef[[]]*($)(void*($),...);  
  2  int main() {  
  3   char* str = "Hello, world.";  
  4   $ $ asm("puts");  
  5   $:&&$&&$(str);  
  6  }

(1) is equivalent to "typedef long* $(void*, ...)". '$' is the name of the defined function type.

it's obfuscated as follows:

- typedef is a specifier and can go on either side of the type, same as int const/const int

- [[ ]] is an empty list of attributes

- "void*($)" is an argument named '$' of type void*, but parameter names are ignored in declarations.

- you can put parens in declarations since sometimes you need to group prefixes and postfixes in a different order

- dollar signs in names are allowed in many c compilers (and some other c-like languages)

- "..." are variadic arguments. puts doesn't have those, but the first argument uses the same register either way so it happens to work out in this case

(4) declares a function named '$' of type '$', shadowing the type, and links it to the assembly label "puts". calling $ calls puts.

normally it looks like `int call_foo(void) asm("foo");`

(5) is parsed as: "label $: address-of-label $ and function $ called on str. the address of a label is truthy, so the function also gets called.

unary && looks for the argument in the label namespace, but other operators don't, so the two dollars refer to different things.

that's about it. if you're familiar with the c standard and some common gnu extentions, you can deconstruct the examples into their basic elements easily enough

q3k 1 days ago [-]
What do you mean? It's just simple beginner's examples in C. Should be easy enough to understand, C is famously very simple ('portable assembler' as they say!).
FergusArgyll 1 days ago [-]
> In our experience, C has proven to be a pleasant, expressive and versatile language for a wide variety of programs. It is easy to learn, and it wears well as one's experience with it grows.

The C Programming Language K&R

MiltarizdMerica 21 hours ago [-]
When does the Printed edition go on sale? Lulu doesn't have the 9th edition listed yet.
gynvael 15 hours ago [-]
It should be available on lulu until the end of the week. We're running QA on it still.
brcmthrowaway 1 days ago [-]
The anime avatar twitter people have finally created something beautiful.
gynvael 1 days ago [-]
Ahaha thank you for this comment, it's peak internet meme culture. Made my day :D
yu3zhou4 1 days ago [-]
My fav zine
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 21:24:06 GMT+0000 (Coordinated Universal Time) with Vercel.