Ada Lovelace Day

Ada Lovelace Day: celebrating women in robotics – Automaton: IEEE Spectrum’s blog on robots and robotics technology.

Visit the link – it is interesting to see not only the robotics companies started by women but also the various kinds of robotic solutions they are developing.

A really long time ago in another dimension I created a simple programming language based on the Ada language (named after Ada Lovelace) and called it Augusta. That was her actual first name. Augusta was a hobbyist project of mine – for which I got rather carried away.

The first version of the compiler was written in a version of Basic that ran on CP/M, an early operating system. A subsequent version of the compiler was implemented in Augusta itself.

The compiler’s output was p-code for a p-machine that I invented. The goal of the p-machine architecture was easy of implementation and extremely compact p-codes, thus, very small compiled programs. I spent a lot of time optimizing the p-codes – and ultimately produced very small programs. Small programs were important back in the day of 64k total RAM, of which part of that was used by the CP/M OS and a whopping 4k was shared with the video display.

The pseudo-machine (p-machine) was written in Z80 assembly language. Actually, it was not as hard as that sounds – I created a set of pseudo-16 bit machine instructions for what I called the m-machine. These were implemented as macros. I was then able to code the p-machine instruction set entirely using the fairly powerful macro instructions of the m-machine.

I had intended to eventually create a portable high level language implementation of the p-machine – in something like Pascal – which was a very popular programming language of that era. But that didn’t happened as I switched jobs and got too busy at a start up.

I amazed to see that the Augusta language was mentioned as late as 1994. You can even download some of the original source code.  Someone else developed the Pascal coded files in that release.

A robotic blimp

As seen at: Surveyor Robotics Journal.

This is a small blimp that you can fly indoors – includes 802.11bg wireless link and camera.

100 Hours of Astronomy – Live on Apr 3d and 4th

Senate Legislation Would Federalize Cybersecurity

The Rockefeller-Snowe measure would create the Office of the National Cybersecurity Adviser, whose leader would report directly to the president and would coordinate defense efforts across government agencies. It would require the National Institute of Standards and Technology to establish “measurable and auditable cybersecurity standards” that would apply to private companies as well as the government. It also would require licensing and certification of cybersecurity professionals.

via Senate Legislation Would Federalize Cybersecurity.

Apparently all computer security people would need to be licensed. Not sure what that actually means in practice – does it mean that firms will be required to hire a licensed specialist but that other people can work under that person’s direction?

Jury Duty

I start on jury duty Monday. Posting may be light.

I hear they do not like detail oriented, analytical thinkers on most juries. That may tend to rule out computer engineers with MBAs, which would be me. So I could end up on the reject pile.

Elsewhere, I am in process of starting up the Spokane Robotics Society.  I am copying some of the content from this web site over there in order to have some initial web content on the new web site.

Spokane Robotics Society

I have just set up a new web site: http://spokanerobotics.org

for the new Spokane Robotics Society group that I am founding. Our first meeting will be May 16th.

In the Spokane area, the tech sector basically died since 2000, going from an estimated 15,000+ tech jobs at tech companies to probably less than 1,000 today. Agilent alone has gone from 1,200 to 70 in their local office. Itronix is shutting down here and laying off almost all of their 380 employees.

We’ve got to get something jump started again – and much of robotics is still remarkably in its infancy.

The availability today of low priced components also means that we are about to enter a world of automated systems that we can not yet imagine. The iRobot vacuum cleaner is just an early version of the types of applications we are likely to see.

But identifying, funding, designing, building and estabilishing new businesses takes networking. And networking can be difficult in areas lacking a strong tech economy. I hope to solve that problem by bringing together a diverse set of interested parties!

Who knows what we can accomplish together!

Our first meeting will be held in conjunction with a public robotics exposition put on by area high school FIRST Robotics teams and I believe also some middle school Lego League robotics teams.

Robots in the vineyard

robots.net – Robot, go Work Today in My Vinyard.

This makes a lot of sense, too.  Over the past decade, I was becoming somewhat bored with software as so much of it had degenerated into creating “rich interactive multimedia experiences” rather than solving real problems.

