Archive for the 'Technology' Category

Making Social Media Roles Model Real Life

Facebook released new content sharing/filtering rules today and it got me to wondering why these social network sites make such a fundamental thing as modeling roles and relationships so difficult.

It seems in real life you have a version of (or role for) yourself that you expose to these general groups:

  • You
  • Family
  • Close friends (usually less than 10)
  • Coworkers
  • Schoolmates
  • Acquaintances (usually less than 100)
  • Special Interest/Group/Club/Hobby Members
  • General Public

So I have always been baffled why social content sites don’t use a similar model and let you simply check off which of these groups/roles you wish to publish/expose your content to. 

The Ben Franklin adage that you should “not do anything you don’t want to read about in tomorrow’s paper” is particularly apt in the social media world.  Especially given the number of stories about folks who were fired because coworkers or others saw inappropriate content intended only for close friends (advice on avoiding this here).  So for me personally, I have little interest in most social media until they can get the roles and relationships aspect right. 

To me, Flickr always seemed like the best/easiest site for doing this, but is nonetheless still somewhat restrictive because it only provides 4 role categories: private (you), friend, family, public (I think if they added a coworker category it would be a fairly complete and simple to use model).

Can I be Your Friend?

Can I be Your Friend?

One of the problems with translating this simple model into the social-media world is that 2 people don’t always have the same view of a relationship.  Unlike your own private consciousness where you can define someone’s role and meaning to you without them knowing, in the social media world, people often know the role that you have assigned them.  You might be afraid that calling someone an “Acquaintance” rather than a “Friend” might hurt their feelings.  Or over time as relationships change, a “Friend” might become an “Acquaintance” and then eventually someone you hardly know at all.  “Demoting” this people from “Friend” to “Acquaintance” might also cause hurt feelings. 

The simple solution to this problem is to simply not let people know what you think their role is; this setting should be kept private and known only to you.  One again, the real world provides a compelling solution to even this dilemma.  The real world – now there is a concept for the Facebook generation.

Fahrenheit (Encryption Key) 451

Available as Kindle-ling

Available as "Kindle"-ling

A really perceptive article in today’s CS Monitor: Kindle e-reader: A Trojan horse for free thought.

Until reading, I had not seen the great irony in the unfortunate naming of Amazon’s “Kindle” device and the title and subject matter of Ray Bradbury’s famous book

Some really thought provoking and sensible arguments in the article include:

That we are trading ownership for access – access that requires the pre-authorization of a corporation and “thingamajig.”

Well-established principles of Fair Use and First Sale are being marginalized and sweep away.

“…What the Kindle should be igniting is serious debate on the fundamental, inalienable right to property in a digital age – and clarifying what’s yours, mine, and ours.”

The article’s author (also a librarian) also includes a great Ray Bradbury quote on how ”You don’t have to burn books to destroy a culture, just get people to stop reading them.”  (or he might have added- just convince them to stop thinking they own them).

Current Generation HK’s on Display at the Air & Space Museum

Hunter-Killer(HK) UAV Aircraft

Hunter-Killer(HK) UAV Aircraft

Looking up from the ground floor of the National Air and Space Museum in Washington, DC, it is a bit creepy to see the southwest wing’s display of mostly armed UAV Aircraft (UAV = Unmanned Aerial Vehicle).  One cannot help but feel like he or she is suddenly transported to the year 2029 and is accompanying Reese from the movie The Terminator as he tries to evade the autonomous Hunter-Killers (HKs). 

It is interesting that in 1949 George Orwell envisioned a future 35 years in the future (1984) where world-wide totalitarian regimes enslaved their people (using mostly intimidation and propaganda).  Yet, when the year 1984 eventually rolled around, the movie The Terminator envisioned an even grimmer future (this time 45 years in the future) where machines enslave and try to annihilate the entire human race. 

