My Story: How to Accidentally Self-Publish a Book

Intro

This is the first part of a post which will guide you through the entire process of writing and self publishing a book for the first time.

It’s about my book called Mastering Vim Quickly: From WTF to OMG in no time.

The idea

Vim is a very powerful text editor, used mainly by sysadmins, software developers and similar IT people. It’s known by its steep learning curve, because it’s different than majority of all editors.

This post shows that more than a million people looked for the answer on how to exit Vim. If you need to Google or go to StackOverflow in order to figure out how to exit a text editor – there must be something specific about it, right? :)

So sometimes in 2014, I wanted to improve my Vim skills. I was already a Vim user for more than a couple of years, but I knew there’s much more I can learn.

I did a quick research on the best books on Vim, and I’ve bought a few. Soon enough, I was pretty disappointed. All of these books had too much information which I didn’t really need or want to know.

They were also way too long. I really didn’t have the wish or time to spend reading a 300 page book, just to learn some new Vim features and concepts.

About that time I came up with idea to write my own book – a book from which I would like to learn Vim.

It should be a short read, not more than 150 pages. It should contain the most important Vim concepts, and only the most important features.

If you never used Vim, you should know that this is very important, because Vim has really a lot of features. And you can never stop learning it.

I wrote a few blog posts about the idea for the book. I also left a small sign up form below these posts, for people to sign up for the updates, in case they were interested in the book.

I also wrote a very simple Twitter bot, which would read RSS feeds of some blogs and websites writing often on Vim, and from time to time tweet out those posts with the original links, of course. So all it was really doing was sharing the Vim links consistently.

I did follow a couple of hundred Vim users on Twitter as well, and I let the little script to run on my VPS.

And about that time, I was looking for a new job…

The problem

It was December 2014.
I just moved to Berlin, Germany.

I had a few job offers, and I was about to join one startup.
Those days, I finally decided to realize my idea – write a book on Vim.

However, unexpectedly things went wrong with my work permit.

Long story short: My homeland is not part of the European Union. The only way to get a work permit was – I had to have a university degree recognized in Germany.

Now, I did have the Bachelor university degree. But, it wasn’t recognized in Germany. That’s why, I couldn’t get any job in Germany. I had to come back to Serbia.

Obviously, I had to completely cancel all the work on Mastering Vim Quickly. I closed my freelancing business. I’ve fired all the clients. And I had to go back to university again.

I spent a whole year on completing my Master degree in Computer Science. The one which is recognized in Germany. It took a lot of hard work, but I did it!

I got back to Berlin.

It was a long way. It took a lot of time and effort, but it was worth of it.
I’ve found a dream job in an awesome startup.

Surprise #1

I got back to Berlin, ready to start with new job. The previous year was very though. My whole life, for most of the days, was dedicated to getting that Master degree.

I already kinda gave up from writing a book on Vim. I already had different ideas and priorities, and my motivation wasn’t as high as before.

However, I remembered and decided to check what’s going on with my bot and old Twitter account. I totally forgot about these. I finally had some time to clean up my VPS and remove this bot and some other obsolete stuff.

To my great surprise, I discovered that my Twitter account @MasteringVim had around 4000 followers! How the hell that happened? Turns out, bot was tweeting regularly.

Most of the tweets were Vim articles from other websites. From time to time, it would tweet my few of my articles about the idea for the book “Mastering Vim Quickly”.

Lots of these Vim articles were good. Some of them were tweeted more than a few times. Sometimes, articles would be crappy. But, the it seems like the consistency was the magic trick.

A small group of about a hundred followers I had (before I left Berlin) started to retweet those, and bit by bit, my account started to reach bigger audience.

About a year after, 4K followers, Wow!

I quickly checked my free Mailchimp account (after more than a year!) to see if anyone actually signed up for the updates on my book. You can guess – there was much more people that I expected – around 400 of them!

Crap. Now I felt responsible to at least inform the subscribers why they didn’t hear a word from me for more than a year. I went through the list of emails.

There were people I knew, and people I “knew” from some online communities. Still, the majority were total strangers.

So after a bit of thinking, I’ve decided – I’ll write them an email. I’ll tell them what happened in my private life. I’ll inform them that I didn’t even start writing Mastering Vim Quickly.

And I thought, for sure most of them won’t be interested in the book after a year. Some marketing gooroos told me that email list which you don’t contact often is “cold” and pretty much non-responsive.

Here’s what I had in mind: I’ll write them the truth, there’s no book yet. They’ll get disappointed, or they’ll unsubscribe and/or send hate emails – because they won’t even remember me and my idea.

That will let me give up of writing the book without guilty conscience that I let anyone down.

Surprise #2

