Month: March 2018

I paid Google €11.04 to get four people to look at my site

A brief foray into AdWords

Part of the appeal of the whole “let me start a website and try to monetize it” thing is getting a look behind the scene at how these financial mechanisms of the Internet work. My life has exposed my quite a lot to the technical mechanisms of the Internet, but I only vaguely knew that “advertising is big business.”

So, having declared the website to be officially finished (I now have a list of changes I want to make, so … whatever), I rationalized it was time to try and get some users who I don’t know.

I opened an account with Google’s AdWords.

The process of opening the account was painless, and making the ad was just like the YouTube tutorials I watched. However, it wasn’t easy because I tend to be a long-form writer, not the kind of guy who gets things said in six words. (Have you noticed that about me?)

Still, I got the add made, I was happy. This is how it looked:


(Fun fact: having that inline here still makes some part of my brain crazy, as I can feel myself trying not to read it.)

Advertising is expensive

I tried searches with the keywords I decided to market against. There were no ads shown to me (thinking my adblocking software might be the reason, it tried it in incognito mode and Firefox), it seemed reasonable to think that I wasn’t competing against many people in Google’s complex ad-auctioning system.

I set the price to €6/day for three days. It seemed like money I could afford, and it was hard to know what to expect.


My brief ad campaign

You can see how things went. Two dollars per click seems like a lot of money. Especially considering, when it was finished, I checked and there were no new user accounts, meaning people came, looked, and were not interested.

What I think I’ve learned

So, what have I learned? Well, I re-examined the landing page and have decided that it needs to be polished. I’d like it to reflect me as a person doing a thing more than looking like some impersonal internet software. After all, I’m a likable guy, right?

Further, I think it needs to more quickly move into the information of what can this site do for you? Because, humility aside, I think I have a compelling argument for the site being really useful.

My mistake, I think, was that, although I know I need the opinions of people who don’t know me, I didn’t put myself in the headspace of someone coming to the site.

The next campaign

I don’t know when it will be. I mean, I have some work to get done, some behind-the-scenes things I’m still working on (I’d like to be able to add resources, outside the worksheet creation process) and I still teach English more or less full time.

Still, when I come back to this, I’m going to target all of Germany, rather than my region, and use more limited keywords, rationalizing that people who come to the site looking for EFL vocab worksheets are more likely to be interested in what I have to offer than people who want EFL grammar worksheets (which my site does not create).

I’ll keep you posted.


Practice Persistence

The most recent chapter in my continuing reading of The Obstacle is the Way is all about persistence and, to be honest, it’s exactly what you’d think.

The chapter starts with Ryan Holiday relating a story of General Ulysses S. Grant besieging Vicksburg. Challenges are enumerated, obstacles recounted. Distractions are mentioned. And, do you know what? Grant takes the town in the end, proving all the naysayers wrong.

The next story is of Thomas Edison inventing the lightbulb. You know that story, but it does include a cameo from Nikola Tesla, which seems worth recounting:

Nikola Tesla, who spent a fustrated year in Edison’s lab during the invention of the lightbulb, once sneered that if Edison needed to find a needle in a haystack, he would “proceed at once” to simply “examine straw after straw until he found the object of his search.”

The fact that that paragraph ends with “Well, sometimes that’s exactly the right method” pretty much sums up the whole message: get ready to work hard.

You can probably tell I’m a little sarcastic about the whole thing, partly because it seems cliché and partly because it seems like bad advice. (Some obstacles just won’t be overcome — you’re not going to head-butt your way through a concrete wall.)

However, later in the chapter, there is this paragraph:

Once you start attacking an obstacle, quitting is not an option. It cannot enter your head. Abandoning one path for another that might be more promising? Sure, but that’s a far cry from giving up. Once you can envision yourself quitting altogethr, you might as well ring the bell. It’s done.

I find that paragraph to be the most valuable of all that is in the chapter.

I guess that “work harder, not smarter” doesn’t seem like great advice. And, the “examine every straw” seems like the worst way to find a needle in a haystack. In fact, I think that we’re under an obligation to make the most out of the time that we have, and I think that if a certain approach isn’t yielding results, you have to start looking for the one that will.

