[talk] The Classical Code Reading Group: NYC Chapter

Raul Cuza raulcuza at gmail.com
Wed Jan 11 23:27:08 EST 2017


On Fri, Jan 6, 2017 at 2:03 PM, Mike Burns <mike+nycbug at mike-burns.com> wrote:
> Hi all, I'd like to start organzing regular code reading events. We had
> done this a few times in the past (and I did them regularly in
> Stockholm) and they were appreciated.
>
> Briefly: we read the classics. You know how everyone who has seen
> Hackers knows that "they're trashing our rights!" means to look for
> clues in the trashcan, and everyone who has read Marmion knows that if
> someone is weaving a tangled web it means that they are telling many
> lies? We're like that, but for programming. Join us as we read all the
> snippets of code that we take for granted but never have the time to
> read, compare, contrast, re-write, and re-imagine.
>
> (We also exist on Meetup:
> https://www.meetup.com/Classical-Code-Reading-Group-of-New-York/. I'll
> post an event there after we nail down a date.)
>
> I'm going to leave the timing up to the admins, but for the content
> let's read yes.c, in all its implementations, while discussing its
> history and how it fits into the greater context of our world.
>
> I'll describe that below, but feel free to suggest other tiny commands.
> They have to be tiny! cat.c is too big (!).
>
> The yes command prints 'y', followed by a newline, forever. It can also
> take arguments, which it prints forever.
>
> We will look at (at least) the OpenBSD, FreeBSD, NetBSD, GNU, and
> Illumos implementations. If you can find more, please share them!
>
> With the many different authors and distinct cultures we will be sure to
> have much to discuss and compare. Some things to think about: what are
> some uses for the yes command? What errors can occur, and how are they
> handled? How did GNU manage to make this program 88 lines long? How did
> Illumos get this program indented by five tabs?
>
> Just in case you don't have five copies of yes.c sitting on your hard
> drive, you can find them online:
>
> FreeBSD:
> https://svnweb.freebsd.org/base/head/usr.bin/yes/yes.c?revision=308432&view=markup
>
> NetBSD:
> http://cvsweb.netbsd.org/bsdweb.cgi/src/usr.bin/yes/yes.c?rev=1.8.22.1&content-type=text/x-cvsweb-markup
>
> OpenBSD:
> http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/yes/yes.c?rev=1.9&content-type=text/x-cvsweb-markup
>
> GNU:
> http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/yes.c
>
> Illumos:
> https://github.com/illumos/illumos-gate/blob/master/usr/src/cmd/yes/yes.c
>
> This should all take about three hours. Food, drinks, and location can
> be provided by thoughtbot (1384 Broadway, fl. 20).
>
> -Mike
>
> _______________________________________________
> talk mailing list
> talk at lists.nycbug.org
> http://lists.nycbug.org/mailman/listinfo/talk


I was at the `true` code reading in 2015 [
http://www.nycbug.org/index.cgi?action=view&id=10635 ]

It would be fun to pick apart another utility. Have you picked any dates?

Raúl



More information about the talk mailing list