Interested in learning Python? You can watch all 38 videos for MIT 6.0001 Introduction to Computer Science and Programming in Python from Fall 2016, for free on YouTube.
Nintendo programmer Masahiro Sakura coded the Game Boy classic Kirby's Dream Land on a cartridge-based Famicom console and Disk System that lacked a hardware keyboard. According to a recent presentation given by Sakura, "values had to be input using a trackball and an on-screen keyboard."
Sakura, who was 20-years-old at the time, said he just thought that was "the way it was done."
At the time, the development tool that HAL Laboratory was using was the Twin Famicom, a console that combined the Famicom and the Famicom Disk System. A trackball made specifically for the Twin Famicom was used with the machine, which read and wrote data to a floppy disk and uploaded data to the floppy disks [during development].
Essentially, they were using a Famicom to make Famicom games. Sakurai told the crowd, “It’s like using a lunchbox to make lunch”. However, because of that, they were able to create a functional test product before the project plan was even completed.
The demo is driven by its soundtrack, so in order to understand what the program needs to do, it helps to have a schematic overview of the various parts of the song.
The three voices of the SID chip are used as follows: Voice 1 is responsible for the kick drum and bass, Voice 2 plays the melody and Voice 3 plays a drone that ducks on all beats, mimicking the genre-typical side-chain compression effect.
All in all, the song contains 64 bars in 4/4 time. It is played back at 112.5 bpm by means of a 60 Hz timer interrupt. The interrupt handler is primarily responsible for music playback, while the visuals are mostly generated in main context.
In his Lifehacker essay looking back on his five years of tinkering with the Raspberry Pi, Thorin Klosowski says one of the desirable features of the Pi is the fact that it's not easy to use right out of the box.
Read the rest
The joy I get from finding a solution to some dumb problem is one of the main things that drew me to the Raspberry Pi to begin with. Thankfully, Raspberry Pi projects have gotten easier over the years. Where it was once a complicated process to build an SD card, it’s now pretty much automatic. Still, the Raspberry Pi is far, far away from being as user friendly as a PC or Mac. That’s a feature, not a bug. The Raspberry Pi is built to force you to learn troubleshooting, and that’s still one of my favorite things about it.
Before hobbyists latched onto the Raspberry Pi, it was a computer for learning how to code targeted mainly at kids. Since then, the appeal has broadened, but it’s still impossible for a project to “just work” out of the box. You will have to tweak something, dig into the command line, or spend a few hours buried in an obscure internet forum to find solutions to problems that only you seem to be having. You will slam your head against the wall, yell a little, and throw your Raspberry Pi at least once for every project you attempt to make.
For every project you complete, for every bug you squash, and for every typo you correct, comes a small, glowing feeling inside your stomach that is well worth the trouble of it all.
This Tumblr gives new software-development titles to old paintings.
“Engineering manager returning from a budget meeting” Ilya Repin, Oil paint, 1888
“Front end programmer” Giovanni Battista Moroni, 1570–1575
“Sysadmin grants sudo privileges to developer on production web server” - Andrea del Verrocchio and Leonardo da Vinci, 1425-1475, Oil on wood Read the rest
You're probably familiar with Scratch, the introductory programming language that allows kids (and adults) to create interactive stories, games, and animations. Scratch doesn't require lines of code to write programs. Instead, you build programs by snapping together colored blocks. (My book, Maker Dad, has an introduction to Scratch that shows how to make retro-style video games).
Scratch is perfect for kids 8 and up. Recently, MIT Media Lab's Lifelong Kindergarten Lab announced the release of ScratchJr, an even simpler programming language for young children (ages 5-7) to create interactive stories and games. It's free and runs on iPads and Android tablets.
Mitchel Resnick, who runs MIT Media Lab's Lifelong Kindergarten Lab, and Marina Umaschi Bers, a professor in the Computer Science Department at Tufts University, have a new book out called, The Official ScratchJr Book: Help Your Kids Learn to Code. The publisher sent me a copy, and it looks like a great way for parents to learn about ScratchJr so they can get their kids up to speed and let them go off on their own. With full color screenshots on every page, it provides a thorough overview of everything ScratchJr is capable of doing. Read the rest
When I was a mechanical engineer in the late 1980s I used Microsoft QuickBASIC to write and create simple programs for work. I loved it. It was a compiled BASIC, too, so it was speedy. I used it to recreate a lot of the programs from Rudy Rucker's Chaos software from Autodesk. I got pretty good at writing programs in BASIC, just as I got pretty good at nodding my head when my smarter programmer friends would tell me that BASIC was not a real programming language.
I never learned any other languages, but recently I've started using Python and it is easy and fun. One thing I did with Python was write a nontransitive dice simulator to prove to myself that these confounding dice really worked as described.
I just got my hands on a new book called Automate the Boring Stuff with Python: Practical Programming for Total Beginners by Al Sweigart, and it looks like it is exactly what I need: a book for beginners and with lots of ideas for programs that are actually useful. Examples: Search for text in a file or across multiple files Create, update, move, and rename files and folders Search the Web and download online content Update and format data in Excel spreadsheets of any size Split, merge, watermark, and encrypt PDFs Send reminder emails and text notifications Fill out online forms Read the rest
At the beginning of the summer my son Ronan, age 12, and I built him his first high-powered gaming PC. Me being a dad and all, I did so happily, but with one proviso -- he’d have to dedicate time every day to learning a programming language. He was slightly sceptical of this, having taken a few less-than-interesting intro to programming classes in the past. Prepared for this, I recommended that we enroll him in Youth Digital’s comprehensive Java course called Minecraft Server Desgin 1. This got his full attention, as he had dreams of creating his own custom servers and gameplay modes to host Minecraft sessions with his friends.
We signed him up and dove in. Our immediate impression was that site and course are smartly designed and easy to navigate. All material is introduced through clear, well-produced, often funny videos that didn’t talk down him, but instead did a great job of walking him through new concepts, then pausing while he took pop quizzes and did hands-on coding exercises.
The course includes a year of server hosting, 24-hour tech support (that was fast and helpful the few times he’s needed it), and perhaps best of all, a browser-based integrated development environment (IDE) for editing the game, player, and team Java files. Within this Codenvy IDE (Windows and OSX only), you can launch the updated server with one button, which makes it fast to test code and correlate newly learned concepts with the “real world” Minecraft results.
He chose one of the four pre-built maps, learned to modify the default server file description text, whitelisted a few friend, and launched his Minecraft server within the first hour of instruction. Read the rest
Udacity created an infographic about different programming languages, showing their popularity over time, their applications, and the average salary one might expect from becoming proficient in one of the languages. Python often appears at the top of the different lists.
(Here's a good book called Python for Kids: A Playful Introduction to Programming, which I used to learn how to write a nontransitive dice simulation.)
Scratch is a free drag-and-drop programming language for kids, developed at MIT. My 10-year-old daughter Jane uses it to create puzzles, games, and interactive cartoons. In 2012 I reviewed a book called Super Scratch Programming Adventure, a comic book guide to Scratch. I recommend it.
I also recommend the new book, Learn to Program with Scratch: A Visual Introduction to Programming with Games, Art, Science, and Math. Like Super Scratch Programming Adventure, this book is aimed at the complete beginner, but it goes deeper, exploring powerful programming concepts that show how useful Scratch is, for kids and adults. Read the rest
This Raspberry PI based computer kit looks like a great way to get kids interested in programming. The programming language looks kind of like Scratch, the free drag-and-drop programming language developed at MIT. A Kickstarter pledge of $9 or more gets you "downloads of the Kano books, OS, and projects. Plus, we'll put your name in our source code."
Scratch, an excellent and free drag-and-drop programming language for kids developed at MIT, has a new web-based interface. My 10-year-old daughter Jane uses it to create puzzles, games, and interactive cartoons. One thing I like about Scratch is that it's really hard to make a syntax or spelling mistake. The inevitable bugs that arise in a complex Scratch program are therefore more interesting to solve.
Last year I reviewed a terrific introductory book called Super Scratch Programming Adventure!, which teaches Scratch through game programming. There's a new version of the book that covers the web-based Scratch 2, and it went on sale this week.Super Scratch Programming Adventure! (Covers Version 2): Learn to Program by Making Cool Games Read the rest
Robot Turtles is "a board game you play with your favorite 3 to 8-year-old that sneakily teaches programming fundamentals." Created by entrepreneur Dan Shapiro and inspired by classic kids' programming language Logo, the board game lets kids ages 3-8 write programs with colorful playing cards. The game is brilliantly simple: kids play a row of action cards to control their turtle on the board, as moved by the adult game master.
Dan designed the game for his 4-year-old boy/girl twins, because "people who can program are going to be writing the future, and everybody else is going to be reading it." With 10,000 backers, Robot Turtles is nearly the most-backed board game on Kickstarter. It's available until Sept 27 for $29 and is scheduled to ship in time for Christmas.
Dan's a good friend of mine (I'm Robot Turtles' first backer), and we spent months discussing the strategy behind both Robot Turtles and my recent Kickstarter. If you're interested in some of the lessons Dan and I learned, he's got a great post up on the subject. Read the rest