Monthly Archives: April 2015

Debian 8 Jessie is here

The next major stable release of the Debian lineup, the 8th one, codename Jessie was launched on 25th of april, last month. And like every Debian release, this one was packed with an awfully large package repo, meaning more free stuff to choose from, one of the fundamental reason I use Debian.

The total package base, with this release, is over 43,000, which is a lot. The key features added to this release, make it one of the best Linux distros till date, imo. Not to mention, rock solid.

All the major desktop environments like GNOME, KDE, XFCE, LXDE are supported (No Unity, sad ;), just select the preferred one during installation and it will download it for you. Alternatively, some iso are marked which desktop environment it ships, and if not specified explicitly, assume GNOME3.

If you are already on Debian 7, to get Jessie, fully update the system:

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade.

Then just head to /etc/apt/sources.list and replace every occurrence of wheezy with jessie and then again:

sudo apt-get update

sudo apt-get upgrade

That would be it. I noticed that Jessie is super fast, and I intentionally did a minimal install. The bootup and shutdown speeds are very impressive. Here is an amature video of me filming the shutdown time, LOL.

A note, if you go to the downloads page, there are multiple DVDs, like for example, the amd64 complete comes in around 10 DVDs, but you only need the first one. It contains all the installation stuff and most of the packages you’ll ever use, including the desktop environments.

Downloads page: https://www.debian.org/CD/

A tip, you can add the DVD contents to your hard drive and set up an offline repository. Mount the contents of the DVD or copy it to a local folder.

# in case of mounting the iso

mount -t iso9660 -o loop /home/abhishek/Debian/debian-8.0.0-amd64-DVD-1.iso /mount_point

Or just plain copy iso contents into the folder. Then add the following line on top of the /etc/apt/sources.list

deb file:///mount_point/ jessie main contrib

so that it will check for a local copy of the package first for offline package installation.

That was it for this promotional article [ 😉 ] on Debian 8. Hope you like the new release and use it.

Thank you developers.

Net Neutrality

Do you know, here in India, at most of the public places like temples, we have two separate queues. One for the ordinary folks, and the other one for the rich folks. Sometimes the rich folks are charged, sometimes they are just judged from the car they get down from and are treated likewise. On the other hand, the ordinary people are treated like cattles, pulled and pushed by the authority, because we are not really benefiting them much.

This is the reason I would almost always choose Internet over any other public institution, at least in India. I know that whatever my social status be, on the Internet, I am equal. I have just as much right to put forth by thoughts as any rich businessman or a politician. I know that I have got people behind me who would not tolerate anyone who curtails my rights on the Internet. Yes, Internet is my home, and I am Internet’s child.

But like always, there are people who cannot stand that the ordinary are getting this extra power. They want to bring all of this under control. They want to turn the Internet into their own playground where they will control the lines as in our temples, giving early and quick access to the one who pays extra and slow to the one who does not. They want to make sure only the ones who can pay get heard, and all the others are suppressed.

Net Neutrality

You are out with your family, on a nice sunday picnic when on a toll booth, you are told that your Maruti car is no longer allowed on this flyover because Hyundai has paid the construction company to only allow their cars through the shortcut. What would be your reaction?

Tim Berners-Lee (‘Inventor’ or the world wide web, or more technically, original implementer of the HTTP protocol) defines ‘Net Neutrality’ as the principle that each packet of data should be treated equally, and no discrimination should be made based on economic motivations.

The exact opposite is what some telecom companies in India are trying to do. It started with Airtel. All of a sudden, it struck Airtel that if websites and applications can make revenue by creating services like messaging (like Whatsapp and Facebook) and calling (like Skype and Viber) which in turn decrease the usage of Airtel’s own services of SMS and calling, it is their right to start charging these Internet services separately. They even got out with their VOIP pack that a customer had to subscribe in addition to the existing ‘base’ data pack, to use this service. Eventually it was dropped on account of the resistance.

Now this time, telecom companies have convinced TRAI that they must be entitled with the authority to intercept the traffic, to decide what websites to let users access, and what not, and if yes, then at what speed. Ridiculous, right? Charging more for extra speed can be justified, but why on earth are those innocent data packets discriminated. TRAI has even released a consultation paper asking 20 questions here. If you take a look, you would immediately see that the paper is made extra complicated to not make sense to you, yes you, the customer. The C++ standard looks simpler. LOL.

So what does it change for you, for me?

As a customer, it will change almost everything for us that has any connection with the Internet. Firstly, we will have to pay for the usual data plan we currently do. So far so good. Now, you can’t use any messenger services from this pack, so no Whatsapp, Facebook, WeChat and all. Similarly, no Internet calling services would work, like Skype and Viber. Well, they would work if you pay an extra Rs100 or so a month for the ‘Special-messenger-pack’ and the ‘Special-VOIP-pack’. Now who the heck are these telecom companies to tell me how and what sites and services should I use.

