I've enjoyed seeing the plans for Apple's new annulus-shaped campus.  I've also enjoyed hearing the gang on the MacBreak Weely podcast joke about how Apple would apply their design skills to an "Apple Car", especailly considering their penchant for keeping things simple (yet beautiful) and for making decisions about what features you really need.  

Posted
AuthorTodd Zarwell

I easily get annoyed with multi-step computer tasks that I seemingly have to repeat over and over and over again. I always find myself trying to find ways to automate these tasks with things like Automator, AppleScript, and Hazel on my Mac.

The thing is, I'll spend 45 minutes trying to figure out a way to automate a task that, if done manually, would have taken two minutes. I've done this for collecting optometry related RSS feeds, making journal entries, and many other things. It's OK because I like the challenge, although sometimes I wonder if I gain any time in the long run. I think I eventually do, but even if I don't I still win because whatever task I was dealing really annoyed me. Once I've automated it I don't have to deal with that ever again.

Still, I still found this recent graph from the Chart Porn Web site strangely validating:

Automating tasks

It might take more time up front, but it's worth it. Now if you'll excuse me, I'm going to be spending the few hours figuring out a way to avoid having to type periods.

Posted
AuthorTodd Zarwell
CategoriesTech
2 CommentsPost a comment

An article from the county I grew up in just came across my Twitter feed: Customer Protests Restaurant Over Fish Fry. It was pretty short, so I'll just paste the whole thing here:

THIENSVILLE, Wis. (AP) -- A restaurant customer in Ozaukee County is protesting after he was cut off from the establishment's all-you-can-eat fish fry.

At 6 feet 6 inches and 350 pounds, Bill Wisth acknowledges he can pack away more fish than the average guy. But, Wisth wants Chuck's Place in Thiensville to live up to its all-you-can-eat advertising.

After Wisth ate a dozen pieces of fish last Friday, a waitress refused to bring more. The restaurant says it was running out of fish and patience. They sent Wisth on his way with eight more pieces. Wisth called the village police. And he came back two days later with a picket sign.

Waitress Elizabeth Roeming tells WTMJ-TV says they've tried to work with Wisth over the years, even letting him run a tab that he hasn't paid off.

On one hand, I think there should be truth in advertising. On the other hand, there are rules and then there is the spirit of the rules. Obviously the restaurant intended to provide an amount of fish that any reasonable person would eat. However, when you provide a free or 'unlimited' service there is always someone who is going to try to take advantage of you. 1

Fish throttling

It seems that the restaurant only has two options:

  1. Honor their policy and provide free food until the man explodes into a smelly puddle of cod, or
  2. Stop providing "all you can eat fish", which would be as depressing to the people of Wisconsin as seeing a once beloved Packers quarterback going to play for the Vikings.

However, there is a third option. The restaurant could take a page out of the cable company's and cell phone industry's handbook. They too have offered unlimited services like Unlimited Data! Now, to me this means you can use their data in an all-you-can eat fashion: As much as you want, when you want. But, again, people take advantage of this. When AT&T realized people were watching nonstop Netflix movie marathons on the backbone of cell phone network, well, they decided something had to change. That's when they started throttling.

Throttling is officially defined this way:

  1. Attack or kill (someone) by choking or strangling them.
  2. Control (an engine or vehicle) with a throttle.

Although both those definitions seem apt, I'll quote the definition Wikipedia uses for this context:

Bandwidth throttling is a reactive measure employed in communication networks in an apparent attempt to regulate network traffic and minimize bandwidth congestion.

In short, if you spend all your free time watching Planet of the Apes movies over 3G on your iPhone you'll be labeled a bandwidth hog. Just like the guy who pigs out on all the fish, this isn't fair to everyone else. As a consequence AT&T will still provide bandwidth, but they'll slow it down to a trickle - the the point where watching your stinkin' monkey movie will be a miserable experience.

So, to loop around back to the Fish Fry restaurant, I think they should do something similar. Keep the fish coming . . . until you've had 8 pieces. Then, still keep it coming . . . but one one piece every half hour. That way they'll be honoring their commitment but they'll be conserving the fish for their other patrons. In addition, they'll make the dining experience for the person abusing the system so miserable that he'll hopefully just go away. Or, more likely, he'll petulantly occupy a table all night and make everyone else uncomfortable. Still, he can't do that every Friday night, can he?


  1. I have to admit, I've been guilty of this myself. I'm a relatively skinny guy, but I've been known to really pack away the food - especially when I was an active youth. When I was in college the local Hardees made the mistake of offering all-you-can-eat chicken. Four large friends and myself decided to partake. For the first half hour a employee came by with a basket of chicken and refilled our plates. For the following half hour we had to go up to the counter and ask for more. For the hour after that they hid out of sight in the back. Yes, they were chicken throttling. By the next day all the "all-you-can-eat" signs had been taken down.
Posted
AuthorTodd Zarwell
Tagshumor

