[solved] Mac OS X Won’t Erase USB

The usually painless process of creating a bootable linux usb was rather sucking today.

First, I’d get the “disk you inserted was not readable by this computer” error (below) but I wasn’t worried.

01.png

Then, when trying to erase it using Disk Utility, I’d get the “Erasing process has failed”.

03.png

Once, I think, it actually started to erase one of the USBs I tried before failing.

It was only after a couple tries that I clicked “Show Details” but that didn’t help Google help me find any answers. Not the answers I needed anyway.

I saw more than one post online about Sierra (I have High Sierra) failing to erase USB flash drives. The solution was using Disk Utilities > First Aid but that didn’t work for me.

As it turns out, the problem was the USB sticks in question were formatted as FAT-32 which, apparently, Mac can format to but not read from. So I did this (step-by-step instructions below screenshot):

04.png

In the terminal, type:

diskutil list

Carefully and accurately determine which disk is actually the one you actually want to actually erase — the 8GB size was the clue I wanted /dev/disk3. Using that information to erase the USB — not my hard drive — I typed:

diskutil unmountDisk force /dev/disk3

I’m not sure how much that step mattered for me as I don’t think my USBs were even mounting.

Lastly, type:

diskutil erasedisk MS-DOS UNNAMED /dev/disk3

Your formatting type may differ as might your disk identifier.

I went back to Disk Utility and, right away, it looked different.

02.png
BEFORE fixing it in the terminal. Note the 2.5 MB capacity with Zero KB available.
06.png
AFTER fixing it in the terminal. Note the 7.81 GB capacity with 7.79 GB available.

Finally, I went through my usual process to Create a bootable USB stick on macOS.

First, because I’m a stickler for following directions (follow the link for simple and easy instructions), I erased it in Disk Utility which, this time, gave me a happy, green checkmark.

05.png

I then used Etcher to, most triumphantly, create my bootable USB.

07.png

This is all an example of why MacOS rules and Windows drools. In the rare occasions something goes wrong, you can fix it easily. For the time being. Apple is, slowly but surely, f***ing that up on both counts and that is an example of why I increasingly use Linux instead.

Advertisements

Filling Empty Cells with Zero in Excel

I had an enormous spreadsheet I’d made by saving a PDF as an Excel workbook and rearranging the data.

noZeroes
Some 2016 presidential election results in Excel

I needed to get the data into MySQL but there were countless empty cells where candidates received no votes and I knew that wouldn’t fly. I needed zeroes.

STEP #1

Select all the empty cells by clicking Find & Select in the Editing section of the Home tab in the spawn-from-Hell ribbon-thing and choosing Go To Special.

goToSpecial

STEP #2

Select Blanks and click OK.

blanks

STEP #3

Press F2 (function key at the top of your keyboard) to select one of the selected empty cells (using F2 prevents deselecting all the other empty cells).

STEP #4

Type “0” and press either Ctrl+Enter on Windows or Cmd+Return on a Mac.

STEP #5

Behold …

allZeroes

Learning VIM and Stuff

At some point during your Linux learning experience, you realize you must do some file editing in the command line because your editing app of choice doesn’t have permissions to save the file in question and you really, really don’t feel like looking up the commands for opening that app with sudo in the command line again.

Like me, I’m sure you dreaded each time you had to choose which of the intimidating command line editors you’d open, then search for a web page that clearly explained how to use that app (re-learning what little you learned and forgot the last time), and mutter/curse to yourself as you screwed it up but, hopefully, eventually finished the tiny task that should have taken you a tiny fraction of the time you spent on it.

A couple days ago, I stumbled upon this:

openVIM.png

Honestly, I’m more impressed with the concept and execution than I am the learning experience. So, there you go, sometimes a great “user experience” doesn’t mean a great “learning experience.”

Fortunately, I then stumbled on THIS:

Just type "vimtutor" in your terminal.
Just type “vimtutor” in your terminal.

An even better (far superior, in fact) interactive tutorial you already have.

Printable Certificates In Storyline ++

I found a Storyline tutorial for creating printable certificates– something our users have been requesting as long as I’ve been at my day job.

Screenshots of the sample file from tutorial above.
Figure 1. Screenshots of sample file from tutorial.

There’s certainly nothing about the functionality to criticize but there were several things I immediately wanted to change so I thought I’d throw up a tutorial of my version.