If Darwinism is indeed correct, that may yet come to pass.  But nifty machines like these first crude UAVs may serve an intermediate step and bridge the gap between both of these dystopic visions.  A future in which totalitarian regimes can manufacture an entire robot army to subjugate humans at will (propaganda no longer required). 

Today’s generation still sees these machines as mostly non-threatening and neat.  But who knows? HKs may soon be coming to a neighborhood near you - and this time they may be a little more threatening than a Roomba?

HK Tank

HK Tanks from The Terminator

10 Years of WWILF’ing, Information Smog, and Distractions

First Computer ReceiptAlmost as if it was longing to be found and remembered on its tenth anniversary, I came across this receipt today for the first computer I ever purchased – 10 years ago today*. 

As I ponder this anniversary of sorts, it might be useful to reflect on what has changed in the 10 years since I first brought such an object (and many subsequent ones) into my house.

Firstly, computers have proliferated in my house like Tribbles, I have a basement full of relics (including this first one) and 3 of them within 10 feet of where I now sit (not even counting things like MP3 Players, GPS’s, etc.).

The wife’s irritation at their presence and the time I spend in front of them has oscillated back and forth between mild and serious annoyance.

I gained the freedom to do some work from home as well as the expectation from employers that I do work from home.  Home and work life have morphed into a single entity – but at least I now leave work on time and always make it home for supper.  Even if right after supper I am back to checking email.  

I have only read a handful of books and never again subscribed to a newspaper.  I haven’t been to a library or opened an encyclopedia in years.

I have spent probably no more than a single hour of continuous concentration on any one single thing.  A constant stream of emails, IMs, and many other digital distractions have all contributed to this attention deficit. 

More positively, as my treasured family photos have migrated to sites like Flickr, I no longer live in fear that a house fire would permanently destroy these precious items. 

Reflecting on all of this, it is useful to remember a time not so long ago when computers and the Internet were not an integral part of our daily lives.  And also perhaps worry just a bit, that the negative trends listed (the constant communications, interruptions, intrusions) will only multiply at an ever-increasing rate until we become little more than computer processors ourselves. 

Overall, looking at the past ten years, one can see that this new media age, like the TV-age that preceded it, holds the promise of even greater convenience and access to information, while taking away things like solitude and concentration.  How you feel about that I guess depends on which of those things you value more.  But enough concentration for one hour (and one decade) - time to get back to WWILF’ing** and another 10 years of digital distraction.

                                                                                                                  

* It is also interesting to recall the fact that by 1998 I had worked as a computer programmer for over 2 years before I could even get enough money together to afford one.  The first year of work, I didn’t even have a computer on my desk.

** WWILF = What Was I Looking For?

Good Things Can Happen…

The movie Office Space certainly is a biting and hilarious indictment of the soullessness, absurdity, and mind-numbing nature of modern office life

One of the movie’s best and lifelike characters is Tom Smykowski.  Smykowski is a middle-age, middle manager (“I take the specifications from the customers and bring them down to the software engineers! I’m a people person! What the hell’s wrong with you!“) who is edging closer to retirement, lives in constant fear of losing his job, and as a result is perpetually stressed.

Smykowski, generally a negative person, is ecstatically happy only after having just been in a horrible, crippling car accident – because it means he doesn’t have to go back to his office job.  Bandaged and incapacitated, he tells his coworkers that “if you hang in long enough, good things can happen in this life!”

Good Things Can Happen

ArcGIS Python Script Debugging as it Outta Be

Setting up debugging of ArcGIS Python Geoprocessing Scripts used to be quite an exercise in frustration. 

However, with the Komodo IDE (for scripting languages like Python and Perl), I was pleasantly surprised this is now as simple as

  1. Download and Install the Komodo IDE from Active State ($300 to use after the 21 day free trial)
  2. In the IDE settings, set the User Environment Variable:
    PYTHONPATH=C:\Program Files\ArcGIS\bin
  3. Copy/paste any arguments/parameters you want to test with from the ArcCatalog/ArcToolbox command line output into the Debug Command Line Arguments