With the down turn in the economy, there is now a renewed interested in development and deployment of technology that improves productivity or reduces costs. Yay!

Agriculture is an area that, while using a number of tech tools, seems relatively untapped for the application of a number of potential tech solutions. When the goings were good in tech, agriculture was not seen as an area in which to invest new product development.

High tech has potentially a lot to offer in terms of new tools for planting, monitoring and harvesting, for the control of green house operations, for improving energy efficiency and much more1

Will robots replace farmers?

In CSAIL’s indoor tomato garden, robots have supplanted humans. Could this be the future of agriculture?

via Gardening the CSAIL way – MIT News Office.

Uh, probably not exactly that way …

Stimulate robots, not bridges

In education – just as much a part of our infrastructure as bridges and roads – here is a small investment that is one of my favorites: Provide funding for robotics teams at every school. If you ever want to see intellectual competition in the arena that matters today’s technological wizardry-visit the robotics competitions that now exist in some schools. Make these competitions as universal as football. Make it cool to design the next cutting-edge video game or iPod.

via The Obama stimulus package should be spent on transformative investments, not bridges and roads. – By Eliot Spitzer – Slate Magazine .

C#

(This is a bit off topic as its not about embedded systems programming or the tools commonly used for embedded systems – but hopefully you’ll find this discussion of C# (and some comments on PHP) to be useful.

I am late to the game of C# programming.

I have been a C/C++ programmer – and those are still the predominant languages for embedded systems applications.

But if you peruse job listings, you’ll quickly see a far bigger demand, in all software categories, for C# programmers, and also for Java programmers. The demand for C programmers is nearly nil, and C++ demand is only a fraction of the demand for C#. Embedded systems is just about the only category of programming that still uses the C programming language.

Fortunately, if you’ve programmed in C++, you’ll find C# easy to pick up. It is, in many ways, C++ with numerous improvements. Its syntax is similar – although just subtly enough different to drive us C++ programmers slightly batty. (Update: Seriously batty!  I find myself writing C++ code that is close, but not workable in C# as I make this switch. That said, I really do like C#.)

An excellent book for learning C# is Illustrated C# 2008 by Daniel Solis. This book is perfect if you already have programming experience, especially in C++ but also Java – and are familiar with object oriented programming. I’ve been literally whizzing through this text. The author has uniquely added diagrams and drawings to illustrate each language feature, making it simple and easy for experienced programmers to quickly come up to speed.

The book also convers LINQ – the Language Integrated Query for database interfacing.  I have only quickly perused this section so far … but LINQ is designed so that C# (and also VB) can compete with PHP and MySQL for databased-backed web site applications. LINQ’s interface is not quite SQL – its similar – enough – so that SQL users can figure it out – but it is not identical to SQL, merely similar. But it is also designed to overcome some limitations of interfacing SQL to programming languages.

A good companion to Illustrated C# is Windows Forms Programming in C# by Chris Sells. Windows Forms provide the interface for creating Windows applications and web-based applications.  I’ll have comments about that book at some point off in the future.

Correction: Illustrated C# 2008 is an excellent book. Windows Forms Programming in C# is a nearly useless book. Once I got in to the book, I quickly discovered that it was written in 2003 and is hopelessly out of date. Neither Amazon nor the publisher should continue to sell it as it is now – it either needs to be off the market or revised. There is, unfortunately, no version # reference to Visual Studio (its about Visual Studio 2003 and .NET 1.0 – which, respectively, are up to 2008 and 3.5 versions). It is not obvious from the Amazon page that this book is so irrelevent to 2009. I’ve since ordered different books for learning Windows Forms programming.

(I recently finished going through PHP and MySQL Web Development. Again, if you’ve been exposed to any modern programming language, PHP scripting is easy to learn. Actually a lot of fun! PHP is pretty much designed to interface to MySQL databases and is very easy to use. If  you have not previously studied the Structured Query Language (SQL), you’ll want to turn to a good SQL or MySQL book in addition to the PHP and MySQL Web Development.)

(Sorry for the light posting – I’ve been very busy working on other tasks and subjects. And soon I go to jury duty so everything is sort of in waiting mode.)