May 17
My Sites: My Blog | My Tech Blog | Follow me on Twitter
—-

For the past many years, I’ve seen a trend that has been on a meteoric rise. Whatever new service you sign on for on the internet (especially the web2.0–oh-so-cool-you-have-to-tell-everyone-about-it ones), it gives you an option to fill in your e-mail ID and password and makes a generous offer of letting all your friends know about your new avatar and let them all join in the fun. Most of the people around me, it seems, don’t think twice before gladly accepting the offer, as is made apparent from the increasing amount of automated mails I’m getting with subjects like “Hey, don’t be left out! Join me on X” or “Hi SG, Why don’t you follow me on Y”.

I just wanted to “remind” you all (because you already know it) how important your password is. You keep it safe from everyone, suspect even your friends of trying to hack into your e-mail, and then you give it away to an “unknown” entity with so much of ease, laying so much trust onto it that you won’t even put in your biological parents.

While many of these services are genuine, but many might not be. I’m certainly against handing out your passwords to a third-party web service until it is something like google that won’t just sell you off one fine day and run off somewhere you can’t find it. But if you are compelled to do so because of some reason, I’d recommend atleast checking out what it has to say about the data it’s collecting.

Let me take an example of a new IM service that I recently came across. It’s called IMO (or imo or whatever) and is apparently quite popular because of its multiple IM service connections through a single interface. I thought of checking out its terms etc and making a mental image of how respectable / trustworthy I found it. I had listed the following things on the blog where I had found about this site. Listing them here again for you.

Following are the nuggets I found:

1. They have a blogspot blog. It takes hardly a few minutes to host ur own blog on ur own domain. Maybe they have some existing google connection but yet to discover it.(I read somewhere that some of these people worked at google in the past but that’s no reason to keep your blog on such a platform)

2. Shady privacy agreement.
2a They mention that not only will they save ur username and pwd but may also save ur chats/messages etc.
2b They might also share info with 3rd parties (written in a manner that they can do it on their own will)
2c Transparency: They might not even tell u whats going on if they so decide.

Please don’t mention about the eliteness of their “advisor panel”. This is the biggest marketing gimmick that everyone pulls off. Many times the “advisors” don’t even know the “advised” company exists.

IMP: If a site doesn’t say anything or says all goody things in its terms, that doesn’t make it clean, but if you find suspiciousness in the terms, that definitely makes a negative mark. In Short, when your password is concerned, treat everyone guilty until proven innocent.


—-
If you liked this post, then you can Subscribe to my feed
Quote of the day: “You will be who you will be. We are our choices. And we can choose to lead humanity away from this… darkness.” - Icarus/Helios

written by Shantanu Goel \\ tags: , , , , , , , ,

May 03
My Sites: My Blog | My Tech Blog | Follow me on Twitter
—-

GLib - An Introduction:

GLib is a utility library for C, which augments the standard C library in several purposeful ways to make your life that much easier while programming. GLib has the following things to offer you:

1. Portability: The main issue that haunts any C developer is the portability of code. One cannot rely on the standard C library for this as you may find many functions that work differently under different platforms are aren’t there at all sometimes. GLib ensures that the all the functionality exposed by it remains consistent across platforms, so that you can rest assured that your code will work the way its supposed to work irrespective of the Operating System it’s being used for (Of course, this assumes that you have ensured about portability aspects of your non-GLib related source code). Moreover, GLib is available for a vast array of contemporary Operating Systems including GNU/Linux, Microsoft Windows and Mac OS X.

2. Security: Though you still need to be careful about things like freeing allocated memories properly, etc but GLib does ensure that all its functionality is secure. Moreover, GLib has a policy of ensuring that all its functions are threadsafe. This saves you from a lot of checks and balances and locks and scheduling considerations if you had written all this yourself.

3. Useful Data Types: GLib exposes a lot of data types. Some are very basic that maintain portability across OS’s and 32-bit and 64-bit systems. e.g. you can rest assured that gint32 will always be 32 bit and gint64 will always be 64 bit data types.

Apart from this, it also provides a lot of derived data types e.g. singly linked lists, doubly linked lists, hash tables, stacks, queues, trees, and much more. It’d basically cover most of you data structure needs that you’d have otherwise had to implement yourselves. And it also provides helper functions that makes working with them so much more easier. If you have ever used Perl, and have wished that C programming could be a bit faster like it, you will be pleasantly surprised.

