Forging The Future 5/19/12 — 2:41 UTC

Before You Lies A Riverscape That Features The Sun Relfecting Off The Hudson River Thrugh Cirrus Clouds As Seen In Ossining, New York.

News and Views from The Institute for End User Computing!

Kent L. Norman Rotates Out to The IEUC Advisory Board

April 2nd, 2012

After many years of loyal service on The Institute for End User Computing, Inc.’s Board of Directors, Professor Kent L. Norman of The University of Maryland has stepped down due to time constraints, effective as of this date, to rotate out to The IEUC Advisory Board.

His input and research over the years has been and continues to be a source of inspiration for us all and we shall always consider him a treasured member of our IEUC family.

Apple to Open Source Mac OS Classic & Newton OS and Port Rosetta & HyperCard to OS X Lion

April 1st, 2012

Our Moles in Cupertino report that in a startling reversal Apple will return to its roots with a series of bold moves to reward its most loyal early adopters. Among these exciting developments are plans to:

  • Open Source Mac OS Classic & Newton OS
  • Encourage the Open Source Community to Resurrect Its Orphaned Technologies like Open Doc and Voiceprint Login
  • Have its own Engineers Port Rosetta & Hypercard to OS X Lion
  • Update its license terms to explicitly permit Virtualization of Leopard & Snow Leopard Client on OS X Lion
  • Re-Assemble the Apple Advanced Technology Group
  • Appoint a Legacy Hardware Support Czar to insure that any Mac ever sold can be kept running forever

Our Development Peephole – Purple Numbers

March 14th, 2012

Over these last few winter months we have been making significant headway in retooling for the latest new web technologies. Given the scholarly nature of our work, one of the key features we are working to implement is a system of anchors and links that will make it possible to link to specific paragraphs and bullet items on our pages.

Such deep links are called “Purple Numbers” and they can trace their roots back to the famous Augment/NLS hypertext system developed by Douglas Engelbart.

In our implementation we will be providing stable Statement ID’s that can be preserved through round trip editing of previously published content even as page elements are reorganized.

A separate set of Hierarchical ID’s will reflect the dynamic outline structure of a page’s content making it possible to link to the most current version of a particular section in the outline.

We are also planning to offer a Verbatim ID that will link to an exact quote as it existed when bookmarked regardless of where it might appear in subsequent versions so long as it’s content remains unchanged.

What did you think of your first programming class?

January 5th, 2012
There are a number of different approaches to teaching programming. Some walk through one language and introduce its features in writing a series of small programs. Other courses might dive in with a “code reading” approach. Ever more popular are offerings built around using graphical programming environments to drive animations or script robots. Traditionalists might build a course around “The Structure and Interpretation of Computer Programs” and heavily emphasize theory.

Here at the IEUC we would very much like to hear from you about your experiences with any of these models. If you are a student or would like to share recollections of your student days, please email us so we can sample your opinions of what works and what doesn’t from a student’s perspective. Also if you’ve taught such a course, we would be equally eager to get your perspective as well!

In any case, we look forward to your email.

Book of the Day ::: The Architecture of Open Source Applications

January 4th, 2012
While there are countless books about writing small programs,the real test of one’s skills comes when you tackle a large project, perhaps with a group of colleagues. As the number of lines of code rapidly mounts it becomes nessessary to think about how to organize it all.

The Architecture of Open Source Applications is an incredibly valuable source of illumination in this regard, since it shows you how others have tackled this very challenge. You can read it online or procure a hard copy to join the contributors in exploring the design of 25 impressive pieces of Open Source software.

Resolve to Learn How to Program

January 3rd, 2012
If you haven’t chosen a New Year’s Resolution, why not resolve to learn how to program? It can be an incredibly rewarding experience that might even help you land or hold onto a job. Best of all, it is incredibly empowering to be able to bend a machine to your will and come to the perhaps startling realization that you are no less capable of creating useful tools than those other guys and gals who created the high tech cocoon in which we live.

It won’t be easy at first, but it truly can change your life, and we are here to guide you through the process. All you have to do to start is to reach out and contact us!

Function of the Day ::: Bijective Hexavigesimal Encoding in Ruby

January 2nd, 2012

Have you ever noticed how column headers are labeled using letters instead of numbers in a spread sheet? After running from A to Z, the sequence picks up with AA to AZ, then AAA to AAZ, and so forth.

