Monthly Archives: March 2015

Rebooting my studies – Day 1

Duolingo Daily Goal
Nowhere to go but up.

In keeping with my Learning Plan 0.1, I tucked back into Duolingo today, and…eesh. Picking up after an absence of a couple months is a bit of a shock.

The good news is that starting from the very first lessons is easy enough…every time I have had to do it. Seems like Duolingo has also instituted a small but welcome change — skills that have weakened through neglect can now be tested out of rather than laboriously re-strengthened, with lingots as the reward.

Today, then, I celebrate my one-day streak; a little Memrise and some Codecademy will have me fully on track.


Duolingo Skill Tree
Two tests for tomorrow’s study.



Drafting a personal learning plan

I have never been better at accountability than when I was working three jobs and a volunteer gig seven days a week and taking two online college classes, all while trying to maintain something close to normal relationships with other human beings. (As Lucille Ball has said, “The more things you do, the more you can do.”)

Although I have effectively no desire to return to that particular state any time soon, some accountability would nevertheless be welcome in furthering my self-education goals.

To that end, I present version 0.1 of my personal learning plan, articulated for my own benefit and articulated publicly for my further benefit. The plan wants tinkering toward version 1.0, but anyhow is better said than sat on:

Learning Plan (March 2015)

4 or 5 mistakes cheapo marketers make while trying to game the Web

In my paid work, I occasionally receive pitches from people who want to place links and/or articles on our website. The pitches — usually in the form of emails — typically run like this:

“Hi team! I was just browsing the Web and came across your great page of [math/science/history/etc.] resources. I think the resources at would be a really useful addition for your audience. Anyways, keep up the great work!”

Several mistakes have already been made. Namely, the author has not bothered to personalize the message in any way; the page described is not a list of resources and could not be mistaken for one by anyone who spent more then a moment looking at the page; the author has more or less told a lie by pretending to have casually encountered our site, and is also falsely implying that the suggested link is not content being actively peddled.

Occasionally, the messages are more honest, more personalized, and more detailed; even then, they tend to miss the mark:

“Hey [my employer] team, I am a big fan of your site. I see you have a page of math resources at [link]. We have put together a list of math tools that could be a great addition. Let me know and I can send you the link!”

So…more honest, in that this is clearly a pitch. Do I believe you are a “big fan”? No. Am I going to take the bait of engaging in conversation [“Let me know…”]. No. Do I appreciate that you at least managed to personalize the message? Actually…yeah, kind of (hey, low standards).

Nevertheless, these people are doing it wrong. What truly boggles my mind is that these utterly artless pitches even arrive from pretty legitimate websites and people with publicly-discoverable, substantive professional pedigrees. To these folks I say, in the words of the great George Bailey, I beg of you not to do this thing. It is cheap. It is shoddy. It demeans your business and it demeans that delightful young person you are forcing to send out this garbage.

To the rest of the folks, it really should not need to be said, but here are some pointers for crafting a content pitch, composed by someone on the receiving end who is only too ready to delete your email:

  • Do not lie, do not dissemble
  • Personalize the message, at least at the organization level if not at the individual level
  • Provide all the information needed to make a decision, including a link to your resources (preferably without click-tracking)
  • Understand your target organization’s work and audience. If your content does not fit, maybe consider moving along

Here’s my royalty-free rewrite that should be the backbone of what ends up in my inbox if you absolutely must send a message:

“Hi [My Name / Organization Team], I am with [your organization]. We have put together an article about [topic] at [link], and I am trying to spread it to a wider audience. Because you have resources on the same topic, such as at [link], your audience might find this interesting or useful. It would be great if you could add our link to your page or mention us in a Tweet, post, etc. If not, no worries!”

Honestly, my answer is still probably “no”, but by telling me the truth and asking for what you want, you have at least earned my attention. I will probably look at your linked content and website rather than base my decision purely on the content of your message. In the long run, I think that earning even a modicum of respect from even a sizable minority of your recipients is probably more effective marketing than successfully placing a single cheap link to probably disposable content on one site out of fifty that you pitch.

