12/20/12

The Floppy End


I've used and abused my share of removable media for computers. I don't remember whether this dependency started with the cassette tape drive for my Vic-20, or the punch cards and paper tape used by the occasional mainframes or Telex from my past, but those were passing fads compared to the floppy disk which has endured lo these many years.

I recall the Frisbee-sized 8 inch floppy disks in my assembly language class in college, and only a year later those seemed archaic next to the 5 1/4" disks used by PCs.

The 5 1/4" disks could store a whole 360KB, or 720KB if you paid for the double-sided disks. "Double sided" meant removing the disk from the drive and flipping it over so you could write to the backside.  At the time it cost extra to for double-sided, until I learned you could use a fingernail clipper to chip out a hole on the disk, making a single-sided disk writable on both sides. During CS classes at Oregon State I'd fill a whole floppy disk carrying case with class projects -- nearly 1 MB of programs on 10 disks!

True to their name those disks were floppy, both the casing and the disk inside, so it was a bit of a digression when the 3.5" high-density disks arrived on the scene and they harder and more compact. The benefits, however, of storing over a megabyte of data on a single disk overcame any disappointment I may have had.  I think I remember installing Microsoft Windows 3.1 from 13 floppy disks, oblivious to the pregnant pauses as I swapped from disk to disk.

Later I had the Bernoulli Box, the iOmega Zip drive, and other obscure storage devices, but they were passing fancies. Data stored on them was ephemeral, lost with each iteration of dead media, but the floppy drive reliably appeared in each new computer I bought. Today, even with the advent of USB flash drives, most desktop computers often come with a floppy drive. I take it for granted it will be there, like the cigarette lighter in a car, or the coin pocket on a pair of Levi blue jeans.

That assumption changed recently. I've been coaching a First Lego League team, and the kids didn't seem to understand when I said "Click on the floppy disk to save your program."  They looked at my blankly, and I found myself explaining the [Save] icon to the kids.
Me: "It's a floppy drive, like you're saving to a disk."
Kids: "What's a floppy drive?
Now, I've seen hundreds of software vendors, from Microsoft on down, use an image of the 3.5" floppy drive to signify saving your work.  The floppy disk drive has become an icon, right? Both literally and figuratively.  But these kids taught me that the icon is fading.  The upcoming generation of computer users doesn't even know what it means to have to save.  My son often reminds me that in google docs your work is always saved automatically.

I read this article where Apple has dropped the CD disk drive from their latest iMac.  The first iMac in 1998 was one of the first computers to forgo the floppy.  Rather than sympathy, they practically exude scorn for the fading technology:
"Over time, an optical disc will be as much of an historical curiosity as a floppy disk," said Michael Gartenberg, a tech-industry analyst with research firm Gartner Inc.

"These old technologies are holding us back," says Phil Schiller, a marketer at Apple. "They're anchors on where we want to go. We find the things that have outlived their useful purpose."
I appreciate the goal of these marketeers, striving for a better product, a new shiny thing that grabs your eye, but I can't help but feel like we're losing something.

Maybe you can tell I'm old by my hardware, but we still need a save point.  In this era of "always on" internet, instant entertainment, live streaming and toss-away digital images, we need something that anchors to a page, holds the moment for more than a moment.  Before personal computers, I remember reading my dad's paperback books and finding notations in the margin. This was both his way of making a save point, as well pointing it out to someone else.  It was a blog that was even more personal than most, shared only with the few people who read the book.

I mean, the whole point of all this saved data is to use computers to share it with people.  A spreadsheet, an address book, a photo, a video, a blog, they are all ways to leverage the digital might of the computer and pass information along to others.  Sometimes it takes an icon to remind us to save.  Recently I had one of those moments.

A couple weeks ago I was exploring the basement with my son. He had told me that he wanted to put together his own computer, and I was pulling out old hardware to see if anything was still useful.  He got into one box and found my old orange floppy disk carrying case, one with a lever that, when turned, could splay out the ten disks in a fan so you could read their labels.

"That's pretty cool," he said.  "I wish we still used floppies like this."