This is a Base-26 (i.e. hexavigesimal) encoding, that doesn’t employ any of its symbols to represent zero (i.e. bijective). As such it is only defined for the Counting Numbers (i.e. 1, 2, 3, …)

This is can be implemented in the Ruby programming language with this utility function:

def bijective_hexavigesimal(n)

   #  Copyright 2012 by Peter J. Wasilko and The Institute for End User Computing, Inc.
   #
   #      Website: http://www.ieuc.org
   #
   #      Email:   info@ieuc.org
   #
   #   Converts a Counting Number to Bijective Hexavigesimal form.
   #
   #      Example: bijective_hexavigesimal(27) => "aa"
   #
   #      Tested under Ruby 1.9.3p0
   #
   #   Please use freely for any non-commercial purposes.
   #

   if ((n < 1) || !(n.is_a? Integer)) then
      raise "Bijective Hexavigesimal encoding is only defined for counting numbers"
   end

   alphabet = %w[a b c d e f g h i j k l m n o p q r s t u v w x y z]

   hexavigesimal_digits = []

   while (n > 0) do
      remainder = (n - 1).remainder 26
      hexavigesimal_digits.unshift alphabet[remainder]
      n = ((n + 1) - remainder) / 26
   end

   return hexavigesimal_digits.join.to_s

end

Happy New Year!

January 1st, 2012

From all of us at the The Institute for End User Computing, Inc., may you and yours enjoy a happy, healthy, and prosperous New Year.

Out Latest Reports & Filings Are Now Available!

December 23rd, 2011

Seasons Greetings!

We are delighted to wind down the year by adding several new reports and filings to our Online Archives. You may now follow these links to review:

The Minutes of our 2011 Annual Meeting are still in production and will be available soon.

If you are a resident of New York State, please consider sending a tax deductible donation in any amount to The Institute for End User Computing, Inc., Box 1717, Ossining, NY 10562 so we can continue to serve you!

WordPress 3.3

December 23rd, 2011

We have just upgraded to WordPress 3.3 without incident.

The IEUC’s Ninth Annual Meeting

December 12th, 2011
The Institute held its Ninth Annual Meeting on Friday, December 9th, 2011 voting to retain its current slate of officers and directors in the coming year.

In Memoriam ::: Steve Jobs 1955 – 2011

October 9th, 2011
We extend our deepest sympathies to the family and friends of Steve Jobs. It is impossible to understate his impact on the course of personal computing.

My first computer was a Macintosh 512K Enhanced, which was about as powerful as some high end sports watches these days. But it saved me from having to reach for the re-write cartridge on my trusty old Smith Corona typewriter and came with the “telephone book” promotional copy of Inside Macintosh. I can proudly say that The Institute for End User Computing was born out of that book, which opened my eyes to the potential of programming by demystifying what goes on inside the machine.

Steve’s triumphant return to Apple is a story that brings hope to every founder who has been ushered to the door by backers seeking more professional management and his design sense will inspire us for years to come.

So as we reflect back on Steve’s life and accomplishments, we shall miss his fearless willingness to imagine different ways to do things, to risk failure, and to try to change the world again and again.

What made Steve unique was not that he possessed these gifts, but that he had the courage to use them!

On VL/HCC 2011

September 26th, 2011
I would like to express my deep gratitude to the organizers and participants in last week’s IEEE Symposium on Visual Languages and Human-Centric Computing. It was one of the best meetings I’ve attended to date, and everyone’s enthusiasm and world class scholarship made it a most illuminating and invigorating experience!

I will be touching on some of the highlights of the Symposium in the days ahead and getting back to colleagues with a few promised literature citations. If you attended the conference and would like me to dig up specifics on anything we chatted about, do feel free to drop me an email and I’ll get back to you as quickly as possible.

Tools of the Day ::: Algorithm Ink & StarLogo TNG

September 16th, 2011
Rounding out our look at algorithmic art, we commend to your attention a wonderful essay on ContextFree.js & Algorithm Ink: Making Art with Javascript and its associated gallery & interactive editor site, Algorithm Ink which extends the Context Free Art system we discussed earlier this week.

Also of significant interest is StarLogo TNG, which extends the basic StarLogo with a next generation Tile Based Interface which employs a stylized jigsaw puzzle metaphor inspired by the Scratch visual programming language to help users construct grammatically valid code. This approach can actually trace its origins back at least as far as E. P. Glinert’s proposed Pascal-BLOX rerpesentation of control structures in his paper, “Towards ‘Second Generation’ Interactive Graphical Programming Environments,” IEEE Workshop on Visual Languages (June 1986), pp. 61-70.

