1 year anniversary of this blog – lessons, opinions, mistakes

It is really unbelievable but it has been more than one year since I have started writing this blog. The first one of my sporadic writings which are actually expressed by certain electricity charge combinations has rotated one time around the Sun. Over that time, I have learned some small lessons about blogging and life, and I wanted to share them with you, my dear readers.

Blogging is not really dead

First of all, it is really incredibly gratifying to share knowledge and your work with other people. Addiction is how I would describe it. It is thrilling to see how other people read your articles, they react to them, respond with criticism or with even more information about those topics that you are interested in yourself. In this way, the crystal clear nuggets of wisdom come out to the top no matter what. Even if you think that you researched all of the possible combinations or cases – there still might be something that you may have missed. This next thing did not happen to me personally but sometimes it even helps people to refine their political views on certain things. So, even though most bloggers are not paid at all to do this (like me), it is amazingly satisfying in non-fiscal ways.

Secondly, it is an excellent way to generate inwards traffic or, in other words, it is a marketing tool for your skills. Just like with free software, blogging is an opportunity for everyone to showcase their writing or other skills, and in that way generate clients for yourself. I do not have any hard numbers to share right now but interest in me has definitely increased and I feel like it has let me increase my rates a little bit. In general, this is what you should be aiming for instead of forcing your potential customers to come to you through paid advertisements and so on- you should attract them with free work that you do. I don’t remember where I heard it exactly but the majority of your work is supposed to be done for free, and only a fraction of everything should be paid. This means that your rates should be pretty high to be able to sustain yourself, and this is logical because the free “work” that you do is usually much more meaningful to you and more satisfying because in the end really the most valuable thing that we all have is time and it is utmost important to spend it on things that you like.

In comparison to others

Also, I noticed that blogging is largely like making videos on YouTube or doing any other creative work. In all of these mediums, the authors are just expressing what is on their minds – the only difference is the form of the end result. YouTubers often shout about content like Steve Ballmer shouted about developers – “Content!”, “Content!”, “Content!”. Bloggers, from my experience, should care about that a lot too – just that their end result is put into words, instead of moving pictures and audio.

Productivity tips

Over the year, I have also learned some productivity tips. Automatically checking your writing with services and add-ons such as Grammarly helps immensely. You do not want to annoy your readers with silly grammar errors. Also, I have tried using voice dictation to write blog posts automatically, and then afterward just reformatting the text and form. However, I realized that it is even slower for me. This is probably because I am so used to writing fast with a keyboard since I have been using computers since a very young age (got my first one at 6! I am deeply indebted to my parents for that). On the other hand, you still might find it useful if the words come out easier for you if you are saying them verbally instead of writing down.

Spammers can start causing trouble. I definitely recommend everyone to install a plugin to WordPress like Akismet which significantly reduces the number of spam comments that get through.

Getting the readers

Marketing is pretty important as well. Over the year, the main source of readers was Reddit and LinkedIn. After a bit of time, I think that Google started rating my site higher and I started gaining traction in the search results. Thus, the organic audience of my site increased dramatically. On the contrary, the retention rate of those people is not the best since the majority just come to the site for one single article, and then leave. In my opinion, you should spend around 10-20% of the total time that you spend on your site on marketing. What’s the use of your texts if no one is reading? The same principle applies to software, honestly. What’s the use of your programs if no one is using them?

Blogging topics

You can find inspiration for blogging topics on websites such as udemy, udacity. Search for currently popular courses and see what people are looking for. Also, you could search topically related subreddits on Reddit. That is the easiest way.

I would say that just writing about something that is going in your (professional) life is a method which is somewhere in the middle in terms of difficulty. Be careful, though, not to expose too much of your private information online.

The hardest but potentially the most rewarding method is to do your own original research about things that you heard and write the process how you did it, what you learned, what are the conclusions, and so on. There is a high chance that you will rank high on link aggregation sites like HN.

Medium et al. vs self-hosting

In the beginning, I used medium for my blog. However, I moved afterwardsto using my own WordPress. I did it because I think that it provides me with a much better control over my own website. Also, it provides me with more freedom because I can easily move from one host to another, and I get a lot of customization options. Backing up all posts and comments would be much harder in the unlikely case that medium was to go down permanently.

