Re: Global warning – on recess, late to return to class
| Lorin Olsen <cyclingroo@gmail.com> | Mon, Nov 23, 2009 at 9:39 AM | |
| To: <Addresses suppressed> | ||
|
||
Re: Global warning – on recess, late to return to class
| Lorin Olsen <cyclingroo@gmail.com> | Mon, Nov 23, 2009 at 9:39 AM | |
| To: <Addresses suppressed> | ||
|
||
Posted in Politics | Tagged Contract With Americans | Leave a Comment »
A few weeks ago, my brother-in-law asked if I would be interested in developing an iPhone application for him. I won’t explain the app or its details as that would violate the NDA that I am under.
Nevertheless, I thought that this might be fun as I haven’t played with Apple’s development platform since 1995.
Well, Apple hasn’t changed. It appears that their goal is to lock you in a comfortable room and make sure you never leave – even if you can’t afford to stay. In order to build an iPhone app, you need to use Apple tools. That started off simply enough. I tried to put together a Cygwin environment on my Windows 7 system. After a few days, I did have a working environemnt that I could build Unix apps on. But the iPhone SDK isn’t just any old Unix environment. It absolutely needs Mac OS X – and OS X 10.5.3 for good measure.
I don’t have a Mac. So I figured that I could put together a development environment using VirtualBox or VMWare. And if you have enough patience (and can find the right image files) you can run OS X 10.5.2 (through 10.5.5) from within a VMWare host. But to do it legally, you need to buy a license for the OS as well as purchase the iPhone SDK. Before I plunked down any coin of the realm, I had to try it out first. And after a couple of weeks of tinkering, I found that I could indeed build a virtual environment that would run the iPhone SDK.
But performance was labored. And to do it properly, you really need VMWare Workstation (not VMWare Player). So the final cost for putting all of this together would have been a couple of hundred dollars. But you can get a Mac Mini for a few hundred bucks. And with that, you can remote onto a head-less device that is more than adequate for compiling the code. So I would need a few hundred dollars if I went via VM and a few hundred dollars for a fully functioning Apple hardware platform.
But that is just for starters. Add to that the cost of the iPhone (or iPod Touch) and the cost of the service contract. And when you are done, you have access to one platform on one carrier. In my mind, that is both a fully closed and a highly distasteful investment.
As a former Sprint employee, I had always hoped that Sprint would be the team that would bring forth the best and brightest from a cool new platform. I was wrong. Verizon has brought a solid contender into view with the Moto Droid. And they have brought the marketing pizazz that the Android platform really needed. So I started wondering what it would take to bring together a functioning development platform.
After being disheartened by the cost of an iPhone development platform I was thrilled at what I found when constructing the Android development platform. First, I needed the SDK. Low and behold, the SDK could run on any platform that would support C/C++. And the SDK was free.
And the reference platform for the IDE is Eclipse – which is also freely available. Being a former Java developer, I had no problems getting re-acquainted. I downloaded Eclipse and then downloaded the Android Development Tools (ADT). All along the way, these investments required no financial outlays. And the Android platform even included an interpreter so that I could do rudimentary testing – even w/o the hardware.
So here is the bottom-line. The iPhone costs some serious scratch in order to have the privilege of being locked onto a single hardware provider and a single carrier. On the other hand, Android’s barriers to entry are negligible. I put together a functioning testbed in a couple of hours – including the download time. And once done, I have a platform where I can build apps for any carrier and any number of hardware providers.
Indeed, this reminds me of the Apple-Microsoft PC wars of the nineties. Will Apple ever learn from their mistakes? And will developers choose to be on yet another vendor-dictated leash?
-Roo
Posted in Technology, Wireless, mobile phone | Tagged Android, Droid, Eclipse, IDE | Leave a Comment »
Take a look at the picture above. What do you see? Here’s a quick summary:
So what is Chrome? Is it a desktop? Nope. Is it just a browser? Nope. It IS a down-payment on Google’s gambit to move people from desktop apps to cloud/network services. And it is a completely open framework for new innovation.
Will it win? Well, it won’t displace Windows on new system sales – at least, not yet. Will it be the platform for netbooks? Maybe. But they may be fighting against Android for that honor.
But unlike other desktop contenders, this offering is not designed for a head-to-head fight with Windows. Unlike Safari and Mac OS X, this platform is not seeking to be another desktop in the fight. Rather, it seeks to move the battlefield to an entirely new venue. This is the same fight that Sun started with the NC (i.e., the “Network Computer”). But Sun had no traction in the consumer marketplace. And they saw meager penetration in the enterprise space.
But Chrome OS is the inheritor of a unique phenomenon; some of the best technologies are a redux of something that was already in existence. MP3 players existed for quite some time before the iPod arrived. The Apple iPod won because it captured the consumer imagination. In the same way, Chrome OS is a redux of things we’ve seen before. Can Google transform a moribund market for network computing? I sure hope that they will. But they will need a spark for that to happen. In the mobile phone industry, I think that the Verizon Droid may be the spark needed for Android’s explosion into the market.
In a very strange way, Chrome OS’ real competitors maybe the netbooks and wireless platforms like Android.
-Roo
Posted in Chrome OS, Technology, Windows 7, Wireless | Tagged Chrome OS, Google | Leave a Comment »
I love the classics. And this week has been replete with allusions to the past. As everyone knows, I’ve fiddled with Google technology for a very long time. Indeed, I remember when the first posts about Google hit Slashdot. That was when Yahoo! had the pre-eminent navigation technology. And web navigation was menu-based, not search based. But I prattle on… as usual. I also remember when I was given an opportunity to invest in the Google IPO. [And hindsight confirms that I can be extraordinarily short-sighted.] And with all of this Google background / engagement, it’s taken me a whole lot of time to come to the conclusion that Google has a very expansive strategy – or they are exquisitely fortunate.
So what leads me to think they have a strategy? Here’s the short list:
Is Chrome OS going to dethrone Microsoft Windows? Not any time soon. Is Chrome OS going to take market share from Apple’s Mac OS X? Again, I wouldn’t expect that to happen any time soon. But could it attack both by changing the battlefield? It absolutely could.
But what will it take for Google to accelerate these changes? Wow, that is a huge question. I think that they need the following:
So am I like the early astrologers? Am I trying to see patterns and visions in the visible stars? Do I see Ursa Major and not realize how far apart these stars are from one another? That’s certainly possible. I may be seeing non-existent patters. But from my perspective, I really do see an emerging Google leviathan.
Just as we moved from the IBM mainframe vision to the Microsoft PC vision, are we finally seeing the market leader emerge on the long-anticipated move from the Microsoft PC vision to the Google service vision?
-Roo
Posted in Chrome OS, Native Client, Technology, mobile phone | Leave a Comment »
Posted in Politics | 10 Comments »