And it just works.  How come this doesn’t happen more often with software? 

Community, Civics, and Cyberspace

Several years ago at the local strip-mall shopping center, I watched the then-new local Walmart knock down the old Ames that had in turn knocked down the Sears that had knocked down the Woolworths*.  So I started thinking about which community artifacts are truly stable and can even be counted on to last more than a generation (retail stores obviously not being among them). 

My conclusion?  Churches, Civic Organizations, Bowling Alleys, Government Buildings, Bars, and Liquor Stores

Now, because of declining interest and participation, in this generation even the first three items on that list are at risk.  What that means in the long term I don’t know, but it probably isn’t a good thing.  At least not if you believe the work of Harvard professor Robert D. Putnam who wrote the book “Bowling Alone: The Collapse and Revival Of American Community.**”  Written in 2000 (disclaimer: I have not read), Putnam laments our lack of community sharing, our increasing disconnectedness from family, friends, neighbors, and social structures, and the resulting “decline in stock of social capital.”   After observing this decline in American civics and social connectedness, he then argues that if America is to continue to succeed this civic mindedness must be reinvented and restored. 

Some will argue that technology and social networking are doing just that.  Personally, I’m not convinced.  The anecdotal evidence I see is that far from bringing us together in the real world, these technologies are just stratifying us and pushing us further apart.  Granted that many of these online ecosystems can truly be considered “communities,” but many are merely homogeneous, and perhaps even stagnant, associations of loosely connected people who generally think and act exactly the same.  Another difference is this same not-easily-defined concept of rootedness.  As the Internet collective hive-mind jumps to whatever the next hip-thing is, these tenuous Internet associations quickly break down.  Don’t believe me?  Try and find those old Geocities or AngleFire pages you did.

I hope I’m wrong and that computer networking technology can lead to ”hyperlocalization,” an increased social connectedness, and a renewed sense of community.  But more likely, when Facebook virtually plows under the MySpace that plowed under GeoCities, we’ll be just as disintegrated and disconnected from our real-world communities as we ever were.  At least we’ll still have our local bars and liquor stores to help ease our pain.

________________

* That same Walmart then abandoned that site and moved Borg-like up the road a mile to the local indoor mall and proceeded to knock one third of it down for a Super Walmart.
** Although I did not see a lot of civic-mindedness displayed by “The Dude” and his bowling league in the Big Lebowski – there was definitely diversity.

Your Cheatin’ File Formats

A privacy problem that seems to go largely unnoticed is the issue of personal data that is hidden away in computer documents without their creators’ knowledge.  In fact, nearly all of the most common and popular document formats use such metadata to tuck away all sorts of nifty descriptive information about the document.  Here are just a few examples:

  • When it was created/changed
  • Who made the changes based on User Name or other Operating System-captured name
  • Applications used – including watermarking or similar identifying information tying a document directly back to the exact copy of software or hardware that created it
  • And on and on

Unless you use only text (.txt) files to store data, then odds are pretty good that your documents (MS Word, PDF, JPEG, etc.) have gobs of this type of extra information attached.  And in most cases, while perhaps overdone by complex document formats, this additional document information is intended to be a useful thing and not stored for any nefarious, privacy-intruding purposes.  

However, privacy issues can quickly arise when these documents are then published to the web.  In this scenario, they can reveal personal information through their metadata that their users never desire or intend to be published. 

A perfect example of this situation that has entered the annals of Web Lore is the Cat Schwartz (of  circa-2000 TechTV fame) cropping wardrobe malfunction.  An original topless image was cropped to just an innocuous head shot and posted to her blog, but oops, the metadata thumbnail still contained the original uncropped topless photo.  Just a small, yet-shocking example of hidden metadata stored in only one such complex and ubiquitous Internet data exchange format – in this case a JPEG with EXIF metadata. 

