return to table of content

The Unix Pipe Card Game

g4zj
11 replies
5d23h

Are kids these days actually able to grasp things like this? I don't have kids and am never around them, so please take this question as genuine and in good faith.

CBarkleyU
7 replies
5d21h

Not sure about kids, but I've seen university students that literally did not know how to use a non iOS computing device. Colleagues had to start explaining what a file is, a folder, etc etc, in their courses.

Honestly I don't find that too bad. My guess is that computers will go the same way cars did: Most people will only know the very basics that are needed to operate the thing. Any deeper knowledge will be left to enthusiasts and professionals. Thus computers, while getting more complicated internally, will have fewer and fewer modi of usages.

throwaway71271
5 replies
5d18h

what a file is

What is a file, what is a program, how programs run and how programs communicate, is not understood by most people (including most CS students).

Honestly I don't find that too bad.

I understand what you mean, it is the same with most technology, users just use it, as your example of cars, or even furniture, or forks and spoons, or language, I am not even sure it is related to complexity.

But I disagree on what it means to use a computer, because unlike other machines, it does what you make of it (now even more, with llama 3.1 out), I think to use a computer means to program it. Somehow in the last 30-40 years, user interfaces gave up on their users. You dont own your programs, your files or in many cases even your computer, it doesnt start the programs you want(iphone for example), and you cant debug other programs (e.g. in case of macos you cant gdb -p into signed programs unless you disable the system's integrity protection).

Somehow we managed to squeeze all the fun out of it. As John Carmack says: the distance between what it is, and what it could be, is the opportunity, and I am sure people can have way more fun programming :)

This commodore 64 user guide: https://www.youtube.com/watch?v=J9WnHuGjZ38 is my inspiration.

qingcharles
4 replies
5d16h

The first class of my CS degree was "How to use Microsoft Word" and some of the other students had a really, really hard time figuring this out. Including the guy next to me who kept telling me he had a job lined up already to write software for nuclear reactors in Pascal.

jtsuken
1 replies
5d15h

There was a post on HN some time ago about a candidate for a senior IT role, who wrote code in MS Word.

I can't find it right now. Maybe I should try Bing search

pmontra
0 replies
5d13h

Great fun with the autocorrected Unicode double quotes.

A customer of mine got bitten on a preproduction server because of a copy and paste from some blog, where ASCII " were converted to Unicode (slanted) "

nilamo
0 replies
5d3h

Why would using a fancy editor be in any way relevant to writing code? That CS class should be dropped from the curriculum, imo, until such time as bolding a register has some sort of meaning, or perhaps viewing an sql table via "print preview".

defrost
0 replies
5d16h

This aligns with reality.

To be fair to the other guy, early versions of MS Word sucked when it came to LaTeX representations of integrals and nuclear decay chain notations.

Perhaps more recent versions do better.

pmontra
0 replies
5d13h

A good developer I've been working with years ago told me "I really don't know how networking works [and SQL] but... I studied Graphic Design, not CS. While I was studying that I realized that I liked programming more than design so I started doing it and never got a formal education about computer stuff." He was really good at Node and he ended up being the lead developer of the company he was working for. I know good developers coming from all sort of backgrounds, from Philosophy to Agrarian science (if that's the right English term for that.)

throwaway71271
2 replies
5d23h

I think it depends a lot on the kid and the parent, I am teaching my daughter since she was 10, and I try to spend time every day doing something, you can see our progress here: https://github.com/jackdoe/programming-for-kids/blob/master/...

It is difficult because I have to compete with snapchat and google/meta for her attention, and school is quite exhausting. Snapchat has this super annoying 'streaks' and the more friends you have the more streaks you have to keep alive, so you have to send like 400 messages per day.. its non stop. I teach her that there are 100_000 developers and psychologists and product owners and etc, that they go to work every single day thinking how to extract the most value out of her attention, and she has to constantly be aware of what is the "algorithm" making her do.

Unix Pipes she got quite quickly, but doesn't use often, but the idea of one program reading another program's output she got. Also grasping the command line was not that difficult. But I used quite some tricks to help. For example her windows PC I change the shell from explorer to cmd.exe, so it boots in cmd, so she has to navigate and also fix it. I also make scavenger hunts on her filesystem so she has to look for a file using dir and cd and etc, also https://overthewire.org/wargames/bandit/ I bribed her with robux for passing each level of the bandit game

I want to teach her how computers work and how to make them do what she wants. From what is a register, to an instruction, to a program to a process. Kihon no Kihon as they say. But in the process I also teach her how to break things down and how to think and most importantly how to learn. I teach her about the heart of things, so there is no mystery between the keyboard press and the letter appearing on the screen, or how chatgpt predicts the next word (I am working on a RNN board game with 3 neurons and you have to teach it to count https://punkx.org/move-37/rnn.pdf [work in progress])

So in the end I am not sure if it matters what you teach your children :)

dbdr
1 replies
3d23h

Snapchat has this super annoying 'streaks' and the more friends you have the more streaks you have to keep alive, so you have to send like 400 messages per day.. its non stop.

I had no idea. That sounds insane. Can that "feature" be disabled?

I teach her that there are 100_000 developers and psychologists and product owners and etc, that they go to work every single day thinking how to extract the most value out of her attention, and she has to constantly be aware of what is the "algorithm" making her do.

It's great that you make her aware of it. And still, it sounds like an horribly unfair fight.

throwaway71271
0 replies
3d22h

Can that "feature" be disabled?

not that I know of, but also she has social pressure to not let her friends "down", its a huge thing who you have "streak" with, and also the longer the streak is the more "important" it is.

throwaway71271
9 replies
6d

