This may be old news since it has been documented elsewhere for a couple of years now (see the link at the end of this post), but I only discovered this recently. Over the past several years, I have worked with a number of wireless networks, but only recently have I had the very different experience of moving through the world with my own personal wireless device.

Picture me walking through New York City on a beautiful summer day. Having finished a few personal errands, I’m looking to settle down in one of its several parks for a little bit and get some work done on my Macbook Pro. Since most of my work recently involves development of web applications, naturally I get a lot more done if I have an internet connection. I have heard that many of the parks in the city are outfitted with free wireless, so I drop down my Airport list and begin scanning through the several wireless networks my lappy has found. I come across one called ‘Free Public WiFi’. This looks like it could be what I’m after, so I connect, get a very strong signal but no valid IP address; no internet; nothing.

Another day, similar scenario, but another part of the city. And this time, my Airport has already automatically connected to a strong signal. You guessed it, ‘Free Public WiFi’. Again, no kind of internet love coming from this network. But now I’m curious, so when I do find a valid connection, I set out googling about this mysterious network.

Turns out it’s a bug in Windows. It’s a viral wifi epidemic that has swept at least this country, if not by now, the world. On the whole it’s fairly harmless, but the potential for danger is very great, and it’s taught me a lesson that I should have realized earlier.

Here’s what happened:

  • Somewhere, someone created an ad-hoc network, named ‘Free Public WiFi’, either intentionally as a hoax, or for some indiscernible valid purpose.
  • One or more people connected to this ad-hoc network using a Windows laptop, again, either because they were duped into thinking they’d have free internet access, or for some unknown valid reason.
  • (Here’s the fun part): Once a Windows machine has connected to an ad-hoc network, when it disconnects, it now begins to broadcast that same ad-hoc network as an available connection, essentially inviting anyone to join.

And so it spreads. As more and more Windows machines connect to ad-hoc networks named like ‘Free Public WiFi’ thinking they’ll get free internet, more and more Windows machines end up broadcasting that same network. Take into account business travel, and you should see how quickly this thing is able to spread.

The danger here really should be self-evident. It is two-fold:

  1. An attacker could be broadcasting such a network, waiting for someone to connect in order to attempt exploiting their machine.
  2. If you’re running Windows, you yourself may be broadcasting that network, essentially inviting anyone, including potential attackers to connect to you.

My partial solution to this is to not use Windows. :) The rest is a principle learned that I will be careful to apply and which, I think, more people should apply as a best practice: only connect to networks that you are certain about. For example, after this experience, I researched more carefully what public wifi is available in the city, who provides it and their locations. So now I’ll know what I’m looking for.

Even so, it is likely if you have a mobile device that at some point you will open yourself up for attack. So there is sound reason to make sure your system is secure as a rule. Use a local firewall service. Update your system often. Don’t take candy from strangers.

See: http://www.nmrc.org/pub/advise/20060114.txt

It’s been around for a long time, and it’s had its fair share of abuse. If you’re like me, perhaps you can recall when one of the most popular uses of JavaScript was for dynamic looking buttons. Do a little mouse over on the button and the button glows, or changes shape, or some other little effect which really amounted to swapping out an image. It was often being used more obnoxiously than elegantly.

Then came Flash. Everyone loved it. And again, everyone over-abused it. Finally, it became obvious (at least to me…) that people tend to prefer simpler design with occasional purposeful animation. In walks JavaScript (again).

Developers began using JavaScript in much more powerful, interesting, and ultimately elegant ways. One of the biggest ways being accessing and modifying the DOM. By listening to user initiated events (mouse clicks, keyboard entries), a developer can dynamically alter, rearrange, delete or create new document objects, all on the client side. A user can even initiate a server request (via the XMLHttpRequest object) and receive its reply without reloading the entire page.

The power, flexibility and standard implementation of JavaScript make it a powerful tool in building web-based applications. It would be a mistake to ignore it. I’m certainly getting my hands dirty with it (honestly, more by chance than anything else) and I’ve been loving the experience. A book that I’ve really found a great tool in helping me get the most out of the experience is called The Art & Science of JavaScript. I’d recommend it to anyone in the business or habit of building web-based applications.

If you have a Unix or Linux background, scripting should be second nature to you. Even ‘Windows Gurus’ usually do some little bit of automation with custom scripts. The power and flexibility that comes with the command line is hard to ignore, once you’ve tasted it. Still, those who have tasted both a Unix-type shell and the Windows command line will generally agree, Unix has the advantage here.

Although there are ways to do in Windows some of the things possible with Unix tools, it’s quite a bit more cumbersome. By taking advantage of Cygwin, you can bring that power and flexibility to Windows. A simple example of how I have used Cygwin alongside Windows tools involves Active Directory user creation, deletion and modification. The tools provided in Cygwin allow you to do advanced pattern matching and generate a list of users, file paths, etc., and then using the Bash shell, it is simple to create the logic necessary to call the Windows command line tools for modification of Active Directory. With the arsenal of useful tools that become available to Windows by using Cygwin, the possibilities for better automation grow considerably.