Whats Hot In OptometryI came across a Web site called what's hot optometry, which is billed as Hot topics in optometry your peers are reading. Free articles from three top-ranked international optometry journals. In short, it's an up-to-date list of links to stories from Clinical and Experimental Optometry, Ophthalmic & Physiological Optics, and Optometry and Vision Science.

I was happy to see this as I've become fairly paperless. I have stopped getting a newspaper, stopped subscribing to magazines, and try to read books on my iPad whenever humanly possible. However, I know myself, and I have a hard time going to multiple Web sites to read articles. This is why I've grown to love RSS feeds. I don't want to go into too much detail about RSS, but if you're not familiar with it I'd read up on it. In short, RSS allows you to compile content from tons of sources, including newspapers, blogs, you name it. It collects these articles and displays it all in one place, such as Google Reader or in mobile apps like Reeder and Flipboard. I especially like Flipboard: it's like having a glossy magazine filled with stuff you like.

So, when I saw this list of links on the whatshotoptometry web site I looked for an RSS feed button - alas, there was none. So, I decided to see if I could find another way. A little Googling brought me to feed43.com, which states Your favorite site doesn't provide news feeds? This free online service converts any web page to an RSS feed on the fly. Sounded good to me. I clicked the create your own feed link and got started.

First of all, I entered the whatshotoptometry URL into the address line, left the "encoding" field blank, and hit "reload". It successfully loaded the page's HTML:

Feed43  Edit Feed

When you scroll to the lists of articles and links on that page (see above) you can see the pattern that the HTML falls into. In this case:

  1. a paragraph tag
  2. a link with the article's title
  3. a line break tag followed by the article's authors
  4. the rest of the reference (year, volume, pages)
  5. the closing paragraph tag

From here we can make a search pattern to extract the pieces we want. So, we state that we want to to use {%} to identify the text we're interested in and then map out the search pattern like you see below. When we hit "extract" we see that we're successfully getting the right bits of information:

Feed43  Edit Feed 1

Now, we have to use the data we're scraping from the site to create our RSS feed. I gave it a feed title of What's Hot In Optometry and a feed link of http://www.whatshotoptometry.org/ and set the RSS properties like this:

Feed43  Edit Feed 2

I hit preview, and the results looked pretty good. However, I was more interested to see how it looked in something like Google Reader, since this is how I would be using it. So, I copied the link it gave me, which was:

http://feed43.com/8200818104677650.xml

I went to Google Reader, hit the "subscribe" button, and entered in my link.

Google Reader  1000+

Then, I found the What's Hot in Optometry feed in my subscription list, clicked it, and saw just what I was hoping to see: A list of all my feeds complete with easily clickable links that take you directly to the article.

Google Reader  1000+ 1