Room for Improvement IMHO

  1. Functionality is fine – it’s just a sample question as means to the Results slide end.
  2. The “Print Certificate” button doesn’t print anything (let alone the certificate) but, rather, takes the user to the next slide. I have my own reasons for that in addition to the fact that my organizations users get very confused very easily. My first task was changing it to, “Get Certificate” but, looking at it now, I don’t like that either.
  3. Two things. First, the only thing Storyline is capable of getting from the LMS is the learner’s name so why not use Javascript to do that one thing instead of having them type it? Also, I’ve learned the hard way that despite there being directions to click the “+” button right beneath the field and button, those directions will, far too often, be ignored if they’re read at all. Last bit about that field is the placeholder text remains after you’ve clicked in the field so the certificate will either include that placeholder text or, if they didn’t click “+,” that’s all the certificate will display. Second, we’re in the USA so I want to change the date format. Americans in general are an easily confused bunch. Okay, three things. Third, that “Print” button doesn’t print anything. I know, I know … it sounds like I’m being nit-picky but as often as I’ve felt employers’ mandates to dumb things down were unnecessary and unfounded—my current employer consistently proves that I do, in fact, overestimate our audience. I hate admitting that. So much. So, I’m now thinking the first “Print Certificate” button should just say “Proceed” or something (even though the player has a “NEXT” button) and the “Print” button should say “Get Certificate.” Maybe, we’ll see.
  4. Not only do I want the certificate in the player to match the certificate in the little web page but I, like most people, kinda like certificates that use an Old English type of typeface.* Playing with the JavaScript and CSS is what took the most work (trial and error on my part that you may or may not require).

*OMG, I have to stop and say that when Helvetica, the little girl in Shorts, gets called “Typeface!” I want to die. Am I allowed to say Robert Rodriguez is my favorite filmmaker?

Getting the Learner’s Name from the LMS

StorylineInterface2
Figure 2

I love this. I love having courses greet learners by name so I put this code on the first slide.

  1. Click the Manage Project Variables button (last button under Triggers on the right in Figure 2).
  2. Click the Create a New Variable (blue “plus” sign in Figure 3) button.

    variables
    Figure 3
  3. Enter “firstname” (or whatever you like) in Name.

    addingVariable
    Figure 4
  4. Choose Text from the Type menu and click OK to close the variable creation window. Repeat as needed then click OK to close the variable manager window.
  5. On any slide you’d like to display the name, click the Create a New Trigger button (first button under Triggers on the right).

    triggerWizard
    Figure 5
  6. Choose Execute JavaScript from the Action menu.
  7. Click the Script button.
  8. Type the JavaScript as pictured below (you can even copy and paste from the sample file). The LMS provides the learner’s name as, “Lastname, Firstname” so we need to split that into an array then grab and arrange the pieces how we want. Also, we need to “convert” the Javascript variables to Storyline variables (that’s very important). When finished, click OK (Figure 6).

    nameCode
    Figure 6
  9. Choose Timeline starts from the When menu (Figure 5) and click OK.
  10. In a text box, type the Storyline (that’s very important) variable between percentage symbols (Figure 2).
  11. For testing, you must publish the LMS shizzle and test it in your LMS. Publishing for Web won’t work. You need that SCORM yummy goodness to do its magic. If Storyline does nothing else well, it does SCORM reasonably well.
StorylineInterface
Figure 7

Course Name: An Apology for Misleading You

Before you get excited, no Storyline does not get the course name from the LMS. Storyline can’t do anything of the sort. Remember, you’re using a child’s toy, not a quality piece of software made by professionals for professionals.

I use a variable (Figure 3) instead of just typing the course name because I can then easily pass it along to the html page. I just have to remember to change the value to the appropriate course name.

Dynamic Date

  1. Create a date variable and textbox to receive its value as discussed above (Figure 3).
  2. Create a trigger for the slide using the code below (unless you’re outside the USA, in which case you can grab the code from the original tutorial).
dateCode
Figure 8

 Print Button Code

Create a trigger as before, using the code below.

printCode
Figure 9

Yes, you need to convert the Storyline variables into Javascript variables even though the Javascript variables existed first. Because Storyline is stupid, that’s why.

urlstring opens the html file (note the filename here must exactly match the actual name of the file) using the file name plus our variables (as a “string”) in the URL so they’ll be swallowed and spit out by the JavaScript in the html file.

Certificate Background

I just adapted the certificate I made for live classes (the subject of a really cool dynamic pdf tutorial). I inserted it into Storyline behind the dynamic text fields and include it in the HTML biz-nizzle we’ll discuss in a moment. So, what they see in the course is what they get. I love the Smudge tool in Photoshop.

HTML (and image) File(s)

The original tute didn’t include an image file – the certificate is plain text and there’s nothing wrong with that. AFTER (very important) publishing for LMS, drop this HTML file and any images into the root folder.

directory

Here’s the code and some explanation highlights.

Between the <body> tags of your html document are two sections: the <script> and the <style>.

html_top

