creating a chromebook recovery disk

In the past, I have used the Chromebook utility to create a recovery image USB. This time, it hung at 0% on writing to disk. I tried with two different USBs. Then I started searching for a workaround

A reddit post led me in the right direction. This URL downloads a conf file with the direct URLs to download the image for each Chromebook. I searched the file for my model (Acer Chromebook 15 (CB3-531)) and downloaded the zip file. It was about the size of a CD (655MB)

Then I chose the gear and the local image option. I picked the file. It still wouldn’t load. I wound up just copying the zip (and the unzipped cpgz) to the USB. (still under 3GB). That way I have it in case it is needed. My mother would have to bring the ChromeBook to best buy anyway so they can make the recovery disk if needed. We’ve never needed it so I don’t expect to!

I’m now wondering why it needs a 8GB disk when the image is far smaller. i also note that in 2012, it said you needed an 8GB disk and i used a 4GB one. So inflation?

Announcing new Java 11 OCP Books!

Jeanne and I are thrilled to announce that we are releasing Java 11 OCP books early next year. Yes, you heard that right, books plural, as in more than one! In fact, we’ll be releasing two new books, along with a complete set edition.

We’ll post links where you can preorder the books as soon as they are available!

These books have been carefully written and include the most important information you need to know for the Java 11 OCP exams. While we are quite proud of our Java 8 books, there’s a lot of new material required for the exams including modules, var, and custom annotations just to name a few.

If you’re thinking of taking the new exams prior to the books’ release, we recommend reading our posts detailing our experiences taking the exams:

In short, if you’re comparing the first exam (1Z0-815) to the older OCA 8 (1Z0-808) exam, don’t. They are quite different and the difficulty level has definitely been increased. We expect both books to be available in early 2020. In fact, we’re nearly done writing the first book already!

Did you know Set.of does that?

I was working on some code and need to turn an array into a set. I knew that Set.of() has a varargs overload so I tried to use it. And promptly learned that it doesn’t work for my needs.

How many ways can you think of that set1 and set2 differ here?

String[] words = { "all", "the", "words", "in", "the", "world" };

Set<String> set1 = new HashSet<>(Arrays.asList(words));

Set<String> set2 = Set.of(words);


set2 is immutable while set1 is not. I knew that going in. I don’t need to modify the set I’m creating so that’s fine.


set2 doesn’t get created if there are duplicates in words. set1 does. This is a big difference and caught me by surprise. And what better way to deal with a surprise than make it a blog post? Surprise! (And yes, this in the JavaDoc. So if I had read the exception details in the JavaDoc, I wouldn’t have been surprised.)