I looked at at him, admiring my old disk carrier in the same way I used to browse through my dad's bookshelf, and made that one of my save points.


Enhanced by Zemanta

Accordion Shape - Found Poetry

Here's a found poem from IMDB, ready for adaptation into a romantic comedy with international intrigue.
From the cute meet on the street with the girl playing the accordion, to the cloak & dagger of the Oslo accord, and then to the climax with our heroes smashed into an accordion shape and a happy resolution.



Here are the links to the movies which should be used as references during the writing of this classic.
playing-accordian (5 titles)
accordion (343 titles)
awkward-sex (4 titles)
oslo-accord (2 titles)
jakarta-indonesia (19 titles)
socially-awkward (33 titles)
smashed-into-an-accordion-shape (5 titles)
smashed-into-accordion-shape (16 titles)
awkwardness (113 titles)
awkward-kiss (8 titles)

11/6/12

Election 2012 - A Look Back at

It seems like one of the key strategies for some camps this year is to win by preventing others from voting. I've been saving up these bits of info, but haven't had a chance to post them all together. If there's one day urge people to vote, I guess today's the day.

This bit of news from Reuters from October, 2012 explains that "In Florida, Virginia and Indiana, voters have received phone calls that wrongly told them there was no need to cast a ballot in person on Election Day because they could vote by phone."  It goes on to also mention "In Ohio and Wisconsin, billboards in mostly low-income and minority neighborhoods showed prisoners behind bars and warned of criminal penalties for voter fraud - an effort that voting rights groups say was designed to intimidate minority voters."

Earlier, in September, Politicol News reported that the Romney campaign hired a company called Strategic Allied Consulting which was involved in various voting scams. This article says that the Florida Supervisor of Elections accused the company of shredding Democrat voter registration forms in Florida, North Carolina, Virginia and Colorado.  It also ran a campaign in Florida to diminish democratic votes.  On top of that Election officials are investigating voter registration cards that were shredded or destroyed by the firm, and signatures were altered or changed on others.

A month earlier, in August, The Nation described a plan by Ohio Republicans to limit early voting hours in Democratic counties, while expanding them on nights and weekends in Republican counties.  The Nation implied that these restrictions were racially targeted:

"GOP Chair Doug Preisse gave a surprisingly blunt answer to the Columbus Dispatch on Sunday: “I guess I really actually feel we shouldn’t contort the voting process to accommodate the urban—read African-American—voter-turnout machine.” Preisse is not some rogue operative but the chairman of the Republican Party in Ohio’s second-largest county and a close adviser to Ohio Governor John Kasich."
Luckily, these discrepancies were resolved, as BusinessWeek reported in August. "Ohio’s 88 counties will have uniform early voting hours to ensure residents casting ballots in the presidential election are treated equally, Secretary of State Jon Husted said."

A couple of states, notably Florida and Colorado, attempted to reduce voters by purging supposedly obsolete names.  The News Service of Florida said that initially 2,600 voters would have been removed from the rolls, but after review that list was narrowed to only 207 names.  This whittling away of votes is especially ironic in this state, as Florida Secretary of State Ken Detzner mentioned: “We want every Florida voter to be confident that their vote is protected and not hurt in any way by the illegal activity of others...We know that every vote counts, especially here in Florida where only 537 votes decided the presidential election in 2000.”

Colorado Secretary of State Scott Gessler also planned to try to purge 4,000 voters from his state's list of eligible voters.  As Think Progress reported in September, he mailed letters to 4,000 voters asking them to  prove their citizenship.  After 90% of the first 500 people to respond were verified as US citizens, he gave up his quest.  The bad news, however: "Instead, he is handing over the names to county clerks who may challenge them at the polls or when they receive absentee ballots. "

And, in general, states are trying to erect new barriers to voting. CBS News reports that "As many as 700,000 minority voters under age 30 may be unable to cast a ballot in November because of photo ID laws in certain states, according to a new study. The lower turnout could affect several House races as well as the tight presidential contest."