Profitability

It seems that for the majority of bloggers, affiliate marketing provides the most amount of money. However, I do not do that and I only have ordinary AdSense advertisements on my page. Let me tell you – unless you have thousands of page views, you will not get a lot of money. Furthermore, you have to consider your audience – my audience, programmers and IT professionals, are more likely to use adblockers which means that the profit from advertisements is even lower. So, unless you will become an authority in your own little nichè and you will blog good content constantly, do not expect to earn a lot of money from blogging. It is possible but hard, in my opinion at this moment.

What could be improved

I could certainly write more often and spend more time on this blog however it isn’t actually as easy as I thought it was. Also, my content could always be improved as I mentioned before in this text. I feel that because I am learning other foreign languages, my English skill in general diminished a little bit. That is one of the reasons I keep reading books – to maintain my linguistic abilities.

I feel that at the moment I post too rarely to maintain regular readers. The majority now just finds this blog through some search engine, reads what they need, and moves on. I do not have a lot of those readers which come back and comment. From my perspective, these are the users which you want to retain the most. If blogs were human beings then they would be water for them.

Conclusion

You should definitely take up blogging if you want to improve your writing skills and show off your work. It might be not the most rewarding thing you would do in terms of money but it is most definintely rewarding in terms of intagible things like satisfaction from work. Over a year I learned a lot of small lessons and I presented them to you in this article. I am considered a newbie in terms of length but however I feel that I learned a lot already. Here is to a better second year of blogging and thank you for reading! Happy hacking and see you on the next post.

Ancient specification “bug”: you cannot use colons in your username with the HTTP basic authentication method

Out there, in the wild exists a lot of different authentication schemes or methods however one of them which is relatively popular because it’s implemented in most popular browsers at the moment, has this one peculiar “bug” in its specification – you cannot use a colon (‘:’) in the username field. If you have ever seen a window such as this:

HTTP Basic Auth window on Chrome

Then that website is probably using HTTP basic auth and you must not use a colon in your username on that site because simply you would not be able to do that.

Why, you might ask? Well, simply because in that authentication scheme a colon is used to separate the username from the password. If you used a colon in your username, the HTTP server would not be able to discern between the username and the password because it is transmitted to it in this format with this scheme: username:password.

This scheme is defined in RFC 7617 and RFC 2617. As it says in the RFCs themselves:

Furthermore, a user-id containing a colon character is invalid, as the first colon in a user-pass string separates user-id and password from one another; text after the first colon is part of the password. User-ids containing colons cannot be encoded in user-pass strings.

That is an excerpt from RFC 7617. This is from RFC 2617:

To receive authorization, the client sends the userid and password, separated by a single colon (":") character, within a base64 encoded string in the credentials.

As you can see for yourself, the older version of this RFC (2617 is from June, 1999 whereas 7617 is from September, 2015) does not explicitly state that it is impossible to use a colon with this scheme however it is implicitly stated.

You might be surprised but a lot of software gets this wrong. For example, I recently looked into using ml2grow/GAEPyPI for running a simple PyPI on Google App Engine to reduce the costs. The code is all dandy and nice however the username and password parsing is a bit broken. It all happens here:

(username, password) = base64.b64decode(auth_header.split(' ')[1]).split(':')

As you can see, this code breaks a bit when .split(':') returns more than two results – when the username or password field contains a colon itself. This could be mitigated by using the first result as the username, and by concatenating all following results into a single string which would be used as the password.  I will open a pull request soon to fix this issue. There are probably many more examples such as this.

As far as I know, we can only postulate about why this decision was made. My first thought was that maybe because Internet and computers were not so fast back in June, 1999, the people who made RFC 2617 decided to put it all into one field. This could have been easily remediated by having two separate fields for username and password. Perhaps this would have been too costly? I do not know.

Do you know of any other historical “bugs” in widely used specifications nowadays? Also, maybe you know what might be the reasons why this RFC was made in this way? Please let everyone know in the comments section down below. Thanks for reading and happy hacking!