Coraline Ehmke is a leading figure in the push to make Linux programming more welcoming and inclusiv, supplementing the project's famed Code of Conflict with an enforceable Code of Conduct project called CoC Beacon. Read the rest
Glitch is a simple and powerful open-source canvas for experimenting on the web—and after a year of beta testing, it's ready for artists and coders to get stuck in. If you want to make things online but get put off by complicated frameworks, the headache of server set up, and myriad incompatible platforms your work has to end up running on, Glitch might be for you.
I tinkered with it for the first time last week, and within minutes had overcome hurdles that I thought I'd never have the time or energy to figure out.
To a casual visitor, Glitch looks like YouTube, but for digital artwork and rudimentary games. You can even embed stuff there on your own site, just like video, though you have to click into the editing tools to get the snippets.
Dig in, though, and it turns into a simple but powerful coding environment: one that can't be messed up, no matter how hard you try. For me, it seems to offer all the freewheeling instant gratification of the early web, but with modern tools and technology -- and the chance to collaborate with other people without having to teach them Git. The promise of just focusing on art or application code seems almost alien to the modern web, but here it is, all without having to be my own sysadmin, security expert and full-stack drudge.
Best of all, you can take anything anyone's done, clone it, and tinker with it, and see the results change live: the best and fastest way to learn markup and scripting languages. Read the rest
In the New York Times, Jason Schreier reports on the game industry's cult of crunch: the pervasive practice of making workers put in 20-hour days, resulting in one met deadline and a many lines of low-quality code.
“People think that making games is easy,” said Marcin Iwinski, a co-chief executive and co-founder of CD Projekt Red, the Polish developer of a 2015 game, The Witcher 3. “It’s hard-core work. It can destroy your life.” Mr. Iwinski, like many other top video game creators, sees crunch as a necessary evil ... A growing faction of game developers, however, argues that it’s possible to make good games without crunching. Tanya X. Short, a co-founder of the independent studio Kitfox Games, asked colleagues to sign an online pledge against excessive overtime. The pledge, which was published last year, has been signed by over 500 game developers. “Crunch trades short-term gains for long-term suffering,” said Ms. Short in an email.
Hey, ever met a geeky computer programmer with a bottomless need to prove his own competence and a political ideology perfectly tailored to capital's needs? Read the rest
A version of Yes, an app that says "y" at maximum speed, is built-in to unix-based operating systems. You can test it by firing up a terminal, typing "yes", and then watching it fill your window; you'd usually pipe it to another app or script. But there's a problem: it can only generate 51 megabits per second worth of yes, and something must be done about it.
The trivial program yes turns out not to be so trivial after all. It uses output buffering and memory alignment to improve performance. Re-implementing Unix tools is fun and makes me appreciate the nifty tricks, which make our computers fast.
As benchmarked by the author's computer, 3GB/s of yes is now possible! Read the rest
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.
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