So what are users to do that want to “scrub” all personal information and metadata from their documents before posting to the web?  Unfortunately, there appear to be no easy, one-size-fits-all solutions to this problem.  Application vendors have little to gain and much to lose by stripping out such metadata.  These applications need to have access to this metadata to provide increased functionality and the market appears to make it clear that users value this functionality over privacy.  Even when vendors do provide mechanisms to eliminate such data, they make it cumbersome and onerous.  Third party solutions often only work on one specific complex data format. 

Windows Vista surprisingly does provide a mechanism for doing this (Properties | Advanced | “Remove Properties and Personal Information“), but this only removes some of the obvious metadata that Windows can identify and does nothing with vendor specific data.  Also, you have to actually manually select the file(s) – it can’t recursively cleanse subfolders.

Take the simplest of examples: How do I remove personal data from my JPEGs before I post to public photos sites?

The Windows Vista “Remove Properties” tool doesn’t help because it only handles a few of the obvious EXIF data items (like Title, Author, Tags, etc.), but there are literally hundreds of others unhandled (even the very obvious ones like “Taken On” date and editing application).  Thus for even this simplest example, the user is forced to turn to a third party tool like ExifTool - an impressive, but somewhat geeky and command-line driven EXIF metadata utility that includes a cleaner.  One could also save the JPEG to a different format that doesn’t support EXIF metadata like BMP or PNG, but get ready for some serious size bloat as the compression is lost.

