Presenting tny.im

Yesterday I wrote a post saying l.f.nu was down… and it still is.
So I bought a domain and moved my URL shortener to yet another domain:

http://tny.im

This time, I’m sure it will be up for at least one year – if it goes down within this period, at least it won’t be because of the domain, as that’s paid for an year already. I didn’t pay it, some friends at Cloudstg did – I’ll pay them back gradually, by advertising their services and such. Again, thanks for investing $11 on my service: if it weren’t you, I’d have to spend my savings on buying this short domain, which would leave me with no money to renew this .com domain next October.

The tny.im domain is as long as l.f.nu, but with less dots, nicer, and since it’s a top level domain and not a subdomain, I have much more control over it. This is a important point, as I plan on adding IPv6 support to tny.im, and a FreeDNS subdomain wouldn’t let me have multiple records on a subdomain. With a real TLD, I can have both an A and an AAAA record for the same domain.

Like it was with the transition from 4.l.to to l.f.nu, no data has been lost, and 4.l.to and l.f.nu links work as long as you change the domain to tny.im. Statistics, link editing, etc. all work.

I hope you enjoy tny.im, and remember, this time it’s for real: the shortener will be around for more than a year, assuming I can get enough profit from it to keep paying for the domain. Having me profiting with tny.im only depends on you – by using my shortening service, you’ll help me earn some cents from ads (but, please, don’t click-bomb them!), which I’ll use to renew the domain and eventually pay for server(s), in order to offer you an even better service.

Again, I hope the ads are not annoying… if they are, make sure to drop me a line so I can fix them.

Status update

I have been very busy with my offline life: school, family and friends haven’t been leaving much time left for me to blog here. When I have some free time, I try to keep up-to-date with the online communities I take part in and also work on my l.f.nu URL shortener. By the way, have I told you that l.f.nu now supports editing short links?

When you shorten a new link, you receive a random code specific to it. Keep that code saved as if it were a password, as it is the only way to edit a shorten link through its Click Statistics page (add a + symbol to the end of the shorten link, then open the tab “Manage”).

This feature about link passwords (which I call “passcodes”) is something I developed just for l.f.nu, it is not available in the standard YOURLS installation. I have no plans to make it open source right now, as I haven’t implemented the thing as a plugin, and the code is a bit unorganized.

So no, I haven’t disappeared from the online world yet. I’m just a bit more silent these days…

I don’t appreciate the “Like” button

Of all the ways to express your opinion on some subject, I believe the “Like”, “+1” and similar buttons are some of the worst. Why? Well, nowadays “liking” something on the internet means little to nothing. People are asked to “like” things, “likes” are sold and bought as a product and not actually as a consequence on someone’s feelings on what one has seen/read/experienced, and now the quality of things seems to have become measured in the number of “likes”.

I usually say the “Like” button was the best invention for those that are so lazy that don’t want to write anything, or those so lazy that don’t want to create an opinion on a certain subject. It is also a great thing for those who don’t care about explaining why they “like”. The same argument is also true for “disliking”, on the places where that’s permitted. Those who have something to say will comment or reply, but “liking” is something so vague that adds little value.

It’s important to let people express their opinion on other Internet content in a meaningful way. Allowing users to comment and reply in an Internet that’s more and more made by its daily users is a good thing (that is, if you really promote freedom of speech). It perhaps even motivates people to think about things and form their own view on the subject, instead of just “liking” a view that’s being forced into their minds.

Imagine someone on the Internet says “WordPress is a really cool blogging tool”. You have the following options: you can either “Like” this statement, comment on it, or don’t give a s*** about it and move on. If you agree with the point of view stated, but have nothing to say on it, you’ll probably click the “Like” button. If you don’t agree, you’ll move on, or eventually post a short comment stating that you don’t agree. And if you are of those that actually wants to express an opinion and cares to write trying to use the language properly, you’ll comment. Now imagine you can’t comment… probably you’ll just move on.

