This book takes Python programming well beyond casual programming, and beyond the use of Python as a glorified scripting language to access statistical or graphics tools, etc. This is level one or even level two material. If you are writing software to distribute to others, handling time zones, want to optimize code, or experiment with different programming paradigms (i.e. functional programming, generating code, etc.) then you will find Serious Python informative and interesting. Multi-threading, optimization, scaling, methods and decorators, and integration with relational databases are also covered. (A decorator is a function that “decorates,” or changes or expands, a function without motifying i.) The material is carefully and richly explored, and the writing is clear and concise. Continue reading Serious Python Programming→
Minecraft is probably the most creative video game out there, not in the sense that its creators are creative, but rather, that it is all about creating things, and this is done by constructing novelty out of a relatively simple set of primitives. But to do so, the player needs to know about the building blocks of Minedraft, such as Lava, Fencing, Redstone, Levers, various chest and chest related things, and so on.
Yes, you (or your child) can learn as you go playing the game, watch a few YouTube videos, etc. But if we want to fully enjoy and integrate the Minecraft experience, and help that child (or you?) get in some more reading time, there must be books. For example, the Minecraft: Blockopedia by Alex Wiltshire. Continue reading Minecraft Blockopedia→
I’m not going to try to talk you out of Evernote. If you use the venerable application productively, good for you. I used it for a long time and it was fine. But, recent changes in the application caused me to look elsewhere for the satisfaction I was seeking. And I found it. I found Raindrop.io. Continue reading Instead of Evernote, Try Raindrop→
A computer program is like a memo. Often, a vague memo.
You are the boss. You want a pile of files to be put away. You could do it yourself, but instead you instruct someone else to do it. There are a lot of them and they are all mixed up. So you write a memo to an employee that says “put the files away” and sis-bam-boom you’re all set.
Wikipedia tells us that a “computer hacker is any skilled computer expert that uses their technical knowledge to overcome a problem.” The all knowing one goes on to note that the term has been linked in popular parlance with the made up Wikipedia word “security hacker.” Such an individuals “uses bugs or exploits to break into computer systems.”
The winner, hands down, of the GLB Coolest STEM Toy Ever Award for 2018 is The LEGO BOOST Activity Book by Daniele Benedettelli, and published by No Starch Press. This is the book that makes last year’s coolest STEM toy ever, the LEGO Boost Creative Toolbox , come to life in a way that will truly advance a child’s learning and enjoyment of robotics.
In my household, we have certain carefully designed rules. The rules are invariant, but the implementation is collaborative and open. For example, Huxley must always be engaged in some sort of out-of-school and out-of-home learning activity. The most obvious way to do this is a class somewhere (which can, actually, be in school as an ECA). The decision of what that activity should be, however, is his. During part of the summer he typically chooses etiquette class or an art class. During the rest of the year, he takes a STEM class at our local Stem Builders Learning Center. Stem Builders does all sorts of things, like computer coding, cloud computing, robotics, etc. and Huxley mainly engages in engineering and robotics classes. Over the last two years I’ve observed what is taught in intro and mid level robotics, and how it is taught. I’ve also seen how two other programs that teach robotics, both in our school system, work. So I have a good idea of what a good robotics course looks like.
The robotic raw material used in most of these classes is LEGO based, similar to (but not the same as) the material provided with the recently invented and marketed LEGO Boost Creative Toolbox , which is basically a big fancy LEGO kit that is also a robot, and a few other things. The programming learning associated with these classes is absent, however, from that project. LEGO offers some additional computer programming information, but very limited, on its web site. Earlier in the year, I reviewed another No Starch Press book, The LEGO BOOST Idea Book: 95 Simple Robots and Hints for Making More! by Yoshihito Isogawa, which is a great book that allows you to take the LEGO Boost Creative Toolbox to the next level with a plethora of projects you can build using only parts that come in that kit. The objective of Isogawa’s book is to provide a diverse array of suggestions for robotic LEGO builds.
But again, the home version of STEM learning that combines the pragmatic goal of learning to build (and thus, in the future, fight, I assume) robots, and the other pragmatic goal of learning to program stuff, is not the goal of that book.
The LEGO BOOST Activity Bookdoes fill this need. It is the book that should have come with the LEGO Boost Creative Toolbox. The toolbox does not have a programming manual, and there is nothing that comes with it, or that is available in parallel that I know of from LEGO, that hints at the power and potential of the programming interface.
The LEGO BOOST Activity Book starts out with instructions to build a basic robotic car called “Mario,” that looks enough like a Kart from Mario Kart to suggest a lawsuit. Mario is then used, again and again, in project after project, as the platform to explore dozens of robotic techniques, including diverse approaches to programming, the use of sensors, and various other moving parts.
That sequence, which takes up the majority of the book, looks a lot like a full semester class in robotics, spanning introductory to intermediate and early advanced techniques.
Following that there is a chapter on building BrickPecker, which is a robotic bird that sorts LEGO bricks by color. Unfortunately, it only sorts certain size and shape bricks and it will not rifle through your closet finding all the LEGO bricks and putting them in different containers.
Don’t believe the BrickPecker can be real? It has been captured of film:
After BrickPecker, there is a final chapter on CYBOT, a bipedal robot with the ability to talk, move its arms and fingers (all four of them on two hands), and fire a weapon. Once you’ve got the robot that can do those things, well, it is all over.
There is a massive section within the guts of the book that puts in one place the building techniques and principles needed to make things that do not fall apart easily, that move properly, and so on.
It is hard to believe there is so much stuff in this one book, but there is. One way that happens is the subtle but measurable increase in format for this volume compared to other coding and STEM books by this and other publishers.
This book came to me just in time to fill our holiday vacation. Huxley is going to return to his Stem Builder’s class in advanced mode in two weeks!
Daniele Benedettelli is known worldwide for his original LEGO robots, including his Rubik’s Cube solvers and his humanoid robots. As a LEGO MINDSTORMS Community Partner (MCP), he helps to test and develop new MINDSTORMS products. He gives educational presentations and workshops on Information and Communications Technology around the world and teaches robotics at the high school level. Benedettelli holds a master’s degree in Robotics and Automation from the University of Siena in Italy.
Scratch is a seminal object oriented programming language that has had a great deal of influence on other languages. It is an entry level system designed for kids and adults new to programming. If you have a kid doing any kind of robotics or STEM programming in elementary school, they are using a programming langauge that derives from Scratch.
It comes out of MIT, and is usually used on their server, using a web interface.
That web interface is closing at 7 AM on January 2nd. Later that afternoon, it will be back up, but with Scratch 3.0!
Linux has a kernel, there is a desktop manager, a desktop environment, a distribution, and a whole bunch of other stuff. All these things and other things have version numbers and similar information associated with them. If you are a casual user, you probably don’t know the exact version of any or all of these things you are running at any one moment in time. Then, suddenly, you find out that “Version this-or-that of this thing-or-another is out, have you tried it?” or “The whatchamacalit version of the thingimijob is broken, if you have that upgrade or you will all die!!!” or similar. So then, you want to know what version you are running.
I’ve reached a very nice resting point in the ongoing effort to develop a very useful, powerful, stable, and cool computer setup.
This started a while back when I built a computer. In particular, this computer. There are several advantages to building a computer. You can save money or get more bang for your buck even if you don’t pay less. On the saving money side, maybe you have components on hand that you don’t have to buy. I did, mainly mass storage. The case I had, thinking I’d save money there, ended up not working out. You get more bang for the buck because the parts you buy will be better than the ones in the equivilant off the line but cheaper computer, and you’ll have more control over what happens in future upgrades. Continue reading A really good computer setup→