4. Utility Functions: GLib also provides various utility functions to ease out your manipulation of data. Some of the functions are meant as more secure and portable replacements for those provided with standard C library, while rest are meant to provide other useful functionality which you earlier had to implement in your code. Some of the major areas covered by GLib’s utility functions are String manipulation, character set manipulation and conversion (including unicode and base64), using regular expressions, file manipulation, shell functions, config file parsing (my favourite), etc.

End Note: I can understand that there would be a lot of people who believe that use of GLib is dumbing down programming in C. After all, we take pride being in control of our code and this is why we love progrmming in C because we have options to do things in our own way. Yes, that is all true but there comes a time where you’d like to spend more time in developing the core functionality of your app, or focus more on giving a rapid shape to your new idea, rather than reinventing the wheel and fumbling around with writing the helper functions. So, keeping that in mind I believe GLib is wonderful piece of code that has enabled me to churn out new apps that much faster.


—-
If you liked this post, then you can Subscribe to my feed
Quote of the day: Homer: Kids, you tried your best and you failed miserably. The lesson is, never try.

written by Shantanu Goel \\ tags: , , , , , , , , ,

Apr 20
My Sites: My Blog | My Tech Blog | Follow me on Twitter
—-

Disclaimer Notes:

  1. I wrote this because these things just came into my mind today while I was reading about the impending “Hardy Heron” release related things and saw that there is a lot of FUD being spread still. So, thought of jotting down my likes/dislikes and not making it a linux v/s windows campaign. Though at a few places, it might be necessary to compare the two just to put things into perspective.
  2. These are reasons why “I” like/dislike Linux and not why others might like/dislike it although you might find common patterns.
  3. Most of my recent experience is with Ubuntu these days, so most examples would be from it as well.
  4. These reasons are purely from an end-user’s perspective and not from a linux developer’s perspective. So, I’m not taking into factor that I can change the kernel (or most other things’) source code because “generally” I don’t.
  5. This post is quite long. And if you have a flame to send out my way (which you are most welcome to do), please read it in its entirety before doing so, because many things I say at some point have some caveats covered at another point.

5 Reasons why I like Linux:

These reasons aren’t listed in any particular order. All of them are quite important for me.

1. Light on Resources: I must say that Linux is what still keeps my more than 3 years old laptop running in a prim condition with the latest and greatest of everything from technology stand-point as well as eye-candy stuff. An example: With almost every effect of Compiz Fusion turned on, hordes of screenlets and AWN enabled, an Apache/MySQL/PHP based server running, and a dozen of other applications (firefox, nautilus, terminal, GIMP, RhythmBox, Open Office Word Processor, VLC player, etc) open, my setup consumes around 500 MB of RAM. While on the other hand, if I was using Vista, It’d have demanded atleast 1 GB of RAM just to run Aero, forget about the rest of the things.

2. Cost: This is a big factor for me. Almost everything is free or atleast has a free alternative available. Most of the times I’ve found these free software to be much better than commercial software in terms of feature sets as well as stability. But even otherwise, when there are cases where the free alternative a bit lagging as compared to the commercial one (e.g. GIMP v/s Photoshop), I haven’t felt that my needs have ever outgrown the free software.

3. Ease of Use: Doing “stuff” on linux is just so easy. By “stuff”, I mean everything from doing some normal day chores, downloading files, customizing things, automating routine tasks, etc. The backbone for this is “the terminal” (not the movie :P). I can do almost anything I want from the console. It not only saves me time and frustration in executing a program, waiting for the GUI to load and then go through a series of clicks but also allows me to batch up everything into one pretty little command. Moreover, every thing has so many options that I can configure to my liking. (More on the “options” later below)

4. Getting Software: Getting software couldn’t be more easy.

  • It generally involves typing in “sudo apt-get install <software>”, pressing enter, and that’s it. The latest version is ready to roll on your machine.
  • Reboots are minimal. Even after thinking for quite long, it’s very hard to recall any time when I had to “log-off” my system (let alone reboot) after installing a software (or even a driver)
  • Updates are automatic, and not just for the OS or a few core components, but for all the software that I installed through repositories (but not for the ones which I installed from my local deb’s or compilations, which is understandable of course)
  • The latest fixes/patches are available very quickly. Moreover, the revision cycle for most distros lies between 6–12 months and hence, even a complete desktop upgrade is quickly available as well (as compared to the 7 year period after which Vista came out). You can even “upgrade” to the latest distro revision without having to wipe everything, though I generally prefer a clean install.

