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?
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.
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?)
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?
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
I think you misinterpreted. It's not that more programmers know Java; it's that more programmers know a language with a syntax similar to Java.
I don't really know Java. But I know C, and Java looks enough like C that I can get what Java code is trying to do.
Personally, I've never learned any language with similar-enough syntax to BASIC, to understand what a (real, non-trivial) BASIC program is trying to do. Would I recognize a BASIC subroutine if I saw one? Probably not.
And it's not about a language having "less" syntax, either, but rather about it having very few syntactic features that're unfamiliar. Smalltalk is a rather large novelty the first time you see it. (`ifTrue`? You mean I've got to use closures to branch?)
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.
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.
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.
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!
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.
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.
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."
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.
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.
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.
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>:
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.
# 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
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'.
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.
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!
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.”
113 comments
[ 0.28 ms ] story [ 140 ms ] threadSo, 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.
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?)
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
I don't really know Java. But I know C, and Java looks enough like C that I can get what Java code is trying to do.
Personally, I've never learned any language with similar-enough syntax to BASIC, to understand what a (real, non-trivial) BASIC program is trying to do. Would I recognize a BASIC subroutine if I saw one? Probably not.
And it's not about a language having "less" syntax, either, but rather about it having very few syntactic features that're unfamiliar. Smalltalk is a rather large novelty the first time you see it. (`ifTrue`? You mean I've got to use closures to branch?)
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.
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.
Why Cats Paint - A theory of feline aesthetics
http://www.monpa.com/wcp/
Buying it either way but it might be a means to finally kindling an interest into it in my spouse. :P
https://www.origamispirit.com/2013/11/homemade-cat-toy/
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.
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.
I suggest you change your title to reflect the premise of your book e.g. Programming for Egomaniacs
I was hoping this was in that domain.. but alas, I could see this being entertaining to 8-14 year old children.
* I am Bunny (a very fluent dog) ( https://www.youtube.com/channel/UCEa46rlHqEP6ClWitFd2QOQ )
* BiliSpeaks (a cat) ( https://www.youtube.com/channel/UCGMTesZlKa0Lokb7ZNqOJXQ )
Or adults with a working sense of humor.
You you get C@
Subreddit for Cat related programmer jokes:
http://www.reddit.com/r/C_AT
I loved the characters, sidebars and various stories; I don't remember too much of the Ruby content, however.
:-)
man cat
Bash Shell -> Fish Shell
And if it was shellfish it would be a PITA to Google it.
The 'sh' goes at the end. Shhhhhhhhh.
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.
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.
https://en.m.wikipedia.org/wiki/Ada_Lovelace
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!
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
Ah - so you’re not a cat?
“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!
Good job!
Changing <body> CSS rule to "color: black; font-weight: normal" was required to actually read the page here