Something totally unexpected happened. I’ve sent that email, as planned. What happened is that I got a bunch of email replies, congratulating me on my persistence to get the CS degree and get back to Germany.

Many of these subscribers were still interested in the book, and more than a few already wanted to pre-order it, and asked me how to pay for it! WOW!

I had no choice really. Giving up now would be pretty bad. I knew many of these people, and they were expecting on me to deliver what I promised – a great book on Vim.

So that’s how I decided again, I’m going to write Mastering Vim Quickly!

The first thing I did was to stop the Twitter bot. That time I started tweeting personally, and I still do today. Via @MasteringVim I share the best tips on Vim. It currently has around 20K followers.

Surprise #3

While I was writing the book, few things happened, which I would never expect.

First, I’ve got contacted to cooperate with one big publishing house. We tried talking, but we had different visions, so no cooperation happened.

Then, I got invited to a meetup to talk about a book. A book, which still doesn’t exist. I actually did it. :)

Lastly, I got invited to a conference to talk about Vim – and my book wasn’t even written yet. I had to say no, and focus on the actual writing.

What’s next

In the next post (part 2 of this story) I’ll share my experience on the writing process itself, the book “launch” and the process of publishing a paperback on Amazon.

 


If you liked the post, we should get connected - follow me on Twitter

Comments in Vim – The Effective way

Two days ago, a colleague of mine came to me with a question. He just started using Vim, so he’s a total beginner. He needed to comment random lines in a big configuration file. Another colleague of mine already recommended him a great plugin vim-commentary.

The problem was, that my colleague was a beginner with Vim. He still didn’t know how to install a Vim plugin, and he wanted to complete his work quickly. So no time for learning how to install a plugin and how to use it.

As I always try to spread the word about Vim as much as I can, I quickly came up with solution which worked for him. He actually really liked it. (and we got another Vim user! :) )

You might find it useful, when you need to comment or uncomment lots of random lines. And you don’t have or don’t want the help of any plugin.

All you need to do is to add these two lines to your .vimrc:

map ic :s/^/#/g<CR>:let @/ = ""<CR>
map rc :s/^#//g<CR>:let @/ = ""<CR>

ic (insert comment) will insert # at the beginning of the line.
rc (remove comment) will remove # at from the beginning of the line.

Change ic and rc to fit your needs, and enjoy ;)


Over the years, Vim got a reputation that it’s really difficult to learn it. I’ve heard many times from guys who are convinced it will take them months to reach proficiency. That’s simply wrong.

That’s why I’ve started to write a book: Mastering Vim Quickly (from WTF to OMG in no time) which will teach you Vim the way I learned it – easily and quickly.

If you want to get updates and sample content from the book, leave me your email below, and I’ll make sure to keep you updated. You could also go to Mastering Vim Quickly page and check it out.


If you liked the post, we should get connected - follow me on Twitter

Practical ways for boosting your productivity online

A while ago, I’ve noticed that I lose a lot of time online. Some of the websites I visit regularly include Twitter, Hacker News, ProductHunt, and Facebook. Over the last year, I’ve managed to drastically improve my productivity online, and stop wasting my time.

Here’s the list of “tips” I’m using to stay informed about the things I’m interested about, and don’t lose too much of my time on it:

Facebook

1. Turn off the chat.

2. Don’t comment on random posts. Don’t get into discussions which are not directly related to you. You will rarely get any value from a discussion, and you will never convince anyone to think differently with just a few comments.

These two tips work incredible for me. It’s enough to go to Facebook for ~5 minutes every second day and see the updates.

Twitter

1. The same here, don’t go into pointless discussions, except if you are giving or getting some value from the conversation.

2. Don’t check your Twitter timeline few (hundred?) times per day. Use a free web app called Social Hunt to follow the most interesting people. Then, you can choose to get to your inbox all of their tweets daily.

Huge time saver.

HackerNews and ProductHunt

1. If you’re like me, a fan of HackerNews, you might catch yourself checking it really often. In order to get the best posts once a week to your inbox, sign up to this free HackerNews newsletter. It’s awesome indeed.

2. If you want to get the best posts from HackerNews daily, then I would suggest you to add @HNTweets to Social Hunt account mentioned above.

3. If you’re a fan of ProductHunt as well, you can sign up to their newsletter. It’s great. Additionally, you can follow @ProductHunt and Ryan Hoover (Founder of ProductHunt) via Social Hunt app, to stay updated on a daily basis.

 

These are some of the best ways I use to get updated on the things I’m interested about, and stay productive. What are yours?


If you liked the post, we should get connected - follow me on Twitter

Why Vim – 21 Reasons to Learn Vim

 

After writing about the history of Vim, I wrote a post where I told you what you can expect from my upcoming book Mastering Vim Quickly.