If you comment and your comment is insightful, it will add value to an existing discussion or perhaps even start a new one. But those who “like”… what will happen? When you see “34 people like this”, do you have any idea of what those 34 people think? Did they “like” because they found it funny? Because that content was interesting? Because it was so wrong that it made one laugh? And who knows how many people didn’t like that content, specially when compared to something else? I think this need for comparison and ranking caused “likes” to be used as if they were a measurement unit, as I’ll explain later.

I even fear one day people living in a democracy will vote for their representatives by “liking” them. Knowing how many didn’t “like” any of the options is going to be hard. And you won’t know it was because none of the options suited them, or because they were ill in the elections day, or because they preferred going to the beach instead of voting, errm, “liking”. Knowing how many people “liked” twice can get hard too, but that’s easily fixed.

One more thing that illustrates the stupidity of the “Like” (or similar) button: it doesn’t exist in natural human communication. Well, it does exist, but it’s way more elaborated than a “Like”. Imagine you’re hanging out with your friends, in the pre-“Like”-button era, and one of them tells a joke. Nobody’s going to say “I like” without saying anything more. Since it was a joke, if one has found it funny, laughs will follow. And if it was really funny, one will laugh a lot (I also have my opinion on the LOL thing, but that’s for another post). And if the joke wasn’t funny at all, or the way it was told wasn’t good enough, one will at least smile, or say “Man, you’re not good at telling jokes”.

And another example: if you go to a restaurant and you enjoy the meal you ordered, it’s unlikely that you just say “Like”. Even if you only want to say you liked what you ate, there are many, many ways to say “Like”. Now if I want to be ultra-nerd, I can even say the “Like” button impoverishes people’s vocabulary. 🙂 So to conclude this point: at most, people have brought “I like this” into real-life communication after it became popular in the web – it didn’t exist in such a monotone and endlessly overused way before that.

I’m not saying the “Like” button isn’t useful – for the times when you actually like and there’s nothing else to say. The problem is, people became lazy and now they prefer to click a button than to write their opinion – sometimes because they don’t have any opinion, other times because it’s just easier to “Like”. Again, if I jump to extreme cases, the web might become something where some party says “1+2=5” and all there is to say is that “56,322,943 people like this”.

Now about the “Like” button as a measure of quality of things. If for a given “product X” there are 60000 likes on some social network and for another “product Y” there are only 2000 likes, people will often think “product X” is better than “product Y”. But those who will care about doing some research will find that “product Y” doesn’t contain “substance N”, which is really bad for health, while “product X” does contain it. “Product X” has more likes because it appeared first on that social network as part of an advertising campaign that costed millions. Conclusion: the number of people that “Like” something is worth nothing, even though at first it might look like so. Even because “likes” can often be bought: imagine that millionaire advertising campaign included buying 10000 “likes” to bootstrap it, and “liking” things becomes even more meaningless.

But the example doesn’t need to be about evil companies and products that are bad for health being advertised in a giant scale. You certainly know those people that ask for likes on their content. And those annoying “If you are happy, like this”-style messages. This happens in social networks in each other’s friends circles.

Oh, and another thing: “Like” buttons are used for tracking people whenever they go on the web. You can leave the “website X” that hosts a “Like” button, that as long as there is a “Like” button of that “website X” in any other page, the owners of that website can know you’re at that page. And I’m not dreaming, as you know, Facebook and other social networks do this.

This stupid “Like”/”+1” button is one of the many reasons why I deactivated my Facebook account some days ago. But this isn’t only about Facebook, it’s about everything sponsoring a “Like” button. (At least Twitter doesn’t have such a “feature”, hooray! 🙂 )

Putting short: yes, you can keep the “Like” button, but make sure people can comment – and I’d encourage them to comment and show their views on things whenever possible: I think it adds a lot more value to the Internet.

EDIT: looks like Facebook “Likes” aren’t speech protected by the US First Amendment.