Even cooler, I can set up Flipboard on my iPad to grab this feed from Google Reader, allowing me to casually browse through the articles anywhere (which means in bed - I know, I'm so exciting).

Photo

One caveat: what makes Flipboard so cool is that it grabs images from the content you tell it to, which makes for a really slick magazine-like viewing experience. Since these optometry articles usually don't have any flashy pictures it isn't quite as visually pleasing, which is kind of ironic when you think about it (get it? optometrist? visually pleasing…? Oh, never mind…).

Oh, by the way: Feel free to use the above RSS link if you like. There's no reason why you have to repeat this whole process if you just want to subscribe to the feed!

Posted
AuthorTodd Zarwell

For the last year or so I've been tying to keep a journal of observations about my kids, such as the milestones they're achieving and all the cute things they say and do.  You know, things like:

"4/20/2012: Drew recited PI to 37 digits today.  I'm really proud of him."

"4/21/2012: A college recruiter was looking at Mason today.  They said they've never scouted a 2 year old before but they think he has potential to win the Heisman and offered us full scholarship on the spot."

I know there's an abundance of software specifically made for this sort of journaling, but I've been a little nervous about using proprietary formats.  I keep thinking back to some resume creating software I bought 15 years ago.   Sure, it made nice resumes, but when the software got a little old and I didn't want to use it anymore I realized I couldn't open my files in a text editor like Word. 

So, If I want my kid journal to stand the test of time, I want it to be in the most basic format possible.  I want to be able to add entries from anywhere and at any time.  Because of this I decided to just make  single .txt file for each of my kids.  The really cool thing is i can keep this file in my Dropboxfolder and access it from a text editor on my computer or from an iPhone app like Elements.

However, I find that I still don't write as much as I'd like to.  I find writing on the iPhone and iPad to be a little awkward, and I'm sometimes too lazy to even open a text document to simply write a couple sentences.  Even worse, I spend a big chunk of my day using a work PC where I don't have the ability to use Dropbox.

A thought struck me: What if I could use email to write journal entries?  Whether I'm at work or at home I always have a browser window open to Gmail.  I opened up the mail app on my Mac and made a rule like this:

  

 I'm essentially giving the mail app these instructions: If you get an email from me and the subject is "kid1.txt", put it in my "Family" folder, mark it as "read", and then run an applescript.

The Applescript is as follows:

 

using terms from application "Mail"
    on perform mail action with messages theMessages for rule theRule
        tell application "Mail"
            repeat with theMessage in theMessages
                set theBody to content of theMessage as rich text
                set theSubject to subject of theMessage as rich text
                my executeScript(theBody, theSubject)
            end repeat
        end tell
    end perform mail action with messages
end using terms from
 
on executeScript(theText, theFile)
    set m to month of (current date)
    set d to day of (current date)
    set y to year of (current date)
    set theshortdate to m & " " & d & "," & y as string
    set the_file to ("/Users/icozip/Dropbox/Elements/journals/") & theFile
    -- write the file
    set openFile to open for access the_file with write permission
    write return to openFile starting at eof
    write return to openFile starting at eof
    write theshortdate to openFile starting at eof
    write return to openFile starting at eof
    write theText to openFile starting at eof
    close access openFile
     
end executeScript

 

As much programming as I've done, and as simple as Applescript is supposed to be, I'm still not very comfortable with it.  I cobbled this together from a bunch of other scripts that I found on the web.  It basically says

  1. Receive an email
  2. Extract the subject (which in this case will be "kid1.txt") and the content
  3. Append the date and the content of the email to the end of the file named "kid1.txt" in my dropbox folder

Now, when my kids say something cute in the car on the way to daycare, I can go to work, log into my email account, and add an entry to my kid blog by typing a short email.

The cool thing is I can do this with as many files as I like. For example, I could make a file called "kid2.txt" and, if I use this as my subject line, it'll append text to that file.

The other cool thing is that I get even more redundancy.  Now, not only is my text file on my Mac, in the cloud in Dropbox, backed up at Carbonite, but these emails will also remain in my Gmail account.

Posted
AuthorTodd Zarwell

When my son was about 3 years old we were walking through the toy aisle when he excitedly pointed and exclaimed "look dad, steamroller shoes!"  He was pointing at a pair of kid's rollerskates, but I was tickled by his imagination so I drew this picture: 

Posted
AuthorTodd Zarwell

On my way home tonight I was irritated when I saw someone driving fast(= faster than me) and making rapid lane changes without signalling. Maniac. Of course, this is something we all experience every day. My first thought is always the same: Wouldn't it be great if I was a cop in an unmarked police car - OK, unmarked police minivan - and I could pull them over? That would teach that perp a lesson.

I also daydream about something else, though. What if we could somehow demerit people for being rude, without being a policeman, judge, or other authority figure?

There has been a number of trends in recent years where people get credit for achievements that only exist in the ether. Posted something clever on FaceBook? Congratulations, you got 6 "Likes"! Went to that restaurant and checked in on FourSquare again? Welcome, Mr. Mayor of Olive Garden! These things translate into nothing tangible in the real word, yet we still seem to care. It seems that 1) we're social beings and we like the attention and the accolades and 2) we like to accomplish things, even if it's in an imaginary world.

Certain entities have really learned to take advantage of this. Facebook has nearly a billion pairs of eyeballs looking at their advertisements. And companies like Zynga (FarmVille) have mastered the psychology of making people obsessed with accomplishing virtual tasks, to the point where they start spending small amounts of their real money to buy pretend soybeans and pigs. It works: Zynga has grown to have a market cap of over $9 billion in 2012.

So, since we can't seem to help ourselves, maybe we can use virtual currencies to manipulate people more positive ways? It's a little sci-fi, but wouldn't it be cool if we could give people points for being good Samaritans? Thanks for letting me change lanes, I'm going to scan the UPC code on your back bumper and give you 50 virtual gold coins. Or, you wrote a racist/sexist/etc comment on youtube and I'm going to use your IP address to demerit you 10 credits. I chose these examples because typically people act the worst when they think they're anonymous. People would behave a lot better if they they still were accountable for their actions.

Sure, some people would demerit others for inappropriate reasons. How dare she wear the same dress to the party as me? No credits for you! However, if we're talking about each person having very little power only the sum of a lot of opinions would matter. If a widget on Amazon has 500 5-star reviews and 7 1-star reviews, it's probably a pretty good widget.

So, what would the credits mean? Maybe nothing. Like I said, we're social, we're competitive, and we like to achieve things. Credits might be enough for their own sake. Or, maybe if you tick off too many motorists and get too many driving-related demerits you lose your driver's license. Or, perhaps your credits just earn you goodwill when interacting with others.

This last idea makes me think of Daniel Suarez's book, Daemon. Here, people in the near future are equipped with virtual reality glasses that project little bubbles of text over items the user is looking at. When looking at a man or woman you'll see their personal information (linked to the individual via their cell phones), including a virtual credit ranking.

What 's that? You see some problems with my idea? Besides the fact that we haven't invented bumper-scanning UPC readers nor perfected virtual reality glasses, how do you keep unscrupulous people from buying credits they didn't earn? You forsee jerky rich people buying credits from poor nice people who need real world cash?

Sigh. How dare you crush my vision with real word economics? Next thing I know you'll be telling me that I can't live in a candy-cane forest due to the threat of dental caries. Now who's being jerky?

Posted
AuthorTodd Zarwell