But why are people still trying to pitch websites for link placement? In terms of expenditure of money and labor, there are much better ways to boost SEO and distribute content. Why pay staff to embarrass themselves and your organization to a few dozen or few hundred recipients? Of course, in a world in which horribly-written comment spam still seems to be a going concern, perhaps these questions are naive and foolish.

In the interest of having the Web be a nice place to live, work, and play, I really hope not.

Installing Known on DreamHost

On a second(ish) attempt, I have successfully installed Known to my own domain on a DreamHost server! My first attempt, late last year, was briefly noted in my post Learning by doing is…hard.

A few weeks ago, I took another look at the installation, hoping for more documentation or even a one-click install — which Ben from Known suggests is a future possibility (they seem really busy, so even getting a personal response to my email is hugely appreciated).

A new version was available, so I elected to delete everything in my server directories, and replaces the files with the unzipped new version. There they sat for some time as I worked up the energy and courage to have another go.

Today was the day! I want to emphasize that I consider myself very much a layperson; getting Known up and running on a shared server was far from obvious, but it was far from impossible, too. At the end of the day, everything I needed was available from just a couple webpages and with pretty simple tools.

The Known welcome screen
Such a welcome site, er, sight!


Installing Known on DreamHost

Pointing your browser to your Known instance’s URL brings up the auto-installer, the second page of which shows a list of requirements. Uh-oh — the installer can’t determine if I have Apache mod_rewrite installed, which allows for normal, human-readable URLs. This was also the case last year. Some Googling led me to suspect that creating the .htaccess file would solve this problem, so — as it my wont — I ignored this. The worst that could happen is another failed install!

Moving forward with the installation, I needed to create a fresh MySQL database (accomplished from my account panel at DreamHost) and enter some details in to the installer. This allows Known to create a config.ini file. I had to create a new directory named “Uploads” in the root of the Known installation and make sure that the permissions gave Write access to Group. Okay…directory created, permissions checked, database details entered, and…first major failure! Known could not connect to my database. User error on that one…I gave a bad name for my database. So I pulled up the config.ini file in Notepad++ and made the correction.

And…next major failure! Known can’t find the information it needs from my database.

Digging into Known’s developer docs provides the solution. The Known installer will not automatically provision the database. I had to go to the /schemas/mysql folder, download mysql.sql, and upload this to my database on the phpMyAdmin dashboard.

Refreshing the page allowed the installer to continue.

I also then created the .htaccess file by copying the contents of htaccess-2.4.dist and saving as .htaccess, placing this in the root of the installation.

Success! I created my admin user account and was off and running.

Welcome to your new Known site
A blank slate.

To summarize, here is what I had to do and the resources I used:


  • Created a subdomain for Known
  • Uploaded the latest Known files (available here)
  • Created a mySQL server host (hostname) and database


  • Fix the config.ini created by the Known installer (because of my own error)
  • Create an .htaccess file that included the contents of the htaccess-2.4.dist file included in the installation files
  • Create a directory called /Uploads in the root of the Known instance and ensure that permissions included Group –> Write


  • Notepad++ with the FTP plugin (for easy editing and uploading of text files)
  • FileZilla (for easy browsing of the Known directories & files on my DreamHost server)
  • The Known installer
  • phpMyAdmin (for uploading the mysql.sql schema to my database)
  • Known developer docs, specifically:

That is pretty much it! Configuring my Known site involved some other fun, such as creating new Twitter and Facebook apps (not at all hard for the former, a little confusing for the later) and so forth.

The fruit of my labor is here:

P.S. – Thank you, Erin and Ben, for your work, passion, curiosity, creativity, and general coolness. Getting my Known instance going was a personal challenge that I am proud to have completed successfully — thanks for that, too.