HNHacker News
TopNewBestAskShowJobs

p9idf

357 karma · joined July 15, 2011

I am an award-winning full-stack web developer and front end hacker living in the Bay Area. Make no mistake, going forward I am hustling to create a distributed high-performance solution stack for landing features and unlocking next-generation user experiences hosting virtualized start-ups on Amazon AWS, with a focus on smoothing pain points navigated by entrepreneurs when building deliverables, via proven web-scale technologies. Our solution-based offerings leverage low-power mobile modalities to reduce power consumption and operating costs across the board, while optimized non-blocking callback methods pipeline HTTP stream packet injection, enabling you to multiply the value of your existing infrastructure investments. All state persists across best-of-breed browser sessions by seamlessly and transparently syncing to our reliable and self-healing personal cloud storage solution. It's gonna be a game changer.

0xdfdf2f

submissionscomments
p9idf··on Every programmer should read the source to abort() at some point in their life.
As far as I know, the kernel programs the MMU so that dereferencing 0 will always fault. I could be wrong, as my understanding of the kernel is limited. I am not sure of the purpose of the loop, but to me it make it unavoidably obvious that the function never returns.
p9idf··on Every programmer should read the source to abort() at some point in their life.
Plan 9's abort causes an access fault, causing the current process to enter the `Broken' state. The process can then be inspected by a debugger. Pretty elegant.

http://plan9.bell-labs.com/sources/plan9/sys/src/libc/9sys/a...

p9idf··on Unix V5, OpenBSD, Plan 9, FreeBSD, and GNU implementations of echo.c
Those features simply do not belong in a program whose purpose is to concatenate its input. If you want to number a file's lines, 'echo ,n | ed file | sed 1d' or 'awk ''{ print NR " " $0 }''' will do just fine. You could even wrap your ed or awk script into a shell script with a descriptive name like "lineno" rather than something silly like "cat -n". The reason GNU's is so complex is because it does many things and does them poorly. The V6 implementation does exactly what is says on the tin, does it well, and does nothing more: it catenates files.
p9idf··on Unix V5, OpenBSD, Plan 9, FreeBSD, and GNU implementations of echo.c
The Unix Programming Environment has a discussion of vis on page 172. It notes that you can use 'sed -n l' to do the same thing.
p9idf··on Unix V5, OpenBSD, Plan 9, FreeBSD, and GNU implementations of echo.c
Stdio would add unnecessary overhead. And why bother with stdio (or its Plan 9 equivalent) when it's so easy to do the buffering faster yourself?
p9idf··on Unix V5, OpenBSD, Plan 9, FreeBSD, and GNU implementations of echo.c
Bash's implementation[1] isn't especially fast. It gets its speed by not having to fork, which is expensive on systems with dynamic linking.

[1] http://git.savannah.gnu.org/cgit/bash.git/plain/builtins/ech... http://git.savannah.gnu.org/cgit/bash.git/plain/support/rech... http://git.savannah.gnu.org/cgit/bash.git/plain/support/zech...

p9idf··on Unix V5, OpenBSD, Plan 9, FreeBSD, and GNU implementations of echo.c
cat.c is also interesting. The GNU version is an appalling unreadable mess. V6's assembly implementation in easier to understand.

V6: http://www.bsdlover.cn/study/UnixTree/V6/usr/source/s1/cat.s... V7: http://www.bsdlover.cn/study/UnixTree/V7/usr/src/cmd/cat.c.h... Plan 9: http://plan9.bell-labs.com/sources/plan9/sys/src/cmd/cat.c BSD: http://www.koders.com/c/fidF501905968D8BE7BBDD355C3C8DB62804... GNU: http://git.savannah.gnu.org/cgit/coreutils.git/plain/src/cat...

p9idf··on Google Tests an Interface Optimized for Infinite Scrolling
I would design for both of your made up demographics. And in both cases I would preserve the page metaphor by not using frames.
p9idf··on Google Tests an Interface Optimized for Infinite Scrolling
This is the gist of it. http://img13.imageshack.us/img13/4007/screenwaste2.png
p9idf··on Google Tests an Interface Optimized for Infinite Scrolling
I despise frames. And let's call these fixed elements what they really are: frames. In addition to reducing the usable screen area (which is awful on my netbook's 1024x600 screen)[1], frames also break the page metaphor. Part of what makes the web easy to use is that interacting with each website works more or less the same. That is to say, the scrolling behaviour of web pages mimics a real-life piece of paper. If the entire website no longer scrolls as one uniform page, when visiting a new site, the scrolling behaviour is unpredictable with each site doing something different. My terminology is clumsy, but perhaps it is clear enough to understand what I mean.

[1] http://img36.imageshack.us/img36/1748/screenwaste.png

p9idf··on Plan9 has been forked: 9front
The main feature that Rc has which Bash lacks is simplicity. Bash's man page is twice the size of Rc's entire source code.
p9idf··on Build your own operating system
Xv6* is a good place to start studying the workings of a Unix-like operating system.

* http://pdos.csail.mit.edu/6.828/xv6/

p9idf··on Plan9 has been forked: 9front
Erik Quanstrom has a version which fixes some of Rc's faults, like having no return statement and the weird ifs behaviour.
p9idf··on Plan9 has been forked: 9front
If you can't see the point of operating systems research, how else would you like to see the state of the art advanced?
p9idf··on Hurd Progresses - Debian GNU/Hurd by end of 2012?
Sape Mullender and Noah Evans from Bell Labs announced last year that they are working on a system called Osprey. There's video of the talk floating around somewhere.
p9idf··on Hurd Progresses - Debian GNU/Hurd by end of 2012?
Hurd isn't stuck in the seventies and aims to do more than re-implement a 40-year-old design.
← PreviousPage 4 of 4