Saturday morning: 4 things I learned from credit card deals to getting great at Photography

Working the travel points system

I did some research to see when I should get two new Southwest credit cards. People look at you weird when you say you play the credit card game but I’ve found them to be worth it. This time I’m working on a Southwest companion pass for 2018 and 2019. This means every time we fly Southwest on vacation, one of us will fly for free. A lot of travel bloggers have written about it. You need to apply for one card by October 1st and the other by October 5th. (And if you froze all your credit, you will need to find out what credit agency they will use to check your credit and unfreeze it first.)

Rey costumes

In anticipation of Krewe of Boo, Halloween and Chewbacchus, I’m working on a Rey costume. I spent a lot of time looking for pictures of her and then when I talked to my 11 year old, he remembered everything in great detail without having to consult any pictures. I should have asked him first. My partner mentioned that I’d need to figure out how to fix my hair and I told him there are tons of YouTube videos on just Rey’s hair.

Photos: Aperature

Last weekend I took pictures at a Crossfit competition and really wished I knew how to make the background blurry so that I could focus just on the people in the foreground — there were a lot of people standing around. So I spent some time learning about aperture and learned how to set up aperture priority mode on my camera. The article that got me started in the right direction was one about taking pictures at corporate events. There are a lot of articles about depth of focus.

Puerto Rico

Three and a half million people without power and running water! No drinking water! With no near term solution in sight. I’m sure money would help but they are also going to need some major logistical help and being an island is an disadvantage. And being a US territory, something few US citizens understand, is also a disadvantage. I read that Tesla is sending powerwalls. And private companies have been flying in medicine and flying out medical patients. It’s going to take a lot to help everyone that needs help.

10 quotes from Edward Tufte

I took Edward Tufte’s Presenting Data and Information class. Normally I would have tweeted these quotes (especially since Edward Tufte is active on Twitter!) but the room was dark and my phone’s screen would have looked like a spotlight. (This is not my summary of the day. Just some of the tweets I would have sent.)

  1. There are only two industries that call their customers users: illicit drugs and software.
  2. No visualization for little data. Use sentences.
  3. Taking notes shows respect.
  4. Marketing = amateur social science.
  5. It’s just as easy to get fooled by big data as little data.
  6. Just block people. If someone pees in your living room, you don’t want to stick around.
  7. By age 35, all future music will become an utter mystery.
  8. If you have an inherent interest in operating systems, it’s unnatural. (Operating systems was my favorite university computer science class! And my first job.)
  9. All complex ideas can be expressed in normal language. This is what reporters do.
  10. Distrust anyone who replies with character assassination.

And there was also lots of good content.  More later.

Mimi Geier, a great math teacher

MimiGeierThe world lost a great math teacher this week. Mimi Geier not only loved math, she loved teaching math and delighted in watching kids discover solutions. If I had a picture to share here, it would be of Ms. Geier with a grin on her face, holding out a piece of chalk so that a student could teach.

My first day at BFIS, Ms. Geier asked me if I was in first or seventh period math. I wanted to ask which one was the advanced math class, but I didn’t. Instead I said I didn’t know. She told me to come to both and we’d figure it out.

I got worried during the first math class. I could solve any quadratic equation in the world with the quadratic formula but Ms. Geier didn’t think too much of that method. She wanted us to factor, to pull the problem apart and understand the pieces that solved it.

Walking up the stairs after lunch, a girl who later became my friend told me, “You don’t want to be in the seventh period math class.” So it was with trepidation that I entered seventh period. Is this where they sent the kids that had never learned to factor? To my surprise I found a much different class. It was a small classroom of relaxed students and a very different Ms. Geier. This was not the homeroom teacher Ms. Geier. This was not the Ms. Geier who could take forever to make a simple point. This was not the Ms. Geier who was always misplacing that paper that she’d just had. This Ms. Geier grinned a lot. She loved it when we came up with a hard problem. She delighted in solving problems with us. She was thrilled when we figured it out. Ecstatic when we could teach each other. This was Ms. Geier the math teacher. I got to stay in seventh period, advanced math.

