Sunday, October 12, 2014

James Gosling of Liquid Robotics at CMU

James Gosling, famed software developer who has spent his last several years working at Liquid Robotics, was recently the featured speaker at a CMU Robotics Institute seminar. My purpose here is not to discuss that talk as a whole, but to focus in on particular issues he discussed which are more generally applicable.

At 52:10, he begins the discussion of fault management, describing, among other things, how LR relies heavily upon features of Java that support continuous operation in the face of problems that would cause software to stop abruptly in other environments.

At 54:30, he discusses communication modes and data prioritization, which is an issue for LR because real-time transmission can cost them as much as $1/kilobyte, for a data rate of ~50 baud.

At 57:46, briefly discusses ofsecurity issues, which could have talked about at much greater length.

At 58:43, he mentions Java's write once run anywhere advantage, and how LR makes good use of it in writing and debugging their software.

At 1:05:17, he responds to a comment from the audience regarding inclusion of a basic feature, camera panning, the consequences of various approaches to crafting hardware to support it, and how LR has worked around the problem.

At 1:07:59 he launches into the topic of parts availability, or lack thereof, noting that chips LR would like to acquire are only available as part of circuit boards, or in large lots, which constrains their choices in hardware design.

This last item, the lack of availability of what are, in a volume context, standard parts, is my main motivation for going to the trouble of posting this. It holds back not only the development of robotics, but electronics startups of all sorts, and, to a lesser extent, hobbyists (because in most cases those complete boards are what they need).

Wednesday, October 08, 2014

a Christian parallel for the Islamic State

While casting about for some way of putting the phenomenon of the Islamic State in context, it occurred to me that the history of Christianity provides a rough parallel – the Inquisition.

Sure, the Inquisition was organized more like a court than a military operation, and no one was guaranteed a place in Heaven for participating in it, but the idea of harsh punishment for heresy or apostasy was as much a part of it as it is today a part of the Islamic State.

On huge difference is that the Islamic State is, of necessity, also a civil authority, and that among its ambitions are the elimination of foreign influences from the territories is considers to be its domain, and in that it is more like the war of reconquest (La Reconquista), which achieved ultimate success in 1492 and paved the way for the Inquisition.

Perhaps the Islamic State is like La Reconquista and the Inquisition rolled into one.

Friday, August 01, 2014

serial communication

SparkFun Electronics has an excellent tutorial on serial communication on their website.

Wikipedia also has a fairly extensive article on UARTs, the electronic components found at both ends of most serial connections and responsible for encapsulating the complexities of making them work reliably, presenting simplified interfaces to the processors to which they are connected.

Sunday, July 27, 2014

why interconnect technologies?

As just about anyone who knows me can tell you, I'm into robots. But what I'm into is way beyond anything I could build myself, given current resources.

Once you get beyond a minimal level of robotic complexity, you start seeing advantages to breaking out parts of the computational load, keeping them relatively local to the sensors and effectors they manage. This means distributed processors, which is fine, until you start trying to get them to talk to each other, at which point you'll discover that you've just become a pioneer, exploring poorly-charted territory.

It's not that there hasn't been any groundwork at all done, but there's nothing close to being a single, standard approach to solving this relatively straightforward problem.

Nor is that so surprising, because until recently there hasn't been much need to solve it, since most devices had only a single CPU, or, if more than one, then they were tightly integrated on the same circuit board, connected via address and data buses, and most of the exceptions have been enterprise servers, with multiple processor boards all plugged into a single backplane.

But the time is coming when, for many devices, the only convenient way to connect distributed computing resources together will be via flexible cables, because they will be mounted on surfaces that move, relative to each other, and separated by anywhere from a few centimeters to tens of meters. But they'll still need fast connection, both low latency and high data rates.

From what I've seen so far, RapidIO is the leading contender for this space.

say hello to RapidIO

This is one installment in a new theme here: component interconnect technologies.

Tuesday, June 24, 2014

why a scientific inquisition would fail

People distrust authority, and for good reason.

There are many examples, both historical and contemporary, of authority being abused for the advantage (whether personal or collective) of those in authority and/or belonging to the power base behind the authority, or for reasons relating to unquestioned dogma. This is true across the board, whether that authority is religious, political, economic, or even scientific in nature.

There are also many examples of upstart movements and theories, deserving of being smacked down, in each of these realms. Aside from the background of nonsense noise, this is a problem in that it can be very hard to differentiate between a quack and the next Einstein, and broad suppression of quackery risks 'throwing out the baby with the bathwater'.