(In an unrelated note, I seem to be happy to consider jumping between projects.)

I get the idea that you can’t give up too early, but I certainly think it’s just as wrong to never give up. Maintain the original objective, but be willing to rethink how you’ll get there.

More than simply saying “practice persistence,” I think it’s valuable to gain some insight into what kind of things you get better at with persistence (and what kinds of things just don’t get better, not matter how much you try and try) and how to benchmark, even informally, whether or not you’re making progress or just spinning your wheels.

So, my takeaway from this chapter is this: be persistent, but be willing to change what you’re being persistent at.

New Projects

A project is finished

I’m planning to wind down the “actively developing” part of the worksheet generator app this week. It’s weird to think that I will then (well, really, already do now) have a project that is finished.

It is my first finished project.

But, that leaves me wondering what I’m going to be devoting my energies towards. I really enjoyed working towards something, and I’ve been wondering what to get at. There are, of course, a few candidates:

User administration

Originally, the next thing I thought I would be tackling would be creating some Model objects and views for user administration in Django. The logic is simple: I’ve been creating a disorganized hack of these things as I realize I need them. Wouldn’t it be better to have something unified?

Further, I’ve never created an app to be reused in Django. I know it can be done, and I’m certainly smart enough, so why not focus on that? I was thinking that it could incorporate the following, at least:

  • Integrating that wonderful “signup with Google” and “login with Google” functionality that I like in other sites
  • Support for beta testers and normal users
  • Payment integration, as well as support for “you haven’t paid” account locking and “your account expires on” account management.
  • Tools to see how many users are regularly using a website
  • Tools to automatically notify inactive account owners of impending deletion, and then, of course, to automatically delete said accounts.
  • Arbitrary numbers of user properties, as well as the ability for the administrator to sort users by those properties and to send mass emails. (Meaning: the ability to send an email to all the beta testers in Germany, for example)

However, I’m finding that, as I wind down work the worksheet generator (and look forward to spending no small amount of energy creating resources for it to use), I’m not very excited about tackling that. Though, logically, user management would be something I’d use before tackling the fantasy pilgrimage.

Fantasy Pilgrimage

Something I’ve thought about for a while, it remains in that golden sweet spot where “project I think people would use” and “project I think I can accomplish” overlap. The idea is simple: integrate with the Google Fit API to allow a user to set a start and finish point for a “fantasy pilgrimage” and then show on a map how far they would have progressed towards that destination, if all of the movement captured by Google Fit (or whatever app is integrating with it) were dedicated towards that.

In short: if all of my runs were strung together in a long line (rather than being circles that always end back where they started), how close would I be to the city of Rome?

It would have the advantage of being a usable web application that would give me some hands-on API experience, but it does seem to require the user management, and I just don’t seem too excited about that, for whatever reason.

But, I could move away from coding and try focusing on writing for a time. That’s the next candidate project.

The heartbreaking truth behind Destiny 2

This is a simple writing project that I keep thinking about whenever I play Destiny 2. I don’t play often (Sundays, with my brother), but it’s the only video game I do play. Back when we played Halo, I tried my hand at fan fiction where the Halo world intersected with the world you and I know. (My brother couldn’t play because he had to go to a wedding, so, of course, I wrote a story of him being at a wedding when a drop ship began disgorgin aliens and he alone was able to kill them all.)

The thing is, Destiny 2 doesn’t have really strong characters that I want to incorporate into fan fiction. Instead, we keep noticing details about the game that we love, and wondering how the developers came to settle on them. I’d like to write up those fake stories. (Including a cast of completely fictional programmers and their internal feud with the people in human resources).

It would be a change, but I don’t know that I’d be as proud of what I built as I am of the worksheet generator.

That brings me to the idea of creating an app.

ESL Detective game

Pirating parts of the idea of a boardgame that my kids play, I had a great idea for a mobile-device-based listening game for ESL students. The idea is this: with a very simple menu, students have to play the role of detectives solving a robbery. As they pass the device around, each person takes turns making decisions, but has to consult the group (sparking, I hope, conversation).