One day, we were all having trouble with some calculus. We could solve all the problems but we were struggling with the why. We got the formulas but not how they worked. The next day, a kid in my class whose dad was an engineer at IBM came in and said, “I got it! My dad explained it to me.” Ms. Geier, who had probably spent hours figuring out how to teach it to us, just grinned, held out the chalk and said “Show us!”

Several years after that first day of school, Ms. Geier was out of town for a few weeks. Her substitute pulled me aside during break. Sitting at Ms. Geier’s desk, he asked me for help with a math problem and said Ms. Geier had told him that if he had any problems with the math, he should ask me. Me, the kid who was afraid to ask which class was advanced, now trusted to help the math teacher!

Unknown to me, Ms. Geier also intervened on our behalf in other areas. We were having trouble with our science teacher. Several of us were banned from asking questions. One of my classmates was banned from asking questions because her questions were too stupid (she’s now a food scientist) and I was banned because my questions were too ridiculous (too much science fiction?). In all fairness, she did explore my ridiculous questions outside of class, even consulting her college professor. Things eventually got better. Several years later she told me that Ms. Geier had helped her figure out how to cope with us.

Ms. Geier taught me many things. Among them were that it’s ok to love math just because it’s math, that it’s ok to be the expert and let somebody else teach you – not just ok but exciting, that it’s ok to be the expert and not know all the answers, that sometimes people learn best from peers, that solving problems together is fun, and much more. I owe a lot of who I’ve become in my career to Mimi.

I, and many generations of math students, will miss Mimi Geier.

RPI students create some cool things

At the Rensselaer Center for Open Source Software students develop open source software solutions to solve societal problems.

For example, at the HFOSS Symposium today I talked to Graylin Kim who is working on the New York Senate Open Legislation Service where people can look up any bill that is being discussed in the New York Senate, get a permanent url to share and discuss on their own websites or grab all the data via REST. The idea is to encourage more citizens to get involved in legislature. Developers can get involved at or #nyss_openlegislation @ for OpenLegislation

I also discovered that Ease, a slide share program for GNOME, that is currently being developed by Nate Stedman. (An earlier version, Glide, was created by an RPI student, Rob Carr.)

You can check out the RPI Center for Open Source and the other projects students are working on. The program was started by a grant from an RPI alum, Sean O’ Sullivan. He started MapInfo (now PBInsight) and JumpStart International (article).

They were at the HFOSS Symposium sharing how their program worked with other educators.

[Post edited for accuracy on March 9, 2011.]

Learning to write JavaScript

So now that I work at Mozilla, I figured it was time to develop a “web app” just to make sure I understood it all. And since my team is working on educational resources for web developers, I wanted to see what it was like to learn how to use some of them using resources online.

So I decided to use the resources I could find online and write some JavaScript to do a pet project of mine.

What was the problem I wanted to solve?

I really wanted a way to automatically add “Photo by <author>” to the bottom of Flickr pages I want to use in my presentations. I have a number of workarounds I’ve developed to do this in an effective way, but I really just wanted to click a button.  For example, at first, I saved the image with the author’s name as the file name, and then every time I used the picture, I added text to the slides. Then I wrote a Ruby script that went through all my picture files and added “Photo by <filename>” to them. But that is still a three step process: grab the author’s name, save the photo as the author’s name and then run the script. Also, I like searching on Flickr better than I like searching my personal archive. Tags are nice.

I also wanted to make it a service and a bookmarklet so others could easily use it.

Why did I decide to use JavaScript?

When I first started this problem, I wrote a script in Ruby. I thought I’d use Ruby on Rails to make it into a web app, but Rails looked pretty difficult to setup for a newbie, so I put it on the back burner.

Now that I’m at Mozilla, I thought it was high time to learn JavaScript.

(For the record, I have a background in C, C++ and Java. I find Ruby much more intuitive to read than JavaScript. But I find JavaScript much more readable than many other things.)