Plus, it also gives the companies the power to control the speed of your connection on particular sites. For example, maybe Flipkart.com will load up instantly, but Amazon.in would take forever to load up just because Flipkart is affiliated with your service provider, and you are forced to buy from Flipkart. Disgusting, right?

So, if you don’t want to pay Rs250 for data, Rs50 for Whatsapp, Rs70 for Facebook and Rs80 for Youtube seperately, then you should instantly head to

https://www.savetheinternet.in/

and send an email to TRAI, which can be done with 2 clicks, yes literally.

As a publisher, you might own a startup or maybe a modest blog like the one you are reading this article on. Now, large sites and enterprises with deep pockets can just call up these telecom companies and be like “Make my site free on your network, I’ll pay you the incentive.” This will make all the traffic go on that particular site or use that particular service and not yours, which was equally good, or maybe better.

The Internet is the only place guys, where everyone is still equal. We need to keep it this way, otherwise, we would be helpless. We know exactly how strong our law is, and how well behaved our politicians are. We know exactly how seriously we are taken by the mainstream media and the police. We, Indians, are like puppets for the rich filthy and greedy companies that rule here. And now, they are trying to close the only open source of information for us. Don’t let that happen.

A humble request to all my fellow netizens. Log on to the site and send an email to TRAI. Educate your fellow netizens. Together we can stop this.

https://www.savetheinternet.in/

For further reading, here is a short list.

What programming isn’t

There were days when I used to search the web for ‘best programming languages‘ and ‘most popular programming languages‘ in my free time. I was not able to decide myself what language to learn and invest my time upon, such that it would pay me back everything I put into it. This was really a hard task, given the fact that I have interest in a wide range of stuff related to computers, from algorithms to designing beautiful forms with CSS.
Given that I had no guidance from the people around me, since I had no one in my family from the technical field, and the college professors were not of much help either. Now that justifies my amateur-ish googling habits.
Leaving that aside, I have lately been asked a lot of times by my fellow mates, what is the ‘best language‘ to start with and what are the current ‘hot languages‘ in the market. To start with, there is no language that is ‘best’ in every sense. If there was, why would anyone bother creating additional languages in the first place, right? Languages are written and implemented with certain goals in mind, which it should satisfies better than what was present before creating that language, that’s the whole point about it. So stop searching for the best language and start looking for your own needs.
Secondly, I don’t think anybody should care about the ‘hot languages’ in the market, except for the tech magazines’ journalists. Why? Because if you haven’t heard of it yet, then you probably don’t actually need it yet. It is much better to know a single language as a whole, than to learn 5 languages just for the sake of them being ‘hot’.
If you are new to programming, then most probably you are taught programming using some or the other language (most probably C++ or Python). What most fail to teach is that programming is not equal to learning a language. Programming is the mindset that you develop when you are solving problem for a wide range of sub-problems by writing a common solution to all. Most of the times it means looking for a pattern in the chaos of that problem. You don’t need to know a language for finding this pattern, do you? You have to realize this thing at the earliest.
Programming language that you choose is the tool you choose for the task you have in hand. Now, depending upon the task, some tool might be better than the others, and help you in doing the task quicker. You can think of an analogy here, like if you want to cut tree trunks, you can use saw blade or maybe even a kitchen knife. But the saw will get the job done much faster. However, any sane human won’t cut vegetables using a saw. The same goes for programming languages. Different tasks demand different languages, and each has its own pros and cons. But the languages won’t help a bit if you cannot figure out the problem itself in the first place.
I had start to program in C, jumped to Python because ‘Google used it’. Then I came to PHP because I read somewhere that PHP gets you a job quickly. I started with JS and Node.js later due to their growing popularity. I did a lot of mistakes when I started it all. I wish I knew it then, that instead of wasting my time on learning the syntax of languages to do the exact same thing I did with the previous language, I could have been much better off learning some interesting algorithms that would’ve helped me in solving some tough hackathon problems.
So is the knowledge of language implementations not useful? Of course, I don’t mean that. A language is very useful once you know how to use it. You don’t have to know everything from a language. Just enough to get the problem solved. Nothing more. For example, you might have probably heard of C++. If you have ever tried to learn C++, you might have realized that it is a really large language. Originally designed for low level embedded programming and as a ‘C with Classes’, C++ has evolved to be a language that can be used in almost every domain. The ‘Standard Template Library’ is large enough for you to not miss anything in most of the cases, and even if you do, there is boost at your rescue. So do you think you most know all of the above to call yourself a C++ programmer? No. Many great programmers who use this language use just a subset of it and they are fine with it. I personally don’t use the object oriented facilities of the language much, but it doesn’t matter as long as it does what you want it to do. So don’t aim to know an entire language unless you want to get into compiler development or it’s standardization committee. Focus on the thing you are working on, and not the language you are using.
Have the enthusiasm to solve problems. Take pride in building things from the scratch, all by yourself. The love for programming comes in automatically. But most important of all, learn how to program and not how to write syntax of a particular language.
Thank you for reading.