Even local elections have been affected by these tactics.  In Oregon, Clackamas County Clerk Sherry Hall has been accused of tampering with the ballots to the benefit of Republican candidates. 

So, if you haven't yet voted for the 2012 election, this is your chance to cast a ballot to make your voice heard. Don't let intimidation, marginalization or scare tactics stop you from voting.

10/23/12

Romney Flunks Geo Quiz

I have to wonder why someone would say this when they don't know that it's true:
ROMNEY: "Syria is Iran's only ally in the Arab world. It's their route to the sea."
I heard him say it during the debate, and thought it was weird to assert that, but maybe he knew something I didn't.  Then I saw it mentioned again in this article from the Guardian.  According to them, Romney has made the same mistake "at least five times before."

Here's a map of the area. I don't think Romney has looked at it -- it's pretty clear.  So, why is he asserting this misinformation?


7/6/12

Programming for Kids - Maze Solution

Here's the solution I came up with for running the maze.

The logic is based on something I read in a Batman comic long ago: If you're stuck in a maze, keep your left hand on a wall and you'll eventually get out.  (The same logic works if you're in a series of tunnels, or a cave, or possibly even in an evil villain's lair.)

Programming for Kids

Lately I've been thinking about how to get my kids more interested in programming.  When I was a kid about the only free programming language was the version of Basic that came on a Radio Shack TRS-80 computer. Everything else either ran on a mainframe, or required purchasing a fancy compiler.

Nowadays there's a glut of languages.  It seems like the closest relation to Basic in the 21st century is Javascript.  It's an interpreted language, runs in a sandbox environment so you can't do much permanent harm, but powerful enough that you can create some pretty cool projects.

Looking around the Internet for kids programming projects, I found Blockly, a web-based graphical programming editor that converts to Javascript. One demo project: write a Blockly program that runs this maze.


Click here to see the solution that I came up with.

5/31/12

Percentage of Chart Which Resembles Pac Man

The always-funny, self-referencing pie chart "Percentage of Chart Which Resembles Pac Man."
I did this using this Google Chart Generator, which is useful for putting together a URL for a Google Chart.

3/13/12

If Shakespeare texted...

STRATFORD-UPON-AVON, ENGLAND - JUNE 27:  An ic...
Image by Getty Images via @daylife
2 B, or nt 2 B: dats d Q:
Whether 'tis nobler n d mind 2 suffA d slings n arowz of outrageous fortuN,
Or 2 taK arms agenst a sea of trblz, n by opposing Nd em?
 2 di: 2 zzz; No mor;
 n by a zzz 2 sA we Nd d heart-ache n d K naked shox dat flesh S heir 2,
'tis a consummation Devoutly 2B wish'd.
 2 di, 2 zzz;
 2 zzz: perchance 2 drm: ay, there's d rub;

With apologies to the bard. Translated using this page.
Enhanced by Zemanta

2/24/12

Corollary to the "Mythical Man-Month"

This "Dopey Don" comic is from a 1952 "Rocketman" comic.  It made me think of Fred Brooks' book, The Mythical Man-Month. Brooks' assertion is that "adding manpower to a late software project makes it later."  I've seen many software projects where well-meaning managers attempt to speed it up by adding more people.  Part of Brooks's thesis is that adding more people requires more overhead in the form of training and communications, but there's also the instability of a system under change, the baggage that each person brings to the project, and the hard reality that any complex system will have a certain number of errors.

In Dopey Don's case it's a hardware problem, but he still succinctly disproves the misconception that you can hurry any project by adding more people to it.

2/1/12

My Lego Reference Page

This sets of links originally from this page at the First Lego League website, but I'm going to keep a copy here for your reference & mine.




Books 
The Unofficial LEGO Builder's Guide
The LEGO Technic Idea Book: Wheeled Wonders
The Art of LEGO MINDSTORMS NXT-G Programming
Forbidden Lego: Build the Models Your Parents Warned You Against!
Lego Crazy Action Contraptions