This website is back!

Looks like my servers and websites have all decided to take some holidays and go offline, fortunately not at the same time. Some weeks ago, it was 4.l.to/l.f.nu that decided that some days sleeping would be good, after its domain went down (causing the change to a new one and the whole service rebranding). And more recently, the VPS where I was (yes, was) hosting this blog, which by its turn was hosted in a friend’s dedicated server, went down the trash too: the guys at the provider my friend uses decided to play around with the hard drive of the dedicated server, and we ended up without any of data that was in it.

Unlike what’s usual, this time I had backups (yepeee!). But as always, they were outdated (from January!) and consisted of a WordPress export file. So, I didn’t have any backup of the server configuration or the other scripts and data I had in the server. Conclusion: I had to set up everything from scratch – but wait, first, I need to explain: my friend offered to install WordPress for me, (as I’m very busy with real life, I’ll explain later), but he used CentOS, and since I really don’t like CentOS and there were some tiny “wrong” details in the WordPress config (just a matter of personal choice: I do not like to use “admin” as the admin username, even for security reasons), I reloaded the VPS with Ubuntu.

*Ubuntu: I would have used Debian, if it weren’t for the fact the software in its repos is, although stable, far from being the latest version. And my idea of “stable-recent” ratio for software is not quite the same as Debian’s idea.

As I was saying, I had to setup everything from scratch on a new VPS, on another dedicated server that’s not from the same provider (but the dedi is from the same friend). That means some hours around the shell installing and configuring nginx, PHP and MySQL, as well as configuring WordPress-specific rewrite rules and other server settings – and I’m not finished yet, the current settings are not how I’d like them to be.

I said above I was very busy with real life: yes I am, I’m busy with lots of school work, and I’m also a bit tired of the online world for now (the part of the internet I use/follow has no news lately, things are pretty boring currently). But today I had a school trip for the whole day that got me really tired, and when I got home, I felt like I wouldn’t be able to study anything for the school tests I’m taking in the next weeks. I had a server to configure and a blog to restore, and thought I could use the free time… and here I am, blogging when it’s almost midnight on my clock.

Despite the hours spent, I’d say my work has been done without major problems. I’m getting either too used to installing nginx+php+mysql, or it’s because it is/was Friday 13th.

Yeah, is/was. It’s four past midnight.

EDIT: this server is now much faster, its host was suffering from some misconfiguration – again, my friends are awesome and fixed it 🙂

4.l.to is back, but now as l.f.nu

After the unexpected breaking of the l.to sudomains, 4.l.to went down, as I explained in this post. It’s been over ten days since that domain went down, so I decided to move 4.l.to to another domain, consequently renaming it (of course, duh!). After lots of searching of the FreeDNS domain catalog, I finally found another domain name that was just as long as 4.l.to, and happened to have a one-letter subdomain available.

So I registered l.f.nu. It’s my “new” URL shortener. All the 4.l.to shorten links work now, if you change the “4.l.to” part to “l.f.nu”. The official announcement about the change is here. While this isn’t as good as having all the 4.l.to links working again without changes, I guess it’s better than, for example, having a complete database or server crash and no backups, thus losing all the shorten URL<->long URL associations and click statistics.

l.f.nu allows for some interesting “acronym-sound-reading” results. It can be interpreted as “Linking For New Universes”, “Linking For New(s)” (if you read the “nu” as nee-yuu), or even “Linking For Nothing Useful” 🙂 . I’m sure you can come up with some new meanings too; if you happen to find an interesting one, don’t forget to post in a comment!

I also gave my URL shortener a new look. It no longer uses the default Bootstrap theme (it’s become too mainstream!), but rather the United theme from Bootswatch. And finally, I also fixed some bugs in functionality and looks (read: port the thing to the latest version of Bootstrap). There are still some things left to fix, and I plan on adding some new features one of these days.

