HNHacker News
TopNewBestAskShowJobs

telemachos

7,759 karma · joined August 31, 2009

http://ithaca.arpinum.org/

telemachus@arpinum.org

submissionscomments
telemachos··on Deconstructing K&R C (2010)
Popular suggestions (not introductory):

    C Interfaces and Implementations (David R. Hanson)
    Expert C Programming (Peter van der Linden)
I'm also a fan of C Programming: A Modern Approach (K. N. King) as an introductory book, but it's very different in intended audience from K&R. King is writing for students, and he assumes nearly nothing. K&R are really writing for experienced fellow programmers, I think. So it's an apples to oranges comparison. But King is certainly more modern. He includes a fair amount of C99 material. The writing can't compare with K&R. It's nowhere near as dense or elegant. But if you find parts of K&R a bit too dense and elegant, it's a good trade-off. (I used them both in tandem while trying to learn C this summer. It worked well for me. When King got too verbose, switch to K&R. When K&R lost me, switch to King.)
telemachos··on Effective JavaScript Reviewed
Many tech publishers now sell their ebooks as bundles: one price for multiple formats (usually the big three, sometimes even more). O'Reilly, PragPublishing, NoStarch, Informit spring to mind. (Not saying that it isn't a good thing, but I'm surprised you think it's rare.)
telemachos··on What one book could give me a new, useful superpower?
And an epub for anyone with Nook or other epub-friendly device: https://github.com/ieure/sicp. Check the pull requests for a few updates as well.
telemachos··on Show HN: ppl - The Command Line Address Book
One issue that will come up with any exporter: abook can handle multiple entries for each category, and (I think?) ppl can't yet. So, at the moment, I'm not sure there's a way to export without losing some information. Anyhow, I will definitely keep an eye on ppl. Looks like a very good start.
telemachos··on Show HN: ppl - The Command Line Address Book
There's abook[1], but yours seems different in design. (Main difference at a glance: Yours doesn't work on captured interface. So in that sense, yours is more Unixy.) One nice thing about abook is that it integrates nicely with mutt (which I see someone has already asked you about and you're working on).

One thing that might be nice would be an abook to ppl exporter. abook saves its information in a flat file at ~/.abook/addressbook with items like the following:

    # abook addressbook file
    
    [format]
    program=abook
    version=0.5.6
    
    
    [0]
    name=Someone Somewhere
    email=someone.somewhere@gmail.com
    
    [1]
    name=Another Person
    email=another_person@yahoo.com
    nick=Another
    
    [3]
    name=Detailed Somebody
    email=somebody@details.org
    address=2222 Main Street
    city=New Somewhere
    state=NY
    zip=10011
    phone=212-111-1111
    nick=person
    notes=Birthday May 14th
It shouldn't be too hard to convert that, but I'm not sure (yet) about how you're storing information. (You mention vcard, but I'm not familiar with the details of that.)

[1]: http://abook.sourceforge.net/

telemachos··on Tom Preston-Werner: Development of Jekyll to be revived in 2013
I'll second this. I switched from Jekyll to nanoc about a year and a half ago, and I'm very happy with it. I wrote a short piece about extending nanoc (to add categories) that people may find useful[1]. nanoc's own website has good introductory documentation[2], and the Github wiki also has good pages for examples[3] (sites that use nanoc) and samples4] (sites using nanoc with public source code).

[1]: http://ithaca.arpinum.org/2012/03/30/adding-categories.html

[2]: http://nanoc.stoneship.org/docs/

[3]: https://github.com/ddfreyne/nanoc/wiki/Showcase

[4]: https://github.com/ddfreyne/nanoc/wiki/Samples

telemachos··on The Unofficial Guide to Rich Hickey's Brain
The river metaphor probably made you think of Plato. The famous quote "You can never step into the same river twice" is attributed to Heraclitus[1], but it's Plato who (first) tells us that Heraclitus said it[2].