The Having of Wonderful Ideas: And Other Essays on Teaching and Learning
Creative Projects with LEGO® Mindstorms¿
Ferrari, Mario, Ralph Hempel, ed., Giulio Ferrari. Building Robots with LEGO MINDSTORMS. Syngress Publishing, 2001.
Kelly, James Floyd. LEGO Mindstorms NXT-G Programming Guide. California: Apress, 2007.
Wang, Eric. Engineering with LEGO Bricks and ROBOLAB. 2nd ed. Knoxville:  College House Enterprises, LLC, 2004.

Building

  • ldraw.org - LDraw™ is an open standard for LEGO CAD programs that allow the user to create virtual LEGO models and scenes. LDraw is and always will be offered free of charge.
  • brickplayer.com - Private, independent website featuring LEGO sculptures, mosaics, news, reviews, and building tips & tricks.
  • brickjournal.com - BrickJournal is a magazine that spotlights the many aspects of the LEGO Community. Events, people, and models are showcased in every issue, with a couple of surprises too! BrickJournal journalist Joe Meno is always found at the FLL World Festival.
  • brickshelf.com - Cool LEGO building stuff.
  • peeron.com - More cool LEGO stuff, including a list of parts numbers and names; color chart, sets, building instructions (often old item no longer available on www.LEGO.com)
  • classic-castle.com - For LEGO castle aficionados
  • bricklink.com - Premium venue for individuals and businesses from all around the world to buy and sell new, used and vintage LEGO® through fixed price and auction services
  • brothers-brick.com - The Brothers Brick is a LEGO blog for adult fans of LEGO
  • lugnet.com - International LEGO Users Group Network, a global community of LEGO enthusiasts. LUGNET unites LEGO fans worldwide through forums, web pages, and services.
  •  The Art of LEGO Design by Fred Martin- A slightly outdated, but still very useful guide to building with LEGO. This document covers building robots that don't fall apart!

Programming
  • NXT Programming Tutorial
    Downloadable, excellent introductory and advanced programming tutorials for NXT. Provides step-by-step guidance and explanations of the skills needed to create simple and more advanced NXT-G robot code. You may download and use the tutorials in a classroom or team setting, or distribute to the group to learn on their own.
    NXT Programming Tutorial (IN SPANISH)
  • pdf iconProgramming Tips
    Quick programming tips for any FLL coach, with answers to some commonly asked questions.
  • pdf iconTeam Practice Activity (Mini-Challenges)
    Helping the team gain the programming skills they will need is a hard job for the coach. This document will guide you, the coach, through practice sessions with your FLL team. These exercises are designed to point the way to the skills the team will need to solve the Challenge. Your team can use these exercises before the season begins, or as you see a need during the season. You may choose sections to learn specific skills, or complete the entire training. Depending on the team’s learning curve, to complete all the exercises will take from five to ten hours.
    pdf iconFIRST Place Scooter Instructions
    Instructions for the optional training robot to go with the above training activities.
  • pdf iconFIRST Place Scooter Light Sensor Addition Instructions
    Instructions for the light sensor addition to the above robot.
  • pdf iconFIRST Place Scooter Touch Sensor Addition Instructions
    Instructions for the touch sensor addition to the above robot.
  • pdf iconFIRST Place Scooter Rotation Sensor Addition Instructions
    Instructions for the rotation sensor addition to the above robot.
  • pdf  iconROBOLAB Starter Sheet - Specific to ROBOLAB 2.5.4
  • NXTLOG, from LEGO.com
    Share and archive your LEGO® MINDSTORMS® NXT projects, and get inspired to build with NXT from the MINDSTORMS Community
