Sunday, October 9, 2016

ASCII vs. Morse Code

ASCII Humor

Reading and then watching the movie of "The Martian", I was always amused by the section where he solves the problem of communicating via the lander by using ASCII.  

First, why ASCII and not Morse Code?  Well, he didn't have a Morse table for one thing.  Or did he?

Second, his attempts to find an ASCII table.  He finally finds it ... in a printed document?  He has a load of laptops available, and he can't find an ASCII table on one of them?   What kind of Space Agency(TM) sends a crew without a good online database of knowledge.  It does not have to be 'Star Trek' level, but come on!

The problem did bring up a few ideas for kids Science Fair Projects.

Science Fair kinda projects


  1. Instead of ASCII, assume that you have a Morse Code table too.  How would you redesign the Pathfinder lander zone to use Morse instead?   Would Morse Code be faster or slower than ASCII with this method.  (I'm assuming Morse would be faster in this case, but I could be wrong.)
  2. Build an equivalent system for both ASCII and Morse, and test it.  (Screams Robotics project, yes?) Train other classmates to decode the messages transmitted.  How many cpm/wpm can they get to with both systems?
  3. Assuming you have a laptop available as in "The Martian", what methods would you use to find an ASCII table on the computer?   Show and test them.
    • Some possible answers (off the top of my head)
      1. Charmap on Windows (yes, it's still there)
      2. Spreadsheet using CHAR() function
      3. Linux:  bash script loop using \xNN to print Hex values
      4. Perl/Python script using ord() or chr()
Now obviously if you are a soft scientist, like say a Botanist, you might not have enough computer software skills to do such programs.  But most college educated and office people these days have to be familiar to some degree with Spreadsheets, and using simple formulas.  Ah, but would they think to look there?

BTW, whipped I this up on a spreadsheet.  I just chose 100 as an arbitrary starting point, guessing like a stranded astronaut might. 

Misc Formulas

Just before this post I copied the Morse Code table from Wikipedia into a new tab called 'MorseCode' in my MiscFormulas Spreadsheet.  Now I'm not going to get stuck out there without both an ASCII and Morse table!

Be sure to include the Timing diagram near the bottom!  That would be a very handy for training.

Other Science Fair Project Ideas?

Project 1:  Assuming you only have 1 Terabyte available, how would you algorithmically choose a subset of Wikipedia to take into space?  What is the criteria you would use?   Would you purge unused pages, or leave at least their titles around?  Assuming you could store the text and images, and reproduce it with a local server, roughly how many pages would you be able to take with you?   What about the other -pedias under the Creative Commons?  

Project 2: Assuming you are on a Mars Colony, set up a server to receive Wikipedia pages every day, minus history and discussions.  Roughly how much bandwidth would you require for the Earth to Mars transmissions?    Advanced:  How could you tell Earth you received all the data for a page correctly?  (Hint: CRC codes)

BTW, people are working on similar projects, so there might be good data for students to start with.  

Other Hints at: https://en.wikipedia.org/wiki/Help:Export


Having some fun, pardners,
=SWGun.Slingers[1];



Monday, October 3, 2016

MiscFormulas - Time & Effort & Interruptions

Time and Effort

The care and feeding of Management herds often requires numbers.  When you have to fill in something, here are some numbers that are real data, and defensible.  Keep in your Toolbox Spreadsheet*.

Quarterly Cheat Sheet (short)
% of time is so many  work days WW's
(Work Week)
Hours
5% 3 .6 ww 24
8% 5 1 ww 40
10% 6 1.1 ww 48
15% 9 1.4 ww 72
25% 15 3 ww 120
50% 30 6 ww 240
75% 45 9 ww 360
95% 57 11.2 ww 456
100% 60 12 ww 480


Or the Management equivalent of making one baby in 1 month:

% of person Days per year WWs aka Weeks
5% 13 2.6 1 engr 3 weeks
10% 26 5.2 2 engr 2 weeks
20% 52 10.4 3 engr 4 weeks
25% 65 13 4 engr 8 weeks
50% 130 26
75% 195 39
100% 260 52

*Toolbox Spreadsheet - if you don't have one, make one.

Interruptions

It takes a programmer an average of 25 minutes to recover from a phone call, to get back to full programming mode from the point they left it.  Invisible work can eat up the workday.

How long does it take to recover from interruptions, and get back to work?

23 minutes 15 sec to get back to the task
http://www.fastcompany.com/944128/worker-interrupted-cost-task-switching

Interruptions every 11 minutes, 25 minutes to return to task

Control, Interrupt, On High Alert

A Carnegie Mellon Human Computer Interactions Institute study showed, however, is that it is possible to train yourself for distractions, even if you don’t know when they’ll hit.

Links below are don't work anymore.  You may have to search on the site for this information.

http://www.hcii.cmu.edu/news/seminar/2013/04/multitasking-interruptions-and-inevitable-problems-follow
Multitasking Interruptions and Inevitable Problems Follow

http://www.hcii.cmu.edu/news/seminar/2004/10/work-fragmentation-common-practice-paradox-it-support
Work Fragmentation is a Common Practice and Paradox in IT Support

Saturday, October 1, 2016

A quick team Display Readerboard

Problem:

Do you need a Display Screen, that can convey information to your working crew throughout the day?  Your Project Dashboards, News, Web Comics, Stock Prices?

This describes a simple setup.  Basic to start with and easy to maintain, you can customize it after it is working. A Linux based setup is described, but Windows or Mac work the same way.

I also have installed the Extension described on my meeting laptop.  If I am at a Conference or Meetup, it is a great way to have a quick Readerboard running in the background.

Ingredients:

  • Computer: Laptop, NUC,  PC-on-a-stick or even a VM.  Something that drives a Monitor.
  • Monitor
  • Network Connection
  • Chrome/Chromium Browser
  • Revolver Extension from the Chrome Web Store.

Setup:

  • Install your favorite OS on the Computer.  I now prefer Ubuntu or Kubuntu for these kinds of systems.  Something small and light.   I have also used Linux Mint and Windows.
  • Remove everything you don't like.  
  • Set up a system account that autologins on reboot
  • sudo apt-get install -y chromium-browser
  • (optional) sudo apt-get install -y gnome-desktop, if you want to get rid of Unity
  • Install the TabCarousel Extension from the Chrome Web Store.  I've tried the Revolver Extension and a few others.  This is probably the simplest and best.  Get this one running first, then try the others.
  • TabCarousel Icon, next to Address Bar
  • Note that TabCarousel will refresh each open tab every 5 minutes, regardless of what the page refresh may do. 
  • Setup any cron/Jenkins tasks that you want, especially a reboot schedule for the machine.
  • Open a few tabs, to items you want to display.   Then save that tab set.
  • Be sure to Autohide the Task Bars, and any other screen artifacts.  Pop-up notifications or other junk that might clutter the display.
  • Be sure that the Browser will start on login.  Just add it to the Startup List.

Test:

Be sure to power off and reboot the system a few times, to make sure that the login and Browser all come back up reliably.

Backup: And of course, backup your system or settings.

Possible Display Sites:


  • xkcd.com or other web comics
  • Project Dashboards - may require a user login
  • Build Server Status / Version Control Status
  • Sigalert.com - your local traffic patterns
  • Traffic Webcams
  • Conference Schedules
  • Social Media feeds
  • Space.com - orbiting satellites over your location
  • USGS Earthquake page
  • Aquarium Cameras, or simulated Aquarium
You can overwhelm with information.  Finding a right balance will take a little while.   And some pages may require additional tweaking, or won't display right or have too many ads.  Drop them or save them for later.

TeamDev:

Opportunity to involve the Team in the decision of what items to display.  Maybe even building pages themselves to have displayed.   Use it to help build team cohesiveness.

This is also a great side project for interns or other team members who need a break.  Rotate responsibility ever so often.

Options:

  • Display hours - turning off the system at off hours to save energy.   If a browser is running, it might not go to sleep.  Play with cron/Jenkins to get to sleep modes on the Computer.
  • Install a local webserver, to provide information from the display system too.  It can act as a local gathering point for data.
  • Install a Version Control(git/svn/etc.) repository and Jenkins, and let your team put stuff onto the display thru regular checkins/checkouts. Avoids having to login.

    =SWGun.Slingers[1];

    About This Blog.

    Have you viewed this?

    Derek Sivers: Keep your goals to yourself | TED Talk | TED.com


    Yep, it is a flawed talk.  Mostly based on a limited data set.  But think about it.  Sometimes you don't want to share a lot.  Keeping your true end goals to yourself, especially in changing situations, might be best.

    Once you say something, people think it is done.  Good lesson.

    =SWGun.Slingers[1];