There’s nothing to watch, but everything you learn is played via audio. Like most teachers I know, I have good bluetooth speakers that everyone in the classroom could hear at once. That means everyone learns everything simultaneously, and that there would be paper on the table on which to record the things we learned.

Basically, as you moved through the story, you would learn things like:

  • Susan is very short
  • Edgar speaks German
  • The thief was very tall
  • Paula has short, grey hair

And, students would have to record these things on “suspect cards.” Eventually, as more is learned about each suspect, as well as about the thief in general, the class should be able to successfully accuse one in-game player.

It seems like it would generate conversation, practice listening, and be a change from normal classroom activities. So, of course I’m in favor of it.

I like the idea so much that I’ve started watching YouTube live-coding videos of people making apps with Flutter (which promises to make it possible to create apps for both android and iOS), but I’ve had trouble installing Flutter myself. (It doesn’t seem to find components that I think I’ve installed.)

Still, this is the one I’m most excited about, and it seems like it would be pretty straight-forward if I could get flutter working:

  • Plot out the story
  • Assign a few friends to read for me
  • Put the app together in a series of button interfaces
  • Test it in a classroom

It’d let me try creating an app, uploading things to the various play stores, and it would be useful to people outside Germany (unlike the worksheet generator, at the moment).

But… for all that to work, I need to get Flutter working.

The absurd business worksheets

The worksheets

A while back, I mentioned that I was making business worksheets. The idea has been to find some sort of “business worksheet” that does the following thing:

  • Engage my students so that they don’t shut down and go into passive mode
  • Cover grammar in a “business context” so that I can say it is relevant
  • Include business vocabulary

I approached this the way I approach everything: as a chance to be a clown. The worksheets are a collection of prose ‘business stories’ (or emails) illustrating the grammar/point in question and exercises based on that grammar. The stories and emails, however, are completely absurd.

Besides my own personal love of absurdity, I value it for two reasons: it brings some levity to the classroom and, second, it allows me to admit that I don’t know anything about their work in a practical way. We always finish the story with me saying “this is how I imagine your job…”

The post linked above includes one example, but here’s another.

This is not so much typical, as one of my favorites (also from the worksheet series focused on the passive voice). It follows the adventures of a fictional Customer Service Representative named Fritzilinde:

“The ‘Grammatik der Liebe‘ album has to be delivered on Friday,” she said to her colleagues in the creative department. “The customer wants to know if we’ll make the deadline.”

Her colleague made a face. “It should be finished on time…”

Fritzilinde cut him off. “Should isn’t good enough. What do you need to get it finished?”

Another colleague stopped mixing ketchup into his vodka and said “What he means to say is that it will be finished, if the muse inspires us.” He looked at the bottle in front of him. “And this is our last bottle of muse. So, it could be delivered on time, if this is enough.”

Fritzilinde went to his desk, took the bottle and held it in front of his face. “Listen to me, it is going to be delivered on time. I know that, because, if it’s not, I’ll take this bottle and stick it so far up your behind that you’ll need your muse and a powerful flashlight to find it.”

The Reception

When I made the worksheets, I had some specific groups in mind. The ones I like to laugh with. Originally, I thought that I’d rewrite the stories to match the tone of the more straight-laced groups. But, as things go, I “didn’t have time.”

So, all of my business groups (and several advanced evening groups) have had at least some of these worksheets.

And they were a resounding success.

I credit that to a few things.

First, I have learned that people genuinely enjoy the absurdity, if only to say “I know colleagues like that” or “is that what you think human resources does, Toby?” Everyone has some idea of the fact that their work is undervalued by people who don’t do it, so these sorts of jokes are great.

Second, there is a pretty boring component to the worksheets. I don’t make much of it here, because it’s not much to write about, but after each story introduces something, there are boring activities reinforcing what the story was supposed to introduce. Following the story above, there are activities matching modal verbs to probabilities as well as exercises with more ‘normal’ vocabulary. (“The product is going to be replaced by the more expensive SuperProduct 3000.”)

Third, they include brainstorm activities. Like worksheets downloaded from the internet, these are kept deliberately general. I’ve found that the ideal solution is to include some sort of brainstorming activity in which the students list their own vocabulary (for the passive, this is a table of tools they use and associated verbs).

