Simple Countdown Timer and Stopwatch with Laps for Bash

There are a lot of decent, small shell scripts for creating a simple timer or simple stopwatch. Yet, I needed a bit more than the ones I found on Google, so of course, I made some of my own.

My simple stopwatch for Bash lets you create laps, pause and gives you a total elapsed time. Keep in mind, it’s all presented in seconds.

stopwatch with laps for bash

My simple timer for Bash just countdowns the number of seconds you provide and then beeps. Like my stopwatch script, it’s all based on seconds so that there aren’t a bunch of command line arguments to deal with.

countdown timer for bash

Cordova Tip: Automatically Open Web Inspector for iOS Simulator

How many times have you painfully, manually opened Safari Web Inspector after starting the iOS Simulator with `cordova emulate`? Too often. Me too. No more.

I found a nifty osascript gist then tweaked it a little and put it inside a shell script `ios-sim-inspector`.

Then, I added a couple of new Cordova aliases to my bash profile (leveraging a couple of existing aliases)


## Existing Aliases ##

# Run iOS Simulator
alias corem="killall Simulator || echo && cordova emulate"

# Build and Run iOS Simulator
alias corbem="killall Simulator || echo && cordova build && cordova emulate"


## New Aliases with Web Inspector'ing ##

# Run iOS Simulator with Safari Web Inspector (for Debugging)
alias coremd="corem && ios-sim-inspector"

# Build and Run iOS Simulator with Safari Web Inspector (for Debugging)
alias corbemd="corbem && ios-sim-inspector"

Now you know how to painlessly open Safari Web Inspector after starting the iOS Simulator with Cordova emulate from the command line.

The Missing Chrome Browser Features

Remember when iOS app developers where upset that Apple incorporated the functionality of their apps into iOS by default? Remember how much better it made iOS by default? I do too.

If Google followed Apple’s lead, as they do on occasion, it would seem that they should examine various helpful Chrome extensions and consider adding their functionality as native components.

Some areas that would easily level up Chrome for the masses:

  • browsing security
  • tab management
  • extension management
  • password management

For now, here are my favorite extensions that provide exactly these features.

HTTPS Everywhere – keeps Chrome on the secure protocol for websites even when an non-secured page is requested, if the website has HTTPS as an option.

Disable Extensions Temporarily – lets you toggle extensions on and off. I actually made this one myself :)

TabCloud – saves and restores open tabs across multiple sessions and computers.

LastPass – saves your passwords and provides access from every computer and mobile device.

How To Copy a File or Folder in Google Drive & Create a Symbolic Link (symlink)

Google Drive’s pricing is hard to beat and in fact nobody is doing it. However, the user interface could be a bit better. For my sake, and yours, after googling with little success for this rather easy but elusive set of instructions, I decided to document and publish them myself after I finally discovered the steps.

Without further ado, here’s how to copy files and folders in Google Drive and create symlinks (symbolic links).

[UPDATED 03/07/2016]

  1. Click to highlight the file(s) and folder(s) you want to copy
  2. Press Shift-Z to open a dialog with the “Add here” button
  3. Navigate to the destination folder
  4. Press “Add here”

Grocery Delivery for 10% or Less

tl;dr For the masses, having groceries delivered will continue to cost more than the market will bear until labor and transportation costs vaporize. Grocery delivery might work in some concentrated areas, but will remain a small niche, utilized mostly by the affluent. Grocery pick-up service can be profitable and satisfy consumer demand. Someday, drones might spare us from needing to travel for pick-up.

For about 15 years we’ve heard of all the failed startups and all the current ones struggling to make grocery delivery a viable service. So, what’s the big holdup? Why must I still go into the grocery store on a regular basis, when I enjoy it so rarely? Why hasn’t anybody solved this for me?!

During the September 2013 Austin Lean Startup Machine workshop, at Capital Factory, a few of us grouped around the very common idea that grocery shopping needs to be fixed. Along with applying Lean Startup principles to ‘some’ idea, I was also intrigued by diving head first into this huge opportunity that is seemingly impossible to resolve.

It almost goes without saying, I highly recommend The Lean Startup, by Eric Ries. When you’re ready to test Lean Startup theory, look for a Lean Startup Machine workshop, you’l really learn a lot and meet some awesome people.

Validation comes easy, for some things. It was extremely clear that a lot of people don’t want to go into a grocery store and shop. There were a lot of folks who do, don’t get me wrong, some people enjoy the experience. However, you can be certain that there is a massive market for those who don’t. Not surprisingly, the vast majority of those who don’t want to go into a grocery store are willing to pay for such a luxury.

Some ideas are simply invalid. People want it and they’ll pay for it, so what’s the problem? The problem, as we discovered, was the value customers price the service at. It seemed reasonable, and substantial that the general consensus of a 10% “delivery” fee was acceptable. Hold up. We really felt that we needed at least an 18% premium to break even. We had hoped that 20% would be acceptable and we’d have a little extra cheese to work with. Nope. Sorry. Not gonna happen. Our data showed pretty clearly that very few people, all affluent, would even begin to entertain the idea of paying that much of a premium. I’m guessing this is were all those failed and failing grocery delivery startups arrive. They must figure out how to deliver at an impossible margin or convince unwilling customers to pay more.