The <script> tears apart the URL, splitting the pieces into an array (just like our earlier script did with the learner name from the LMS) and rearranges the pieces as it assembles the final web page. You won’t need to change anything except for the filename of the certificate image. If it doesn’t make sense to you, you’ll have to learn the JavaScriptiness elsewhere – I often post about great resources and put some in the links on the right.

html_bottom

The <style> is what you’ll need to wrestle with but don’t be too scared – it’s just changing the numbers until it looks good. In its current state, it works perfectly for the layout of my 720×540 image.

The most important piece is the z-index of #cert and #layoutContainer id selectors. That’s what puts the image behind (instead of beneath) the dynamic text on the page.

Ah, yes, I suppose there is one thing to criticize about the original code! The author used id instead of class for multiple tags. Don’t do that.

Testing and Debugging

Behold, just a sampling of the evolution of my final certificate.

evolution

Once I pried them apart (B) and got them centered only to have them fly out the window (C), I was pretty pissed. And frustrated. For a long time.

printableDevTools_01

Finally, I opened IE’s developer tools – which show the final code the JavaScript writes, not the code in the html file – and, after a while, noticed that for some reason, some <div>s were being given a 360px offset which is why my <style> goes out of its way to assign left: 0 (line 40).

So, there you go. Enjoy.

All About Favicons & Such

Finally finishing a trio of tutorials I started months ago and just uploaded this PDF:

Give Your Site Some Yummy Favicon Goodness

Soon, I’ll write a post about the pros and cons of how various browsers handle Favorites/Bookmarks. For now, I’ll just highlight each browser’s Favorites/Bookmarks bar — a focus of discussion in the Favicon tutorial. It’s a tiny matter, really, but I believe little things count when it comes to User Experience, User Interface, etc.

I may say something akin to, “Browser X doesn’t have this feature” and some of you might quickly think, “Yes it does” but the point of my statement is twofold:

  • I shouldn’t have to look for it
  • If I look for a setting, it should be easy to find

Those are the two commandments of UX/UI as far as I am concerned. If I can’t find or use a feature/setting, it may as well not exist.

examples.png
Figure 1: Favorites Bar in Internet Explorer for Windows

A major advantage of Favicons is potential for optimized real estate on the Bar. By default, the bar includes both the site icon (favicon) and site name. Each browser has its own method for changing this.

Internet Explorer

Right-click a favorite in the Favorites Bar and choose Customize title widths > Icons only. Nice & clear, I must say.

Downside, IMHO, is it changes it for all of them. Ideally, we could change individual Favorites for a couple reasons:

  • Easily recognizable and rememberable (next year’s Word of the Year, I guarantee it) don’t need to show the site name while ugly, vague, generic favicons do.
  • Sites without favicons sharing the same generic icon provided by IE (or any given browser) need to show the name.
  • Multiple Favorites from the same site (a dozen favorites from Adobe.com, for example) need some descriptive text.

Pros

  • Tooltip shows favorite Name (which you can edit via right-click > Properties > General), page Title (which you can’t), and URL so you have even more freedom to use Icons only.
  • Icons only applies just to the bar, not to items in the menu (Figure 1)
  • IE rawks alone among all browsers by allowing you to change the icon (right-click > Properties > Web Document)! Yet another reason for Icons only. Win for IE.

Con

  • Icons only also applies to folders so how many I create is limited by my capacity to remember their names and which folder is which. The tooltip shows it, but that’s a huge inconvenience because, you know, I’m a white, male, American.

 FireFox

FireFoxMac.png
Figure 2: Firefox for Mac

Right-click a bookmark in the Bookmarks Bar, choose Properties, and delete contents of the Name field.

Pro: Above method is for each, individual favorite so I can have some with the name (Weather.com in Figure 2) and some without (Apple.com in Figure 2).

Opera

OperaMac.png
Figure 3: Opera for Mac

Rt-click > Edit and delete Name.

Pro: Super-convenient Add to bookmarks bar button. Win for Opera.

Chrome

ChromeMac.png
Figure 4: Chrome for Mac

Rt-click > Edit and delete Name.

Con: Also removes Name from menu. Lose for Chrome.

SeaMonkey

SeaMonkey.png
Figure 5: SeaMonkey for Mac

Rt-click > Properties and delete name.

Cons

  • Also deletes name in tooltip. If I have the name showing, I don’t need the tooltip but if I don’t have the name showing, I need the tooltip. Lose for SeaMonkey.
  • Ugliest generic icon.

Vivaldi

Convoluted mess I won’t dignify with a description. Lose for Vivaldi.

Tor

TorMac.jpg
Figure 6: Tor for Mac

Doesn’t seem to grab favicons or even have a generic icon so everything else is moot. Lose for Tor.