Curriculum
  • GEAR-Tech-21
    This free comprehensive curriculum includes six to nine activity modules introducing robot design, building and programming for the LEGO NXT to get your FIRST team started. For teams that want to expand their knowledge for the next year or explore additional topics, additional modules will keep your youth engaged in STEM year-round. Developed specifically for informal education programs by Nebraska 4-H, GEAR-Tech-21 is adaptable for camp, club, team, afterschool program and in-school program use. All activities are referenced to national science, technology, mathematics and life skills standards.
  • Carnegie Mellon CurriculumThe most comprehensive FIRST LEGO League robotics and engineering curriculum we have seen. From the Robotics Academy of The National Robotics Engineering Center and Carnegie Mellon, there are two items available here. First, a free robotics curriculum,a project involving many teachers, university faculty, engineers, and others. The outline covers almost everything you could want, but as it is an incomplete version a few documents are missing here and there. Available in English or Spanish, this school robotics curriculum is in depth coverage of the concepts involved in building and programming a robot. Next, based on this original material, a completed curriculum is available for purchase on CD. Also from Carnegie Mellon - Introductory training materials for LEGO MINDSTORMS robot and TETRIX
  • pdf iconThe Art of LEGO Design by Fred Martin
    A slightly outdated, but still very useful guide to building with LEGO. Most importantly for new teams, this document covers building robots that don't fall apart.
  • NASA Educational Robotics Matrix
    This is a list of robotics and engineering educational materials, collected by NASA. Not all of the materials here apply to FIRST LEGO League.
  • Tufts Center for Engineering Educational Outreach Curriculum
    This site is an encyclopedia of LEGO part names and uses, building and programming hints, and physics concepts. Also, about 40 classroom activities and curriculum ideas using LEGO elements and ROBOLAB to help teach subjects, from science and engineering to reading and art, are available for download. Another database of activities is below under LEGO Invent & Investigate Database.
  • Trifolioum Gears LessonA lesson plan about gear types and uses using LEGO gears to illustrate. Introduction to gears lesson.
  • How Stuff WorksThis is a great site for explanations of how things work. It is not a curricula, and not specific to FIRST LEGO League, but has very good explanations of general engineering concepts. For example, How Gears Work, How Gear Ratios Work, and How Differentials Work.


Enhanced by Zemanta

1/19/12

Agile - Levels of Fluency

A quick overview of the Test-driven developmen...
Last night I went to the monthly AgilePDX meeting where James Shore talked about the Agile Fluency(TM) Model.  He began by saying that there’s been an explosion in agile adoption, but there hasn’t been the same growth in the “state of the art.”  Shore said this is disappointing because he wants every team who uses agile to be able to reach the highest success.

Then he began to explain an idea of which he had recently learned through Willem Larsen’s ideas of language fluency (see www.languagehunters.org).  Language, in this case, means natural language, not a programming language. Fluency in a language means that you think in that language – it’s the language you use when you’re woken up at 2 am in a surprising way.