To “quickly” achieve this, I just gave up and wrote my own (C# source code below-now how’s that for geeky?) - but it is only a marginal success because it only handles the Text metadata.  When I tried to just remove all metadata, I got some troublesome results (the compression was removed, or the changes were just ignored because they caused inconsistencies).  This is a worrisome example of how even someone who is actively committed to removing all of this information can be thwarted.  But I figured the text attributes included most of information that someone might want to scrub anyway (like dates, programs, etc.). 

So there is one complex data format partially down, thousands more to go.  Privacy really shouldn’t be this hard folks…

  
// Disclaimer: Use of this code is done so entirely at your own risk.
// This software is provided "as is" without warranty of any kind
// C# Snippets/Class to remove image text metadata from a jpeg file
// Note: removing non-text metadata can have undesired effects of
// altering the compression or other image characteristics
class ExifTextCleanser
{
   public static void RemoveImageTextPropertyItems(Image image)
   {
        foreach (PropertyItem pi in image.PropertyItems)
        {
            // if it's text, remove it
            if (pi.Type == 2) // 2 = Text
            {
                image.RemovePropertyItem(pi.Id);
            }
        }
   }

   public static void PrintImageTextProperties(Image image)
   {
    Console.WriteLine("properties id count=" + image.PropertyIdList.Length);
    Encoding encoder = new ASCIIEncoding();

    // Print all Image PropertyItems
    foreach (PropertyItem pi in image.PropertyItems)
    {
       if (pi.Type == 2) // 2 = Text
       {
        string textProperty = encoder.GetString(pi.Value);
        Console.WriteLine("Property, ID=" + pi.Id + ", value=" + textProperty);
       }
    }
   }

   public static void CleanseJpeg(string originalFileName, string newFileName)
   {
    if (!(originalFileName.ToLower().EndsWith(".jpg") ||
          originalFileName.ToLower().EndsWith(".jpeg")))
    {
     Console.WriteLine(originalFileName + " not a JPEG.");
     return;
    }

    Bitmap bitmap = new Bitmap(originalFileName);

    PrintImageTextProperties(bitmap); // take a peek at this metadata info

    RemoveImageTextPropertyItems(bitmap); // then nuke it

    // save the cleansed version of the file
    bitmap.Save(newFileName);
   }
}

Getting the Intel on Social Networking

The task of any Military Intelligence (MI) gathering operation is essentially to first observe and document relationships and then to describe and build models of these relationships with network graphs.  So Military Intelligence organizations often create networks of equipment and assets, organizational hierarchies, and, perhaps just a little more insidiously, interpersonal relationships.

With all of the intense media buzz lately about Facebook and other social networking sites, I couldn’t help but see the similarity of the tasks and objectives of these sites with Military Intelligence gathering operations.   One is labeled “Market Research” while the other is called “Military Intelligence Gathering (hopefully-but not always-against an adversary),” but in most ways they are indistinguishable*.   

While I find this more than just a little disturbing, I’m not quite ready to take on the breadth of this subject matter yet.  But I do want to answer the first questions: Who are these sites?  Which are most popular?  What are their primary categories and audiences?

Preliminary Findings:

Social Networking and (Micro)Blogging:
Dodgeball.com
Facebook
MySpace (Fox Interactive Media)
orkut (Google)
Tribe.net
Twitter
Windows Live Spaces (Microsoft)
Xanga

Business Relationship Management:
JigSaw
LinkedIn
Spoke.com
ZoomInfo

Multimedia (Photos, Video, Music):
Flickr
Last.fm
PhotoBucket
YouTube
Zooomr

Blogging:
LiveJournal
BlogSpot
WordPress

Social News:
del.icio.us
Digg
reddit
Slashdot
StumbleUpon

School/Organizational Networking:
Classmates.com
Graduates.com
Reunion.com

______________________________

* This line has blurred to the point where, as reported in the FRONTLINE program “Spying on the Home Front,” the US Intelligence Community actually uses aggregated marketing and credit card databases to perform data mining.

Fighting with Windows Vista to Register COM Components

With great trepidation, I starting developing on my Windows Vista machine this month.  Although I had gotten the Vista computer last August, it was just too unreliable for me to risk my daily productivity with.  This unreliability included things like being unable to perform the very basic functions of an Operating System, such as file management.  Just a few examples of things I’ve encountered: 

  1. Couldn’t copy files because of an “Out of Memory” error (description and Vista Hotfix)
  2. Frequent File Explorer and Windows Photo Gallery crashes and lock ups when you rename a file (no workaround)
  3. Copying and extracting zip files is excruciatingly slow (description and workaround)

I generally like new technologies and I definitely like to see when User Interfaces are redesigned to make them easier to use.  Some of that happened with Vista but in general it is unreliable bloatware that will only serve to further diminish Microsoft’s reputation and market share.

But while I could carp about the technology failure that is Vista all day, the primary point of this post is to offer a few hints and “Gotchas” for those unfortunate souls who still need to do ATL/COM development.  Vista adds User Account Control security which adds some requirements for registering COM components.   So here is the advice:

  1. Create a shortcut to Visual Studio.NET that is set to “Run as Administrator” (Properties | Shortcut Tab | Advanced | Run As Administrator Checkbox)
    • Even though your account is an “Administrator” account in Vista, unless you select the ”Run as Administrator” option your regsvr32 calls made during the build will fail.
    • Creating a shortcut and setting this option is the easiest way to do this so you won’t forget
  2. If like me, you create batch files to regsvr32 a bunch of COM dlls/components, you may suddenly notice that these batch scripts don’t work in Vista (even when you Run as Administrator).  To make these work in Vista:
    • Follow the same steps as above for creating a shortcut to the batch file and setting to Run as Administrator
    • When you Run as Administrator a batch file, Vista sets the current directory to C:\Windows\system32 (versus running from the current directory like it used to in the good ‘ol days), so you need to change the current directory back in your batch file
    • So here is a sample modified regsvr32 batch:

REM Stuff Added to get regsvr32 batch to run in Vista

REM Change the directory back to where this ran from (instead of System32)
set INSTALL_PATH=C:\MyFiles\PATH-TO-COM-Dlls\bin
cd %INSTALL_PATH%

REM Original Stuff that ran pre-Vista

regsvr32 MyCOMComponent.dll
pause

Next Page »