Disclaimer

Giant machine with small man

I write these words. I take these pictures.

I am acting independently of my place of work and what I write here doesn’t reflect the thoughts, opinions or interests of anyone other than myself.

I work at Middlebury. That might impact what I write as they pay me.

I do consulting work at times. Groups I’ve worked for/with include –

  • Advanced Learning Partnerships
  • A number of higher ed organizations (UVA, Kansas State, UMW, Georgetown, ALT, Karlstads University, Colgate. . . some others)
  • A large number of k12 institutions
  • A few organizations/corporations (Apple, Dell, Discovery, ISTE, Reclaim Hosting)

Some of that has been paid work.

The Apple and Discovery work was travel/room/software etc. in return for participation in various things.

I’ve mostly opted out of that kind of work for the last few years.

3 thoughts on “Disclaimer”

  1. Tom,
    Your post of Google Script to Copy Row Above to Blank Row Below has helped me, although I have hit a snag where the script times out!

    This is how I changed it to work on just column 1 and to start at row 2 because row i-1 was invalid.

    function myFunction() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getActiveSheet();
    var last = sheet.getLastRow();//how many times should I do this?

    for (i = 2; i < last; i++) { // This must be changed each time it times out.
    var test = sheet.getRange(i, 1,1,1);
    //Logger.log(test);
    //looks to see if the cell is empty
    if (test.isBlank()) {
    var rewind = sheet.getRange(i-1, 1, 1, 1).getValues();//gets values from the row above
    sheet.getRange(i, 1, 1, 1).setValues(rewind);//sets the current range to the row above
    }

    }
    }

  2. Thank you for your October 2018 article “User Choice: Hiding Some Sites in My Sites in WordPress Multisite.” You’re still helping people with this post in 2026!

Leave a Reply