Lastly, the trick is to combine the ‘generic’ worksheets with specific exercises. Using the vocabulary gained in the brainstorming, and in addition to the worksheets, I prepare a translation exercise using that vocabulary which, if I do it well, comes pretty close to language they would actually produce, or can imagine themselves producing. And that brings the exercise from a sense of abstract detachment (the absurd story) gradually to a feeling of hands-on practice (the customized exercises).

All of that, I think, has made for a series of successful worksheets.

The power of refinement

Something I’d like to tag on at the end here is that I think a value to using one set of worksheets for many different groups is that I take the time to go back and expand upon them, improving them as I realize what didn’t work.

An example is that I added a whole worksheet to the processes collection of worksheets to focus on the present perfect. (And, to be honest, it wouldn’t hurt to add at least two extra worksheets that focus only on negations and questions using the grammar covered, if I were to have unlimited time).

That means that my ‘generic’ worksheets have grown into a pretty decent tool which, coupled with my vocab worksheet generator for vocab review means that I’m only occasionally making really great, tailored activities, but maximizing my results.

Picture Matching!


A picture matching activity!

I didn’t plan to add images to the worksheet generator, yet. I just wanted to wrap up the interface and include images on the list of things that would be included in a 2.0 update. After all, there are other things that are really pulling at my attention now.

But then…
I found out that I’ll be teaching a beginning English group soon, and I knew that something I wish I had available would be picture-based activities. After all, things like definitions and gapfill exercises require a certain level of English knowledge before they’re helpful. And, though I’m ready to push my students, that seemed unnecessary.

As it stood, the only thing the worksheet generator would have done for a beginning group is create translation matching exercises, and manage classroom vocab lists. (But even the vocab lists would include definitions that would be impossible for the students to read.

Pictures were the way to go, and they’d been planned, anyway…

It was a bit hurried
Fortunately for me, I’d been poking around in the code, slowly getting the interface and behavior to where I wanted it to be. That meant that I’d already had the days-long process of asking myself “how did I manage that?” and “why is this here?” behind me.

Adding images went surprisingly quickly, though I did run into trouble with PNG files that had a transparency set. (They printed as solid black in PDFs, no help at all.) The internet had a solution, of course, and I quickly changed the way images were uploaded to automatically account for that.

Later, I realized that I could have made the images behave more like other resources (each teacher could add his/her own, there could be regional ones) and I’d still like to do that, but I’m still moving forward. There have to be some features to implement the next time I visit this project.

So, I moved from adding pictures and making a memory into creating the exercises.

Formatting the picture matching exercises was a bit harder. They had to look good (to me) and be compact enough that they could be the first page of a multi-page worksheet without breaking across two pages in an awkward way. (Don’t you hate that?) And, of course, they couldn’t be too small or you wouldn’t be able to see what the images were.

Worksheet progression needed fixing
The way the whole thing is supposed to work, nothing comes onto the second page of a worksheet without having been on the first page of the previous worksheet. The whole idea is to ‘automate’ reviewing the vocabulary for the students, right?

But, some words just can’t be part of a picture-matching activity. What’s a good image for ‘name’ or ‘industrial?’ So, picture-matching activities have to exist outside the whole system of progression, which was doable (and skipping code is certainly easier than creating new code) but it required a certain degree of concentration.

It’s not finished, yet
I’m not using this code in ‘production,’ yet because of one simple thing: after adding a bunch of images to the system, my existing groups would suddenly have a lot of picture matching activities with vocabulary stretching back to September of last year. One review activity seems reasonable, but after that the activities have to feature relatively recent vocabulary.

The solution for that is to make a tool that will mark vocabulary as ‘finished’ with the picture matching activities. The idea is that I’d be able to go into a group’s settings, and say “mark all the vocabulary from before January of this year as finished” and the system wouldn’t use them in new worksheets.

It should be straightforward, but I haven’t found the time to do it, yet. I want to, before I put a last few finishing touches on the interface and then start soliciting beta users (again).

Wish me luck.