Plato's theory of forms (or ideas - they're two ways expressing the same theory in Plato, not oppositions) is arguably a response to earlier theories of Heraclitus and Parmenides[3]. In a Heraclitean world, everything is always changing; nothing stays the same, and there is not even an underlying substance that undergoes the changing and stays itself (the way we might say there's an underlying me that was once young and is now older). In contrast to Heraclitus, Parmenides said almost the opposite (maybe - people argue a lot about what the hell Parmenides said): nothing ever changes; the only reality is being, which is always (and only) what it is and doesn't change. Heraclitus denied the reality of stability, and Parmenides denied the reality of change. Plato is trying to bridge these two theories: he wants to agree with Heraclitus that the world shows massive change, but also with Parmenides that not everything changes, and that something must subsist all the changing. Forms help to explain permanence for Plato: a form is an eternal, immutable, non-sensory X that all the concrete particular x things participate in. For example, the form of Beauty (which is permanent, unchanging and perfectly beautiful, but non-sensory - a funny combination) is what makes actual beautiful things (which can change and become ugly) beautiful. When put that way without more context, Plato's theory sounds bizarre and obviously false. But he was struggling to understand what later philosophers call "properties"[3] and "the problem of universals"[4], and it turns out that that problem is not easily solved.

[1]: http://plato.stanford.edu/entries/heraclitus/

[2]: http://plato.stanford.edu/entries/heraclitus/#Flu

[3]: http://plato.stanford.edu/entries/parmenides/

[4]: http://plato.stanford.edu/entries/properties/

[5]: http://plato.stanford.edu/entries/universals-medieval/

telemachos··on 50% off O'Reilly ebooks and videos today
So far as I know, the PragProg discount is still valid[1]. I think it's valid all day today. Load up your cart, and as you go through the purchasing process, there's a button to apply coupons. Click there, and enter the word TURKEY (not sure if it's case sensitive; all caps works for me). That should get you a 40% discount. Enjoy.

[1] Yup, just confirmed. Here's the original blog post, which I'll submit to HN as well: http://pragprog.com/news/black-friday-cyber-monday-40-off-sa....

telemachos··on Ask HN: How do you write great sentences, paragraphs, or articles?
In addition to the "50 Years of Stupid Grammar Advice" article that Zed links, Language Log[1] is a great source if you want to learn more about the problems with prescriptivism and Strunk and White in particular. Geoffrey Pullum is one of the founders, and he writes there often.

[1] http://languagelog.ldc.upenn.edu/

telemachos··on Luvit – Asynchronous I/O for Lua
Apparenly Ryan Dahl considered Lua, but he rejected it because "Lua is less ideal but a lovely language - I did not like that it already had a lot of libraries written with blocking code. No matter what I did, someone was going to load an existing blocking Lua library in and ruin it."[1]

[1] http://bostinno.com/2011/01/31/node-js-interview-4-questions...

telemachos··on My IQ
Please look again at your original post. This whole business about "at one point in their life" simply isn't there. You didn't say those words. Just the opposite: in one of the later paragraphs, you talk about people "who lived and died in dire poverty". You seem to be moving the goalposts of the argument. Either that or your first post was very unclear.

> in Einstein's and Wittgenstein's case, during significant portions of their lives, though Einstein was certainly vastly more successful than any of the others during his lifetime

No, see, you're doing it again. Wittgenstein was regarded from early in his life as a genius. He was considered a very eccentric genius (that's putting it mildly), but in his own lifetime he was successful and well regarded. If anything, he held lower status jobs because he chose to run away from the world of fame and regard that he already had.[1]

[1] http://en.wikipedia.org/wiki/Ludwig_Wittgenstein#Teaching_po...

telemachos··on My IQ
Your original post sounded very different from what you're saying now, but I apologize if I misunderstood you. Your last two paragraphs talk about whole lives and what the world recognizes without in any way distinguishing between the examples you gave initially. Kafka, Einstein and Wittgenstein are all listed in the same paragraph; again, there's no distinction between them there.

I'm not trying to nitpick, just to say that I doubt I was the only person who took the post differently than it sounds now like you meant it.

telemachos··on My IQ
> Einstein was an assistant patent examiner. Wittgenstein was a gardener at a monastery and then a primary school teacher.

I take your point, but Einstein and Wittgentsein are not good examples. You list jobs they held, but those jobs don't reasonably express the success either man had in his lifetime. Einstein was also a member of Princeton's Institute for Advanced Studies from 1933 to 1955 (when he died)[1]. Wittgenstein was also awarded a PhD at Cambridge - without having done coursework or exams - on the basis of his Tractatus Logico-Philosophicus and was an idolized professor for many years there[2].

Neither man was by any stretch of the imagination an unrecognized genius - they were both absolutely recognized as huge intellects with superior achievements in their respective fields when they were alive.

[1] http://www.ias.edu/people/einstein/

[2] http://en.wikipedia.org/wiki/Ludwig_Wittgenstein#1929.E2.80....

telemachos··on Shortcuts to Move Faster in Bash Command Line
Worth a mention is that you can customize how Readline handles these sorts of shortcuts in your ~/.inputrc file. For example, I use forward and backward by word far more often than by character, so I do this:

    $if Bash
        # various other stuff left out
        # easier back and forth by word
        "\C-b": backward-word
        "\eb": backward-char
        "\C-f": forward-word
        "\ef": forward-char
    $endif
For more examples and syntax, see http://docs.freebsd.org/info/readline/readline.info.Sample_I... and http://docs.freebsd.org/info/readline/readline.info.Readline....
telemachos··on Let's stop telling programming newbies to learn Vim (or Emacs)
If you want to teach someone a command line editor (that's an if, but at some point it will be useful - at the very least as a backup), then nano or pico (pico is often - maybe always - a symlink to nano) is a good idea.

It would be unpleasant to edit in nano/pico full time (no syntax highlighting or indentation help, etc.), but if you have to do something through ssh and emacs or vim are still too much, they get the job done. What makes them new-user-friendly is that they keep a "menu" of basic commands visible at the bottom of the screen. So you can always see how to save, quit, etc.

For GUI editors, Gedit and Kate were pretty popular for (K)ubuntu and other Debian derivatives.

telemachos··on Apple's tribute to Steve Jobs, one year on.
I was lucky enough to hear Rostropovich play the 5th cello suite live once. I would rank his performance a lot better than "fairly well", but tastes vary. Another favorite performance of mine for those suites is Anner Bylsma[1]. He uses a more historically accurate instrument than most modern versions. I don't necessarily think that makes other versions bad, but it does make his (or one like it) worth trying.

[1]: http://www.amazon.com/Bach-Suites-Cello-BWV-1007-1012/dp/B00...

telemachos··on An Interview with Brian Kernighan on C and The C Programming Language
> ꙮ I always use enum instead of #define for numeric constants.

I'm new to C (and very much a self-taught amateur), but what's the advantage of this? (No snark - I just don't see it.)

I have a file at hand with this:

    #define MAXLINE 512
How would that be improved by putting it in an enum instead?
telemachos··on An Interview with Brian Kernighan on C and The C Programming Language
O'Reilly has a forthcoming book 21st Century C[1] by Ben Klements. I haven't read it yet, but it clearly aims to be a new look at C programming.

[1]: http://shop.oreilly.com/product/0636920025108.do

telemachos··on An Interview with Brian Kernighan on C and The C Programming Language
Over and above the interview, I'm very happy to see that K&R's C Programming Language will soon be released in ebook formats.
telemachos··on The Homely Mutt
I can't speak about notmuch (haven't tried it), but maildir-utils/mu[1] compares well to mairix. In particular, I think it's under more active development currently.

[1] http://www.djcbsoftware.nl/code/mu/

telemachos··on The Homely Mutt
I second the suggestion of maildir-utils/mu[1].

Here's my setup for that, in case anyone is interested: https://gist.github.com/45e318c68eb5a52e1646. It's essentially a cronjob (LaunchAgent on OSX) that calls a shell script to update the index periodically, plus a few macros to make searching from within mutt easier. To use this, you'll need to create a "Search" folder for maildir-utils to store results in.

[1] http://www.djcbsoftware.nl/code/mu/

telemachos··on Mo’ Pixels Mo’ Problems
I noticed a few weeks ago that some of Github's recent blog photos were really big.[1][2][3][4][5] They range from just big to "Are you kidding me? I can watch this slow-loading in real time even with a good connection..." big.

Given how much they know about the web, I'm guessing that it's deliberate, not just some grandparent forgetting to resize a photo before uploading it to the web. Either way, I think it's way too soon to be using full-size photos on the web without resizing them.

[1]: https://sphotos-b.xx.fbcdn.net/hphotos-snc7/326049_101509382...

[2]: https://s3.amazonaws.com/pixelhub-heroku-test/designs/design...

[3]: https://s3.amazonaws.com/pixelhub-heroku-test/designs/design...

[4]: https://a248.e.akamai.net/camo.github.com/859292fb3b177112fe...

[5]: https://a248.e.akamai.net/camo.github.com/352f3e89269c0d18c4...

telemachos··on Introducing the Command Bar
Re vim bindings, this tweet[1] by John Nunemaker makes it seem unlikely. (Not actually sure how serious he is, but it's a funny tweet - and I say that as a Vim user.)

[1] http://twitter.com/jnunemaker/status/247800799625887744

telemachos··on Cryptic Ruby Global Variables and Their Meanings
For a longer list (though the explanations are briefer), see Zenspider's Ruby QuickRef[1]. It also includes a handy listing of predefined global constants[2] (and a lot more).[3]

[1]: http://zenspider.com/Languages/Ruby/QuickRef.html#pre-define...

[2]: http://zenspider.com/Languages/Ruby/QuickRef.html#pre-define...

[3]: http://zenspider.com/Languages/Ruby/QuickRef.html

telemachos··on Fixing Unix Filenames: Control Characters, Leading Dashes, and Other Problems
Somewhat random, but I'm the person who "packaged" Aristotle Pagaltzis's outstanding rename for Homebrew. I'm very glad to hear people other than me are using it too.
telemachos··on New EPUB and Mobi versions of the Ruby on Rails Tutorial
This isn't a direct solution for you since your material is already in HTML. But LeanPub[1] is one simple way to get ebooks. You write in Markdown, and they produce pdf, epub and mobi formats.

[1]: https://leanpub.com

telemachos··on Programming Languages Have Social Mores Not Idioms
I think the use of 'idiomatic' that daviddaviddavid had in mind is this one[1]:

1. a. Peculiar to or characteristic of a given language. b. Characterized by proficient use of idiomatic expressions: a foreigner who speaks idiomatic English.

That use of the word 'idiomatic' is very common, and although it's related to the word idiom, it's not quite the same thing. An idiom, as you say, is a phrase that you can't guess the meaning of just by glossing each of the individual words (a favorite example - in Puerto Rico, though not all Spanish-speaking countries, a flatterer is a 'lambeojo', literally 'eye-licker'). But someone who speaks Spanish idiomatically or who writes idiomatic French does so 'like a native'. It's a good thing. So when someone says that 'each' is 'idiomatic Ruby', that's probably what they have in mind.

All of that said, I can understand wanting to teach beginners the for loop first. But I don't think a Ruby course should finish without looking at each. If a person plans to read any real Ruby, they had better be ready for lots of iteration with each.

[1]: http://www.thefreedictionary.com/idiomatic

telemachos··on Bash Initialisation Files
A side note to mikelward's answer for OSX users: by default Terminal.app starts all shells as login shells[1]. You can easily change this behavior, but it's the default and many people never even know it's set that way. This is different from defaults on many (most?) Linux systems, and so people coming from one direction to the other often become confused about where to put startup information. (I suppose it's not exactly a Linux versus OSX thing. It has more to do with window managers and how you start up your machine. If you log into Gnome, KDE or similar environments though, most terminal windows you start in the GUI are not login shells. So people get used to that behavior.)

[1]: http://cl.ly/If85

telemachos··on The Battle Against Emoji
See also http://code.google.com/p/iterm2/issues/detail?id=2062 (linked in the Use Vim article).
telemachos··on A Man Walks into a Bank
See three14's post[1] in this thread. He gives the link - the story is still online:

http://www.goodthink.com/writing/view_stories.cfm?id=11&...

[1] http://news.ycombinator.com/item?id=4344785

← PreviousPage 2 of 29Next →