But beyond that, suppression feeds people's suspicion regarding authority, which plays into the hands of the quacks.

To me this appears to be an irresolvable quandary, and that the best we can do is to insure that the public is as prepared as realistically possible to evaluate novel ideas for themselves, and to detect the whiff of quackery wherever it might turn up – even when it emanates from the halls of authority.

Friday, June 06, 2014

T-Square, 25 years later

Arguably, considering the ongoing confrontation off the coast of Vietnam, China has come a long way in 25 years, but not yet so far that they can allow this video to be viewed by their own people.

Tuesday, May 27, 2014

ARM, economies of scale, and maintaining options

There is a rumor going around that Apple is (again/still) considering switching to its own ARM-based CPUs in at least its lower-end Macs.

First, consider that platform independence was one of the primary touchstones in the development of OSX, and, from the beginning, Apple maintained parallel PowerPC and Intel builds, for something like five years before finally deciding to take the plunge, driven, in the end, by IBM's unwillingness to continue to invest in energy-efficient consumer versions of its POWER architecture, and Motorola's disinterest in what they viewed as a niche market and heavy investment (eventually leading to heavy losses) in Iridium.

Driven by the need for reasonable performance in a very low energy package, Apple has developed its own line of processors, based on ARM, which they've made and sold by the millions, packaged in iPhones, iPods, iPads, AppleTVs, and perhaps even Airport Extremes. Because it owns the designs, the marginal cost of each additional unit is very low, and it's likely that they can assemble a circuit board bearing four, six, or even eight of their own A-series chips for what a single Intel processor costs them.

That Apple would maintain a parallel build of OSX on ARM is practically a given. Of course they do, and would have been doing so from the moment they had ARM-based chips that were up to the task.

Does the existence of such a parallel build mean that a switch to ARM is imminent? No, but Intel had better watch out that they don't try to maintain profitability by hiking the prices of their processors even higher, because it's very possible that they've already passed the point where Apple could get better performance for less money by using several of their own processors in place of one Intel processor.

And, don't forget that Apple has been through such a transition twice before; it would (will?) be as seamless as possible.

Sunday, May 11, 2014

deeply encoding real-world knowledge and experience

Why code?

That might seem like a strange question for someone like myself to be asking, but it's an important one.

It has become clear to many educators that some facility with data structures, algorithms, and user interfaces has become an important aspect of literacy. While this is a welcome development, it is nevertheless important to ask "to what end?"

Is it necessary, or even desirable, for all of today's K-12 students to grow up to be programmers? Clearly not. Not only are there many other positions which will need to be filled, but, beyond relatively trivial examples, programming is a subtle craft requiring a concurrence of aptitude, attitude, and knowledge to achieve useful results, and most people who are not professional programmers, even if they know enough to put together working code, are, in most instances, better off leaving the coding to the professionals.

Nevertheless, early exposure can tune one's attitude, and improve one's aptitude and one's chances for accumulating the necessary knowledge. At least as importantly, it will also serve to identify those with a particular gift for coding sooner than would otherwise be the case. But there is value in that exposure that has very little to do with preparation for direct involvement in future programming projects, and a great deal to do with learning to think rationally and to communicate with precision.

Those skills are generally applicable, in all manner of vocations, for reasons having nothing to do with computing, but they become particularly important as decisions formerly made and tasks formerly performed by humans become the purview of machines, whether computers or robots.

For each such real-world context into which some degree of automation is to be introduced, it is vital that there be at least one person who is adept or able to interpret for those who are, and possesses the clarity of thought and expression to guide those who are tasked with developing those cybernetic systems. Without such guidance, in the vast majority of cases, automation also means a sacrifice of competence, as even senior engineers are rarely also domain experts, outside of their specialities, which may or may not apply to the project at hand.

By insisting that all students have some exposure to programming, we are improving the chances of such a person being available to guide the next expansion of the domain of automation, and the next, and the next, and thereby improve the chances that the knowledge and skills of contextual experts will be preserved in the process.

Tuesday, May 06, 2014

passengers demand to be paid for riding first class

Internet backbone provider Level 3 reports that six of the internet service providers it connects to have allowed those connections to remain continuously congested, and that these same ISPs are insisting that Level 3 should be paying them for access to their networks.

[Insert sound of loud, annoying buzzer.]

The problem with this is that it's backwards. If anyone should be paying for access to a network, it ought to be the companies with subscriber income paying the backbone providers, not the other way around.

Wake up and smell the stench of irrational overreaching, people!