5. Security:Now, I agree with everyone that the reason why we don’t see many viruses for linux is because the user base is very less as compared to other OS’s but I also believe that this is not the “only” reason.

  • The thing is that since most of the software is open source, so exploits are found quite quickly and patched and released rapidly. While in a closed source environments, even if a white hat reports it, the exploits go on un-noticed, un-worked upon by the developers (A good example is the recent falling of Vista during the “Pwn to Own” contest because of a known but unpatched vulnerability by Adobe, not a fault of Vista in this case though but you get my drift).
  • The security model otherwise is also quite tight and its very hard for someone to exploit it till the time you use common sense along with it. (A linux virus can easily wipe ur “/home” without acqurining root permissions).

5 Reasons why I dislike Linux

These reasons irk me the most but aren’t enough for to make me move away from Linux. I mention them because getting them right would make my Linux expereince that much more joyful and probably others feels the same too. Moreover, this is not a gripe and is not a command/order to “the Linux guys” out there to fix it, because linux is of, by and for the community. And being a part of this community, I share the burden of this equally and would like to help out in making it better in whatever ways possible, developing, testing, suggesting things.

1. Getting Software: I had mentioned about how easy it is to get software from most distros’ repositories with a single command. However, getting and installing software is also a challenge that many people face in linux. After sometime your particular version of the distro stops updating the software and will include only security fixes and such. Now, there are many good people who would backport software for your version but not all the time. You can download pacakges off the internet (debs’ for ubuntu) but they might not work because of too many inter-mingled dependencies. Compiling is another option but many times, it can spiral out of hand. I hope we can better softwares like GDebi that could make this much more easier.

2. Options: Earlier I listed having so many options as one of my reasons to like Linux. But, sometimes, too many options tend to get to my head. This gets even more difficult when you have too many choices but no clue about what means what and which one is the best. However, the community is continously trying to make this right. A lot of documentation projects are going on, and the mailing lists, IRC networks and other forums also give out a lot of information. Especially for Ubuntu, I find a huge community based support system which always helps me out. (PS – The Ubuntu Forums are the nicest forums you’ll ever come across. I am yet to come across a post that contains words like “RTFM” or “n00b”)

3. Ease Of Use: Some times, just some times, the lack of a GUI for common things irks me and I wish in respect of a few things (read wi-fi) that things could “just work”. But I guess this is a trade-off that I can live with, and moreover this situation is also improving especilly due to the efforts taken by Ubuntu, Mandriva, Fedora, GNOME and KDE. (Special thanks to nm-applet ;-) ). Moreover, Hardy Heron, b43 and the latest linux kernels promise to solve the wi-fi setup issues.

4. Browsing: The browsing experience on linux isn’t too great. But this is not a fault of Linux as such. This is due to companies providing adequate linux support (e.g. java plugins for 64 bit) and too many sites optimizing their code for IE. But again, there is hope for this as we can already run IE on linux (IEs4Linux) plus SUN has promised a 64 bit java firefox plugin with the next JRE.

5. Drivers: This is again due to companies not giving proper linux support for their hardware and not even releasing their hardware details for the OSS community to develop their own drivers. However, I can understand that giving out hardware details might not be an option for these companies considering the competition, and also proper software support might be a bit unfeasible due to a smaller consumer base. But again, more and more companies are seeing the light now and releasing proper drivers for linux, with Nvidia and ATi taking the lead (When will Creative listen?). And a special thanks to the OSS community for making working drivers despite all this.

So, this is it. After reading back through what I just wrote, I am dead sure that I will stick to Linux as the trade-offs are too meagre for me. Will you?


—-
If you liked this post, then you can Subscribe to my feed
Quote of the day: “Human beings may not be perfect, but a computer program with language synthesis is hardly the answer to the world’s problems.” - JC Denton

written by Shantanu Goel \\ tags: , , , , , , , , , , , , , , , , , , , , , , ,

Mar 02
My Sites: My Blog | My Tech Blog | Follow me on Twitter
—-

If you thought that a webcam is just for getting in visual touch with your distant friends, then you could not be more wrong. There are many other uses e.g., making videos, rudimentary security systems, etc. But I didn’t know that it’d be as simple as a a few keystrokes and a couple of clicks, until I stumbled across this article on Linux.com – Five fun ways to use a Linux webcam. It lists out the following five things that can be achieved ever so easily with a webcam and your linux box:

  • Record Yourself
  • Make a Video Streaming webserver
  • Monitor your house
  • ASCIIfy your image
  • More fun with your videos and stills

Do check it out at the aforementioned link.


—-
If you liked this post, then you can Subscribe to my feed
Quote of the day: “Bravery is not a function of firepower.” - JC Denton

written by Shantanu Goel \\ tags: , , , , , , , , , , ,