Tool of the Day ::: StarLogo

September 15th, 2011
Another programmatic way of producing graphics with artistic potential is use a graphically oriented programming language to build a simple simulation whose emergent properties (i.e. how its rules play out over time) produce interesting effects.

The StarLogo language is ideally suited for such explorations, as is evident form the sample projects showcased on its website. Like our other tools this week, StarLogo features a simple IDE and plenty of documentation.

Tool of the Day ::: Context Free Art

September 14th, 2011

In keeping with this week’s theme of tools for creating artistic visualizations, one might want to consider using Context Free Art.

This system is particularly well suited to generating fractal graphics as is evident from its sample gallery, although it also features the ability to draw on randomness and probability to create even more organic looking images.

Tool of the Day ::: Nodebox 2

September 13th, 2011
NodeBox 2” bears considerable similarities to “Processing” in that both provide powerful environments for creating advanced visualizations.

However, “NodeBox 2” exposes the full power of the Python programming language and features a richer array of add on libraries that make it more suitable for use in some projects. It also supports an intriguing graphical data-flow programming language for connecting tiles representing various opperations as an alternative to writing raw Python source code.

Tool of the Day ::: Processing

September 12th, 2011
Processing” is a programming language and development environment for the creation of artistic visualizations with a very strong online user community. It has occasionally been employed as more of a scientific visualization tool for researchers in the humanities. The system was originally intended to teach programming concepts and it is well worth exploring in that regard.

In Memoriam of 9/11 ::: Through End User Computing, We Shall Never Forget.

September 9th, 2011

All too often we think of End User Computing in service of entertainment or business needs. But as we approach the tenth anniversary of the barbaric attacks against the World Trade Center we can see how much more meaningful it can be.

Consider the example of life long New Yorker, Brian August, who came to the troubling realization that people’s memories of the Twin Towers were beginning to slowly fade with time. Rather than sit by and watch us drift down a road that might one day lead to 9/11 deniers questioning whether they had really been there, he seized upon the potential of modern cell phones and tablets to determine their location and orientation in space to create 110 Stories.

110 Stories is a social application of augmented reality that lets users within sight of where the Twin Towers once stood to see a composite of today’s skyline with a stark outline of exactly where the towers would appear had they not been destroyed on that dark day.

As users experience the poignancy of seeing just how tall and massive they had once been and realizing the true magnitude of our loss, they are then invited to capture a photo of their augmented perspective and share their thoughts and stories through a linked website in fifty words.

Mr. August created this touching tribute by assembling a solid team of collaborators backed with End User and corporate contributed financial support permitting the App to be offered to the public free of charge.

We owe a great debt of gratitude to him, his colleagues, and all of the supporters of his landmark project.

And as always, we shall never forget those who perished because of any of the attacks on 9/11, nor those whose lives were touched by their loss.

Educator Outreach

September 8th, 2011

We would very much like to hear from any faculty members offering programming courses this semester so we can compare notes on pedagogical approaches. Areas of interest to us are:

  • At what level are you teaching?
  • What language(s) have you chosen and why?
  • How are you planning to balance theory and practice?
  • What text(s) are you adopting?
  • How do you evaluate your students’ progress?
  • If you have previously taught similar courses, what concepts were the hardest to convey and how have you changed your approach as a result?

Paper of the Day ::: How to Learn Programming Languages

September 7th, 2011

Students embarking on the study of computer programming, would do well to read How to Learn Programming Languages by Ben Deverett. This short article appearing in XRDS: Crossroads, The ACM Magazine for Students provides a nice overview of why there are many programming languages and how to approach learning one.

We find the advice to consider a language’s historical origins particularly wise, although we would beg to differ somewhat with Mr. Deverett’s recommendations to learn a popular language when you need to use it which seem to make the tacit assumption that you will doing so to turn out a demo or production system (in which context they make perfect sense).

Instead, we recommend that you start to develop a solid theoretical understanding of programming languages before deadlines loom. This is best achieved with a LISP dialect or through reading a solid comparative study of multiple languages.

Our 2011 Fall Semester Kickoff!

September 6th, 2011

We hope you all had an enjoyable Labor Day weekend and a wonderful Summer as well.

