Who’s the better programmer? The guy that knows 10 different languages, or someone who knows just one? It depends. Programming is akin to math, or perhaps it is that we treat some topics differently than others which leads to misconceptions about what makes a good programmer, mathematician, or engineer. We submit that to be a great programmer is less about the languages you know and more about the algorithms and data structures you understand. If you know how to solve the problem, mapping it to a particular computer language should be almost an afterthought. While there are many places that you can learn those things, there is a lot more focus on how to write the languages, C++ or Java or Python or whatever. We were excited, then, to see [Jeff Erickson] is publishing his algorithms book distilled from teaching at the University of Illinois, Urbana-Champaign for a number of years. The best part? You can read the preprint version online now and it will remain online even after the book goes to print.
When you were in school, you probably learned math in two ways: there was the mechanics (4×4=16) and then there were the word problems (Johnny has 10 candy bars and eats 4, how many are left?). Word problems are usually the bane of the student’s existence, yet they are much more realistic. Your boss has (probably) never come in your office and asked you what 147 divided by 12 is. If she did, you could hand her a calculator. The real value comes in being able to synthesize the right math for the right problem and — if you are lucky — gaining intuition about it (doubling the price will only increase profit by 10%). Software is pretty much the same, for example no one rushes into your cubicle and says “Quick! We need a for loop written!” You get a hazy set of requirements if you are lucky, and you then need to map that into something that computers can do. For that reason, we’ve always been more of a fan of learning about algorithms and data structures rather than specific language features.
Continue reading “Software: It Is All In The Details”
We live in a time when you don’t have to know assembly language to successfully work with embedded computers. The typical processor these days has resources that would shame early PCs and some of the larger ones are getting close to what was a powerful desktop machine only a few years ago. Even so, there are some cases where you really want to use assembly language. Maybe you need more speed. Or maybe you need very precise control over timing. Maybe you just like the challenge. [Robert G. Plantz] from Sonoma State University has an excellent book online titled “Introduction to Computer Organization: ARM Assembly Langauge Using the Raspberry Pi.” If you are interested in serious ARM assembly language, you really need to check out this book.
If you are more interested in x86-64 assembly and Linux [Plantz] has you covered there, too. Both books are free to read on the Internet, and you can pick up a printed version of the Linux book for a small payment if you want.
Continue reading “Learn ARM Assembly with the Raspberry Pi”
Few people would deny that farming is hard work. It always has been, and it probably always will be no matter how fancy the equipment gets. In 1932, farming was especially grueling. There was widespread drought throughout the United States, which gave rise to dust bowl conditions. As if those two things weren’t bad enough, the average income of the American farmer fell to its lowest point during the Depression, thanks to the Smoot-Hawley Tariff Act.
Even so, crop farming was still a viable and somewhat popular career path in 1932. After all, knowing how to grow food is always going to get you elected into your local post-apocalyptic council pretty quickly. As such, the John Deere Equipment Company released the 19th edition of their classic book, The Operation, Care, and Repair of Farm Machinery. This book covers all of the various equipment a crop farmer needed to get from plough to bounty. The text gives equal consideration to horse-driven and tractor-driven farming implements, and there’s an entire chapter dedicated to tractor engine maintenance.
According to its preface, this book was used as an agricultural text in schools and work-study programs. It offers a full course in maintaining the all the (John Deere) equipment needed to work the soil, plant crops, cultivate, harvest, and manure in all parts of the country. The Operation, Care, and Repair of Farm Machinery was so well-received that John Deere kept the book in publication for over thirty years. The 28th edition and final edition came out in 1957. We wonder why they would have stopped putting it out after all that time. Maybe it wasn’t profitable enough, or the company decided to phase out the shade tree tractor mechanic.
So why should you delve into a sorely outdated textbook about farm equipment? Well, it’s straightforwardly written and easy to learn from, whether you’re trying or not. You should check it out if you’re even remotely curious about the basics of farming. If for no other reason, you should go for the beautiful hand-drawn illustrations and stay for the interesting tables and charts in the back. Did you know that a gallon of milk weighs 8.6 pounds?
Continue reading “Retrotechtacular: Farming Implements in 1932”