Also, looks like the new domain l.f.nu is allowed on Twitter, while 4.l.to was not – it was marked as dangerous even though I don’t know why, perhaps it was something common to all the l.to subdomains. Looks like this domain change is better than I initially thought!

Don’t forget to comment on this relaunch of 4.l.to, which is the launch of l.f.nu!

4.l.to is down

My URL shortener, 4.l.to, is down because all the .l.to subdomains, managed through FreeDNS, are down too. There’s little information available and all I know is that the subdomain is broken since 19th March, as said on the FreeDNS subdomain management page.

There aren’t any planned times to have the service restored – as I hope you understand, this is completely out of my control. In the meantime, all the links shortened with 4.l.to, which were over 500, are broken.

If you have any information that can help find what’s the future for the l.to subdomains, don’t forget to write a comment in this post. And, if you happen to have a short URL which you don’t mind donating for URL shortening (I can share the advertisements profits), I will consider moving/renaming 4.l.to while preserving all links (since the server is up and with daily backups).

Forcibly changed servers; data loss!

Let’s keep things short as I have lots of things to do. On 30th November, this website was working functional as it had always been since April 2011. Then suddenly, in the morning of 1st December, the server had been reloaded.

At first I thought it was because someone with admin powers at cheapvps.co.uk, the provider of my previous server that hosted this website, reloaded the VPS. But after some searches, I ended concluding the VPS, which luis123456 had given to me in April 2011, was still owned by someone else – and that someone was trying to make use of the VPS.

I found the email of the real VPS owner (in fact, I used it for logging in to the VPS control panel, but I always had thought it was just some random address, because it only had two letters and five numbers!). I sent an email to that address, and some hours ago, I got a reply from David W. – the real owner of my previous gbl08ma.com server, to which I called “hydrogen”. So what happened in fact? According to David, he told luis123456 to “maintain” (and no more than that) the VPS. luis123456, whose real name is Luis A. (so we talk about real names here) was not authorized, to use the VPS. Still, (and I repeat, this is the saying of David), Luis gave me the VPS. Luis never said anything about this: I thought the VPS was some kind of sponsored VPS which the sponsor forgot about.

So, the old server was reloaded. But things were worse for my side: I was supposed to have an automated backup system, but it was broken and I had no time to fix it. Shortening: I have no backups of the old server, except Google cache, which didn’t cache one or two blog posts. Apart from the text of the posts, cached by Google, I lost everything on the server, that is, all files, images, configuration files, scripts, WordPress plugins, themes… hosted within the server. This also includes the few Anti-Aliased fonts for Rockbox, which I’ll have to upload again some day.

I just finished restoring all the blog posts I could. I’m still wondering how to restore comments done by other users on the various posts. But wait, I missed one part, right? How did I get this new server?

Indeed, this is a new server. I say the website keeps being the same only because the matter and intention of it keeps being the same, but in technical terms, this is a whole new WordPress install, on a whole new server. While this has some advantages, it also has lots of disadvantages – you can compare this to formatting a dog slow Windows computer, without making backups first: after re-installing the operating system, you get a clean system but most of your data, configuration and software is lost.

This new server was given by Humza Bobat, Infinity at freevps.us. So yes, now I have two server provided by freeVPS.us; since I know other users will get angry with me by having the admins of freeVPS opening an exception of the one-vps-per-user rule, I must provide some good argument to it.

In fact, I need two server for various reasons. One of the reasons, is that since the virtual servers I own are not very powerful (they are low-end boxes), they can barely handle two websites on the same server – note that we are talking about WordPress on this website, and while WordPress can run on fairly modest setups, I want some speed both for me and for the sometimes 10 concurrent users of the websites (it happens, for example when my stories get featured on Slashdot).