According to Larsen, there are four well-established levels of fluency:
1- Tarzan at the party (eg: “Me want drink. Food”)
2- Getting to the party (eg: “The party is at 8pm, on West 3rd Street”
3- Discussing the party (eg: “What wonderful hors d’oeuvres! I loved Caroline’s dress”)
4- Charley Rose (eg “Speaking of parties, what is the trend this year in centerpieces?”
(those are my examples).

Each level of fluency is useful, although there are greater nuances and capabilities as you reach higher levels.

Shore then suggested that there might be similar levels of fluency in Agile development practices:
Level 0- We build code (but we’re not agile)
  • Domain driven design
  • Programming
  • Database design
  • Configuration management
  • Testing
Level 1- We create value (on a daily basis)
  • Iterations
  • Stories
  • Estimating
  • Planning game
Level 2- We deliver value (as often as our market can accept it)
  • "Done done”
  • Slack
  • Risk driven architecture
  • Velocity
  • Continuous integration
  • Risk management
  • Test driven development
  • Daily standup
  • RABU charts
Level 3- We optimize our value
  • Customer discovery
  • Purpose
  • Concept of “minimum marketable features”
  • Last responsible moment
  • Effect mapping
  • One at a time
  • Adaptive planning
Level 4- We optimize our organization (the work is done where it’s needed, not necessarily your assigned tasks)
  • Systems thinking
  • Lean startup
  • Value-stream mapping
  • One-piece flow
  • ???
Shore worked with Diana Larsen to create the levels, grouping them according to how they’ve seen companies adopt agile development practices. Shore says that in his experience as a consultant most teams he sees are at level 1.  Level 2 is what people think of when they think “Agile,” and consultants are selling the idea of level 3 (although most teams are at level 1). 

In order to move from one level to the next there are certain changes which must occur. To move from level 0 to level 1 means changing your mindset so the team focuses on stories and value, which can sometimes be an eye-opening change.  Moving from L1 to L2 is another change, although slightly more nuanced: the concept of continuous integration, and metrics that allow you to predict development.  Moving up to L3 requires a paradigm shift at the management level of the organization, while L4 means organizational change.  Clearly an organization can’t jump to L4 without each employee becoming fluent in all of the earlier levels.

At this point in the talk we split into groups.  Everyone in the meeting had indicated (a) which level they thought their organization was at, (b) which level they’re working toward, and (c) which level they ultimately hoped for.  It was interesting that most people thought they were at level 1, were working toward level 2, and ultimately hoped for level 3.  That meant that most people didn’t aspire for a fully agile organization – just having a portion of the organization agile was sufficient.

Each group was centered around the level of fluency they hoped to achieve.  In my group, level 2, we talked about continuous integration, “done done,” and test driven development.  Originally I had thought that my development team needed to work more on test driven development, but as we talked, I realized that we’re already working on continuous integration (although we don’t call it that), and that we should continue to work on that until we’re fluent.

Shore then wrapped up the evening by asking us to reflect on what we’d discussed, and to write down one thing to bring back to our organizations. Although I want to explore test driven development (TDD), I’m committing to working on improving our continuous integration until we become fluent in that Agile practice.

Some thoughts about the presentation: It was nice to see a road map of goals for achieving the Agile Fluency (tm) model. Often people talk about agile, and I feel like I’m in a mist, where their concepts appear to be in one spot, then suddenly swirl to another. Laying out the road map this way also provides a common set of terms.  RABU, for example, was a term I hadn't heard before.

On the other hand, I was reminded of a class I had in 1999 on customizing the Capability Maturity Model (CMM) for your organization. Many people in the class seemed to think they could pick & choose the aspects of the model as if moving through a supermarket, which is not the case. In the long run both Shore’s Agile Fluency(tm) model, and the CMM have the same underlying restrictions: In order to achieve the highest levels, individuals and leaders must commit to internalizing – becoming fluent – in the earlier levels of the model.  It’s not enough to say “we’re working toward level three of the Agile Fluency (tm) model,” unless you have internalized levels zero, one and two for both the individuals and the organization.

You can read more about the Agile FluencyTM Model here at Shore's website.
Enhanced by Zemanta

1/4/12

My Top 10 problems with using Scrum

English: The Scrum project management method. ...Image via WikipediaWhat are the top 10 problems I've encountered using an agile methodology like Scrum?

10) The waterfall mindset.  Management prefers the monolithic plan, regardless of how unwieldy it may be. Additionally, development teams who have done waterfall development will tend to slip back into it.

9) Ignoring the "definition of done." Either features that meet the definition stay sticky, where some team members want to further perfect the feature, or the feature is considered "done" without having really been completed.

8) Sprintus-interruptus. Although the team is working in a sprint, management interrupts the team with a high-priority external project.

7) When sizing stories, people start to think of features in absolute sizes rather than relative sizes. Each team is different, so sizing only makes sense to that particular team.

6) It takes a while to get a rhythm for a two-week sprint. Sometimes the team doesn't deliver value until halfway through the sprint, and by then it's almost too late.

5) Stories might be ill-defined.  I've seen stories that omitted who wants it, why, and what's the value.

4) Teams forget to share the work. People prefer to work in their own area, ignoring what other people need or are working on.

3) Team members ignore aspects of Scrum -- such as sizing or prioritizing the backlog. Without a sized, prioritized backlog you aren't managing the process, the project manages you.

2) It's hard to know where and how to document requirements as they evolve

1) People fail to use face-to-face communication.  This is the most efficient way to communicate nuanced information.

Enhanced by Zemanta