6 ms·
Show HN: The Unix Pipe Card Game – teach kids basic Unix commands
- petespeed 4y agoMore from the author: https://github.com/jackdoe/programming-for-kids https://github.com/jackdoe/programming-for-kids
- ForOldHack 4y agoI was able to complete everything that does not involve Random. I am working on a solution as a wrapper for the sort function, that involves the last digit of the seconds clock. The amount of shells that run in the browser, amazing, the number of new shells that run well in the browser - amazing.
- sparr0 4y agoI reformatted and uploaded the game to a US-based print on demand game publisher. If you can't print your own and need a copy before the author has them back in stock or don't want to ship from the UK, here you go: https://www.thegamecrafter.com/games/the-unix-pipe-card-game https://www.thegamecrafter.com/games/the-unix-pipe-card-game Full disclosure, I will make about a dollar from each purchase.
- dlg 4y agoIs the creator thinking of doing another printing? If not can someone recommend a service that will print a high quality card deck given the PDF?
- throwaway47292 4y agoI print with some professional card printing companies, the pricing goes something like 10 decks, 500$, 50 decks 800$, 100 decks 1200$, and 300 decks 1500$ and then it continues to drop Since I printed only 50, I think the price is too high, so I would rather to give them for free than to charge unreasonable price. If you are willing to pay the shipping cost send me an email to b0000@fastmail.com, I still have few left.
- mcv 4y agoFor those kind of costs, I'd print 300 for $1500. That's just $5 a piece. Sell them for $10, and you can afford to give away half of them. I think this project would make a great Kickstarter. I don't think it would be hard to get 300 people interested in backing this. Shipping is probably going to be the biggest issue; find people on other continents to help you distribute it there. That can save a lot of money.
- OakNinja 4y agoMaybe you could run all the decks as a kit on kickstarter? I would love to buy all of them as a set, and I believe a lot of others would as well.
- throwaway47292 4y agoI am halfway done with the C deck, as we are switching to C soon, and I will setup a kickstarter after, should be done around December. I want her to know why x[3] and 3[x] are the same thing. int x[3]; 2[x] = 5; printf("%d %d\n", 2[x], x[2]) A lot of people struggle with x = 5 y = 6 y = x x = 7 print(y) and x = [1,2] y = [3,4] y = x x.append(5) print(y) There is something magical in understanding how the computer uses its memory, its almost as if you walk out of a mist. I think it will be very valuable to have a set of 4 decks: python, machine code, unix pipes and C, so that the decks compliment each other. In the machine code deck there are few cards that have pointers (e.g. https://punkx.org/4917/play.html#43 https://punkx.org/4917/play.html#43), and they can be used to help with the C deck for example. Then its LISP.
- OakNinja 4y agoSounds awesome! I’ll pitch buying a bunch of these for work as well. Extremely good idea!
- pessimizer 4y agoYou can get the 50 deck rate for even a single deck (and there are often coupon codes) at https://www.printerstudio.com/unique-ideas/blank-playing-cards.html https://www.printerstudio.com/unique-ideas/blank-playing-car... or https://www.artscow.com/photo-gifts/playingcards https://www.artscow.com/photo-gifts/playingcards Also, if you're trying to give this away, they both allow you to share a link to your design so other people can buy the cards direct. ---- edit: the sites may seem cheezy, but they're probably responsible for 95% of prototype card decks that professional designers print. For other excellent non-Chinese, Buy America options, there are https://www.printplaygames.com/product-category/prototypes/cards/ https://www.printplaygames.com/product-category/prototypes/c... , https://www.thegamecrafter.com/make/pricing#Cards https://www.thegamecrafter.com/make/pricing#Cards and https://www.drivethrucards.com/joincards.php https://www.drivethrucards.com/joincards.php
- rabf 4y agoA cheap laser engraver could work well here.
- Rebelgecko 4y agoWould you need 2layered paper, with a different color underneath? Or would engraving the words directly onto card stock be legible?
- jdthedisciple 4y agoLooks nice, though my guess is it would be more appealing to kids if it used more color, a bigger font size and a more "fun" font family like Comic Sans perhaps. Nice work though, would definitely consider this for my own kids.
- ape4 4y agoAnd a mascot - Pipey
- blue1 4y agoPlease no. Doh’t feed bad typography to kids. (When I was a kid, I had access to good design examples. I hated fonts “for kids”. Also, because the essence of play is simulation, and childish fonts ruin the game)
- geraldwhen 4y agoComic sans black on white is more readable than most copy produced in modern web products. Designers love grey on grey. I’ll take comic sans any day.
- zasdffaa 4y agoFont and font contrast are entirely orthogonal.
- flobosg 4y agoAre they? Font contrast is a multifaceted concept that encompasses not only color but other properties as well. For instance, stroke weight and its modulation, which are inherent to a typeface.
- zasdffaa 4y agoCan you give a visual example where they're not? (other than anti-aliasing round the edges)
- loonster 4y agoYou should add this game to boardgamegeek. They will also host the files for you if you want.
- pluc 4y agoDoesn't seem to be a problem for OP since the files are available on GitHub [1] but they choose to leave downloads up on their domain. 1: https://github.com/jackdoe/programming-for-kids/tree/master/projects/unix-pipe-game https://github.com/jackdoe/programming-for-kids/tree/master/...
- throwaway47292 4y agoI do that so there is no tracking, I want people to be able to download the pdfs without microsoft's knowledge :)
- falcor84 4y agoLooks a bit simulator to the online Unix Game, which I really like: https://www.unixgame.io/unix50 https://www.unixgame.io/unix50
- throwaway47292 4y agoThis is amazing! Thanks for sharing, I will try it with my daughter.
- patrickdavey 4y agoI would love a Kickstarter (or something similar) with this. Would totally buy a nice set.
- avsteele 4y agoNice. Was trying to print out the programming set for my son, but its too hard to read. Can anyone get these to printout larger, and where the grey comments are less washed out?
- throwaway47292 4y agoYou can just generate the tiffs yourself with different colors, border_color is the color of the border and the comments https://github.com/jackdoe/programming-for-kids/blob/8d14a24d97316478a4f60b1b40a3f032ecb76289/projects/programming-time/main.py#L20 https://github.com/jackdoe/programming-for-kids/blob/8d14a24... (if you are talking about the programming time game)
- CaptainRefsmat 4y agoMy first thought when I saw this was "stocking stuffer". It sounds a little bit pricey for DIY, though. The Python game sounded interesting, but my initial impression was that it would be way too advanced for beginners. Am I missing something?
- ajot 4y agoIs there any way you could/would change the license from ND to something else allowing derivatives? I would love to see translations of these!
- throwaway47292 4y agoSorry, I copied ND and NC by mistake, I just pushed https://github.com/jackdoe/programming-for-kids/commit/8d14a24d97316478a4f60b1b40a3f032ecb76289 https://github.com/jackdoe/programming-for-kids/commit/8d14a... to move to CC-BY-4.0 (removing NC and NC)
- wodenokoto 4y agoI love Unix pipes and I love the immense computational power you can achieve through streaming pipelines. You hear stories of people processing terabytes of data faster and cheaper than a distributed cloud solution, by the virtue of Unix pies[1]. But I don’t really see them in any other environment. I can’t think of anything that uses something similar except for big, distributed data processing pipelines like Apache Beam. Where’s the Python with streaming pipelines? [1] https://livefreeordichotomize.com/posts/2019-06-04-using-awk-and-r-to-parse-25tb/ https://livefreeordichotomize.com/posts/2019-06-04-using-awk...
- deleted 4y ago[deleted]
- Zhyl 4y agoThis is one of the things that I think Perl (still) does really well. It has flags to allow for command-like one liners and has built in things (like the diamond operator) that make it very quick and easy to write 'filter' scripts that read STDIN and print to STDOUT. Python can do these things, but they aren't very pythonic and they don't feel as natural/intuitive.
- mrashes 4y agoOh man! Love it. Great Idea!
- EdSchouten 4y agoI'm not saying that this isn't a great way for people to familiarize themselves with basic Unix shell commands. That said, why would you want to teach this to kids?
- deleted 4y ago[deleted]
- WhatIsDukkha 4y agoKids are people too? But yeah this type of thing was always fun for me when I was a little guy.
- throwaway47292 4y agoNow with everything on the cloud, kids are growing more and more disconnected with their computers, instead of the kid making the computer do something, they do some magic sequence of actions and sometimes things work, sometimes they dont. Being able to type a command, give it some input and see its output, I believe is the most fundamental way to interact with the computer. The basic concepts of files, folders, programs and processes are getting more and more murky with every new iOS and windows release, and yet, those are still the building blocks of everything, they are just hidden by some obscure interfaces and menus or are just plain inaccessible to the user. UNIX Pipes are the most pure and useful way I know of how the user interacts with the programs and how the programs interact with each other passing their output to the other program's input, and I think it illustrates how more complicated things can be built.
- nixpulvis 4y agoThis is brilliant. Every office should have this!
- 1MachineElf 4y agoThe photo at the bottom appears to be some small ergonomic keyboard (maybe an Atreus?) built into stained wood along with a screen. Perhaps it is a cyberdeck? Curious to know more.
- throwaway47292 4y agoAh! I didnt mean to show it off, just my desk is a mess.. Yea its a cyberdeck I am building with hardwired Atreus directly connected to pi zero gpios and using libuinput to make a software keyboard, which works amazing btw. I am making it to init directly into getty without login (with busybox init), so it boots directly in usable /bin/bash in only 2-3 seconds, and all the available programs are simple python programs (ls, cp, mv, a basic line editor, touchtyping game, hangman etc) and the keyboard itself is a simple python program that basically scans the matrix and emits events to uinput. The frame is from plywood. And I am trying to make it like a 'scavenger hunt' experience for my daughter, I will put special codes in various places in the programs or on the file system with different difficulty, and I can challenge her to find them. The goal is to have < 50$ scavenger hunt computer kit (thats why I cant afford teensy or something) This is just the prototype to see how it feels to write code using line editor, and also to test the effect of thinking of the keyboard as a program with a nested for loop, on her thinking about 'what happens when you press a key' for r in rows: send(r, 1) for c in cols: v = read(c) if v == 1: # (r,c) is pressed send(r, 0) I just uploaded those to show you how it looks, but again, its just to test the software and the screens size: https://github.com/jackdoe/programming-for-kids/blob/master/projects/back-to-the-future/prototype-front.jpg https://github.com/jackdoe/programming-for-kids/blob/master/... https://github.com/jackdoe/programming-for-kids/blob/master/projects/back-to-the-future/prototype-back.jpg https://github.com/jackdoe/programming-for-kids/blob/master/...
- 1MachineElf 4y ago>And I am trying to make it like a 'scavenger hunt' experience for my daughter, I will put special codes in various places in the programs or on the file system with different difficulty, and I can challenge her to find them. This is brilliant. I really admire the lengths you go to so that your kids can be engaged. Sounds like this has the potential to be quite fun and exciting.
- Zhyl 4y agoThere's a typo on the instructions page. The example has 'rises' but the rest of the explanation uses 'raises' I love this as a concept, though. I think if I were to expand this I'd maybe have pre-defined strings for the greps, cards with results on, number pre-selected etc. This makes it more of a 'find the card' or 'matching' game than a problem solving game, but it would make it more kids-card-gamey
- throwaway47292 4y agoOh! Because of the slow and costly printing process I read it like 50 times, and yet.. Its amazing how your brain just sees what it wants to see.
- 1vuio0pswjnm7 4y agoIn the example.jpg image, we can see an example with sort -R "to shuffle the input (random sort)." But sort -R does not randomise input if one is using NetBSD. https://man.netbsd.org/sort.1 https://man.netbsd.org/sort.1 A POSIX-like sort has no -R option. See, .e.g, Plan9 sort or early versions of FreeBSD or OpenBSD. Early Linux did not have this non-POSIX option either. For example, look at Debian, RedHat, SuSE and other distributions in the mid-2000's. HP-UX, Minix, BusyBox, and so on have no -R option. A different approach to teaching "basic" UNIX commands would be to focus on the portability and "lowest common denominator" and ignore non-ubiquitous options like -R. Ask the student what sequences of commands, i.e., scripts, will work on all UNIX/UNIX-like OS regardless of the age of system. From that "basic" foundation, one can then learn how the programs have evolved to become larger and more complicated (a side lesson about bloat) and all the OS-specific differences between them.
- krzyk 4y agoIs `shuf` a basic command on *BSD (or Unix)?
- 1vuio0pswjnm7 4y agohttps://man.netbsd.org/shuffle.1 https://man.netbsd.org/shuffle.1 https://www.freebsd.org/cgi/man.cgi?query=shuffle https://www.freebsd.org/cgi/man.cgi?query=shuffle