Like you, we are most eager to kickoff the Fall Semester. Over the Summer we have been working towards a Mobile Friendly HTML5 revision of our web pages. But it may be some time before our new page templates are ready for production use. Making things as useable on a cell phone as a wide screen monitor is a serious design challenge that we are still grappling with.

There has been a lot of activity on the Public Policy front of late with a growing sense of urgency about the problem of Patent Trolls who are systematically targeting the engines of innovation in the computer industry, with attempts to use highly dubious Software Patents to go after corporate giants and solo developers alike.

At the IEUC we are closely monitoring this issue and will do our best to keep you informed.

On the Education front, we want to hear from students interested in learning to program and would very much like their thoughts on what works and what doesn’t in any programming courses they may be taking.

In terms of Research, our near term interests are tightly focused on End User Programming and finding ways to use multi-modal interfaces to make Computational Thinking easier to approach. We will probably be employing the latest generation of Web Browsers and/or Android as our research platform in this regard. So if you are a programmer and would like to help, please contact us!

Finally, we are always looking for volunteers and potential Board candidates to join our ranks.

Happy 4th of July!

July 4th, 2011
On this Independence Day we honor the nation and values that brought us the personal computer. We trust in the wisdom of the founders and look to the future with boundless optimism.

Platform Peril ::: Convenience v. Control and the Meaning of Ownership

June 24th, 2011

Maintaining a real computer can be a serious annoyance at times. Regardless of which operating system you call home, you will be buffeted by an endless stream of security patches and upgrades and it never ceases to amaze us that no vendors have yet to launch marketing campaigns touting their ability to write secure bug free code!

Of course, even if a vendor writes quality code in house, glitches keep popping up in software libraries that are shared by countless client programs, causing the need to fix a bug in a single library to ripple through the eco-system. Moreover, since vendors don’t disclose where they get third party code or the exact nature of most patches, End Users can’t identify the original sources of the bugs or use that knowledge to procure code from more reliable programming houses.

Sadly, rather than tackling the root causes of low quality software on the desktop, we have seen a move by some platform vendors to leverage this sorry state of affairs as a way to seduce End Users into migrating to arguably more convenient systems that use contractual and architectural measures to trap their users in Walled Gardens, where no problem can be solved without making yet another purchase.

In return for transparent updates and backups along with the promised convenience of a curated store that will ostensibly hold a turnkey solution to our every need, we give up the power and generality that makes personal computing so transformative. Instead, of providing powerful means of abstraction and combination, we are faced with a thousand roach motels for our data which is always kept just out of reach.

Instead of empowering End Users and teaching them the sense of personal mastery that came with the Personal Computing Revolution, these new platforms breed dependence and centralize a level of power in the hands of platform vendors who now enjoy the power to kill disruptive technologies, censor their application, and effectively prevent End Users from exercising traditional rights of ownership to tweak and modify their property and freely contract with third parties. This weakens the meaning of ownership to the point that it looses all meaning.

Such systems are the technologies of George Orwell’s 1984 and End Users would be well advised be wary of the slippery slope on which we now tread.

David O’Toole raised some very cogent points in his blog posting Apps Considered Harmful: Part 1 that inspired these remarks and parallel our thinking.

Community Outreach ::: Summer Tech @ The IEUC

June 23rd, 2011

As part of our ongoing educational and community outreach, we would like to hear from any students in Ossining, New York and the surrounding communities who are interested in learning to program computers and/or develop websites over the Summer.

Depending on the number of participants and their level of interest, instruction may be individualized via email correspondence or provided in person by having participants meet as a group somewhere in the community.

Instruction will be provided free of charge to suitably prepared students at the high school level and above. The Institute is happy to customize the material presented to best meet student needs from introductory level through advanced graduate topics.

We would also be happy to explore the possibility of providing similar services to any adults in the community who want to master such skills.

The IEUC would also like to work with any Pre-Service and In-Service Teachers who are currently teaching or would like to develop computer science course offerings for students in the area. We can help in identifying instructional materials and assist in curriculum development. If you are a teacher who wants to learn to program over the Summer so you can introduce your students to this exciting field in the Fall, one-on-one instruction can be provided.

We will also consider working with select students and teachers from other communities if we have sufficient time and resources to accommodate them.

These notes from the field hold our latest thoughts and research pointers. Those of lasting value will be merged into our main website as time permits.