Monday, September 20, 2010

Isambard Kingdom Brunel

Unless you're a student of the history of technology and engineering, you probably haven't heard of Isambard Kingdom Brunel.  Brunel is well known in the rapidly diminishing engineering circles in the UK.  He also has  contemporary following among fans of the science fiction genre known as "steampunk", because of the cutting edge nature of his activities within his century.

Brunel was perhaps the greatest civil engineer of the 19th century.  He planned many bridges and dockyards which are still in use, supervised the building of the first major British railway, and most importantly in my opinion, designed the first propeller driven ship.

Since Brunel's time the UK reputation for engineering has been degraded to the point of Lucas jokes, and the United States has become the world's capital of consuming everything, producing a great deal less.

Here's the link to the wikipedia article on Brunel.  As the UK attempts to redesign itself as the place where physical things are designed and built, and the United States seeks to establish itself as a place built on something besides financial vaporware, it might be good to reflect on Brunel's accomplishments.

Thursday, August 19, 2010

A cultural interlude -- Lydia the tattooed Lady

I'm taking a break from writing about Oracle America v Google, or Minix 3 today, and doing something a bit more whimsical.  I've always lived my life surrounded by music, and have written here about the Free Music movement.

In addition to enabling free music the internet has made available an amazing array of resources for those of us who love music and film in all its forms.  When I was a teen if I wanted to see, say, a Marx Brotherss film my one option was waiting for it to come on television.  A decade later (in the 1970s) a few small "art" theaters had opened, which might occasionally show a Marx Brothers movie.  A decade after that (in the 1980s) videotape had entered the mass market, and if I wanted to buy a Marx Brothers film I could do so.

Now that the web is ubiquitous and nearly every artist committed to record, tape, or film has at least some presence on the web if I want to see one particular notable Marx Brothers clip I can probably find it.

So on that happy note I present one of the best musical numbers ever to come out of an otherwise terrible movie (At the Circus).  The lyrics to Lydia the Tatooed Lady were penned by Yip Harburg, one of the great songwriters of the 20th Century (who also wrote Brother Can You Spare a Dime, Paper Moon, and all the songs in the movie the Wizard of Oz.

After a string of wonderful but chaotic movies at Paramount, and the two wonderful Irving Thalberg Marx Brothers movies at MGM, A Night at the Opera and A Day at the Races, their movies went into sharp decline in quality.  This clip is a gem in an otherwise awful movie.

Tuesday, August 17, 2010

Understanding Oracle America v Google: The patents at issue

I want to credit Groklaw with pointing out this useful post by Carlo Daffara which has links to the specific patents under which Oracle America has filed their lawsuit.  The article itself is an interesting read beyond just the usefulness of the links.  One byproduct of my research on this issue has been familiarizing myself with Carlo Daffara's work.  He's a major player in the support of free software in the EU, and does work on open source business models.  Here's a link to info on Mr. Daffara.

Minix 3 and bochs configuration progress report

I just wanted those of you who are following my Minix 3 articles to know that I'm still working on getting Minix 3 running under bochs.  Some household duties have made the project slow going, but I expect to have some time freed up by next week.  The snag is still the same.  Minix runs in text based terminal mode, but X windows silently dies on me.  After I've made a good faith effort to figure the problem out myself I intend to post notes on the bochs and X forums to see if I'm dealing with a known problem.  So if you've been reading the Minix 3 articles don't give up.  They will resume soon.

Understanding Oracle America v Google: The Oracle Corporation

The Oracle Corporation is best known in the Information Technology world for the Oracle relational database management system, but is probably known most in the business world for its high profile CEO Larry Ellison.

The beginnings of the Oracle Corporation were in 1977 when Larry Ellison, Ed Oates, and Bob Miner formed the consulting group Software Development Laboratories.  Oates had shown Ellison a 1970 paper in which IBM's Ted Codd had proposed the relational database model for data.  IBM was very slow on the drawn in implementing the work of their own researcher, so SDL jumped in to fill the void.

By 1979 the company was successfully marketing their product, and in 1979 changed their name to Oracle Corporation after their flagship product.

By successful marketing and by acquisition of other companies Oracle grew to be the corporation that has the third largest revenue from software, behind only Microsoft and IBM.

Oracle's most significant acquisition in terms of their recent trajectory was in January of this year, when they completed their acquisition of Sun Microsystems.  Sun was well known as a producer of enterprise servers and storage devices.  They were also a powerhouse in Research and Development, had a great deal of trouble monetizing their research, and had been on an acquisition spree of their own before being acquired by Oracle.  I'll write more on Sun and the properties Oracle got with the acquisition  when I cover Oracle America, the name Oracle has given to the subsidiary comprising the former Sun.

Oracle is in some ways an old fashioned software company.  While Oracle has dabbled in open source software and software which is free in the sense of "free beer", it's exhibited little understanding of the culture of the free software movement.  The first evidence of this is the awkward and heavy handed manner in which it handled relations with the Open Solaris community (I've written brief posts on that relationship  here and here).

Why is Oracle suing Google?

There isn't really an easy answer at the moment as to the motivation and timing of this lawsuit.  It has the obvious effect of disrupting, and potentially damaging, future adoption of Java.  So it's likely Oracle has some specific goal in mind beyond a one time settlement.  I can't imagine Oracle deciding to compete with patent trolling firms like Acacia.  In fact in 1994 Oracle went on record opposing software patents in principle (in agreement with a substantial portion of the IT world). 

This early in the game my best candidate for a quick guess is that Oracle is interested in getting a strong foothold in the mobile industry, either by forcing a licensing agreement with Google, or blowing Android out of the water and introducing a competing device.  Oracle did something similar to the latter when they tried to compete with Red Hat Linux a few years back.  That attempt was a complete and utter failure.



As the suit unfolds Oracle's specific strategy will probably become obvious.  But I doubt that it's moral indignation over violation of their IP.  After all, Oracle got its start implementing research that was carried out on IBM's dime.

Monday, August 16, 2010

