Introducing SuperTask, a truly terrible to-do list

I embarked on my maiden programming voyage with Valaa Technologies. This is part two. Part one.

Jason Rakes
valaa.log
6 min readSep 10, 2018

--

I woke up Monday morning feeling optimistic for once. The sun was beaming, the leaves were shimmering emeralds against blue sky, and nothing weird happened on the bus. It dumped me off downtown, and I floated along with the breeze.

Every day on my way to the office, I passed by my favorite sushi bar, just as it opened. Today the owner was outside, smoking in the cool morning air. We nodded in mutual recognition, and I felt like everything was right with the world.

Ten minutes later I was crumpled over my desk, sweat pooling in my belly button and dotting the chest of my purple t-shirt. I made a mental note to tell my family to not visit Finland in the summer, either.

It was a reminder: don’t get too comfortable.

The previous evening I’d spent a couple of hours typing up beginner tutorial in Valaa. Pretending I was myself one week ago, I took the user through a few things you’d find in the first hour of any JavaScript tutorial:

Step 1. create two variables. Set equal to the number one. Name the first “birdy”, name the second “otherBirdy.”

Step 2. create a function named “whenTwoBirdiesLoveEachOtherVeryMuch” that adds the two birdies together and multiplies the result by three. Name the output “happyFamily.”

Step 3. create a function called hungryCat that loops through happyFamily, subtracting 1 each time, until happyFamily = 0. Rest easy.

It was the first time I’d tapped into flow in Valaa — the elusive but extremely productive state in which you’re using your skills to the fullest extent possible to achieve a specific task. You’re not frustrated, nor bored. It’s the “just right” porridge of learning and productivity, and I was swimming in it with my mouth wide open.

That I was hitting flow writing out such simple tasks was a reminder of how far I’d need to go in a few short weeks.

I first pitched Ville my idea about learning Valaa and writing about it during a rambling, pre-internship interview. He seemed interested, so I didn’t mention that it had occurred to me ten minutes before, vibrating my way to Valaa on bus number 6.

“Would you like some sort of project to complete, in those five weeks?”

“Sure, definitely,” I said, struck with an inaugural pang of doubt. I saw the next question coming and my mind started racing.

“Any ideas? Are you part of a community, maybe in the US, that could use an app?”

In 2015, I thru-hiked the Appalachian Trail. That means I spent five months walking up and down giant hills in the woods and barely showering. Every year in spring, a couple thousand people set off on a quest to complete the whole thing. By autumn, the number will have shrunk to just a few hundred, the rest weeded out by injury, illness, or burnout.

Best vacation ever!

I mentioned it to Ville, and we came up with a little something something:

I’d build a social app in Valaa, designed first for hikers of the Appalachian Trail, that lets users create notes or images. When they submit their note, it’s “dropped” at their coordinates. When another hiker gets within, say, 5km of the note, they can view it. It’s a project that meets a few important criteria:

  1. It centers on Valaa’s core strengths (sociability, effortless scalability).
  2. It’s somewhat simple, with room for extra features as time allows.
  3. It has real utility for the intended audience, digitizing the traditional “shelter log” and word of mouth. Alongside being a fun social app, it’s a way to broadcast important information to an area: aggressive animals, an unreliable water source, a lost hiker.
Pictured: a typical shelter log, circa 2015. A public journal where passing hikers offer friendly encouragement. Who wouldn’t want this in their pocket?

I could also plausibly convince Ville to let me call the notes “droppings.”

Back at my sweaty desk at Valaa, I started to think this whole “try to learn something really fast and write about it” seemed a lot cooler when someone else did it.

But planning for the final app, which I’d tentatively (but lovingly) titled “HelloHiker”, was still in its nascent stages. There was still a lot of groundwork to lay first, so I’d been given a new project: building a task list.

I’d have to expand on my knowledge I’d learned during week one while coding the BMI calculator, going through tutorials, and learning from Ville. There would need to be a text field and a submit button that would add an item to a list — our “To do’s.” The main goal of the project was to help me better understand Valaa’s file structure.

And it would be called SuperTask!

That Wednesday, Ville sat down with me for an intense session of “lightly traumatize the frightened intern.” The subject: Valaa’s ForEach loops.

I focused and tried to hold on. I fixed my eyes at each place he pointed, finger thick against the microscopic text of my modest laptop. When we moved to the whiteboard, I held intense eye contact while my fingers hammered notes onto the keyboard at the breakneck pace I’d honed, katana-like, while traversing a fifteen-year internet addiction.

After an hour I hadn’t grokked the concept in any real way. I started to pick up on a hint of frustration from Ville, and whether it was real or in my head, I couldn’t really blame him.

You must be joking

After Ville left, I spent close to an hour staring at the block of code we’d just gone over. There was a tightness growing in my body. I wanted to perform, but couldn’t find a sail to push against.

Fortunately I’d fallen down the TED Talk and productivity rabbit hole a fair few times. I’d picked up on a few things. One of those things: pretending that you’re teaching someone else how to do something is a pretty good idea if you need to learn how to do something.

One of the best TED Talkers, Seneca, knew this a long time ago. Writing to his accountability buddy, Lucilius, he said: “Men learn while they teach.”

The look you get in your eyes when you don’t acknowledge women as people.

The SEO-friendly, smartypants term for this is the Feynman Technique.

Like most useful learning strategies, I’d never put it into practice before — but I needed it now.

I pasted the code block into a Google Docs file and started breaking it down, highlighting nearly every word and writing long, rambling explanations in the comment section. I combed through it over and over, writing and staring.

Its basic job, in the context of SuperTask, would be to take the code generated each time the user clicked “Add task” and display it to the user in a list. From there, using the ForEach loop, the list could be worked on as one thing: the items could be reversed, categorized, filtered out, and more.

After a truly horrific amount of time, I sent the link to Ville for feedback and went home. After trying to shut my brain off for a few hours, I checked my email. There was one from Ville.

“You are transforming. :)”

Over the next couple of days I worked on SuperTask.

First, I made a text field with a button that, when clicked, created a new folder I could see represented in Zero. These folders, which represented each task, held a few pieces of information: the name of the task, whether it was “done” or not, its class (Task, Project, Reference), as well as the HTML that actually displayed it on the page. A lot was going on in the background, but to the user, it still looked like they were clicking on an “Add task” button that did nothing.

But after spending a few hours sweating over every detail of the ForEach loop, I was able to understand it well enough to port the syntax over from the lesson with Ville and get it working: the tasks I’d created, so far invisible on the page, suddenly popped into existence in the user GUI. I fist pumped the air.

The input field at the top is a combination of HTML5 and basic JavaScript, while the numbered tasks are displayed using the ForEach loop.

By the end of the week, I’d added a few new critical concepts to my toolbelt and built a new app while grappling with significantly less existential angst. Was I really transforming? I wasn’t sure, but I felt accomplished.

My final project — HelloHiker — awaited.

--

--