In retrospect, the Flickr API is difficult to use from JavaScript. I think using PHP would have been much easier. It did force me to use only one call to Flickr (the right solution), as adding a Flickr API call to JavaScript turned out  to be unintuitive to me. You basically build a <script> object and then append it to the document.

Like this (copied from sample code):

document.flickrURL = ‘’ + document.apikey + ‘&photo_id=’ + photoNumber + ‘&format=json’;

//add the flickr javascript to the page so it gets executed
//flickr automatically calls jsonflickrAPI(rsp)
var root = document.getElementsByTagName(‘head’)[0];
var oS = document.createElement(‘script’);
oS.setAttribute(‘type’, ‘text/javascript’);
oS.setAttribute(‘src’, document.flickrURL);

Maybe that’s the way things are usually done in JavaScript, but it took a while to wrap my head around it. I felt like I was dynamically changing the code at execution time which made me feel like I was in a science fiction movie. Except that I didn’t think my problem warranted that complicated of a solution.

Part of my comprehension problem was that a call to Flickr calls your jsonFlickrAPI() function and you don’t get to say when that’s called. Nor change it for different calls. (Although maybe you could have several JavaScript files each with their own jsonFlickrAPI() functions. I didn’t try that.)

How did I learn?

I asked one really stupid question of my team mates. Then I decided I really needed to see if I could learn this from web resources.

I used primarily three:

  1. MDN. When I wanted to learn more about an element or what was possible, I ended up on MDN. Probably because I was familiar with this site – it’s the one that my team at Mozilla maintains! But I really didn’t find any other site that covered all topics like a reference guide. It did turn up several times in my searches too.
  2. StackOverflow. I googled most of the problems I had and several time I found good answers on StackOverflow.
  3. Personal blogs. A lot of my questions and answers were found on personal blogs. People had encountered a similar problem and they blogged about it.

How’d I get started?

It’s been a long time since I’ve written code. (Other than an occasional program or script to solve a quick problem.) I broke my problem down into nice little steps. Each one of which was functional on its own.

For example:

  1. First I wrote a “Hello World” app in JavaScript. This was to make sure I knew where the code should go, the basics of getting setup with an editor, etc. (Very easy.)
  2. Then I figured out how to make a canvas and draw an image on it. (Easy.)
  3. Then how to write text on an image. (Easy.)
  4. Then how to create a jpg of that canvas. (Was easy. Then it quit working.)
  5. Then I figured out how to have the user specify the image location and the text. (Pretty easy.)
  6. Then I figured out how to get an image from Flickr. (Not easy.)
  7. Then I figured out how to get an image from Flickr when all you have is the url of the photo page. (Really not easy.)
  8. Then I figured out how to put some javascript on a website for everyone to use. (Very easy.)
  9. Then I created a bookmarklet. (Not as easy as I thought but quick.)

What was hard?

Trouble shooting and Flickr.

  • Trouble shooting JavaScript was not always easy. If I was getting someone started with JavaScript, I’d set up their development environment and explain the tools first. Firebug, the Firefox Console and alerts ended up being my friends. Before I do more JavaScript development, I’ll explore some more debugging tools.
  • Flickr. I think the Flickr API might be really easy to use if you use a language where you could just make a call from the code. I had to create a URL and then append it as a script. It made trouble shooting harder and it felt clumsy.

A couple of times I also ran into something that made no sense to me or was taking too long to trouble shoot and instead of figuring it out, I did it a different way. I think it would be good for my education to figure out what was wrong with the initial approaches.

What did I end up with?

If you’d like to try it out, drag this bookmarklet [thisphotoby] to your bookmarks bar. (If you are on Internet Explorer, right click and save it.) Then go to a Flickr photo page and click on the bookmarklet. It will return the photo with “Photo by <author>, <url>” overlayed over the  bottom of the photo.

You can also check out the (very ugly) website I made,

Next steps

