In which your humble author muses on due diligence, translates a Tweet, learns about the best-selling Finnish band of all time, and mentions a fellow Finnish-language-learner
Simple Comment #
I've been spending time creating a commenting system called Simple Comment and I'd like to talk about some of the learnings 1
First, about due diligence. It's well known that, whenever starting a new project, it's essential to survey the field to see what exists and what has existed: learn if what you intend to build has already been built, learn your potential competitors and collaborators, what mistakes have been made, leverage existing knowledge so that you have a clear idea of what it all entails.
When I thought about what I wanted in a commenting platform, I wanted it to be useable for static sites such as this one, useable with my current host, Netlify, GDPR compliant and no-track, offer complete trust with respect to user data, light-weight, and, since traffic here is exceedingly low, free-tier or self-hosted. As well, I wanted to open-source and promote the API schema itself as a standard so that other systems could interoperate with it. And, in terms of personal development, I didn't want it to be a toy project, but something that could actually be used by others, possibly turned into a business.
My survey found 12-13 commenting systems, including Facebook Comment plugin and Disqus, these last two are not at all what I want, and the rest missed one of the other of my list above. And so, one day, unexpectedly, suddenly, I set aside the project I had been devoting several months to, and was about to imminently launch, and got to work on Simple Comment.
Without going into too much detail, on November 6th I began and on January 27th I had an MVP 2. It surprised me how long it took, but I got hung up on at least two areas that I needed to learn about: cross-site requests and authentication.
The other day because of a Hacker News post, and its excellent comments, I also learned that there are not 12-13 available commenting systems, but 34. Some of them absolutely occupy the same niche as Simple Comment but are more mature 3. There are lots of other devs who had the same idea I did. Some of whom tried to make a viable business and actually closed it down.
Due diligence: I searched online for about 3 hours and I would have thought this would be enough. But instead I confirmed a preconception that my ideas are completely original and no other developer has my concerns. Actually, there are lots of other devs who not only share my concerns, but started awhile ago!
Authentication: It's a beast. As with the comment system itself, my due diligence was lacking. There are a fair number of open-source solutions that I could have used, and it would have shaved weeks off my time. I'll go over authentication in some future post.
Cross-site: I'm super glad to have learned about cross-site requests and implemented an example. There are lots of undocumented gotchas, particularly privacy-related extentions and using incognito (or private) mode, that will interfere with expected behavior. I'll write a post about cross-site requests in future
I will continue to work on Simple Comment and dogfood 4 it. After all, no one is doing exactly what I'm doing and the Helsinki Bus Station Theory applies: stay on the bus and eventually, with effort, the project will diverge from the others to become uniquely valuable. I'll just do it with a more full awareness of how exactly I'm using my time.
Finnish translation #
Saw a Tweet today that is about at my ability to read. Challenging, not too challenging. I'm going to do a live translation of it here. Hopefully the Tweet is innocuous and not touching any cultural landmines that I'm currently unaware of, as a foreigner.
The tweet is "Oon sporassa klo 14.42 menossa koronatestiin. Sporaan nousi lauma keski-ikäisiä päissään laulamaan eppu normaalia. Mikä vaihe pandemiaa tää on"
Oon sporassa klo 14.42 menossa koronatestiin : "I'm on the tram at 2:42pm going to a corona test"
Sporaan nousi lauma keski-ikäisiä päissään laulamaan eppu normaalia: This one is challenging. My guess is "Onto the tram came a middle-aged (lauma - busker or singer?) to sing (laulamaan) (eppu normaalia - epä - "not"? normally) abnormally?"
Mikä vaihe pandemiaa tää on: "What a change this pandemia is"
Now, to see what I can find out about lauma and eppu
Ok! Fortunately, there is an online definition for lauma: "crowd, mob, flock (large uncontrolled group of people)"
And likewise for eppu: first-year schoolchild
These make me realize that I don't actually remember or know what päissään means...
Drunk! (literally into their heads)
My updated translation: "Onto the tram came a pack of drunken middle-agers singing like schoolchildren."
Given this was a Saturday, this is not such an unexpected occurrance in Finland. That plus the normaalia makes me think I'm not getting the translation exactly.
What does Google Translate say it means? "A herd of middle-aged people rose to their heads to sing Eppu normal" [eye-roll emoji]
I have to make a phone call.
Well! On ollut kehitystä There have been developments! Apparently Eppu Normaali is a band, and the meaning of the sentance is "A pack of middle-agers got on the tram singing Eppu Normaali".
Let us listen together: https://music.youtube.com/playlist?list=PL9043B1DF2AFBBA4E
I wonder what specific song it was. There is a subsequent tweet and replies, so let's see if there is more information.
Eppu Normaali: My snap judgement - purely by sound without knowing anything about the lyrics - is that it's rather innocuous pop music. Let's see what Wikipedia has to say... https://en.wikipedia.org/wiki/Eppu_Normaali
Well. Shit. "The band is the best-selling music artist in Finland, with certified sales of nearly two million records".
When in my last blog post I expressed my gaps in understanding Finnish culture in terms of gaps in Finnish language skill, this is a great example of what that means.
Open API 3 and tooling #
A few months ago I was whining on HN about the lack of tooling around Open API 3.
The best in class right now is Open API 3, which offers a way to describe endpoints, verbs and expected responses with a JSON schema. And even so, working with it feels primitive compared to, for instance, front end focused tools with bundling, type checking, package management and so forth.
With Open API 3 / Swagger, you hand write a YAML or JSON file or fill out a form and have it done for you, but there is no code completion nevermind AST analysis. And now you have a schema, but there is no automatic link between that schema and the backend code, nor error typing, nor validation. The code generation options that are available are clunky and not customizable. If you change the code, you just have to go over the schema by hand again and make adjustments. Unit tests help of course, but you build it yourself
Well! There is a project that apparently serves this very need: https://github.com/anttiviljami/openapi-backend and it has been around for a long time.
Gen Takagi | Korkealinna #
As a Finnish-language learner, I have a lot of admiration for foreigners who strive to learn Finnish as adults. I'm not talking about becoming fluent. Actually succeeding and becoming fluent feels to me now like a god-like superpower (hopefully, one day, I will read this and think "becoming fluent wasn't that hard"). It isn't so much that the Finnish language is difficult, although it is, it's that it's so easy not to learn it. Finns rank among the highest in the world in facility with English 5, and it's outright rare to meet a Finn who is not fluent in English.
Gen is a Japanese fellow who conceived a desire to learn Finnish and emigrate to Finland about 3 years ago. He's proficient and relentless and I find that inspirational and aspirational. This post isn't a profile about him so much as an acknowledgement of him. His YouTube channel is here: https://www.youtube.com/user/GenTakagi
Learnings (learning plural): I don't know if "learnings" (learning plural) is an industry-wide, business-wide or Nordic regionalism, but it means "things we have learned" from some endeavor.
Minimum viable product: Industry term meaning that your project is minimally useable and, if it's a business, you can begin to market it.
Mature in the sense of further developed with more features, and not necessarily in the sense of "adult", but I am willing to entertain that criticism as well!
dogfood is shorthand for the phrase-and-metaphor "eat your own dogfood". It refers to the necessity of a company or developer to use the product that they are developing. After all, if you the developer can't use your own product, how do you expect anyone else to use it? In my case, I'll continue to use it for this blog, even if there are more fully featured alternatives.
Apparently there are people who go around measuring this stuff, and ranking European countries about it. I'm not looking it up right now. But the methodology involves pollsters stopping people in the street and quizzing them on English skill. Anyway, when this happens, Finland and all the Nordic countries rank the highest outside of England.