An outline of Oracle America v Google

I'm approaching this article (which is really a series of articles) differently from my typical linear set of postings.  This outline article will undergo edits as the entire series develops.

Since my goal is mostly to present the information necessary to follow this important lawsuit, I've written an outline of my future posts, which I present here.  As I get each article finished and published I'll turn each article into a link to the published article.  So if you find these article useful you might want to go back and bookmark this outline.

I won't necessarily finish the articles in the order in which they appear in the outline.  The inflow of information will dictate the order.

Here are the things I view as important to understanding the lawsuit.

  1. The Players 
  2. The Technology
    • Android
    • Java
    • Dalvik
  3. The details of the filing
  4. The Law
    • Patent Law
    • How patent lawsuits are handled
    • Copyright law
  5. The Ethics
  6. Possible impacts
  7. The patents at issue

If you think I'm missing some component to understanding this case post a comment here.  If you think I'm in error in a particular article post a comment to that article.

    Sunday, August 15, 2010

    Oracle v Google -- getting started

    Before I begin to summarize what might actually be going on in the Oracle v Google lawsuit,  it might be a good idea to aggregate some of the information already on the web to give readers a chance to draw their own preliminary conclusions.  The links I'm posting are the sources of information I've found so far, and I've tried to edit them down to reduce the redundancy and provide a good starting point for really figuring out what's going on.

    The most important document for understanding the case (although if you're not a lawyer it may not be the first thing you'll want to read) is the complaint itself, which was filed in the United States District Court -- Northern District of California.

    The law firms representing Oracle  in the case are Morrison and Foerster LLP, and Boies, Schiller & Flexner LLP

    Here is a link to Oracle's press release on the suit.

    ... and a link to a TechCrunch article quoting a response Google sent via email.

    For basic info the the following articles are representative of what the press is carrying at the moment:

    Epic smackdown looms in Google vs Oracle  from CNNMoney.com

    Lawsuit may signal era of Oracle, Google tensions  from the Economic Times (India)

    Oracle sues Google over Android from Mashable

    Here's an interesting blog from Taylor Buley at Forbes, which raises a question I had pondered.  Why didn't Oracle file the suit in the Eastern  District of Texas, which is a patent troll's paradise?  I'll have to mull over Buley's reasoning, but the reasons behind the chosen venue is a good point to ponder.

    Groklaw, which has long been the best (though most partisan) site for following the various SCO lawsuits will be following Oracle v Google in depth.

    Finally, here is Richard Stallman's call to arms Fighting Software Patents.  It doesn't have any direct bearing on Oracle's chances of success, but it's a nice little manifesto to review when an important software patent case arises.

    Saturday, August 14, 2010

    Oracle versus Google -- Farewell to Sun's legacy

    Under most circumstances I avoid writing on topics which saturate the news media.  After all, the title of this blog is "Off the Beaten Path in Technology".  But the OracleGoogle lawsuit has so many ramifications for the future of technological innovation that I intend to cover it regularly and in depth.

    I'll be writing a tutorial series on the lawsuit after the dust settles a bit and after I've had time to research the issue properly, but I do want to make a somewhat personal statement about this case.

    I worked as a solaris sysadmin for quite a few years.  As annoying as Sun Microsystems could be to deal with,  I came to respect them as a font of innovation.  I'm not going to attempt to list all the contributions of Sun Microsystems to the computer science and technology world, but a few notable recent ones are Java, zfs, dtrace, and the Open Office suite.

    When Oracle acquired Sun my first reaction was alarm, and nothing that  has transpired since the takeover has softened my reaction.   With Oracle in charge the likelihood of any remnant of Sun's culture surviving is miniscule.

    Although I'm going to cover the lawsuit in as accurate and balanced a manner as I can under the circumstances, Oracle has unleashed the potential for significant damage to  the innovative impulse in the computer technology world.  Software patents are a bad idea,  and provide  fertile ground for those law firms best described as patent trolls.  No matter what the outcome of the suit it's likely to damage Java as both a language and a platform.

    Saturday, July 3, 2010

    Minix 3 and bochs (or Virtual Machines Make My Head Hurt) -- Part 1


    The subtitle Virtual Machines Make My Head Hurt is a reference to the difficulty I have in determining which layer is doing what at any given time when I'm operating in a virtual machine environment.  If there is a failure somewhere I have to ask myself the questions:   is the failure on the guest operating system?  The host operating system?  Some incomplete interoperability between the two?  The hardware?  The application I'm running?

    Well, failure isn't really the theme of this post, since I'm at the beginning of this particular phase of my Minix 3 installation, although thinking through how the different layers in virtual environments are working together still makes my head hurt.  So I'll slowly explain what I'm trying to do, and why.  Then I'll followup at the end of this post with exactly where I am and what I intend to do to move this aspect of the project along.

    As I stated in an earlier post my long term goal is to get Minix 3 working on my Dell Inspiron 1545 laptop in every reasonable respect (including the network, the wireless, and the USB ports).  This is both a narrow and broad project.  Narrow in the sense that I'm focused on one particular system.  Broad in the sense that in order to do this I may have to learn about writing drivers for everything on the system.

    How does this relate to virtual machinery?  After a couple of weeks of burning anything I needed from the outside world to a CD on my Ubuntu Linux system and moving it to the laptop, I discovered that it might be nice to ftp things I need onto a networked Minix 3 work area, evaluate and configure it in that environment, then when I deem it ready make a CD and move it onto the laptop.

    This is where bochs comes in.  bochs is a free and open source x86 emulator.  With it I should be able to run Minix 3 in a virtual environment, including access to the network of the host environment, do any configuration or development needed on the virtual Minix 3, then move it to my Dell laptop for further testing.  If I'm reading the bochs documentation correctly I should also be able to do some of the necessary reverse engineering I'll need to do for my device drivers with the debug mode in bochs.

    So a couple of days ago I installed bochs onto my Ubuntu Linux workstation, and attempted to use the  document Running Minix 3 on Bochs from the Minix 3 website to configure and run Minix 3 on bochs. I followed the instructions, and the attempt to run my Minix 3 boot image failed on the following error:

    ========================================================================
                           Bochs x86 Emulator 2.4.2
                 Build from CVS snapshot on November 12, 2009
    ==============================
    ==========================================
    00000000000i[     ] LTDL_LIBRARY_PATH not set. using compile time default '/usr/lib/bochs/plugins'
    00000000000i[     ] BXSHARE not set. using compile time default '/usr/share/bochs'
    00000000000i[     ] reading configuration from bochsrc.txt
    00000000000p[     ] >>PANIC<< bochsrc.txt:9: directive 'ips' not understood
    00000000000e[CTRL ] notify called, but no bxevent_callback function is registered
    00000000000i[CTRL ] quit_sim called with exit code 1

    I re-read the installation instructions, then went to the bochs home website on sourceforge and browsed the documentation there.  As far as I could tell at that time 'ips' was a legitimate directive in bochs, so I posted descriptions of the problem to both the Minix 3 google group, and to the bochs help forum.
    Stanislav Shwartsman, one of the bochs developers, answered on the bochs help forum that the 'ips' directive was deprecated and could no longer be used, and suggested that I use the sample  bochsrc configuration file which comes with bochs as a basis to configure bochs for Minix 3 and that I then get the documentation updated.

    So at this point my plan for the week is:

    1) finish reading  the bochs documentation so that I can devise an appropriate bochsrc file.
    2) get Minix running on bochs
    3) Make  the configuration steps available so that the Minix 3 documentation can be updated (or just doing it myself if I have wiki editing privileges on the document).  
    4)  If I've  understood the bochs documentation correctly I can  create a Minix 3 bochs image and make it available to other people via the bochs website.  I'd like to do that if possible.

    I'll write a  followup post to describe how the plan went.

    Wednesday, June 30, 2010

    Minix 3 Installation Diary -- Part 3

    As I stated in the previous article in this diary, I had a strange problem occur on my attempts to reboot after initially installing Minix 3 to my hard drive.  The problem was that the system would always reboot into a grub (Grand Unified Boot Loader) prompt, and I couldn't continue beyond that prompt.  Now this seemed to me at the time to be a strange problem indeed.  I had accepted all the setup defaults and done a full install, dedicating the entire disk to Minix 3.  I couldn't really find anything in the documentation about this problem, so I went to the minix3 google group to post a description of the problem.  The minix3 group is a good second line resource for troubleshooting if one can't find a solution to a problem in the documentation on the Minix 3 web site.  The best way to use this resource is to first attempt to figure out the problem by reading the online documentation, then to search the minix3 archive, and then, if the problem still isn't solved,  posting an enquiry on the group mailing list.

    I couldn't find anything, so I posted a description of the problem.  Initially it was mysterious to the respondents, but it soon dawned on both me and a couple of the regulars on the list that grub was already installed in the Master Boot Record (MBR) from the previous host on that particular laptop, which happened to be Fedora Linux.

    A member of the list suggested that I use installboot to overwrite the grub entry in the MBR.  It took me a few tries, but the command

    installboot -m /dev/c0d4 /usr/mdec/masterboot  did the trick.

    I rebooted, and this time came back up to the Minix 3 login prompt.

    For more information on the Minix 3 boot process the article from the Minix 3 Wiki From power-on the the login prompt is very useful.

    The manual page for installboot is also helpful.

    Tuesday, June 29, 2010

    Minix 3 Installation Diary -- Part 2

    To begin the installation process I downloaded the iso image for the latest stable version, which is 3.1.7, from the minix 3 download page.
    After burning it to a CD (from my ubuntu Linux workstation) I inserted the CD in the laptop and rebooted.  I had one of the installation docs open in front of me, along with tabs for any other pages on the minix site which seemed relevant to troubleshooting.

    I powered on  ... and nothing useful happened.  Luckily this one was easy enough to figure out with a quick browse through the docs.  The error message (which I failed to write down) indicated that the CD was not found.   Under my BIOS system configuration I needed to change a parameter from AHCI (Advanced Host Controller Interface -- Intel's API for addressing Serial ATA) which isn't yet supported by Minix, to ATA (the Minix doc called it "legacy", but it was easy enough to tell what was going on).

    So now I had a bootable live CD.  I booted up, ran the setup command, and began working through the steps.  I'd already saved everything I needed off the Fedora Linux installation which was the previous host on the laptop, so I chose  to delete the existing partitions and make the whole disk Minix 3.  I accepted the default filesystem sizes (/, /home, and /usr had separate slices).

    When the copying of files finished, I was instructed to shutdown and reboot.  Then I was prompted to  run packman, which is Minix's package manager system, in order to get X windows and a number of other programs, libraries, and utilities.

    Using the command xdm  I was treated to a window manager which resembled almost exactly the first X windows interface I was ever exposed to 16 years ago on a Sun workstation.  As it happens, twm ("Tom's Window Manager") is the window manager ported to Minix.  It's one of the original window managers, and is very minimalistic.  I have to say that I don't object to that.  Graphical eye candy can be soothing, mostly because I'm accustomed to it, but most of the time I'm working with text in terminal windows, which twm handles well.

    I then attempted a reboot, and Oooops!!!  I was faced with a very strange problem which I'll describe in a separate blog posting (so that this article doesn't run on forever).


    Monday, June 28, 2010

    My Minix 3 diary -- Introduction and initial installation

    In 1995 I downloaded fifty 3.5 inch diskettes of the Slackware distribution of Linux, installed it on my home computer, and after several hundred hours of configuration got it more or less working for the state-of-the art in Linux at that time. A friend at work used my diskettes to install on his computer, and both of us have been avid Linux users since.

    But part of me has missed the early days of broken and missing pieces, where I had to do detective work to get my setup behaving correctly.

    More seriously, although I love Linux, I've always recognized that it is not the be-all and end-all of operating system technology.  It's good, it's free (both in the "free beer" and "free as in freedom" sense, and the support community is wonderful.

    But there are a number of other OSes out there, and one which in particular has beckoned me is Minix 3. 

    Those of you who know the history of Linux might remember that Linus Torvalds, the creator of Linux, was originally working in the first version of Minix when he began coding Linux.  At that time Minix was an educational tool targeted at the 8088/8086 processors, and as such could not support modern production use (multiprogramming was not possible).

    You may also remember the debates between Linus Torvalds and Andrew Tanenbaum regarding the merits of monolithic kernels versus microkernel architecture (I'm not going to bother to go into that now.  Follow the preceding link if you are interested in exploring it).

    Fast forwarding to the present, Minix has come a very long way.  Minix 3 has been released, and an active community is working on transforming it into a serious production system.

    The goals of Minix 3 are summarized as follows on the official Minix web page:

    MINIX 3 is initially targeted at the following areas:
    • Applications where very high reliability is required
    • Single-chip, small-RAM, low-power, $100 laptops for Third-World children
    • Embedded systems (e.g., cameras, DVD recorders, cell phones)
    • Applications where the GPL is too restrictive (MINIX 3 uses a BSD-type license)
    • Education (e.g., operating systems courses at universities)

     I've been looking for a fun, interesting, and challenging project to keep myself young at heart  in the UNIX/POSIX world.  So I've  taken  a Dell Inspiron 1545 laptop and installed Minix 3.1.7 on it.  My intent is to get every reasonable function of this laptop working with Minix in the modern sense of the word.  Where possible I'll build on other people's work (and hope upon hope that someone writes a driver for the NIC before I'm forced to do it myself).  But if no one else is working on a particular project relevant to my laptop list, I'll hunker down and do it myself.  I have no time line, since this is a labor of love.

    The top priority missing component as far as I'm concerned is a driver for the NIC.  The ethernet card on this  laptop is probably a Marvell 88E80XX 10/100 Ethernet Controller (based on looking over Dell's spec sheets).

    But before I tackle device drivers I have to get the standalone Minix running and configured to my satisfaction first.  My next post is going to be a description of the specific problems I ran into on the installation, and how I dealt with them.

    Tuesday, June 1, 2010

    87 year old former oil man explains the BP oil catastrophe in detail

    This is one of the better attempts to explain the BP Gulf of Mexico oil catastrophe I've seen. It is an interview with Peter Davidson, 87 years old and "a veteran of many oil fields" explaining the drilling operation and leak to his daughter, who prompts him to keep it to a basic level that an interested layperson can understand.


    Gulf Oil Spill: what happened? from Mary Mele on Vimeo.

    Monday, May 31, 2010

    Google sued over pedestrian accident

    It isn't often that I have a hard time coming up with a headline for a blog post, but this particular news story which I read via mashable.com is a bit too easy to meet with a knee-jerk attitude.

    First, I support the right of individuals to sue corporations (or individuals) for irresponsible activity which leads to injury.  This is where I diverge from much of the pop culture/AM Radio shock jock ridicule of lawsuits directed at corporations.  There are times when a company releases dangerous goods which should have been tested better or publishes instructions which don't adequately disclose the risks of a product.

    So the question is whether posting pedestian directions  which include the stretch pictured the image above was irresponsible on Google's part.

    My own opinion is that Google should win this lawsuit, and that if the woman who brought the suit wanted to really target those responsible she should really sue whatever governmental body is responsible for this roadway.

    IANAL (I am not a lawyer) so I can't comment on an informed manner about the legal responsibility beyond stating that Google includes a disclaimer on their pedestrian routes

    But my fear is that lawsuits like this help unleash the attitude that we as a people shouldn't walk anywhere, shouldn't encourage others to walk anywhere, and that our state and local governments shouldn't be held responsible for the lack of safe pedestrian accomodation on roadways.

    The problem here isn't that Google provided the woman with a route from point A to point B.  The problem is that those responsible for designing the highway didn't take into account the fact that walking is a reasonable use of a route funded, designed, and maintained by the government.

    Friday, May 28, 2010

    podcast interview with Donald Knuth


    Listen to internet radio with larryfeltonj on Blog Talk Radio

    On Wednesday I recorded a podcast interview with Dr. Donald Knuth, a major figure in the history of computer science. He's the author of The Art of Computer Science, developer of the TeX typesetting language, and the creator of the system known as Literate Programming.

    I interviewed him by phone. We focused on Literate Programming, but he also touched on TeX, Metafont, Linux, and the upcoming fourth volume of the Art of Computer Programming.

    You can listen by using the control above, or visit my show page at BlogtalkRadio.

    Missed deadline (but for an exciting reason)

    Today was the day I intended to post the first results of my multi-language programming exercise.  Instead events led me to work on my podcasts, including the interview with Donald Knuth which I'll post and announce in a short while.  I'm resetting the clock, and my first results (written in PHP) will be posted two Fridays from now.

    Monday, May 24, 2010

    My BlogTalkRadio show for this week: Interview with Barbara Joye

    My podcast of Off the Beaten Path in Technology (follow this link to my show page) on BlogTalkRadio this week will feature an interview with Barbara Joye who was a co-founder of WRFG community radio here in Atlanta. The show airs at 6:30 PM EDT this evening May 24th, 2010. If you can't listen live you can play it on demand later. The controller posted on this article makes all the shows available, with the most recently archived show on the top.

    I always post the links I mention on the show to the article here. Here are the resources and sites mentioned on the show:

    WRFG -- Radio Free Georgia
    WRFG's program schedule

    I always play music from the Free Music Archives and other repositories of music distributed under licenses which allow for podsafe distribution.

    The primary site I use is:

    The Free Music Archive

    Here are links to the artists pages of music I've put together for the evening's show.  Depending on how much time I have I may or may not get to every musical number I've chosen, but you should check out these musicians anyhow.
    The links are arranged in pairs, with the first link being the artists page, the second the page for the specific number (which includes a play button).

    Cooper-Moore -- Jazz (although the number by Cooper-Moore I've chosen for this evening is  a really unique blues number).
    Banjo Arba Minch Garden  --  A really unusual blues piece for fretless banjo.

    John H. Glover-Kind -- This is a selection entitled I Do Like to Be Beside the Seaside from a 1907 piano roll (player piano).

    Moore and Gardner's Chinese Blues is another old piano roll song.

    I always seem to play Follow the Drinking Gourd by Roger McGuinn.

    I hope you'll listen to the show.

    Saturday, May 22, 2010

    Podcasts, WRFG, Donald Knuth, etc

    I haven't posted in a couple of days, because my time has been hammered as I prepare for a number of deadlines.

    First, I'm trying to get a better technical setup for doing my BlogTalkRadio podcasts. This includes both the general sound quality of my own delivery (I sound a bit like Gomer Pyle talking into a garbage can) and my ability to record interviews.

    Secondly, I'll be doing my first interviews this week. I'll be doing a live interview with Barbara Joye, co-founder of WRFG Radio here in Atlanta, and a recorded interview with Donald Knuth, who is one of the great computer scientists (and artists) of the past half decade.

    My first stab at improving my setup for the broadcasts is to configure Ekiga so that I can use my computer directly rather than a phone to conduct the show. I'll post updates on my attempts to get good at podcasting as my saga continues.

    Saturday, May 15, 2010

    Diaspora: Developing an alternative to Facebook

    I'm still using Facebook, but I'm  at the point where I evaluate my account from week to week.  I have no doubt that given the backlash Facebook will modify this latest intrusion into the privacy of its users, but I also have no doubt they will regroup and try another run at its user base within a few months.  They can't help it.  It's built into their corporate character, and is an integral part of their business model.

    The thing Facebook has going for it at the moment is the momentum of its success in attracting an amazing number of users.  Friends and relatives of mine who had been barely using computers are now addicted to Facebook.  I can keep up with High School classmates from the 1960s, people who share my various interests (both career and hobby related), relatives I haven't seen in years, and neighbors of mine, many of whom I interact with much more often on Facebook than I do in the neighborhood itself.

    Of course this has to be weighed against the fact that Facebook is a relentless spam machine, is flaky and unstable, has deliberately awful documentation of features (particularly regarding their privacy settings) and seems to be run by people who would love to plant a tracking chip in its entire user base.

    Enter Diaspora


    After hearing a presentation by Eben Moglen  on the extent to which large social software networks have been eroding net privacy, four New York University students decided to develop software for an open social networking site which is privacy aware. They named this system Diaspora.    This New York Times article provides a decent summary.

    They decided that if they could raise $10,000 in donations by June 1st they'd spend the summer developing the system.  They met this goal two weeks after they set up their kickstarter donation site and when I went to make a donation this morning they'd already raised over $149,000. This demonstrates the extent to which people are becoming fed up with Facebook. I'd encourage you to follow Diaspora, and if you support the concept donate some money to the effort.

    Friday, May 14, 2010

    A project with programming exercises for learning a new language

    My version of twiddling my thumbs or biting my nails is repeatedly clicking on the Stumble! button and giving websites a "thumbs up" or "thumbs down".

    While I was doing that I stumbled upon this article called 15 Exercises for Learning a new Programming Language by Prashant N Mhatre.

    I've  been interested in comparative programming languages for quite some time, and this list of exercises seems to cover the basic practical features of a language (text manipulation, date and time functions, file handling, math,  assignment, sorting, conditionals and loops, etc).


    Consequently I've decided to use the list to do a series of  exercises.  I'm going to do the exercises at two week intervals using the following languages, one language per fortnight, and post the results (or a link to the results) here.

    The languages are php, java, common lisp, forth, haskell, ruby, c++, perl, some sort of assembly code (probably x86), python, and ksh or bash.  This list is arbitrary, and if the exercise continues to be fun I'll add more when I've finished this list.  Some of the languages I've worked with a good bit (particularly perl and ksh), some I've done moderately heavy work with in the past, but not recently (php, assembly code), some I've dabbled in (forth, common lisp, ruby).  I've had nearly no hands on experience with java, c++, python, and haskell.


    I intend to do the exercises in the most idiomatic form of the language which I can absorb in over a two week period (in other words I'll try to write lisp as a lisp programmer would).


    I invite reader input, suggestions, criticisms, even ridicule if you'd like (as long as you tell me why my code is ridiculous).  I'll post my results on alternate  Fridays starting on May 28th, 2010.


    I'll include a description of what implementation of the language I used, and my impressions of the language and its idioms.



    Wednesday, May 12, 2010

    Rethinking Facebook

    I've had a love/hate relationship with facebook from the word go.

    I'm obviously not a Luddite.  I depend on technology for my livelihood, and I have a deep love for programming and an intense interest in a number of esoteric topics in computer science.  But I'm not an early adopter either.  One of the funniest bad predictions I've ever made involved the World Wide Web.  A co-worker approached me in the early nineties, shortly after Mosaic, the first widely available web browser became available and said "Larry, you've got to see this, it's got graphics, links, sophisticated layout capabilities ...".  I had been using the gopher system, along with archie and veronica to retrieve documents off the internet.  I took one look at Mosaic, and said something to the effect of "This World Wide Web thing is never going to take off.  It loads too slowly".

    But I warmed up to the Web, and in a narrower sense, I've been warming up to Facebook.  At first it seemed like a weird, unstable, and clunky web interface to me.  But the fact that I could keep up with family members and people from my distant past on Facebook over-ruled my scepticism about the security and safety of the platform.

    Then I embarked on a rocky and sometimes wacky relationship with Facebook.  I tried online gaming, which resulted in me inadvertently "application spamming" my friends.  No matter how I tried to filter and make the gaming messages invisible to my non-gaming friends I'd discover that they were getting at least some of the noise from the games (games produced by Zynga were the big offender).  So I pulled back from gaming.

    More serious though, is the steady erosion of privacy on Facebook.  I'm a very outgoing and public person (and not easily embarrassed by my own absurdity -- if you don't believe that just listen to the evolution of my blogtalk radio show).  I usually leave my profile wide open (which has only resulted in two episodes of stalking ... amazing when you consider that I've been on the internet since 1991).
    But I like to think that social sites are leaving me in control of the extent to which I want my information distributed to the world at large (or to third party commercial concerns).

    Facebook has been steadily crossing the line in that respect.  This article from the Electronic Freedom Foundation puts it in in stark perspective.   At this point I'm  trying to figure out whether to stay and determine ways to effectively express my alarm at Facebook's privacy policies, or whether to find some alternative social medium.

    It's gotten to the point where I use my identity on either Facebook or Google to access dozens of other related sites.  I still have a somewhat high level of confidence that Google isn't going to abuse that trust.  With Facebook I'm not so sure anymore.

    Tuesday, May 11, 2010

    Free, podsafe, and "copylefted" music on the web

    This post is supplemental to my BlogTalkRadio show Off the Beaten Path in Technology which will run this evening (Tuesday May 11, 2010_ at 6:30 PM EDT

    The show is going to feature podsafe music (music which can be freely used in podcasts),  and free and copylefted music (music distributed under a license similar to software's GNU General Public License, or GPL).  I'm going to play selections from two particular sites I've explored (there are actually quite a few more sites which I'll feature and explore on later shows. 

    Those sites are the Free Music Archive based at WFMU in Jersey City, NJ, and Dogmazic, a French free music site which is part of what may be the cutting edge movement within free music internationally.

    The Free Music Archive is a project of WFMU, a pioneering radio station in music licensed under terms which allow freedom of copying, distribution, and air play.  It has music available in a number of genres, and much of the material is such high quality that it deserves attention not only from those of us committed to freedom as an aspect of copyrights, but by all music lovers.

    Dogmazic is a major free music download manager in France.  Much, but not all,  of the material is in French.  The site has music from all over the world, and is a treasure trove for anyone who loves to browse and listen to interesting international music in a number of genres.

    I hope you listen to my show this evening (or if you can't, visit later and listen to the archived copy.

    Open Source Hardware Design

    It occurred to me after my recent post

    Radio Shack and the fading era of Electronic Hobbyist Geekdom

    that my title for that article implied that the age of electronic tinkering was dead or dying. Actually nothing could be further from the truth. I was referring specifically to the phase of small scale electronics construction which revolved around finding a plan in Popular Electronics and wandering over to the radio shack parts list in hand. With the rise of the internet, computers, the free and open source software movements, and the availability of parts online, there is a thriving culture not only of DIY hobbyists and small scale inventors, but also of Open Source hardware design.

    Open Source Hardware


    Taking its inspiration from the Free Software movement and Open Source approach which brought the world the Linux operating system, the Firefox web browser, and much of the software which powers the internet, there is a growing Open Source hardware movement. Slashdot linked to an article at singularityhub.com about a presentation at Foo Camp East by Phillip Torrone and Limor Fried from Adafruit Industries. about 13 companies with over a million dollars in revenue doing open source hardware design (this may not seem impressive until you ponder how new this movement is, and how radical a departure it is from the existing research-develop-patent model).  Adafruit is one of the companies which provides plans, parts, and kits to the Open Source hardware community. The Open Source hardware community, which encourages the download, modification, and production of plans circulated under an open source hardware license  is a very exciting development in contemporary technology, and could remake the manner in which innovation in the marketplace unfolds.

    Monday, May 10, 2010

    Radio Shack and the fading era of Electronic Hobbyist Geekdom

    From Hallicraft and Heathkit to Radio Shack, and now ... beyond

    I was never the sort of serious electronics tinkerer a few of my friends were during my childhood and adolescence in the 1950s and 1960s, but I did tinker a bit, build a few simple kits, and get a novice class amateur radio license. The mail order kit companies, specialty shops, and various popular electronics magazines were the place to go for parts, kits, plans, and information during that time.

    The rise of Radio Shack made the tinkering culture much more accessible and convenient.  There were Radio Shacks scattered across every major market area, so capacitors, resistors, potentiometers, transistors, and other components used by the hobbyist or inventor were a quick trip away from most locations in the U.S.

    Change of focus at Radio Shack


    Due to changes in market conditions Radio Shack has been re-branding itself successfully as a "mobility" store, focusing on cell phones. This has led to a jump in their profitability, while causing angst in its older customer base.

    Read about it here on Wired Magazine, or join in the discussion on Reddit.

    Sunday, May 9, 2010

    Old clip of Caruso and Homer selection from Aida

    One of the aspects of the internet which crept up on me slowly was the extent to which very specialised enthusiasms, which would have been slow and sometimes expensive to indulge, are now available via simple searches.  Here's a clip of Louise Homer and Enrico Caruso in a duet from Verdi's Aida.

    Blogs, Podcasts, and Social Media Technology -- Part One

    ... or Why am I doing a blog and internet radio show?


    This is the first in a series of posts on why I'm doing the various related parts of Off the Beaten Path (the blog, the podcast, OTBP's facebook page, etc) and what I hope to accomplish with them.

    At one point I did a blog on a variety of related topics called AtlantaLarry. It covered New Urbanism, Atlanta history and neighborhoods, transportation issues, and smart growth issues. It's still up and running, although I update it infrequently. As somewhat spontaneous blogs go it was very successful at its peak, with an active and engaged readership.

    Now I'm reasserting a web presence in a much more technically ambitious manner, with somewhat different subject matter, and an expanded number of types of media.  While I intend to still cover some of the topics near and dear to me involving our human habitat, I've decided to focus on some interesting aspects of the industry and subculture which has provided my livelihood for the past twenty years, the field of computer technology.

    But I'm using the term computer technology in a much broader and deeper sense than usual.  To me the uses of technology are as important as the various algorithms, protocols, and hardware.

    So I view programming methodology, chip design,  news of a rock band which has decided to release it's music under terms similar to the Free Software Foundation's  GNU Public License,  independent internet Television, and stories on Search Engine Optimisation all worthy of attention and coverage.

    Not just Social Media advertising

     

    When I began thinking about various types of social media (blogs, Twitter, Facebook, YouTube, podcasts) I started out with  a very narrow focus. My intent was to push myself out just far enough to increase  the volume of my contract programming business. But as I explored the media I discovered that it was becoming not a means to an end (picking up jobs building webscrapers) but an end in itself.


    Social Media

     


    The entire world falling under the general category "Social Media" is evolving, dynamic, and fascinating. The cost of entry is incredibly low. In fact it's possible to start getting involved at no cost except the time. A person with no money, but access to a public library with computers can set up and maintain a blog. Doing podcasts and videos have a bit higher entry cost, but with the availability of free community resources like public access TV, and with the cost of equipment dropping every year, it's possible to do nearly every sort of media with minimal cost.

    Do I really know what I'm doing?

     

    Much of this I'm doing by intense muddling. The podcasts in particular don't come naturally to me. My voice sounds rather like Gomer Pyle's, I'm struggling with slowing myself down so I don't lapse into a long series of "uhs" and "ers", and developing an entertaining flow is going to require some focus and work. But it's still fun and rewarding.

    .My approach at this time is to polish my writing and audio delivery, to continue to accumulate resources for excellent podsafe music, and to line up interesting guests to interview.

    My next post will describe where I'm trying to go with the overall form, content, and quality of Off the Beaten Path in Technology, and the specific steps I'm taking to get there.

    But in the meantime if anyone needs a website scraped, gimme a holler :-)

    Monday, May 3, 2010

    podsafe: Why there is so much music on my technology show

    I'll be putting on my first full length one hour BlogTalkRadio show this evening, Monday May 3rd.  The show will run at 6 PM  and can be reached at http://www.blogtalkradio.com/larryfeltonj

    The main topic is the SCO series of lawsuits which has been of such interest to the Linux and free software community (or at least it was until SCO went into full tilt Wile E. Coyote mode and began losing court battle after court battle).

    But in addition to the discussion of SCO listeners may notice that I will be including  a lot of music in the show, from a number of genres.

    There are three reasons for this.

    First, I like music, and it's my show, so I can indulge myself in that interest to my heart's content. 

    Secondly, technology blogs and technology shows are a dime a dozen.  If I can't make the show (and this blog) really "Off the Beaten Path" my readers and listeners will  be much better off just sticking to slashdot, Ars Technica, and the other hundred or so news and news aggregation sites.  Music, interviews with interesting people, and truly unique (preferably exclusive) stories are a few ways I intend to explore to avoid the show becoming the pathetic spectacle of me droning on about why I like perl, or drupal, or linux.

    Most importantly, however, there is a substantial and important movement out there to make podsafe music available, and I support and intend to participate in that movement. Podsafe music is music which can be used freely on podcasts on the web.  It's the rough equivalent of Free Software, although the actual licensing of podsafe music covers a wide range, from
    Free Music, the equivalent of Free Software in the GNU sense of the word), music licensed under Creative Commons, to public domain works.

    The relevant thing to me is that I can freely use this music on my show, and I intend to do so.

    I'll be talking about podsafe and free music on future shows.

    In the meantime here's a link to the Free Music Archive, one of the sources of podsafe music.

    Thursday, April 29, 2010

    Good podcast on Drupal and government

    Here's a good podcast from BlogTalkRadio on the use of Drupal by government bodies.  It features an interview with Andrew Hoppin (the CIO of the New York Senate) and Michael Walsh (who does Drupal work for government clients).  The spot is called Open Source and Open Government.

    Wednesday, April 28, 2010

    Japan's Solar Powered Deep Space Craft

    On May 18th Japan is going to launch the Ikaros, a solar powered deep space craft.  It looks sort of like a huge kite, and has very thin solar cells.  Diagrams and further description can be found on the website Inhabitat.

    Tuesday, April 27, 2010

    Trying my hand at talk radio



    I've started trying my hand at internet talk radio, by getting an account on BlogTalkRadio.com.  So far I've done two tests.  The first one was hilariously bad, as I struggled with the controls.  Who am I fooling?  I couldn't find any of the controls, so I did a rambling monologue with lots of "dead air".  The second one went a bit better, aside from all the "uh"s breaking the stream of conciousness.

    I'm going to do my first serious show next Monday May 3rd at 6 PM.  I'm going to discuss the perpetually wacky world of the SCO lawsuits.  The link above takes you to my latest show, as long as you're able to wait through the 20-seconds-too-long-for-internet-attention-span advertisement.

    Sunday, April 25, 2010

    What is Content Management?

    One of the buzzphrases in web technology is Content Management, which is  implemented by a Content Management System, or CMS.  I've posted back-to-back articles about  Drupal, one of the most popular of these systems.   There were two interesting  news articles about Drupal (the release of drupal modules developed at the White House website, and the upcoming release of Drupal 7). Consequently I thought it might be a good idea to write a short article explaining what a Content Management System is, and why they have become such an integral part of contemporary web environments.

    When I first started putting together websites in the late 1990s I spent as much time writing the Hypertext Markup Language (HTML) to render an  article for  web browsers as I did working on the plain English language article I was writing.   While learning HTML was fun for me, it wasn't really the best allocation of my available writing time.  Often just getting the articles to display properly took more time and effort than composing and editing the text, not to mention the sheer number of keystrokes it took to hand-craft HTML.  A much simplified (and shortened) version of one of my articles might look like this:

    <html>
      <head><title>The problems with directly editing Hypertext Markup Language</title></head>
      <body>
        <h1>The problems with directly editing Hypertext Markup Language</h1>
        <p><a href="http://www.w3.org/MarkUp/html-spec/html-spec_toc.html">Hypertext Markup Language</a> is a wonderful means of exchanging
        information over the <a href="http://www.w3.org/">World Wide Web</a>.  The text surrounded by the  &lt; and  &gt; symbols give basic
        instructions which allow the web browser to render the document correctly.</p>
        <p>The problem of course, is that I have to focus on not only the flow and logic of what I have to say in the article, but details of page
         layout as well</p>
        <p>This creates a time consuming and error prone editing process,  not to mention the necessity to learn two unrelated skill sets.  And when
        other technologies such as embedded audio and video, online shopping carts, database access, and dynamically created content based on
        user input come into play, the whole package rapidly overwhelms the skill set of most writers or designers.</p>
      </body>
    </html>


    Depending on the amount of time I put into the web page the quality of either the document, or the display (look and feel) of the document could vary wildly.   Some of my worst articles had beautiful appearance, and some of my best articles were almost unreadable because of sloppy visual presentation.

    While there are a number of truly Renaissance individuals out there  who are able to write wonderful literature with beautiful graphics, and to program the website to accept user input, and render the page in an attractive and readable manner, these individuals are  not the norm.  Usually programmers are good at programming, graphic artists are good at graphic art, and writers and editors are good at writing and editing.


    Pre-defined templates, and markup editing systems like Bluefish or Dreamweaver alleviate the problem somewhat, but creating large scale collaborative websites involving multiple writers and often multiple editors require a more complete solution.  It became increasingly obvious that systems were needed which would allow a writer to craft an article, upload it in a simple manner, and let the software deal with details including, but not limited to,   font, header information, page layout, and support utilities such as user comment text entry boxes and writer contact information.

    This is where Content Management Systems come in.

    The term Content Management System (CMS) usually refers to a general and full featured framework such as the free and open source Drupal or Joomla, or any of several proprietary systems, although more specialized blogging software does fall within Content Management.   

    I'm going to use Drupal as an example, because it's the Content Management System I've used most.  It's a large free software project with a very  active development community.

    The learning curve for getting Drupal set up can be a bit daunting.  If it's done from scratch it can involve the following steps.  Don't worry if you have no idea what the following steps really mean.  I'm just making the point that the initial setup and design can require some specialized skills.  It can involve  setting up and configuring a web server (usually the Apache webserver), linking the Drupal site to a database system (usually MySQL or Postgres), and if any custom work is needed on the site (beyond the thousands of modules available for download) some programming in the PHP language may be necessary.  It also involves decisions about the layout and design of the website, what functionality the site needs (does the site need blogs?  articles?  user comments? login and subscription?  a forum?  a shopping cart?).  After those decisions are made modules to accomplish the tasks need to be chosen, and options for the use of those modules and page placement needs to be configured, and a theme needs to be either chosen or developed to give a consistent look and feel to the site.

    After all this is done, though, writers can concentrate on writing, visual artists can concentrate on producing artwork, and the technologists who run the site can focus on the routine tasks of updates and troubleshooting.

    Fortunately many web hosting environments have the installation of Drupal or Joomla! already handled, and you can activate it with a single click.  Also there are many contract programmers and consultants who can work with customers on designing and configuring a Drupal or Joomla! site.

    For more information on Content Management Systems the following links might be useful:
    For general descriptions and definitions:

    The Wikipedia article on Content Management
    The Wikipedia article on Content Management Systems


    On particular implementations of CMS

    Drupal's home page
    Joomla's Home page

    Books about Content Management and Content Management Systems

    Content Management Bible
    Content Management for Dynamic Web Delivery
    Enterprise Content Management Methods: What You Need to Know

    Managing Enterprise Content: A Unified Content Strategy
    Content Management Systems (Tools of the Trade)
    Content Management Systems for Libraries: Case Studies
    Professional Content Management Systems: Handling Digital Media Assets
    Using Drupal
    Pro Drupal Development, Second Edition
    Front End Drupal: Designing, Theming, Scripting
    Joomla! 1.5: A User's Guide: Building a Successful Joomla! Powered Website (2nd Edition)
    Using Joomla: Building Powerful and Efficient Web Sites
    Joomla! Start to Finish: How to Plan, Execute, and Maintain Your Web Site (Wrox Programmer to Programmer)

    Saturday, April 24, 2010

    Drupal 7 slower but more scalable


    Drupal, the powerful and popular free and open source  Content Management System will be slower, but more scalable and more easily able to handle larger sites in version 7, which will probably be released sometime between June and September of this year. Scalability can imply a number of things in systems design, but in this context it means the ability to increase the size or load of a system without thoroughly redesigning the system itself. This is desirable if a web site is either a large and complex one or starts off small and experiences rapid growth.

    The article Drupal Upgrade to Be Slower but More Scalable on the PCWorld website reports on Drupal project founder Dries Buytaert's statement on the release at the DrupalCon meeting in San Francisco.

    For a shorter summary here's a clip from the YouTube channel BCS1957.

    Friday, April 23, 2010

    White House Web Team Releases Drupal Modules


    The White House technology team released four Drupal modules to the free software community (as described in an article from Ars Technica).

    Drupal is a free, open source Content Management System (CMS).

    The main purpose of a CMS is to allow people who are collaborating on a website to post content without writing the code (HTML, Javascript, among others) necessary for the site to be displayed in a browser.

    Content Management systems are in part based on the reality that writers are not web designers, and visual artists are not programmers.  The systems automate and modularise the work so a writer can focus on their craft without worrying about the details of how it gets displayed, and it also allows for a great deal more automation of common website behaviors.

    So in the case of say, an online newspaper, the web designers set up the CMS framework, so that the journalists, editors, and photographers can focus on generating the content without also having to become programmers or web designers.  Once the content is generated, the journalists and photographers just upload their work, the editors exercise control over what gets posts, and the content management system takes care of the details of managing and displaying that content.

    In the case of Drupal, programmers write modules to handle  a certain task.  One example would a blog module.  Another would be a module to accept and handle comments to a blog.  Another might be allowing an article to be downloaded as a PDF file.  These modules are made available to the development community, and can be freely downloaded and used by website designers.

    The White House website uses Drupal to manage its content.  The WH  technology team developed a few specialized modules and released them so that other designers can use them.  In my view this is a great service to the Drupal community and the community of Drupal end users, and they should be commended.