Tuesday, September 16, 2014

Dear Blogger: Make your templates easier to edit

Lately I've been wanting to create a custom theme for my blog. After browsing through the INSANE amount of markup they have it wasn't just worth the time. Tumblr does a better job in keeping things simple, and this is where Blogger fails. I hope they realize that it's too overwhelming. I'd rather put on my own site and create a custom theme for wordpress than going through the hell that is Blogger templates.

Monday, September 15, 2014

A Week with Vim

It's been a week now  since I've started using Vim.
I don't plan to make weekly posts about it, but I do plan on sitting down and finally create a Vim resources post. I've been a bit busy trying to get the final nuisances with Vim solved.

One of the things to keep in mind is that if you see a video of someone doing cool things in Vim, chances are that you won't be doing them as fluidly as you'd like to. That's the truth behind learning Vim. It's something you need to continue learning along with the programming languages of your choosing.

I wrote this blog post using Vim. Not because it was a cool thing to do. I believe that if you want to learn a tool, you need to expose yourself to it as much as possible. It's hard to understand Vim if you just pretend that all the amazing features lies within the plugins. When in reality it's the text editing that shines. Plugins are amazing by the way, I actually want to contribute something more polishing for Django, and I say this without any compromise.

It's funny, I never thought I would see myself using Vim, or Emacs. I was resistant to these stuff in the sense that I avoided it. I was a fool, I played the role of the devil's advocate without fully knowing what both tools provided, just because I was tired of hearing all the hype.

Yet, things are now working as they should. I can't wait to continue working on my projects as I've one specifically wanting to finish.

Honest take from me. Give Vim a try and you'll come to love it. It takes a while before you are really productive, maybe you don't see the point but not using the mouse is actually really nice, all you need is the keyboard.

Friday, September 12, 2014

Vim: My Experience as a New User

Many of you have heard of Vim, a lot of people call it the greatest text editor ever "second to none". While that claim seems like a bit of a mouthful and purely driven by the fans there are reasons why Vim is great, as well as there are reasons for you not to use it.

I started learning Vim this week. Let's make this clear, Vim is not an IDE, you can make it look like an IDE but it won't behave like one. As I searched through the web for plugins to empower my Vim editor I noticed one thing: Everyone wants Vim to be an IDE. Oh, the many out there. I don't mind them, but it puzzled me as a new user.

Don't get me wrong, I love Vim. I love all the amazing text editing keymaps you can do with it. I love how you can use Visual Block and replace whatever text with the same name in just a matter of 2-3 keys. I love how you can just ci" and magically delete. I love plugins like YouCompleteMe, how well NERDTree works even though I'm looking at something like Sauce but bookmarks do just fine, how AMAZING is python-mode, tagbar is a must, vim-airline, and oh so many plugins out there that even in 2014 it maintains Vim relevant.

Vim is an investment. As a new user it took me a couple of days to fully get it to where I wanted it. Just like Emacs if you want to be its user, then you'll know that you need to install plenty of plugins for it too.

But see, Vim is a great tool. Let me show you the first screenshot:

My .vimrc is a mess so I'm not going to post it here today but let's take a look at semantic completion provided by YouCompleteMe, it also uses omni-completion. This is just one of my random projects. 

Here is a more IDE-like screenshot that shows you tagbar.

It looks great, doesn't it? As a new user I should have waited a bit before getting into plugins but at the same time I wanted to do some C++ already. My reason to choose Vim was because Eclipse just keep crashing over and over again and it also froze several times. Netbeans didn't even want to work. 

So, I chose Vim because it was THE text editor I needed. The world whispered in my ears and said "Use vim, use vim! You won't regret it!" I don't regret it. I like it, I haven't worked on a REAL project with it but I know that it'll be a delight to work with. 

Now, all my praises for it so far ends here. Let's go on to why you might not want to deal with vim. 

  • Setting up a project with virtualenv and YouCompleteMe is a pain. No matter how you look at it, you don't get a predefined workspace like you do in Eclipse or Netbeans. There's no ROOT PROJECT folder to use. It causes YCM not look up the libraries set with virtualenv. And it's just awkward hard to make it work. Since YCM looks at your system libraries, what I did was just install the framework I wanted to use to get the semantic support. It's sad. 
  • ctags? Manual generation of something that should be automated? Well, yea it's like that. Apparently you gotta freshen up your ctags if you want to navigate your source files. 
  • No way to jump around headers/sources file. I can't for the life of me find a way to JUMP at the standard header I just included. In Emacs, this is done oh so easily, it makes me sad. 
  • It takes time to deal with buffers/windows/tabs. If you are new like me, chances you are going to be nuts jumping from buffer to buffer, or tab to tab. 

