Devilishly Advocative: Microsoft Heats Ocean; Builds Skynet’s Safe Haven

Have you heard that Microsoft is testing underwater data centers? On the surface (well, actually on the ocean floor) it’s not a bad idea. Project Natick seals a node of servers in a steel pipe for an undersea adventure planned for at least 10 years. The primary reason is to utilize cold ocean temperatures to keep the machines cool as they crunch through your incessant Candy Crush Saga sessions.

microsoft-project-natick-squarePassive cooling is wonderful, and really drops the energy footprint of a data center, albeit a very small one which is being tested. Scaled up, I can think of another big impact: property taxes. Does anyone know what the law says about dropping a pod in the ocean? As far as I can tell, laying undersea cabling is expensive, but once installed there are no landlords holding out their hands for a monthly extraction. Rent aside, taking up space with windowless buildings sucking huge amounts of electricity isn’t going to win hearts and minds of the neighborhood. Undersea real estate make sense there too.

But it’s fun to play Devil’s Advocate, and this one immediately raised my eyebrow. I read as much Sci Fi as time allows, and am always interested to see which authors are registering the best technology predictions. This is the second time in short order that I turn to [William Hertling’s] work. Back in November, Google announced a project to add predictive responses to Gmail. This parallels the premise of [Hertling’s] Singularity Series which begins with Avogadro Corp. Another major point in that novel is the use of offshore data centers.

Continue reading “Devilishly Advocative: Microsoft Heats Ocean; Builds Skynet’s Safe Haven”

The Price of Space

Many engineers of a certain age have one thing in common: Their early interest in science and engineering came from watching the US and Russian space programs. To me, regardless of any other benefit from the space program (and there are many), that ability to inspire a future generation of engineers made the entire program worthwhile.

We live in a world where kids’ role models are more likely to be sports or entertainment figures that have regular visits to police stations, jails, and rehab centers. The value of having role models that “do science” is invaluable.

This time of the year is a dark time for NASA missions, though. On January 27, 1967, the Apollo I crew (Grissom, White, and Chaffee) died in a fire. The investigation led to NASA limiting how much Velcro you can use in a cabin and moving away from pure oxygen in the cabin.

Continue reading “The Price of Space”

Warbots: Is it Already Too Late?

In 1971, a non-profit formed that holds the World Economic Forum each year. The Forum claims it “Engages the foremost political, business and other leaders of society to shape global, regional and industry agendas.” This year, the Forum hosted a session: What If: Robots Go To War? Participants included a computer science professor, an electrical engineering professor, the chairman of BAE, a senior fellow at the Vienna Center for Disarmament and Non-Proliferation, and a Time magazine editor.

Continue reading “Warbots: Is it Already Too Late?”

Kids and Hacking: Electromagnetic Eggs

One of my favorite things to do is visit with school kids who are interested in engineering or science. However, realistically, there is a limit to what you can do in a single class that might last 30 to 90 minutes. I recently had the chance to work with a former colleague, a schoolteacher, and The Teaching Channel to create an engineering unit for classroom use that lasts two weeks.

This new unit focuses on an egg drop. That’s not an original idea, but we did add an interesting twist: the project develops a “space capsule” to protect the egg, but also an electromagnetic drop system to test the capsules. The drop system allows for a consistent test with the egg capsule releasing cleanly from a fixed height. So in addition to the classic egg drop capsule, the kids have to build an electromagnet, a safe switching circuit, and a test structure. Better still, teams of kids can do different parts and integrate them into a final product, closely mimicking how real engineering projects work.

There are a few reasons for the complexity. First, given ten class sessions, you can do a lot more than you can in a single day. Second, I always think it is good if you can find exercises that will appeal to lots of different interests. In the past, I’ve used robots and 3D printers for that reason. Some students will be interested in the electronics, others in the mechanics, and still others will be interested in the programming. Some kids will engage in 3D modeling (robot simulation or 3D objects). The point is there is something for everyone.

Continue reading “Kids and Hacking: Electromagnetic Eggs”

Hacking Online Reviews

For this post, I want to return the word hacking to its nefarious definition. We prefer the kinder definition of a hacker as someone who creates or modifies things to fit some purpose or to improve its function. But a hacker can also be someone who breaks into computer systems or steals phone service or breaks encryption.

There are some “hacker battlefields” that are very visible. Protecting credit card numbers from hackers is a good example. But there are some subtle ones that many people don’t notice. For example, the battle for online reviews. You know, like on Amazon when you rate the soldering iron you bought and leave a note about how it works. That might seem like a strange place for hacking until you stop and think about why people do bad hacking.

Continue reading “Hacking Online Reviews”

Messages From Hell: Human Signal Processing

Despite the title, there’s no religious content in this post. The Hell in question is the German inventor [Rudolph Hell]. Although he had an impressive career, what most people remember him for is the Hellschreiber–a device I often mention when I’m trying to illustrate engineering elegance. What’s a Hellschreiber? And why is it elegant?

The first question is easy to answer: the Hellschreiber is almost like a teletype machine. It sends printed messages over the radio, but it works differently than conventional teletype. That’s where the elegance comes into play. To understand how, though, you need a little background.

Continue reading “Messages From Hell: Human Signal Processing”

Programming with Rust

Do hardware hackers need a new programming language? Your first answer might be no, but hold off a bit until you hear about a new language called Rust before you decide for sure.

We all know real hackers use assembly language to program CPUs directly, right? Well, most of us don’t do as much assembly language as we used to do. Languages like C can generate tight, predictable code and are easier to manage.

Although some people use more abstract languages in some embedded systems, it is no secret that for real-time systems, device driver development, and other similar tasks, you want a language that doesn’t obscure underlying details or generate code that’s difficult to reason about (like, for example, garbage collection). It is possible to use special techniques (like the Real-Time Java Specification) to help languages, but in the general case a lean language is still what most programmers reach for when you have to program bare metal.

Even C++, which is very popular, obscures some details if you use things like virtual functions (a controversial subject) although it is workable. It is attractive to get the benefit of modern programming tools even if it does conceal some of the underlying code more than straight C.

About Rust

That’s where Rust comes in. I could describe what Rust attempts to achieve, but it is probably easier to just quote the first part of the Rust documentation:

Rust is a systems programming language focused on three goals: safety, speed, and concurrency. It maintains these goals without having a garbage collector, making it a useful language for a number of use cases other languages aren’t good at: embedding in other languages, programs with specific space and time requirements, and writing low-level code, like device drivers and operating systems. It improves on current languages targeting this space by having a number of compile-time safety checks that produce no runtime overhead, while eliminating all data races. Rust also aims to achieve ‘zero-cost abstractions’ even though some of these abstractions feel like those of a high-level language. Even then, Rust still allows precise control like a low-level language would.

Continue reading “Programming with Rust”