[HN Gopher] Programming for Cats
       ___________________________________________________________________
        
       Programming for Cats
        
       Author : tigerlilythecat
       Score  : 413 points
       Date   : 2021-02-06 15:42 UTC (7 hours ago)
        
 (HTM) web link (programmingforcats.com)
 (TXT) w3m dump (programmingforcats.com)
        
       | troymc wrote:
       | There's a POSIX utility named "cat" and cats already know what it
       | does, but if a man wants to know, he just types the following
       | words into the terminal and then presses <Enter>:
       | 
       | man cat
        
         | mojuba wrote:
         | As a cat I've been waiting for someone to write a new UNIX
         | shell for us named fish.
        
           | ryukafalz wrote:
           | Do I have good news for you :) http://fishshell.com/
        
             | 0-_-0 wrote:
             | Why is it called fishshell and not shellfish?
        
               | zengargoyle wrote:
               | Because it went Shell, then like C Shell, then like Korn
               | Shell, then like Bourne Again Shell, and then there's
               | like TCL shell.
               | 
               | The 'sh' goes at the end. Shhhhhhhhh.
        
               | 0-_-0 wrote:
               | But there is "sh" at the end of "shellfish"!
        
               | zengargoyle wrote:
               | That makes it Shell Friendly Interactive Shell which is
               | redundant. Then there would be Shell Korn Shell, and
               | Shell C shell. The 'sh' for Shell goes at the end as like
               | a grammatical marker. It's postfix. Sh-FI-sh is awkward
               | because it's prefix of the Shell -> 'sh' and also
               | includes the 'sh' for Shell at the end making it a Shell
               | X Shell sort of thing.
        
               | 0-_-0 wrote:
               | OK, I see the logic. How about "She Shell C Shells on the
               | C Shore"?
        
               | smoldesu wrote:
               | there's also an 'sh' at the end of 'fish', which is why
               | that's the name of the shell.
        
               | techlatest_net wrote:
               | Because it is Friendly Interactive SHell
        
               | simlevesque wrote:
               | Because...
               | 
               | Bash Shell -> Fish Shell
               | 
               | And if it was shellfish it would be a PITA to Google it.
        
               | borski wrote:
               | You ever think you might be sounding a little shellfish?
        
               | BerislavLopac wrote:
               | I've always been surprised that nobody has built a small,
               | secure shell named "nutshell"...
        
         | zepearl wrote:
         | # eix sys-apps/dog       * sys-apps/dog            Available
         | versions:  1.7-r6            Homepage:
         | https://packages.gentoo.org/package/sys-apps/dog
         | Description:         Dog is better than cat
         | 
         | :)
        
           | ape4 wrote:
           | `man dog` for me gives:
           | 
           | SHEEPDOG(8) System Manager's Manual SHEEPDOG(8)
           | 
           | NAME dog - Command line utility for the sheep daemon
           | 
           | SYNOPSIS dog <command> <subcommand> [options]
           | 
           | DESCRIPTION dog - Sheepdog is a distributed storage system
           | for QEMU. It provides highly available block level storage
           | volumes to virtual machines. Sheepdog supports advanced
           | volume management features such as snapshot, cloning, and
           | thin provisioning. The architecture of Sheepdog is fully
           | symmetric; there is no central node such as a meta-data
           | server.                      The server daemon is called
           | sheep(8).  A command line utility is avail-            able
           | via dog(8).  QEMU virtual machines use  the  sheep  daemon
           | via  a            block driver available in qemu(1).
           | For more information, run 'dog <command> <subcommand>
           | --help'.
        
         | based2 wrote:
         | https://en.wikipedia.org/wiki/Copycat
        
       | tigerlilythecat wrote:
       | Author here. Looking to get feedback from programmers before
       | publishing. You can download a sample chapter at:
       | https://programmingforcats.com/download/
        
         | HowTheStoryEnds wrote:
         | Will there actually be basics of programming in there or is it
         | just for cuteness?
         | 
         | Buying it either way but it might be a means to finally
         | kindling an interest into it in my spouse. :P
        
         | eitland wrote:
         | I don't particularly like cats, but the intro is so well
         | written I'd been tempted to read a little further.
         | 
         | A few folks have already vented that they don't like it. Don't
         | care too much about it. A good bunch of people might love a
         | book like this.
        
           | happyconcepts wrote:
           | A bad bunch of people too
        
         | gostsamo wrote:
         | So, there is already "The Naming of Cats", the book needs "The
         | caching of Cats" and you have the two most difficult chapters
         | covered.
        
           | bryanrasmussen wrote:
           | We need a little discussion as to the best programming
           | paradigms for cats - I'd call it "Cool for Cats"
        
             | gostsamo wrote:
             | It is interesting how cats will implement tail recursion.
        
               | giovannibonetti wrote:
               | Awesome!
        
               | HowTheStoryEnds wrote:
               | My cat still seems to run out of space when tail
               | recursing when certain values get adjusted, I figure he
               | needs to go into functional programming and no longer use
               | shared and mutable positional values with what he uses to
               | thread.
        
           | shagie wrote:
           | If you like The Naming of Cats... check out RFC 2100
        
             | based2 wrote:
             | https://tools.ietf.org/html/rfc2100 The Naming of Hosts
        
           | troymc wrote:
           | Don't forget "The Herding of Cats"!
        
             | gostsamo wrote:
             | Well, the two most difficult things with cats is how to
             | name them, how to cache them, and the offset by one when
             | counting the herd.
        
         | tyingq wrote:
         | Maybe add an ethics section. https://hackernoon.com/learnings-
         | from-the-meow-bot-attack-on...
        
           | armoredkitten wrote:
           | Ethics? I'm pretty sure cats are above such pedestrian
           | concerns.
        
             | HowTheStoryEnds wrote:
             | Yeah violating ethics is something that happens when you
             | get caught doing something others don't like and like any
             | non-critical error a cat can just walk away from that or
             | spend their time reprogramming the short-circuited device.
        
         | vlowther wrote:
         | It will look good on the bookshelf next to
         | https://www.goodreads.com/en/book/show/3113099-mr-bunny-s-bi...
        
         | swader999 wrote:
         | Herding cats is always my go-to metaphor for software projects.
        
         | ktpsns wrote:
         | Think about a chapter about electronics! Soldering with cats
         | is... Weird!
        
         | jgoodknight wrote:
         | this is purrfect, I love it can't wait to have the full book:
         | good luck finishing it!
        
         | timthorn wrote:
         | Excellent work! Did your dog delete the sections on cat & mouse
         | games, and em-cat-bedded programming? Oh, and making sure the
         | code was appropriately tabbified?
        
         | tigerlily wrote:
         | Would you like to have my username instead? If yes then I can
         | message you my details via your site and we can mail hn
         | together to request a change.
        
           | tigerlilythecat wrote:
           | Aww I'm touched! But no need, this is not my main account and
           | I only use it for this book, while I see you have a lot of
           | history already. But thank you!
        
             | tigerlily wrote:
             | No worries. I like your book sample and thoroughly enjoyed
             | your illustrations :)
        
         | Zhyl wrote:
         | Firstly, this is frikking hilarious. I giggled so loudly while
         | reading it that my girlfriend asked what I was laughing at and
         | she was so captivated by it that I had to sit on the couch with
         | her reading it, flicking to the next page of the downloadable
         | whenever she'd finished.
         | 
         | Secondly, I applaud the style/premise of the book. Cats
         | especially are aiming at an underserved demographic that would
         | absolutely be interested in programming but do not have the
         | same number of and level of quality of 'ins' (ways of getting
         | into programming) as other demographics. Along the same lines I
         | would love to see 'scripting for Sims 4 builders' or 'Love
         | Calculator and other scriots for your next sleepover'.
         | 
         | Thirdly, I really like the way that this is pitched. I feel
         | like _so few_ tutorials give a high level overview of
         | programming rather than diving into specifics of languages. I
         | can only think of  "Hello Ruby" as being analogous, although
         | I'm sure others exist.
         | 
         | Finally, I love the art style. Not much more to be said than
         | that.
         | 
         | I can't really think of anything critical to add.
        
           | tigerlilythecat wrote:
           | Thank you! I agree that cats are an underserved demographic!
           | P.S. Tell your girlfriend to buy you the book for your
           | birthday :)
        
           | networkimprov wrote:
           | As you liked this, you'll adore the original (?) entry in
           | this genre, the delightful and pictorial
           | 
           |  _Why Cats Paint - A theory of feline aesthetics_
           | 
           | http://www.monpa.com/wcp/
        
           | pcthrowaway wrote:
           | Are there any good resources for felines in tech?
        
         | smlckz wrote:
         | Meow. Mwahaha. Why Java? What made you think that cats would
         | like OOP and lots of boilerplate?
        
           | derefr wrote:
           | To answer seriously: it might not be most people's favorite
           | language, but it's probably one that the most practicing
           | programmers today _and_ people who ever took a programming
           | language in school any time in the last 30 years, can read;
           | and therefore it 's probably the best choice as the basis for
           | a humor book.
           | 
           | Java has so little syntax--and yet what little syntax it has
           | is C-ish--that it's mutually intelligible to everybody from
           | programmers who only know C, to programmers who only know
           | Haskell. (Maybe not to programmers who only ever learned 6502
           | assembler, but they have their own humor books published 40
           | years ago.)
           | 
           | (Is there a term for this in linguistics? A measure of the
           | eigenvector of mutual intelligibility a language has to all
           | other spoken/written languages?)
        
             | smlckz wrote:
             | i don't know, but, why not, say, BASIC? (most programmers
             | being able to understand) or, Smalltalk, (little syntax,
             | that ''fits inside a postcard'') or a lisp?
        
               | pmontra wrote:
               | BASIC was commonly understood in the 80s despite lots of
               | very different dialects and also in the 90s mostly
               | because of Visual Basic. Is it still true that developers
               | are familiar with BASIC? I would expect that JavaScript
               | and maybe Python replaced BASIC as lingua franca.
               | JavaScript looks simpler because it basically (pun
               | intended) doesn't have a standard library to learn, with
               | all the problems deriving from that.
               | 
               | Java doesn't seem a bad choice because if one sticks to
               | the basics probably everybody can figure out what a
               | simple program does. Smalltalk, I wonder how many people
               | here ever read a Smalltalk source file [1]. Lisp, maybe
               | more, at least to look once at all those funny
               | parentheses (disclaimer, I wrote my fair share of Lisp
               | but I know the effect it does on most people.)
               | 
               | [1] One random Smalltalk project from the list of
               | trending Smalltalk repositories on GitHub
               | https://github.com/svenvc/zinc
        
               | xkriva11 wrote:
               | What you see in the Zinc repository is (obsolete)
               | serialization format, not the code the programmer works
               | with.
        
               | alisonkisk wrote:
               | BASIC was commonly understood because it had no structure
               | or boilerplate to learn, just a few commands.
        
             | alexshendi wrote:
             | "Java has so little syntax... ". I pronounce this the
             | understatement of the (admittedly young) decade.
        
             | nomdep wrote:
             | I took Object Pascal, C, C++, and Visual Basic. Never Java
        
           | systemvoltage wrote:
           | Java is like an older brother. He gets all the work done,
           | takes responsibility, accepts blame and still takes a lot of
           | flak. Undetered.
        
           | swader999 wrote:
           | I was thinking cats would prefer scala.
        
             | tigerlilythecat wrote:
             | You are absolutely correct, because there is a great Scala
             | library called "Cats"! https://typelevel.org/cats/
        
             | berkes wrote:
             | Looking at my cats, I presume they ignore anything neat and
             | impressive, prepared for them. And instead go for the first
             | thing that satisfies their current whim.
             | 
             | So, a hodgepodge of bash, basic, Python, JavaScript and
             | some C. Or Java if it happens to be just on top in some
             | menu. And NIH: obviously theyr own ZiggyLang or ZazaScript.
        
       | [deleted]
        
       | happyconcepts wrote:
       | Except for the multitasking legstand reference, your introduction
       | describes Donald J Trump
       | 
       | I suggest you change your title to reflect the premise of your
       | book e.g. Programming for Egomaniacs
        
       | speedcoder wrote:
       | reminds me of "Mr. Bunny's Guide to ActiveX"
       | https://www.goodreads.com/book/show/2433344.Mr_Bunny_s_Guide... -
       | obsolete by now yet very funny
        
       | alex_young wrote:
       | Another fine published resource for cat:
       | https://www.shlomifish.org/humour/bits/Mastering-Cat/
        
       | segfaultbuserr wrote:
       | Programming for cat.                   $ /bin/cat - | python -
       | print("Hello, world!")         ^D         Hello, world!
        
         | timthorn wrote:
         | You should have included some string manipulation.
        
           | philipswood wrote:
           | Nah, handling mouse events would be better.
        
             | pmontra wrote:
             | And a red spot in a loop ;-)
        
             | elif wrote:
             | Knowing my cats, they would experience a buffet overload.
        
       | XCSme wrote:
       | Purrrr...
        
       | omarhaneef wrote:
       | Your silence on dogs is deafening...
        
         | tigerlilythecat wrote:
         | We do not talk about dogs
        
       | andrewnc wrote:
       | I recently wrote a high level book on data science with a bunch
       | of pictures and illustrations (not nearly this nice).
       | 
       | I am a big proponent of the idea of fusing art and technical
       | content in a pedagogical way.
       | 
       | This is really nice, even if I'm not the target audience, I can
       | appreciate just how much care and effort went into this work.
       | Best of luck moving forward!
        
         | dstick wrote:
         | > even if I'm not the target audience
         | 
         | Ah - so you're not a cat?
        
         | sogen wrote:
         | do you have a PDF sample?
        
           | andrewnc wrote:
           | Not nearly the same level as this book. I have the table of
           | contents and two pages.
           | 
           | https://andrewnc.github.io/preview/toc.png
           | https://andrewnc.github.io/preview/page_20.png
           | https://andrewnc.github.io/preview/page_94.png
           | 
           | There is a PDF version online that is "half priced" on
           | gumroad to try and make it affordable for those who don't
           | need a hardcopy
        
       | technick wrote:
       | Shut up and take my money!!!
        
       | systemvoltage wrote:
       | I'd like to recognize and appreciate how exceptionally
       | captivating these illustrations are. Karen's illustrations [0]
       | bring whimsical beauty to this quirky book - it's a perfect
       | match.
       | 
       | In the sea of "Corporate Memphis" [1][2], it's pretty refreshing
       | to see the good stuff.
       | 
       | [0] https://www.karendonnelly.com/
       | 
       | [1] https://news.ycombinator.com/item?id=22890877
       | 
       | [2] https://www.are.na/claire-l-evans/corporate-memphis
       | 
       | PS - Feedback to the author: Dogs really love JPEGs in the PDF,
       | so try to use SVG format instead.
        
         | tigerlilythecat wrote:
         | Thank you! Karen's illustrations are indeed wonderful. And
         | thanks for the tip re SVG. The originals are large raster
         | images and the JPGs with lossy compression seem to be much
         | smaller than a PNG embedded within a SVG. I'm open to
         | suggestions though. The printed book will use the uncompressed
         | images of course. :)
        
       | peterdemin wrote:
       | Toilet water is a better name for Java indeed
        
       | [deleted]
        
       | jgoodknight wrote:
       | there's got to be a good python joke for cats but I can't think
       | of what type it would be
        
         | tyingq wrote:
         | Python is highly preferred by tabby cats.
        
           | based2 wrote:
           | who do not like C 'switch'
        
       | elif wrote:
       | I have dreamed about using a pet feeder to gradually teach my
       | pets how to use buttons and eventually limited keyboards, to see
       | how abstract of concepts they are able to interact with.
       | 
       | I was hoping this was in that domain.. but alas, I could see this
       | being entertaining to 8-14 year old children.
        
         | shagie wrote:
         | You might be interested in the YouTube channels:
         | 
         | * I am Bunny (a very fluent dog) (
         | https://www.youtube.com/channel/UCEa46rlHqEP6ClWitFd2QOQ )
         | 
         | * BiliSpeaks (a cat) (
         | https://www.youtube.com/channel/UCGMTesZlKa0Lokb7ZNqOJXQ )
        
         | coldtea wrote:
         | > _but alas, I could see this being entertaining to 8-14 year
         | old children._
         | 
         | Or adults with a working sense of humor.
        
       | berkes wrote:
       | Miauw! Does it have threads? I love threads. Especially if I can
       | turn them into a mess. and what comes last knows what no-one
       | first comes So that.
        
         | tigerlilythecat wrote:
         | Yes, of course :) It reads "To deal with concurrency issues,
         | you may be tempted to experiment with multiple threads. Do not
         | do this. You will end up with some regrettable racing
         | conditions and then a terrible tangle."
        
       | slayerjain wrote:
       | The cat would just eat the mouse, not so much for programming XD
        
       | zupreme wrote:
       | Read the sample. I was sold as soon as I ran across terms like
       | "The Society for the Promotion of Cat Ascendency (SPCA)" and "The
       | Association for Cat Machinations (ACM)" and the following
       | disturbingly accurate paragraph:
       | 
       | "Juvenile humans, in particular, are capable of having their
       | internal logic be permanently reconfigured by repeated exposure
       | to certain powerful instructions. These kinds of devices are
       | called purrgrammable logic devices."
       | 
       | Excellent work!
        
       | jbob2000 wrote:
       | The people you're hoping to sell this to aren't interested in
       | programming.
       | 
       | If you can't sit down for an hour to learn something, you're
       | going to _hate_ programming because that's literally the entire
       | job.
        
         | teddyh wrote:
         | You're thinking of the _readers_ , not the _buyers_. This is an
         | important distinction, since they may not overlap much.
         | 
         | I.e. this might be one of those books which is meant to be
         | bought _as gifts for others_ , regardless of whether the
         | recipient will read them or not.
        
       | jabberwcky wrote:
       | This site is designed to destroy old eyeballs. Is it just me or
       | is the font razor-thin? Firefox Ubuntu 19.04 HiDPI
       | 
       | Changing <body> CSS rule to "color: black; font-weight: normal"
       | was required to actually read the page here
        
         | tigerlilythecat wrote:
         | Thanks for that feedback. I will adjust the CSS.
        
       | krylon wrote:
       | I love it!
       | 
       | Coincidentally, after I managed to get my sister to name her
       | daughter Ada after the programming language, I will eventually
       | have to make an effort to get her acquainted with programming.
       | This book will make a good starting point.
        
         | sdenton4 wrote:
         | Ha, and Ada the programming language is named after Ada the
         | badass.
         | 
         | https://en.m.wikipedia.org/wiki/Ada_Lovelace
        
           | krylon wrote:
           | I know, that is why I suggested the name. I would not have
           | suggested she call her daughter COBOL or BASIC. (FORTRAN
           | could make a cool name, though.)
        
             | BerislavLopac wrote:
             | Make sure she names her son Haskell.
        
       | based2 wrote:
       | https://www.infoworld.com/article/2077265/so-why-did-they-de...
        
       | zyxzevn wrote:
       | What do you get when combine C++ and C# ?
       | 
       | You you get C@
       | 
       | Subreddit for Cat related programmer jokes:
       | 
       | http://www.reddit.com/r/C_AT
        
         | blah_blah wrote:
         | thanks for this. meow
        
       | TriNetra wrote:
       | There was a man with a cat and he loved it so dearly. One day he
       | thought if the cat would have been a woman, they'd have a nice
       | time together. The God was listening - low and behold the cat
       | turned into a beautiful woman instantly.
       | 
       | The man was surprised but overjoyed. A few years passed with both
       | having a great time together, and one day ...
       | 
       | A mouse appeared in front of the woman and she grabbed it with
       | her tender hand and ate it raw and alive right that very moment.
       | 
       | The man was disgusted to see this and the God remarked "Look I
       | can change a being from outside but what they are inside even I
       | can't change!"
       | 
       | Disclaimer: No pun intended; just sharing after reading the title
       | for fun. No offence to cats around :)
        
       | hans863 wrote:
       | Excellent! I plan to buy your book and use it to teach my
       | daughter programming. She loves cats and doesn't leave the side
       | of her cat. I will read this book to the cat, and maybe my
       | daughter will pick up something too.
        
         | tigerlilythecat wrote:
         | That's an excellent plan :)
        
         | telesilla wrote:
         | Indeed! And perhaps programming-style instructions to turn a
         | page into an origami cat toy might be a great way to get our
         | younger adults to engage.
         | 
         | https://www.origamispirit.com/2013/11/homemade-cat-toy/
        
       | Dangeranger wrote:
       | This sort of writing is a wonderful departure from the
       | traditional and is underrepresented in programming books. There
       | are a few other examples that I know of which could be considered
       | similar, but don't focus as heavily on the illustrative approach
       | show here. Some works for comparison would be; Land of Lisp,
       | Realm of Racket, Clojure for the Brave and True, Learn you a
       | Haskell for Great Good!, Learn you some Erlang for Great Good!,
       | and Why's (Poignant) Guide to Ruby. There may be more I am not
       | aware of. On the topic of cats programming there is also
       | JavaScript for Cats, which is great too.
        
         | rzzzt wrote:
         | "Chunky Bacon!"
         | 
         | I loved the characters, sidebars and various stories; I don't
         | remember too much of the Ruby content, however.
        
         | boomskats wrote:
         | JavaScript for Cats taught me more about JS than any other book
         | or course combined. I don't know how it compares to the other
         | examples you mention, but there's something about the informal
         | style that just works for me and my attention span.
        
           | richajak wrote:
           | During the day, my cat will sit behind me while I am coding
           | in Javascript. We practise mentoring system. He can focus in
           | it, not disturbed by the cooked chicken. I think both of us
           | may have ADD/ADHD.
           | 
           | :-)
        
       | drdude wrote:
       | I thought it was Cats (the scala library) :D
        
       | drdude wrote:
       | I thought it was Cats for Scala (the library)
        
       | Symbiote wrote:
       | This reminds me of _The Unadulterated Cat_ by Terry Pratchett.
       | 
       | Good job!
        
       ___________________________________________________________________
       (page generated 2021-02-06 23:02 UTC)