The Resolution: Don’t Deliver. Umm, OK, but that hasn’t solved anything, or has it? We felt pretty deep down the rabbit hole. How could we turn our backs on a service we want, a service so many others want and simply say it just won’t work. So, we concentrated on why it’s more expensive to “deliver” the goods than what people will gladly pay. We thought about the overhead costs. Paying somebody, minimum wage, to actually “deliver” the groceries plus transportation expenses is greater than 10% of the typical bill of groceries.

We validated that the premium they would pay was for the benefit of not having to park, and actually shop in the store, “delivery” is not a show-stopper, whereas needing to go into the store is. So, our solution was to build a service that allows consumers to shop online or call it in, but then actually arrive at a pick-up center to receive their groceries. This way, the customers incur the transportation costs and a 10% service fee might allow for a viable business.

Amazon’s Resolution: Drone Delivery. Two months after our LSM workshop Bezos, on 60 Minutes, announced that Amazon would someday deliver groceries by drone. Aha; it seems that Amazon’s R&D must have concluded similar findings, namely:

Paying somebody, minimum wage, to actually “deliver” the groceries plus transportation expenses is greater than 10% of the typical bill of groceries.

Change the Way a Website Looks

When you’re browsing around, do you ever wish you could change the colors or fonts used on a website? If you’re using the Chrome or Firefox web browsers, you can!

There is a browser extension named “Stylish” that will let you apply different styles to various websites. Anyone familiar with CSS can create new styles, but everyone can use them.

After you install Stylish, you just browse the web like normal. When you’re viewing a website that you want to change the appearance of, you click the Stylish browser extension button and enable styles or click “find more styles for this site” which will take you to a website Userstyles.org where a lot of custom styles have been shared. Find a style that’s more appealing to you. After all, a website doesn’t have to look the same for everybody.

Install Stylish for Chrome
-or-
Install Stylish for Firefox

Visit Userstyles.org to find custom website styles

How To: Disable Chrome Extensions Temporarily

How do you disable your chrome extensions, temporarily, then re-enable them? With an extension of course!

You can install it from the Chrome Store: Disable Extensions Temporarily

I personally have a lot of chrome extensions enabled but from time to time need to disable them all. However, I also need to be able to re-enable them and I don’t want to go one by one and click check-boxes. I just want to be able to temporarily turn off my chrome extensions with one click and then when I’m ready to turn them all back on, click again.

I found some decent extensions available, but not an exact fit. So, I scratched my own itch and made a new chrome extension that disables all chrome extensions with one click and, even better, remembers which extensions where previously enabled and will re-enable them again with just one click. Re-enabling only previously disabled extensions was key for me, because I have some extensions installed that I toggle on and off individually from time to time and after temporarily disabling extensions I don’t want to simply turn on all chrome extensions, I want to just turn on previously disabled extensions.

Try it for yourself!

Disable Chrome Extensions Temporarily

Collings Wedding Playlist – 2012-06-30

All songs on this list were hand picked. During the dance portions of our wedding reception there were additional songs played, however these are the official songs. This playlist will always remind us of our wonderful day. For those of you who celebrated with us, thank you again!

For those of you who are searching for wedding songs to add to your playlist, we think there are some great gems on this playlist that we didn’t find on other websites that list wedding songs. Waltz Across Texas by Willie Nelson was an easy pick as our first dance, being Texans, however if you need a different wedding waltz we’d suggest: Irish Waltz (our Father/Bride & Mother/Groom dance song) or maybe Come Away With Me by Norah Jones (a little too slow for us) or Could I Have This Dance by Anne Murray (our last dance).

I’m a huge Beatles fan, so All You Need Is Love was perfect for our Bride & Groom Reception Introduction Song. Being fans of The Wedding Singer Movie, we had Grow Old With You played during our cake cutting. For the bouquet toss Hit Me With Your Best Shot played while the ladies got their elbows out. I selected Let’s Get It On for the Garter Toss, which set the mood perfectly for a good show! Johnny Cash’s version of Memories Are Made Of This was a nice touch for the Anniversary Dance.

Wedding Dinner Music [Tracks 2-11]
Wedding Dance Music, Open Floor [Tracks 14-20]
Wedding Dance Music, After Cake [Tracks 23-25]
Wedding Dance Music, Night Dance [Tracks 28-31]

Here’s the full Collings Wedding Playlist from 2012-06-30:

Wedding Playlist

Better Bookmarking for Citations, Quotes and Snippets

Cite Marker is a Chrome browser extension that puts a twist on browser bookmarking. When bookmarking a web page if you’re trying to save a reference back to a quote or snippet, more so than the entire content of a page, then Cite Marker can help.

Built in browser bookmarking uses the web page’s generic title to identify the page being bookmarked. Cite Marker uses the text you highlight instead. And yes, you could type in your own title for the bookmark, if you’ve got nothing better to do with your time and would rather paraphrase the content that you find valuable enough to bookmark.

Also, by using the text you highlight to mark the source your bookmarks become a lot easier to retrieve, especially if you use the bookmark search feature. You can also create multiple marks for the same page.

It’ll even let you tweet out what you’re marking, if you’re into that kind of thing.

Check it out on the Chrome Web Store