running out of bandwidth on a 4g chromebook

My mother has had her new 4G Chromebook for a few weeks now. I subscribed to the same $20 for 1GB plan as before. (Well technically there was a 100MB bonus on the old 3G plan.)

The first month was fine of the plan was me playing with it at home (mostly on wifi) and my vacation to visit her. This month was the first real month of her using it. She never ran out of bandwidth with the laptop and did the first month with the new one. How suspicious. I called Verizon and learned:

  1. Verizon offers text/email alerts on usage thresholds, but not for Chromebook pre-paid plans. In other words, useless to me.
  2. There were two days where she “used” over 200MB. And was online for over two hours. I’m not sure I believe Verizon on that, but I have no evidence to the contrary.

Here’s what we are doing to fix/troubleshoot.

Keep a log

I asked my mother to track her internet usage for a month or two so we can gather more data. She is to track the time she goes on/offline and what she does when online.

Turn off the Chromebook when not in use

I’m not sure if I’m right to be worried about someone piggybacking off her signal, but I told her to turn off (shut down, not sleep) the laptop when not online. This way we can get an accurate pictures of when she is online.

Turn off Flash

Since videos are large, I’m wondering if a website she went to uses Flash for video ads. I asked her to turn off Flash. She never watches videos so this won’t impede her experience.
  1. Type chrome:plugins in the address bar
  2. Scroll down and find the entry for Adobe Flash
  3. Click the disable link
Turn off extra bandwidth “helpers”
I’m concerned that the pre-fetching/pre-loading pages is wasting too much bandwidth. So turning that off. I don’t think the URL completion is significant, but just in case…
  1. Chrome Settings
  2. Show advanced settings
  3. Scroll down to the privacy section and uncheck
    1. “Use a prediction service to help complete searches and URLs typed in the address bar or the app launcher search book
    2. Predict network actions to improve page load performance

What do you think?

Any other ideas for what to do? She’s using a 4G plan exclusively (only going to visit a wifi connection once a month or two when an update comes out). She doesn’t watch videos and has never been a bandwidth intensive user before.

I will say that I’m glad this is a pre-paid plan where they cut you off rather than simply charging for overages.

toastmasters – a different table topics

When I was an area governor, one of my clubs complained that meetings weren’t fun enough. I tried a few things including some different formats for table topics to mix things up. One of them resulted in a lot of laughter. I’ve done it twice since at my own club.

The approach

I wrote sets of five words on a piece of paper. I tried to pick words that had nothing to do with each other. I also tried to pick a word or name that meant something to the club to create a shared reference. For example, suppose the President of the club was named Bob and the words were:

  1. elephant
  2. Kansas
  3. necktie
  4. sofa
  5. Bob

I then had people get up in pairs. The first person was told to speak for 60-90 seconds telling a story that uses those five words. Then the other person had 30-60 seconds to “agree” and support the story as if they were there. For example, suppose the first person said they saw an elephant wearing a necktie. The second person could say that he ran into the first person at the zoo, saw the elephant and couldn’t believe it.

Why it works

Putting together random words into a story tends to be funny whether the speaker is funny or not. Sticking in the shared experience (person’s name, company specific info, etc) makes people laugh as well. It preserves the spirit of speaking impromptu. It also creates a faster rhythm.

Eclipse – easily looking at Java bytecode

A fellow moderator asked me to weigh in on this question at CodeRanch. The gist is whether this code creates one String or two:

String s = " " + 3;

How to find out the answer

The most definitive way to verify this is to check the bytecode. I had downloaded the bytecode plugin when working on our Java 8 OCA Study Guide because sometimes you just have to know what actually goes on behind the scenes to be accurate.

Using the plugin is easy. You go to Window -> Show View -> Other -> Java -> Bytecode. Then every time you save the Java file, the bytecode window is automatically updated. Great for lots of iterations.

The test

I wrote a simple Java class:

package jb;
public class PlayTest {
  public static void main(String[] args) {
    String s = "" + 3;
  }
}

The generated bytecode is:

// class version 52.0 (52)
// access flags 0x21
public class jb/PlayTest {

  // compiled from: PlayTest.java

  // access flags 0x1
  public <init>()V
   L0
    LINENUMBER 4 L0
    ALOAD 0
    INVOKESPECIAL java/lang/Object.<init> ()V
    RETURN
   L1
    LOCALVARIABLE this Ljb/PlayTest; L0 L1 0
    MAXSTACK = 1
    MAXLOCALS = 1

  // access flags 0x9
  public static main([Ljava/lang/String;)V
   L0
    LINENUMBER 8 L0
    LDC "3"
    ASTORE 1
   L1
    LINENUMBER 14 L1
    RETURN
   L2
    LOCALVARIABLE args [Ljava/lang/String; L0 L2 0
    LOCALVARIABLE s Ljava/lang/String; L1 L2 1
    MAXSTACK = 1
    MAXLOCALS = 2
}