Listen, if I were to choose between PyCharm and vim, my answer would be PyCharm. It removes a lot of the hassle that is introduced by vim. But see, vim is a text editor and such it cannot be blamed for not working as one. 

So where's the investment exactly? Text editing. No, really. Once you learn the flow of vim you will be fast to get that source written. At first, you will feel slow, frustrated because the workflow is really different. I know I have. Heck, I have started typing while it was in Normal Mode and I've screwed up plenty of files due to that. It happens because we are just new to vim.

Is it worth the pain? That's for you to choose. I'm sticking with it for a while because it doesn't hurt. 

Tuesday, September 2, 2014

Debian Desktop Environment experience is dropping?

As I have been checking deeper into distributions like Ubuntu, Fedora, OpenSUSE there's one thing that Debian still lacks. It feels really unpolished compared to the former.


In Ubuntu, if you use Files (GNOME file manager)  right-click and try to share a folder it will ask you to download Samba and configure it for you.

In Debian I would get funny errors because Samba isn't configured at all. This was one of my experiences with Dolphin that I would right-click and try to share a folder with the other Windows computers and it wouldn't

What is Debian? It's something that I've been pondering for a while. Debian's site doesn't have a welcoming design like Fedora one does. The community (forums) seems like a passive-aggressive sort of bunch (although honestly it feels like it's like that with most Linux communities). So is Debian just a distribution template for other based distributions to copy? Maybe.

Another example, this time unrelated to KDE is the GNOME experience in Debian jessie/testing. Sure, you would argue that it's unreleased. Fine, it's a total valid point but hear me out:

I couldn't for the life of me CHANGE the language to Spanish in GNOME Debian. I went to the expected place to change the settings but the option wasn't there at all. In Ubuntu, it will give you the option to install the Spanish language package and make that user use the Spanish language while other accounts maintains the English language as default.

The GNOME 3.12 account integration with other services was well done. Of course, in Ubuntu it was just plain better.

I haven't checked Fedora yet. I'm actually downloading it right now to see how polished is Fedora.

As much as people hate Ubuntu, because it seems to be the popular thing to do Ubuntu does a lot of things right that the desktop experience needs. You can hate it all you want, it won't remove the fact that Ubuntu just wins hands down.

This is not about "well, I prefer is the distribution would let me configure the installed software rather than it making the decisions by itself". Fine, you like to waste time and configure your own stuff. That's great, but you are missing the point. This so called "newbie distro" is aiming to be things that other distributions couldn't do and that is to bring a easy to use GNU/Linux desktop and see that sharing, installing printers, etc is working as expected.

Monday, September 1, 2014

I was wrong about GNOME 3, it might become one of the strongest DE contender than it ever was.

I was wrong. I won't apologize of course, we all know that GNOME 3 didn't exactly had an spectacular release. And I still hate the official tablet-like look--mind you, I still use GNOME Classic.

So what was I so wrong about? Why doesn't GNOME 3 die and burn in hell for eternity?

Well, if you have to ask. They did a lot of things right. I would say they provided an even more intuitive interface than KDE ever did.

How important is unification?

If you are some sort of neckbeard or wannabe zealot then chances are you are enjoying your Linux desktop in whatever window manager of your choosing while simultaneously assaulting other desktops environments and depriving them of their choices.

After using GNOME 3.12, something came to mind. They were doing a lot of things right. I think screenshots will do a better talking than me.

User Management is a bliss.

Evolution unifies really well with my google account

No brainer date and time interface

One of my favorites! I wish KDE had something like this

Automatic printer sharing detection. I was using Samba of course.

It's so easy it hurts.

Beautiful font rendering

And this wins the prize

I don't think many of you know but I was a GNOME 2 avid user. I loved it to death, and then KDE 4 came with all its stupid wobbly windows, but you know, it worked. It was usable, sure it had its ups and down but it didn't turn out so bad. 

GNOME 3 did a daring move though, one that could have ended the project itself. Yet, they started listening to feedback. I think that in a way I blame their user interface designers because they could have introduced more HUMANE interfaces than what they provided in the initial release. It felt like they forgot their old userbase existed and that's bad. The thing that "we don't know what we want" is a bullshit line, imho. Even if the end-user didn't know what she/he wants, you shouldn't have gone full retard. 

Of course, GNU/Linux is all about choice. Sadly, if we are going to CONQUER the desktop we need to choose a desktop environment to rule them all. If so, which would be your desktop environment of choice that the end-user would feel usable? Let's play a game. Choose one that needs the least of terminal interaction.