There are a lot of things I could do to improve this.

  1. Add error handling. If anything goes wrong, well, it just doesn’t work. I didn’t do any checking or give the user any helpful tips. A terrible coding practice!
  2. Clean up the code. I copied and pasted ideas from many places and ended up with variable names and function names that follow no standard. I’d also like to find a JavaScript style guide and clean up the code.
  3. Add user preferences. It would be nice to specify which size image you want, if you want white or black text, what size text, etc.
  4. Licenses. I’d like to be able to check what permissions the user has and what license the photo is under in order to help the user understand how they can use the photo. Flickr lets you download all sizes of all photos even if they are licensed “All Rights Reserved”. This script passes on that ability, but it would be nice to also make the licensing more obvious.
  5. Create a jpg. I had it working with a png and a jpg. Then the jpg part quit working. I tried several other methods and did not get it working. Since I felt like I had accomplished my goal, I left this for later.
  6. Make a pretty website. 🙂

Learning division in school these days

One of the things that has frustrated us with our 10 year old’s current school is that he has no text books. This makes it hard for us to look up how he’s learning things. It’s especially frustrating in math as they now learn different methods we did.

Recently, I was struggling to show him how to divide. (Well, I wasn’t struggling to show him how to divide but my way seemed to be completely foreign to him, as if he’d never learned it before. So I was struggling to build on what he already knew.)

So I asked his teacher how he had taught the class to divide, and he sent me back this work sheet with the “4 methods he had taught them”.

Nevermind that those are 3 methods and one explanation on how to write problems – I will admit that at times I’m a bit too pedantic about saying exactly what you mean. (But really, it’s math, you have to say 3 when you mean 3!)

While it seems like a good way to understand what division is all about, it seems to be lacking in ways to easily come up with the exact answer. But it does work to teach them how multiplication and division are related.

I also really liked that it was immediately followed up with word problems, i.e. “Mike has 32 cookies. He wants to share them equally with his 6 friends. How many cookies does each friend get?”

I hope there’s a next step where they learn how to divide the “good old-fashioned way”.  Whether or not they do, I’ve already taught my 10 year old that way, although I had to teach him decimals as well. (I’m sure that when I first learned to divide, they very conveniently left out all problems with remainders and then added them in later.)

Which way do you think is the best way to teach kids about division?

What types of questions were you not allowed to ask?

Earlier today I read an interesting article and tweeted:

4yos ask questions, 6yo have learned that teachers value right answers more than provocative questions
Then I shared that I was once banned from asking questions in a physics class because the teacher didn’t know the answers and thought I was trying to disrupt the class. (My question asking status was reinstated after the teacher talked to my awesome math teacher and got confirmation from her college professor that the questions really were hard questions without answers.)

I’ve been amazed at the number of really smart people who have shared similar stories!


Do you have a similar story to share? How do we help today’s kids not run into this?

For my part, I think I kept asking the “hard” questions because my parents and my other teachers were so supportive.


How long does it take to be an expert?

Photo by Scott Ableman
Photo by Scott Ableman

Malcolm Gladwell says it takes 10,000 hours to become an expert. He looked at professional hockey players, pianists and composers and said in each case it took them 10,000 hours of practice to get really good.

I’ve always thought practice was more important than talent – I think it looks like you have talent when you like something so much you spend hours and hours on it. The kid that loves baseball, plays every chance he gets and practices on his own. That kid gets good. How good he gets might depend on talent, but either way, he’ll get good.

In Outliers, a book I just started listening to, Malcolm says people have talent but without the 10,000 hours of practice, we’ll never see it.

So how much is 10,000 hours?

At an hour a day, that’s 27 years. At 3 hours a day, it’s still close to 10 years. What do you do for 3 hours a day? If you are like most of us, the only thing you do for 3 hours a day, day in and day out, is something you are paid to do. (So make your job something you enjoy doing!) Although I’d guess there are some free software developers out there who put in a lot of hours “practicing” coding every week regardless of whether they get paid for it.

