Open Source: Interested in robotics?

July 19th, 2008

I was looking for a useful tool for teaching students, and myself the basics of robotics. I, like most people, am interested in robotics but don’t have the time or budget to spend $500+ on a kit from a hobby store, and then to justify that cost by having it sit in my garage.

After a little research online I found an free open source tool that works on both Windows systems and my native Linux box. Guido van Robot is a free simulation program that teaches the basics of sound programming logic to a first time programmer. Users will pick up useful programming concepts like correct syntax, loop structure or iteration, conditional statements, and naming conventions. I particularly liked the 18 sensor tests that the robot can perform allowing users to program their robot to interact with a changing virtual landscape. They even include 18 predefined tutorials, I mean how can you beat that for the price?

The robot is rendered as a black triangle with a Blue G inside of it. The world is an X, Y plotting system in the first quadrant, meaning 0, 0 is in the bottom left hand corner although it actually starts at 1, 1. Walls are represented by red lines between points on the grid. Users can write or load world programs and write or load robot instructions. I like this because it allows the user to write a set of instructions an then test them in unique environments.

Guido van Robot is not meant to be an end all way to teach all aspects of the programming or robotics fields. Some limitations include no variable calls or storage of information, no passing of variables to subroutines (this would effectively eliminate any object oriented training). Also the program executes from a top down structure and the robot executes all defined commands whether they are called or not, this is almost like a self check before performing duties, but could cause problems if he doesn’t have a large starting area.

My experience level in programming is strong administrative server scripting in both Linux and Windows. I have also written scripting programs in Perl that do everything from updating Cisco IOS on hundreds of machines to defeating CAPTCHA schemes on websites (don’t worry I never applied that to any live sites). As a free tool this is great for the beginning or inexperienced programmer. Experienced programmers may want to peruse this for a few minutes as I did and then move on to some more complex simulations like Stage or Gazebo which can be downloaded free at www.sourceforge.net. Unfortunately these last two work on only linux based devices.

Security Overview

July 1st, 2008

When we talk about security from an I.T. standpoint we are really referring to three distinct aspects. These allow us to look at the very complex problem in a modular, or broken down and simplified manner. The three aspects of Security are:

Data Confidentiality- When we talk about confidentiality we’re talking about who’s eyes are able to view the data or who’s systems are able to copy it. This is a huge issue as confidentiality issues in data security don’t always manifest themselves as problems. Take for example, a few months back a couple of government employees were fired for viewing the records of Hilary and Obama. The system alerted the proper authorities when the files were accessed, but for every 1 system correctly configured like this there are 10,000 that are not. Confidientiality of data from a personal standpoint protects people from identity theft, but from a business standpoint it is the risk of losing competitive advantage, something many companies cannot afford to do.

Data Integrity - Data integrity is referring to the data being in the same condition as you left it. Essentially this is the ability to protect your data from being tampered with either intentionally or unintentionally. It seems to me when I first started to get into computers in the late 80’s that hackers and viruses were still content to wipe your system out and frustrate you to no end. Now, however they have moved more toward destroying the confidentiality of the data and leaving it intact, but that does not mean this aspect is to be overlooked. Integrity of data is checked through md5 checksums to ensure data is not alteredĀ  en route to or from storage, or during transfers.

Data Availability - Availability of data refers to the data being available to you when you want to access it. I like to tell people I can guarantee them 100% that I can keep any system in the world from ever getting a virus, the only caveat is that I get to put it down in a basement, in a safe, with no internet connection. This is a silly example, but for the purpose of showing that availability of data requires us to venture out into that deep dark world of the internet. There are a lot of security measures that can be put into place to ensure that the systems containing the data and the systems transmitting the data are kept secure. Regular patch management should be monitored on server equipment, Yes, Linux AND Windows boxes. Security audits using port scanning are a great way to ensure that the devices making your service available (yeah we call em servers, and you thought us techs just made that up) remain that way.

I hope this brief overview of how security professionals view the dangers of networking helps you as a business manager or even in your personal life shift your view and take security a little more seriously. Let me leave you with a quote.

Richard Clarke, the special adviser to the president on cyber security once told a group of security experts at the 2002 RSA convention, “If you spend more on coffee than on IT security, then you will be hacked, What’s more, you deserve to be hacked.”

Open Source: Useful Tools

June 26th, 2008

Since this is my first post to the S2S Technology Blog. I thought I’d do a short write up on some of the open source tools I use in my every day and business life. Note, open source does not always mean “free”, and indeed in many cases the hours involved learning a system, troubleshooting, or generally “hacking” it until it works are cost enough to drive most people away.


PHPCollab - Open source system you can set up on your website. This is officially stated on their website as “phpCollab is an open source internet-enabled system for use in projects that require collaboration over the internet.”

Estimated setup time: 10+ hours, but worth every one of them if you do project management.

After graduating with my M.B.A. with an emphasis in project management I can honestly say this is the best tool for project management I’ve seen for the price (free). We use it at S2S to track and disseminate project phases to our clients, it automatically notifies project team members of tasks, prepares gantt charts and notifies project manager of missed deadlines . It also has a useful document features to ensure clients or project team members are never without those important documents.

I feel this is very useful in extending our service offering to potential clients. When we show them that we have a plan, a timetable for execution and regular project updates they see we are not their average technology company.


Ubuntu - I’ve been using Linux at home in my machines for 5 years now. Well, to be completely truthful I still do my online gaming on Windows machines. But the fact remains that I have tar, make, and compiled more programs from source and read more “read me” files than I care to think about. All the die hard Linux enthusiasts out there would think this is a cop out, but I really do like the fact that there is a Linux based operating system that works completely out of the box. The add/remove software feature keeps your system up to date and they even guarantee right on the website that you will receive support until the year 2011.

Estimated setup time: 30 minutes


Wine - For those of you thinking of trying Ubuntu Linux, but you’re afraid of not being able to use many of your older windows programs. Wine stands for Wine is not an emulator, and yet it’s the best emulator I’ve ever seen for any system, hands down. It functions as a compatibility layer for running Windows programs. In laymans terms that means that you can run many Windows programs on your Ubuntu Linux Box. The knowledge base is very useful in getting just about any type of problem worked out. This is very plug and play and can actually be installed from the add/remove software tab as soon as you get your Ubuntu system set up.

Estimated Setup time: 15 minutes, more depending on how many programs you install


Mambo - Simply put, I couldn’t do without this. Mambo is a CMS or content management system that allows you to set up your web page much like a newspaper. You can add, move or rotate content in a standard format that gives you a lot of modularity and a quick learning curve.

Estimate setup time: 10+ hours to get your first website set up. Any others you do are much quicker.


Perl - Perl stands for Practical Extraction and Reporting Language. This is probably one of the fastest and easiest languages to learn if you don’t plan on getting a degree in CIS. And, if you just happen to be too lazy to learn yourself. There are literally thousands of scripts people have already written posted for you free online. You want to backup your system everynight to a remote host and want it to greet you in the morning with every little detail of what happened? Someone has already written it… If people show any interest I can do a little blogging on some useful scripts that I have written. Oh, and if you’re doing research online and you see people saying Perl is a dead language, that’s simply untrue. It still works, it is still being used and updated and like I always say, “if it’s not broken, don’t fix it.”

Estimated setup: 10 minutes to get it installed… After that it’s a way of life