The first thing I want to do when I get a new laptop is install Linux on it. I usually don’t have rewritable CD/DVD handy and have to depend on USB flash drives to install Linux. Surprisingly, documentation for Arch Linux was sparse on this subject. However I looked up how its done on Ubuntu and it worked seamlessly for Arch Linux.Continue reading
Install Unity on Arch Linux
Some might wonder, why would you do something like that? Install Unity on Arch Linux? Absolutely blasphemy. But really, I have fallen in love with this combination. Till a couple weeks back, I had been using Ubuntu for close to 4-5 years without experimenting with any other Linux distros. I usually resist the urge to install the alpha releases, but by the time the beta releases start coming out, I’m just itching to get hold of it, irrespective of how catastrophic it has turned out sometimes from the work perspective. So when Ubuntu 12.10 beta2 came out, I installed it. But I was sorely disappointed. Unity kept crashing for no good reason, generally not a very stable system. I know ‘beta’ versions aren’t supposed to be stable etc, but it shouldn’t crash as often as it did. Continue reading
Why I like Unity?
There’s a lot of criticism out there for the Unity Desktop Environment. Strangely I can’t echo the same sentiments. I quite like using Unity (mind you not Ubuntu). Here are a few reasons why and why not.
The Unity Launcher: I have always loved launchers. Back in the days, when I would change desktop environments every second day – fluxbox, gnome, kde, wmaker, etc, one thing was constant. I had gnome-panel (&) start from my xinitrc irrespective of what distribution I used. Also I have never been a fan of taskbars. The Unity launcher marries the traditional launcher with a highly usable taskbar. It had some usability issues when Ubuntu initially switched to Unity, but it’s almost perfect now with AppIndicator Support. I can have upto 15 applications open at the same time and it’s still a breeze to manage them.Continue reading
iproute2 tutorial for ifconfig, arp, route users
A lot of Linux distributions are shifting to iproute2 instead of net-tools (aka ifconfig, arp, route). The main reason being net-tools package hasn’t been updated in a decade. However having used the trusted ifconfig
, route
and arp
for so many years, I have never bothered to use ip
and hence I now need to Google every time I want to see what my IP address is!
So here’s a short iproute2 primer for net-tools users (like myself).
Continue reading
PHP like str_replace function in C
This post is part of a series of posts where I want to document a bunch of C functions I use for my projects that I have written, collected and modified over the past few years. One of the functions that I use regularly is a string replacement function like the str_replace
in PHP. This function replaces all occurences of a particular substring with a replacement pattern. The code for this was borrowed from here. In the original code, a newly allocated string is returned after all the substrings are replaced. I have modified it so that the replacements are made in place.Continue reading
Kickstrap – CSS Framework: Enhancements for Bootstrap
Kickstrap uses the latest version of Twitter’s bootstrap (http://twitter.github.com/bootstrap) and adds a layer of extras to create slick web applications with themes, modern html/css standards, an icon font, and progressive enhancement through javascript.
Modify argv to hide sensitive information like passwords etc
A lot of programs require you to pass sensitive information like passwords etc as arguments to the program. However if you pass passwords as arguments, it will be visible through the /proc
filesystem or the ps ax
output while the program is in execution. To avoid the possibility of anybody prying on sensitive information, programmers should modify the memory location where the input parameters are stored (argv
array), so that it is not visible to any other users, who might have the access levels to see what processes you’re running. Jotted below is some sample code which modifies its input parameters to hide it from the proc file system.Continue reading
Sample C program to ping hosts using fping
Here’s some sample C code which one can integrate into their projects to ping hosts. It uses fping instead of ping to do the actual pinging. Unlike ping, fping is meant to be used in scripts, so its output is designed to be easy to parse. Continue reading
Install kmscon on Ubuntu Linux
Kmscon is a simple terminal emulator based on linux kernel mode setting (KMS). It is an attempt to replace the in-kernel VT implementation with a userspace console. It is similar to the in-kernel terminal-emulator and is based on DRM. Listed below is the procedure to install kmscon in ubuntu.
sudo apt-get install libgles2-mesa-dev libgbm-dev libegl1-mesa-dev libdrm-dev libglib2.0-dev libfreetype6-dev git clone https://github.com/dvdhrm/kmscon.git ./autogen.sh make sudo ./kmscon --switchvt
The last command will start kmscon on /dev/tty8
.
Assign Google Adsense Code to a PHP Variable
Assigning Google Adsense code to a PHP variable doesn’t work the way you would expect it to. I thought just deleting the newline characters and extra spaces from the adsense code and then assigning the resulting text to a variable should work. However it does not, and I’m not sure why. However what does work is shown below.
<?php $googleadsensecode = ' <script type="text/javascript"> google_ad_client = "pub-123456789"; google_ad_slot = "123456"; google_ad_width = 300; google_ad_height = 250; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>'; echo $googleadsensecode; ?>
The following example does not work.
<?php $googleadsensecode = '<script type="text/javascript"> <!-- google_ad_client = "ca-pub-123456789"; google_ad_slot = "123456"; google_ad_width = 300; google_ad_height = 250; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>'; echo $googleadsensecode ?>