The Advanced Bash-Scripting Guide offers a great starting place for increasing your ability to write useful and powerful scripts.

No blog of mine would be complete without a reference of some sort to Linux From Scratch. If you’ve never heard of it before, Linux From Scratch (LFS) is an online community that produces a book containing instructions on how to create your own complete, functioning and customized Linux system by hand. As you follow the instructions in the book, you compile all the software from source code and manually create nearly every configuration file within your system.

Apart from creating a lightweight, reasonably secure, custom system and the pride of knowing that you made it all happen, as you go through the book you also get a good picture of what makes a Linux system tick.

Personally, because of the LFS project, my abilities in shell scripting and the Unix command line increased dramatically. This, in turn, led to my being able to contribute back to the project. I initiated the LFS LiveCD subproject, created and introduced to the community a program called jhalfs that automates the LFS building process (it has since been revised by a few talented individuals), and even helped develop the actual LFS book (a copy with some personal changes lives here). It was a fun ride.

LFS continues to receive good reviews as there appears to be many who enjoy the experience of customizing completely their own personal Linux system. Here’s a recent article that contains a fairly thorough review. The section on LFS begins on page 3.

John F. Kennedy High School is located in the Southwestern part of the Bronx, right on the border of Manhattan. Within the past two years, it has seen tremendous growth in the way it makes use of technology as an education tool. To a very large degree, the man behind that growth is Ali Shama. His vision has been driving many of the wonderful things happening at Kennedy recently.

In 2006, Ali brought me in to help implement and maintain the network services he needed in order to achieve his vision. Together, we installed four Apple labs consisting of around 34 iMacs each and an Xserve to handle default settings for those workstations. We then tied them into our existing Windows domain, allowing students access to the same network files and folders they would have when logging into a Windows workstation. We also set up at least 4 PC labs with 34 stations each and configured several network based applications, such as Rosetta Stone, Plato and Microsoft Student for use in those labs.
The impact this work has had on the school has been tremendous.  Students are learning to create, with very professional tools and in a very professional setting, digital video, audio and print. There more details about this in a great write-up Ali received in the New York Daily News.
What has been done at Kennedy, especially in connection with Apple hardware and services, is an example of what LightCube Solutions is offering.  In fact, I believe the work at Kennedy will serve as a springboard for future LightCube work. Thank you, Ali, for the great privilege I have had in working with you. 
In my first post (Light it up!), I mentioned that LightCube Solutions has an opportunity to pioneer an open source courseware application. Here are a few more details:
In a nutshell, the idea is to create a web application (at the moment it is powered by PHP and MySQL) that allows High School students to study content on their school’s intranet. Teachers will have access to add/create content and publish tests. When the students take the test, their scores are recorded in their profile. Teachers and other administrators can monitor their progress, scores, course history and so on. We want to keep it open source to allow a wider scope of input and collaboration.

Currently, the project is being organized here: http://www.lightcubesolutions.com/ScribbleAppTrac/
And a demo of the current code is here: http://www.lightcubesolutions.com/ScribbleApp/
The name of the project is likely to change, so stay tuned for more info.
JH

If you’re a system admin, charged with deploying workstations, likely you have need of a cloning system. In the Windows world, that system is predominantly Symantec Ghost. Perhaps you’re like me and have noticed how much a pain in the backside Ghost is. Specifically, it can be difficult to set up a bootable image with the right network drivers for your hardware. Also, Ghost is notorious at hanging when one client fails to participate properly in the multicast deployment.

In walks DRBL (Diskless Remote Boot in Linux). Essentially, DRBL allows you to remotely boot an entire Linux OS across the network. The useful possibilities that offers are quite extensive. But the use I’m highlighting here is what DRBL calls “Clonezilla”. Using open source NTFS tools, DRBL in Clonezilla mode allows you to take a snapshot of a partition or entire disk and then multicast that out to many clients. The advantage of doing this in Linux is the modularity of its kernel and support for a wide range of hardware, all in one easily distributable system.

It can take a bit of skill to get DRBL set up correctly, but once you do, the advantages over such a narrow and closed piece of software as Ghost make the effort well worthwhile.


JH

Alright, here it goes! A first post for LightCube Solutions (if you don’t know who we are, take a look at  http://www.lightcubesolutions.com)

We formed the company in November 2007, feeling that there must be a way to work with the technology we love and still be masters of our own time. Since its inception, there have been scores of opportunities presenting themselves on the consulting horizon, one of the more interesting ones being an opportunity to pioneer an open source courseware application (more details on that later).

We’ve created this blog as a means to track the progress and experiences of the consultants here. We hope to regularly provide interesting posts: tracking unique experiences we encounter, links to articles of use to those in our profession and, of course, updates on the open source adventures we pursue.

Let the fun begin…


JH