I make those decks (https://punkx.org/) to help me teach my daughter, and so far they seem very effective, especially the unix pipes one and the 4917 machine code https://punkx.org/4917/ and the pointers deck https://punkx.org/c-pointer-game/ , from the python deck I use only 10 cards or so

btw, you might also like https://punkx.org/overflow/ which is a buffer overflow riscv assembly board game, or depending on your kid's level you can also play snakes and ladders with gotos https://punkx.org/overflow/build/snakes-and-ladders.pdf

Also if you have kids, I would recommend you print https://punkx.org/panic/ which has amazing pranks that fit in one poker card (e.g. randomly hitting backspace or space every 30 seconds, or pressing W randomly if minecraft is open)

I am donating a lot of the decks to teachers and schools, so if you are interested send me an email.

PS: I am in London for 1 more week, so if you order decks now the shipping will be delayed, but I will make sure I add 1-2 extra decks in the package because of it.

PPS: the unix pipes expansion deck is all about process substitution, but I don't think its useful for kids, though I think it contains nice puzzles

vesinisa
1 replies
5d21h

This is really cool!

One thing I noticed: in the game there are tasks like print the second line and print the seventh line. But both of those lines are empty. So technically e.g. a non-matching grep is a correct solution. :)

throwaway71271
0 replies
5d21h

yep :)

jjice
1 replies
5d23h

So cool! I'm ordering a few of these after rework tonight.

Out of curiosity, how do you handle printing? DIY? POD? Order in bulk and ship yourself? I'm always so interested in how people handle physical product sales at a small scale.

throwaway71271
0 replies
5d23h

I print with local print shop http://www.hrspeelkaarten.nl/ and https://www.printenbind.nl/ and I print a lot so the price gets to 3-4$ (like 800 decks or so) and then I ship myself.

TBH physical products are amazing, I want to make more. Its such an amazing feeling once the product is "done", you can just start working on the next one, in contrast with software which is always in your head..

liendolucas
0 replies
5d22h

KUDOS for the creativity of coming up with something like this!

koolba
0 replies
5d19h

What age and how much terminal familiarity did you start playing?

Daegalus
0 replies
5d14h

I ordered 1 of all your available decks a few months ago, my daughters are too young for them still, but I think they are great, and I can't wait to bust these out in 8+ years

elchief
5 replies
6d

$19 shipping (Canada) is a little outrageous

anybody in Greater Vancouver wanna do a bulk order w me?

ktallett
1 replies
5d9h

12 Euros is a fairly standard price for tracked postage across continents.

Suppafly
0 replies
5d1h

Not the same, but I mailed a sweatshirt to a relative in Sweden from the US and it was like $36 and if I wanted it tracked the whole way it would have been something like $55. Granted this was USPS and maybe shopping it around would have been cheaper, but I had no idea that international shipping was so expensive considering you can buy stuff from china and shipping is basically free.

throwaway71271
0 replies
6d

Sorry :( I use PostNL, and its actually even more expensive, on most non EU shipping I lose

but each deck has pdfs you can just print them with your local printing shop, if you don't print the box it should be cheaper

you can also just print them on a4 paper and cut it with scissors, its not the end of the world, it is even helpful to explain to someone with pen and paper as well.

in this case: https://punkx.org/unix-pipe-game/unix-pipe-box.pdf this is the box and https://punkx.org/unix-pipe-game/unix-pipe-cards.pdf are the cards

przemub
0 replies
5d19h

Come on, you can print it yourself if you want and it's clear that at this price and shipping from Europe he earns close to zero on these.

floodle
0 replies
5d12h

It's a wild idea to take a completely digital asset, print it in Europe on to paper, and then put it on a ship and slowly transport it to Canada.

oliwarner
2 replies
5d22h

Great until you play a minimal game with somebody who grew up on awk, perl, etc

grayfaced
1 replies
5d16h

Yea that's the fault of the scoring method (Count pipes). Character count would be better... either that or play within the spirit of the game and learn the tools for their intended purpose. I use a lot of awk/sed for quick one-time processing and I use a similar mental model for how I do most of my processing. Build a input stream, use sed to structure the data into records, use awk to process records, massage the output (e.g. sort/uniq). In many cases I could use sed or awk to replace eachother but that makes it take longer to visualize and also harder to re-use.

Suppafly
0 replies
5d1h

In many cases I could use sed or awk to replace each other

I always felt that way too. I don't do a ton of command line processing of stuff now, but got pretty proficient with them back in day specifically for a unix class in college. A lot of the seemingly simple command line tools have overlapping feature sets or can be coerced into doing extra stuff.

michaelmior
1 replies
5d21h

I'm curious how the "largest pipe chain" format works when the rules state that the first player to complete the task wins the round.

throwaway71271
0 replies
5d21h

we played it until we ran out of cards

quiteunfunny
0 replies
5d6h

can you pull a dirty pipe move?

ko1nksm
0 replies
4d19h

The great thing about this game is that whoever knows UUoC will be the winner.

cat file.txt | tr a-z A-Z | sort (loser)

tr < file.txt a-z A-Z | sort (winner!)

contravariant
0 replies
5d19h

You're going to run out of coins I think.

baudaux
0 replies
5d21h

I definitely need to fix pipes in https://exaequos.com in order to play !!

ShayNehmad
0 replies
5d8h

Love the fact that I can print these. That's really great. Thanks! I'm debating if to print it in the office printer right now...

Neywiny
0 replies
6d

inb4 uuoc award givers. Having the cat at the front simplifies adding to the front of the pipeline.

EmilyHughes
0 replies
5d12h

yeah kids are gonna love this