How long does it take someone with a job to get really good at it? Say you got a job writing code – and you’ve never written code before – and you actually get to code 40 hours a week. (40 hours of coding, not email or meetings.) And you only took two weeks of vacation a year. After 5 years, you would have the potential to be an expert developer. (In the book, Malcolm talks about how people like Bill Gates and Bill Joy got their coding experience – he thinks experts are people that got the opportunity to practice 10,000 hours.)

So next time you admire someone for their skills and say “I could never do that” – stop and think. Did you give it the 10,000 hours?

Web Food for June

Bumper stickers reveal link to road rage : Nature News
People who had a larger number of personalized items on or in their car
were 16% more likely to engage in road rage, the researchers report in
the journal Applied Social Psychology1.

What Thomas Edison Can Teach You about Blogging

Most blogs are abandoned after a month or two…. the average time that it takes a blog to rise to the top of the pile is around 3 years (it’s now longer).

Lost in E-Mail, Tech Firms Face Self-Made Beast –

“e-mail apnea,” coined by the writer Linda Stone, which refers to the
way that people, when struck by the volume of new messages in their
in-boxes, unconsciously hold their breath.

Lost in E-Mail, Tech Firms Face Self-Made Beast –
typical information worker who sits at a computer all day turns to his
e-mail program more than 50 times and uses instant messaging 77 times,
according to one measure by RescueTime, a company that analyzes
computer habits.

Traveltalkonline: Sailing the BVIs Vs Grenadines
what its worth, I heard this perspective from a sailor with much more
experience than me – "sailing in BVI is cruising on training wheels."

Long vs. Short Articles as Content Strategy
A good editor should be able to cut 40 percent of the word count while removing only 30 percent of an article’s value.

How we read online. – By Michael Agger – Slate Magazine

Nielsen holds that on-screen reading is 25 percent slower than reading on paper.

Traveltalkonline: Long Bay Bch Resort vs Sebastian’s Seaside Villas?

For an extra $50 a night, Malcolm will leave the freezer door open with a fan in front. Just ask!!

Is Google Making Us Stupid?
myself in a book or a lengthy article used to be easy. My mind would
get caught up in the narrative or the turns of the argument, and I’d
spend hours strolling through long stretches of prose. That’s rarely
the case anymore. Now my concentration often starts to drift after two
or three pages. I get fidgety, lose the thread, begin looking for
something else to do. I feel as if I’m always dragging my wayward brain
back to the text. The deep reading that used to come naturally has
become a struggle.

Bob Sutor: Open Blog | Why I stopped using Twitter
I think I made the wrong decision to post the tweets to my blog. They
should have been ephemeral, said and gone. Anything that warranted
posting to the blog should have had its own entry.

Findings – Futurist Ray Kurzweil Sees a Revolution Fueled by Information Technology –
you depressed by the prospect of dying? Well, if you can hang on
another 15 years, your life expectancy will keep rising every year
faster than you’re aging.

Findings – Futurist Ray Kurzweil Sees a Revolution Fueled by Information Technology –
about greenhouse gas emissions? Have faith. Solar power may look
terribly uneconomical at the moment, but with the exponential progress
being made in nanoengineering, Dr. Kurzweil calculates that it’ll be
cost-competitive with fossil fuels in just five years, and that within
20 years all our energy will come from clean sources.

Findings – Futurist Ray Kurzweil Sees a Revolution Fueled by Information Technology –
you have trouble sticking to a diet? Have patience. Within 10 years,
Dr. Kurzweil explained, there will be a drug that lets you eat whatever
you want without gaining weight.

mikesimonsen: just noticed I spent more on Coffee (~$80) in May than I did on gasoline (~$60). Fuel’s fuel, right?

Bilingual people have to search for words more often

Anybody who knows me has probably heard me say "now, what’s that word I’m looking for?" I seem to say that many times a day – there’s a perfect word but I it takes me a few seconds to remember just what word it is. Turns out I do that more often than most because I’m bilingual. Or so says this study: Why you make the same mistake twice. They also say that every time I do that, I’m more likely to do that again as my brain learns to forget. Or something like that.