The multiple virtual host configurations, while they work well if you never touch the configuration files, are harder to maintain, in my opinion. But the main reason why having multiple servers is necessary is the following: being servers provided for free, you never know when one goes offline or you loose it forever (OMG! It just happened!). If one goes offline, you can still use the other for temporarily hosting an additional website or at least some informational page. Plus, you should never put all your eggs in one basket: the server that served gbl08ma.com went away with its data, but the situation could be worse if all the things were on it. If I had what I have on my “helium” server, the one that serves 4.l.to, on the server I lost, then I would have lost some hundreds of MB of information that is important (some of it even a bit confidential).

A interesting thing is, I have automated backups of the helium server working, although it gets much less visitors (not including short url clicks) than gbl08ma.com gets. The Murphy’s law regarding backups applies: even if you have backups of your things, they will never include what you just lost.

What about naming conventions? The “hydrogen” name now refers to this new server, while I’ll call the old one from on now “deuterium” 🙂 . The 4.l.to server keeps being called “helium”, as ever. I also have one testing server called “lithium”, but it isn’t used for anything permanent – as I said, it’s a test server.

If you have any questions regarding the data loss on this blog, please post on the comments. I’ll be busy for the next days/weeks/months trying to restore more of what was lost.

Now running with nginx!

I was really fed up with Apache on this server. It would use huge amounts of RAM, even after all the visitors left the website. Having done all tweaks to the memory usage of Apache and PHP, the amount of RAM used would never get below 450MB (out of the 512MB this VPS has). Hell, Apache was consuming even more memory than MySQL!

For those who don’t know, nginx is an alternative, lightweight webserver which is generally used (by many popular websites) as a load balancer. However, it can also act as the single web server on a system, like what Apache and Lighttpd do. I had worked with nginx before on some small websites on low-resource servers, and I was quite satisfied with it. As I explained with an earlier blog post, nginx is great as long as the website you want to serve with it does work with nginx – that is, doesn’t heavily depend on Apache rules or some Apache-specific thing. Sure, those rules can be converted to nginx config options, but I never succeeded on making eyeOS 1.x work fully with nginx.

WordPress is one of the scripts that works best with nginx. Since this website is mainly powered by nginx (although I have some custom scripts laying around, mainly the scripts providing alternative WiiMC internet media), I made my mind and decided I would go through the hassle of switching from Apache to nginx. It wasn’t a big hassle after all: apart from having to restart the server at some point due to a RAM outage, the website wasn’t offline much time, and there was no data loss.

After putting Apache off-use and starting nginx, the server was still using 300MB of RAM. I though nginx couldn’t be using so much RAM, and there was another problem laying around. Turns out to be a problem in MySQL config: I don’t need InnoDB functionality, so usually I add a “skip-innodb” line to my.cnf. The problem was, this line needs to be added under the [mysqld] section and in my case, it was somewhere else. So I moved skip-innodb to the right place, restarted MySQLd, and that’s it:

The server is now using 240MB of RAM, which still fits inside the dedicated RAM (256MB), so I’m not taking any of the burst RAM, which resides in the server swap space. The RAM usage is still high, because I have other things running such as dovecot for mail delivery.

It also looks faster to load pages, but probably someone with a faster connection than me will notice a bigger difference.

Strange times… again!

So the last times have been strange again. A lot of events which somehow hit me harder, for the good or for the bad, have happened recently. Some are more personal than others, anyway. Here are the ones I can remember and talk about in public, ordered in chronological order:

  • My cat is really sick 🙁
  • dmmcintyre3 got me a .com domain – I wasn’t expecting that in any way, thanks a lot! 🙂
  • Steve Jobs had his last kernel panic (must I explain?). Let him rest in peace.
  • It’s hot like hell in Portugal, hotter than in the Summer, and it’s already 6th October
  • Last night (during the Steve Jobs thing, perhaps) I got a bunch of twitter followers. Funnier: most of these users have their following and follower counts on the hundreds, but never posted a single tweet. One word: spam bots.
  • And some more things I can’t remember! (I forgot about them while I was writing this, and now I can’t remember. Seriously!)