Extensions Are Here!
Along with the Native Client support that came in 4.0.220.1, little attention was paid to another addition in the dev branch: extensions are here (or soon will be).
The initial support is good – but it needs some polish. The existence of sites like Chrome Extensions will surely help. And the good news is that some must-have Firefox extensions are now available in Chrome – including AdBlock+. I can’t wait for NoScript and FoxyProxy (or would it be ChromoProxy?) to arrive.
In the meantime, I really do like having things like Bubble Translate. I can highlight text I want to translate and simply click a button. Bam! I see the comments I need to understand. I couldn’t compare this to other extension-based translators. But it is really handy to have this – especially as there is a growing international support community for Chrome.
-Roo

Bubble Translate Extension
Posted in Technology | Tagged Google Chrome | Leave a Comment »

Mandelbrot NaCl in Chrome
It’s been a while since I’ve taken the time to actually post anything substantial on this site. I have been swamped at work. And I have focused more of my personal time on family matters and on micro-blogging. And today was going to be no exception to that rule.
I got up first thing this morning. My intentions were to spend time on yard work and to enjoy time away from the computer. After two months of heads-down work, I wanted the break.
But I decided that I would spend a few minutes on Google Reader. That was my first mistake. It didn’t take long for me to notice lots of kerfuffle about Google Chrome and built-in support for Native Client. I remembered the Native Client buzz from Google I/O but I hadn’t really dug into the subject. That changed this morning.
Native Client was a Google Code initiative that has developed into something far more transformative. Stated simply, Native Client is a way that web applications can access/run native instructions on an x86 system.
That’s nothing new, per se. Indeed, the idea of interpreting code to make it portable has been around for a long time. When I built my first computer (a Heathkit H89 system), I decided to run UCSD’s Pascal p-system as an OS. For those too young to know what I’m talking about, this was a PC operating system that ran completely on interpreted pseudo-code (i.e., interpreted byte-code). Since then, the more obvious examples of this are Java and .Net applications.
And Google is now building their own instance of portable code. I think this is all preparatory for Chrome OS and the cloud-based services that they are soon to unleash upon the computing world. But that is a subject for a different post. Today’s post is about getting started in Native Client.
So after sharing a few articles in Google Reader and tweeting a little bit about it, I decided to launch down the path of understanding it by installing the new platform. But that was easier said than done. Now that I am done, it doesn’t seem all that hard. But it took me quite a few fits and starts.
Before launching into the list of tasks, let me note that I did all of this work on my Windows 7 system. So I spent a lot of time figuring out which issues were part of the Native Client experience and which were part of the Windows 7 experience. But I’ve been through the tunnel and it isn’t nearly as hard as it seemed while stumbling in the dark.
Here’s what I did: [I'll update this post with links after I finish my dinner.]
Now that I can sit down and think about what I’ve done, I realize that this is still a developer preview. But the only reason that it is in such a state is because no one has packaged everything up properly. The code works. And it has immense promise. It just needs someone to put a pretty wrapper around it.
And that person won’t be me – at least, not tonight.
-Roo
*Update: The solution to the Chrome issue was simple. I mispelled the execution parm. Once corrected, Native Client goodness is available within my Chrome browser. w00t!
**Update: Curious…Native Client works with an invalid parameter (–enable-nacl) but doesn’t work with the valid one (–internal-nacl). And it also works w/o any parameter. I wonder if Chrome is using the NPAPI plugin.
Posted in Native Client, Technology | Tagged Google Chrome, Native Client | Leave a Comment »

More Paranoia
First, I need to apologize to many of my faithful readers. I think I’ve finally succumbed to the Twitter disease. As many of you know, I’ve been using Twitter for over two years. Indeed, I’m one of those technology saps that picked it up, set it down, and picked it up again.
And I really love Twitter. You can connect with others at the same time that you post your thoughts on any subject. And for me, it has the added value that you only have to edit a 140 character posting.
I state all of this for one reason: I must apologize to my readers as I have forsaken the “long form” for the micro-blog. It has been almost a month since my last post to this blog. And that is thoughtless of me. If I want you to continue to read the things that I write, I must continue to write them. In the meantime, I’m trying to work out an adequate penance. Please leave me a comment with your ideas on how I can attone for the sin of neglecting my readers.
Now, on to the meat of today’s missive…
Last month, I started a security voyage. Much of the reason for being so concerned about security is that Noah has challenged me. He didn’t even realize that he had challenged me. But those pesky Starbucks conversations have a way of provoking an immune response reflex. He would tell me about going to Defcon and how thrilled he was to meet with his friends in the hacker community. His joy at being able to “crack” technology barriers perked my concerns. So it was time to convert concern into action.
Last month, I knew I needed to address some chronic architectural flaws. Think of last month as stiffening and strengthening the girders. I put a VLAN in place to isolate the most insecure aspects of my infrastructure from the most valuable jewels in the collection. I turned off all but the most necessary of protocols. I began utilizing a lot of tunneling. This allowed me to lessen the surface area of my risk. But it just put all of my “risk” into one basket. In effect, I had one basket of very dense risk.
As I type these words, I think of the last scene in Terry Gilliam’s “Time Bandits” movie. In the last scene, the totality of evil t be found in the movie is condensed down to a single charred briquette of absolute evil. That’s what I unintentionally had created last month.
As of yesterday, I started to address some of that evil by working on the doors and the locks that protect my house. I’ll start by noting that I do have a few web servers that are relatively open. These are the webcams I referred to last month. They are older and inherently less secure. But they are now “isolated” and provide rather limited value to an intruder – unless you want to watch me typing on the computer or loading my new panniers.
But I’m wandering off topic…
Yesterday morning, my biggest “door” was the cable modem connection and the wireless router that I use at home. I’ve been pretty good about securing the wireless. And last month, I closed a whole bunch of windows on the facade (i.e., open ports for unneeded services). But the locks on my front door weren’t very solid. Yes, I use a custom firmware build. And yes, I use ssh for the majority of my access needs. But it wasn’t a strong enough lock. So I set to work on replacing the locks on the front door.
I finally noticed an inconspicuous link on the main WinSSHd server management page. It pointed me to the server management log folders. Well, I had been through the session management logs. But I figured I’d give this a try. In a few moments, I was treated with a rich feast of information. And I casually noted that the key exchange was failing because the client was offering a 2048-bit key while the server was expecting a 1024-bit key.
It dawned on me that I had trouble copying the public keys to this machine many hours earlier. Earlier in the day, I couldn’t find my USB key. So I had used one of the Sandisk Cruzer drives my wife had squirreled away. And amidst all of the trouble associated with the U3 drivers for the USB device, I had probably copied the wrong version of the key that I had generated many hours earlier.
The solution was simple: I took the right key and loaded it onto my laptop. Once corrected, the ssh tunnel sprang into life. Here’s a reminder. When doing a multi-step project, write down what you do and when you do it. It may prove helpful at a later point in time.
So after ten hours of security tinkering, I had installed stronger and more tamper-resistant locks onto the one door I have onto the Internet. I am effectively tunneling all of the valuable protocls through ssh. So I’m feeling a lot better.
But after doing all of this, am I any safer?
That’s such a tough question to answer. I am smarter than I was a few hours ago. I know a lot more about PKI. And I know that having 2048-bit asymmetric keys is better than a weaker alternative. And I know that even longer keys may not be worth the effort. And I remember that if you want to stop casual hacking, you only have to have a stronger door than your neighbor.
But am I safer?
All the windows are shut. And I’ve got better locks on the door. But if someone wants to get in, there is precious little that I can do to stop them. So we need to remind ourselves that multiple layers may be the best defense. Even though the door is locked, put your valuables in a secure place. Some of my most sensitive data is not stored on my online systems. Indeed, that data may be in the form of offline media that I have in my desk or in a filing cabinet. But such distribution of data is not the only defense. Make sure that your computers are secured with strong passwords.
And try not to leave the keys near the locks. Some folks write down their passwords and leave them on a sticky note – just like the idiot office clerk in “Wargames.” If you must have a repository for passwords, use a secure password manager tool.
And always remember that security is a perpetual process of improving what you already have in place.
-Roo
Posted in Technology, security | Tagged privacy, security, SSH, Technology | Leave a Comment »
How many times have you heard the phrase “batten down the hatches?” But do you know what it means? Well, it’s a nautical term referring to sealing ship hatches with strips of wood and caulk. This is done to prevent water from penetrating the hatches of the ship.
Well, I’ve been battening down the computing hatches here at Chez Roo. As most of you know, I’m focused on security – but not obsessed by it. I have a wireless network that is fairly well protected with WPA2/AES encryption, strong passkeys and strong credentials/passwords on all of the systems in the network. I use MAC filtering. And I try not to broadcast my SSID.
But nothing is totally secure. And every measure or counter-measure should be periodically reviewed. So when I added both a Wii and a new LCD TV to the wireless network, I figured that it was time to start doing a network review as sone of the new devices requred that I enable SSID broadcasting on my main access point.
At the same time, I had finally gotten around to addressing some remote access problems. Specifically, I had finally been able to successfully configure my Windows 7 test system to allow remote mamangement via either VNC or Windows Remote Desktop. Up until this week, I had tried to open all of the various ports needed for both products. But I really hate having lots of ports open to the Internet. So I reconfigured everything to tunnel through SSH. BTW, I’m using WinSSH in a non-commercial role – and it is working fantastically well.
Of course, nothing is nearly as simple as it would at first appear. I do use DynDNS to manage/publish the dynamic address that my cable provider doles out to me. So I installed update to my DynDNS “updater” tool. I also switched over to OpenDNS in order to improve performance and in order to get some rudimentary namespace management tools.
So once I changed three or four things at the same time, things stopped working – of course. It turns out that as I cleaned up the router to eliminate the now unnecessary port forwarding, I could no longer connect to the UltraVNC server on my main system. It was a simple problem. I had used the FQDN name (in DynDNS) in the tunnel definitions I had put into PuTTY. So once I established a tunnel, it would try and connect to the external name (i.e., the router) on the real VNC and RDP ports. Of course, this wouldn’t work once I removed the port forwarding rules. How did I correct it? I decided to use the blunt force trauma approach: I updated my hosts file to point the external DynDNS name to localhost. Once done, things started working again.
And now was the time to call a friend and ask for a favor. While I trust my skills, I always want a set of unbiased eyes. So I called @ax0n and had him do a Nessus scan on my network. So what did he find? First, he found my wireless IP cameras. [Note: We put these in so that we could monitor the house while we were away.] And he also saw the other ports that I expected.
But when he saw the cameras, I decided that these were the weakest link in my security chain. You see, I run two different wireless networks. One supports the main systems in the house while the other supports the wireless cameras that we installed. The camera network is not nearly as secure as the main wireless router. That’s because the camera network is over five years old. And when it was first designed, WEP-128 was still the standard encryption model. But I didn’t want my whole household to be limited to WEP-128. So I set up an access point just for the cameras. That network uses WEP. I ran a separate network cable from the router to the camera AP so I could physically separate the traffic.
But I never took the next logical step. This weekend, I took that step. I set up a series of virtual LAN’s in the house. And the cameras are now on their own VLAN. Of course, this meant that I needed to reconfigure all of the cameras to provide them with new IP addresses. And that took quite a while as I had to directly attach them to my laptop in order to reconfigure them. It’s a simple process, but it does take time.
Then I had to set up the VLAN’s on the router. The good news is that I use DD-WRT. So VLAN setup is relatively easy. But in addition to adding the VLAN, I had to set up new autostart options in order to relate the VLAN to a specific physical port on the router. Finally, I had to update the builtin firewall to ensure that the VLAN for the cameras couldn’t access the other systems behind the router. Yeah, this was the whole reason to reconfigure everything; I didn’t want someone to be able to connect to the camera network and then launch an assault against the more secured portions of my network.
So the annual security review is drawing o a close. Yes, I expect that I may see a few more minor changes. But the major re-designs and major changes are done. And I sure am glad for that. I sure hope that the next minor project is as fun as this one has been!
-Roo
Posted in Technology, security | Tagged security, SSH, VLAN | 1 Comment »
Over the past three weeks, I’ve been playing the Spymaster game. I am sure that everyone has heard of it. Tweets about this game (and 160Mafia) clutter many people’s twitter streams – including mine.
If you want a review of the game, there are plenty of other places to go. As for me, I feel compelled to talk about the more personal aspects of the game. At its most harmless, it is an inexorable time sink. At its worst, it is an ego-fulfilling waste of time.
So after three weeks, I’ve determined a few things. First, I really seem to get absorbed (and borderline obsessed) with being ahead of other people. On Twitter and Friendfeed, this is manifested by my desire to have more followers. Why do I need more followers? I want to fool myself into thinking that more followers ensures a richer collaborative experience. And I might be convinced into believing that I have something “important” to share with others. But that is poppycock; I want to have “more” than you have. Period. This is an admitted character flaw on my part.
Second, it is so incredibly easy to set aside personal ethics in the name of gameplay. No, I’m not doing anything wrong – in the “real” world. But I am pretending to do many things that would otherwise violate many of the Ten Commandments. I am coercing mobsters, stealing weapons and secrets, and even “murdering” ambassadors and heads of state. And once I reached level 30 (the final level), I started to “assassinate” other game players. [Note: This is all done in a virtual world. I hope my mere mention of these virtual acts hasn't tripped some FBI filter within my ISP and its network.] These are not things I would ever do in real life. But I have had no qualms about doing them in the name of gameplay.
Third, I have allowed gameplay to affect my online personae. In order to excel in the Spymaster game, you need to convert your Twitter followers into spies. At first, I really resisted this temptation. But I did send out a few targeted invitations. Then I heard about some of the spy rings that were emerging on the net. By joining one of these rings, I got a 50% increase in followers. I truly appreciate the new followers. But I am sure that they are not in it for the erudite and insightful commentaries that I provide. Rather, we follow one another to boost stats in the game. Bottom line: I have indirectly used my Twitter followers to augment my status in a game.
Truly, this is no different than the situation that many other people find themselves in. I’ve even seen Louis Gray (or someone with his name) out on Spymaster. But in my case, I have a new Twitter follower base to care for and to feed. Before Spymaster, I had a discrete set of unique follower groups. These were based upon mutually interesting topics. Specifically, I had a group for each of the following:
And now I have to add in the category of “Spymaster enthusiasts.” Do I mind the new group? Not at all. Indeed, I like to have connections with new friends. And I love to hear the interests of other people. Of course, this does take time away from other things. And for the past three weeks, it has taken time away from personal freedom!
But after looking in the mirror, the reality is clear. I have played the game in order to fulfill my need to have followers and to be more important. But beneath this charade is the real need: I want to be loved and needed. The quest for followers is a veiled quest to be valuable and “wanted” by others. At its root, is a misplaced desire to augment myself and my stature. In true clarity of thought, it is a violation of God’s command in Exodus 20:3 – you will have no other gods besides the one true God. And I have been placing myself in the center of my own “godhood.” No, Spymaster isn’t a god. But I have willingly placed myself and my ego fulfillment into the center of my own solar system.
Yeah, this sounds like a stretch. But it is not. Have I been spending my time for my glory or for God’s glory? Have I been seeking God’s direction, or the admiration of others? Or have I tried to reassure myself that I am bright and competent – i.e., “better” than others?
To truly understand my absorption into this game, I must conclude that I have misplaced my focus. God will forgive my indulgence in this vanity. And I’m sure that I am learning more about myself than I had intended – even before I started to write this posting.
Now the question is simple: will I forgo further gameplay and personal ego augmentation?
-Roo
Posted in Spymaster | Leave a Comment »