Today, I will try to mention as many as possible reasons to learn Vim. So, if you’re a beginner with Vim and you’re not sure should you keep learning it, or if you only think about learning Vim, this post if for you.

This post is not going to cover awesome Vim features as reasons to learn Vim, so if this is what you expect, don’t lose your time on reading.

So, here is the list of reasons why to learn Vim:

  1. Vi is guaranteed to exist on all Unix systems and exists on most Linux ones as well. That kind of broad coverage makes learning it worth it – because, if you know Vim then you know Vi as well.

  2. Vim is free and has a vibrant community

  3. Vim works over telnet & SSH connections. There’s no better way to edit files remotely via terminal than using Vim. Sysadmins know this.

  4. Vim’s configuration is portable. You just need to copy a few directories and files, and that’s all.

  5. Vim compiles/has precompiled binaries for almost every OS out there. You will never have to post “I need a [some text editor] alternative for [some OS]” anymore. You’ll have Vim instead!

  6. It’s also usually very fast and lightweight even when editing huge files of source code. Seriously huge.

  7. If you’re a programmer who edits a lot of text, then it’s important to learn an serious text editor like Vim. Serious text editors are highly optimized to perform the kinds of tasks that you will be doing a lot. For example, adding the same bit of text to the end of every line is trivial in Vim, but ridiculously tiresome otherwise.

  8. If you plan to configure anything in a Unix based system likelihood is you going to be editing a fair few config files, therefore you’ll want to learn a terminal based editor, of which Vim is one of the best.

  9. Vim allows you to easily code without taking your hands off the keyboard.

  10. Your fingers very rarely have to leave the home row, which means you’ll be able to edit text very, very quickly.

  11. It starts up faster than any IDE or text editor I’ve used, and it has many powerful features.

  12. It helps you focus on the coding process itself, you won’t be using the mouse at all to deal with it, that’ll save you a lot of time when you’re just writing code.

  13. It’s fun! Editing text is like a game to me now. I sincerely enjoy it – which is pretty ridiculous, when you think about it.

  14. If you’re working remotely, there is no choice to use Eclipse or similar GTK based IDE. You can do everything with Vim: source control, SQL, debug, compile, browsing – really fast browsing even over 1 GB source code. Visual Studio or Eclipse couldn’t handle all of this.

  15. There are a lot of good plugins out there which add a lot of functionality.

  16. Vim is a really good tool once you familiarize yourself with it.

  17. It has a reputation for the quality and the completeness of its docs. That’s true. Vim is thoroughly documented. You will find most of the  answers to your questions in its help system as soon as you will manage to stick the proper keywords in your help queries.

  18. You might want to learn Vim because many people think it is cool.

  19. You don’t have to press Ctrl or Alt all the time in order to run commands or shortcuts.

  20. It’s much quicker to use vi for a sudo edit: $ sudo vi. For example, if you run text editor 100 times a day, with typing sudo emacs, you’ll have to make 300 keypresses more! Okay, this is a joke :) chill out emacs guys (and yes, I know that there’s something like alias :) )

  21. Vim is addictive. You will find yourself wishing you could use Vim commands in all your computing, and cursing whenever you can’t. For example, I use Google Chrome with Vimium extension, so I surf the Internet without a mouse or touchpad. How cool is that!

On the end, have have to add that Vim’s usefulness depends on what you’re working with. If you’re an Java/C#/etc developer, you’ll most probably be more comfortable with an IDE.

But if you work with Python, Perl, Ruby, C, web, etc. or you’re a system admin/devops, Vim is the way to go. Vim is fast, powerful and does everything you need.


Over the years, Vim got a reputation that it’s really difficult to learn it. I’ve heard many times from guys who are convinced it will take them months to reach proficiency. That’s simply wrong.

That’s why I’ve started to write a book: Mastering Vim Quickly (from WTF to OMG in no time) which will teach you Vim the way I learned it – easily and quickly.

If you want to get updates and sample content from the book, leave me your email below, and I’ll make sure to keep you updated. You could also go to Mastering Vim Quickly page and check it out.

[mc4wp_form]


If you liked the post, we should get connected - follow me on Twitter

Mass manipulation and the 5 monkeys experiment

Social control and technology to manipulate the masses, both at local and global level is a serious topic. There are numerous manipulation methods applied for decades. The fact is that with each following generation of people, those methods achieve better results. If you don’t know a lot about this topic, for beginning you can read this.

Then, take a look at one experiment:

 

Quite interesting. And now just think – did you ever wonder why you ( and people around you ) follow some matrix even you think that it’s stupid or you know a better way, did you ever follow some rules no matter they make no sense to you, … ? Who created those matrix, those rules, etc?

Are we just a group monkeys?

 


If you liked the post, we should get connected - follow me on Twitter