Category Archives: Featured

Monetizing your WordPress blog on mobile web using AdMob and Mippin

After one of my friend’s blog started creating considerable revenue through Google Adsense, he wanted to try his luck in Mobile Advertising. I had heard about Google Adsense for Mobile Content and also rumours that mobile ads were high paying compared to the usual web ads. So I thought why not help him. Browsing number of forums and posting my thread, none drew much response. I was actually searching for plugins for monetization with Google Adsense for Mobile Content. Unfortunately I couldn’t find any. But that was when I heard about AdMob which was yet another mobile advertising networks. Just like me for many, had a doubt if it was legit? Though I don’t have much experience with it personally,  I think it’s worth giving a try as Google has recently acquired AdMob for it’s expansion, with Adsense for Mobile Content. So it’s future is not going to be dull :)

The other advantage is that with mippin, you will have your webpages optimized for viewing in Mobile Browsers.

I will explain step by step about installing the plugin and Configuring with AdMob and Mippin.

1. Get your mobile version of the site registered at Mippin.

As the first step give your RSS feed URL/Website URL, Select the Layout and Customize it according to your likes.

Now for proceeding you will have to register at Mippin.com. Get it done.

2. Under the Publicize tab, give the URL  of your Mobile Webpage of your like. Give your tags. Also keep a note of the “code below”. Just Copy it into somewhere in your PC.

You will be needing the id in that code when configuring the plugin.

3. Now under the Monetize Tab, you will have to validate your website.

So copy “Mippin Feed Validation Key= XXXXXX” and publish as a post in your blog with the the copied statement as the title and content.

Then click Validate.

4. Now register for an account at AdMob. After confirming the account, login with your username and password at Admob. Click Add new Sites and App under the MARKETPLACE tab.

Now give your Mippin Site URL under the url coloumn.

Now you have to enter your admob id for getting it Click on “Here” and Click on the name of your website.

Now enter your Admob id at the coloumn at Mippin Webpage.

5.Things are almost done. Now get this Mippin plugin installed in your WordPress blog. After installation is complete go to the page of Mippin Plugin, there is a coloumn for entering Mippin id. Give the id found in the earlier code [Step2] found at the Mippin website.

6.Now just wait for a day for your ads to appear in Mippin website. Try accessing your website from the mobile.

You don’t need to manualy set the position of Mobile Ads in your website. Everything will be done by the plugin.

Best Wishes.

Just comment at the bottom if you have any trouble setting this up. I will try to help you.

Alternatively,reading  about  WordPress  hosting review can help in your budgeting as  hosting  these blogs do come  with a price.

From Central-Processing on the CPU to Co-Processing on CPU & GPU

Hope you have read

Will The GPU Replace The CPU Or Will It Be The Other Way Around?


Here we discuss about the coordinated and synchronized use of CPU and GPU to improve efficiency of applications even further than using either device independently. This is made possible with the help NVIDIA’s parallel computing architecture, CUDA.

Computing is evolving from “central processing” on the CPU to “co-processing” on the CPU and GPU. To enable this new computing paradigm, NVIDIA invented the CUDA parallel computing architecture that is now shipping in GeForce, ION, Quadro, and Tesla GPUs, representing a significant installed base for application developers.

CUDA parallel computing architecture which is now being shipped with GeForce, ION,Quadro and Tesla GPUs ,make the new computing paradigm possible. The CUDA architecture’s applications can now be found in Medical Simulations like in analysis of CT and MRI scan images, Fluid Dynamics Simulation, Seismic Analysis and much more. The buzz is that in the near future itself almost every application which uses video rendering will be accelerated by CUDA.

With the recent launches of Microsoft Windows 7 and Apple Snow Leopard, GPU computing has got even more better with the GPU being evolved GPGPU which stands for General Purpose Graphical Processing Unit. It’s being said that BOINC distributed computing now uses CUDA technology for it’s better efficiency.

OpenCL (Open Computing Language) and Microsoft’s DirectCompute, a new GPU Computing API are just two tools which make the developers possible to harness the power of GPU computing. A Fortran language solution is also in development which can use the power GPU computing.

Download CUDA SDK, Developer’s Drivers, Code Samples and Toolkits for Windows, Linux and MacOS.

Getting Started with GTK and GLade for GUI programming

Considering you have read the previous article on GUI programming, this article will give an insight about GTK.

When starting learning Glade, it is essential to learn the basic concepts of GTK+. Unfortunately there is a misconception that it’s enough to learn Glade for learning GUI designing rather than learning GTK+. Glade is definitely an easier way to implement GTK but it is impossible to create interface for your application with only Glade knowledge.

Official GTK+ tutorial is the best place to learn the Basic things about GTK+. Though reading the entire documentation may seem to be a herculean task, it would good to cover important topics like packing of widgets. After having a basic knowledge about GTK+, next step is having a look at the official Glade3 manual. Version that is supplied with Glade3 is outdated,you can find a simpler and more updated one here.

Now if you think, you are well and comfortable with GTK+ Basics, you will definitely want to try a real world example. Many authors provide tutorials with real world examples. I managed to find out two such, one by Micah carrick and other by Tadej Borovšak. It would be better to follow Tadej’s Tutorial as the former one does not use Glade3-3.6.7 which is latest version. Anyway you can also give a look at the tutorial by Micah. Now when you start seriously with GTK programming, never forget to visit GTK Forum for getting your doubts cleared.

Now if you are ready to spend a few bucks try to get a copy of  Foundations Of GTK development.

Here are a few other resources which would with worth giving a look though I haven’t tried them personally.

Tutorial for How to set the colour of a widget in GTK+
Tutorial

Gtk+ 2.0 Tree View tutorial
Tutorial Pdf

Gtk+ 2.0 Text View tutorial
Tutorial Pdf

Gtk+ 2.0 GtkComboBox Widget Tutorial
Part1
Part 2
Part 3

GtkDialog tutorial
Part 1
Part 2

Wrapping and resizing GtkLabel dynamically
Tutorial

Using pop-up windows
Tutorial

Gtk memory management in a nutshell
Tutorial
Gtk Menu Tutorial
Tutorial

Arch Linux, First step in creating your own OS


It’s a dream of every noob that even before coding the first “Hello World” program, student want to know how to code an OS. Dreams are good but this is harder than one can image. If you are so strong with your dream, rather than thinking of coding your OS from scratch better you try building your own Arch. Arch Linux is a fully customizable, light weight operating system. The CD image can be downloaded. But this is actually a very slim installation and it’s not at all usable. You will have to install the window manager, desktop environment and everything else you see on a full fledged operating system.

One of the main disadvantage of Arch Linux is it’s cryptic text based installer. So better you watch some video and get familiarised with the instalation procedure.

Here are a few video tutorials for the installation and customization of Arch Linux.


Differences between UNIX and Linux

We are very familiar with Linux and its relation with UNIX. But most us of don’t actually know what are differences between the two.
Linux is called Unix-like and is not a true Unix operating system. Linux is a Unix clone written from scratch by Linus Torvalds.
Unix is popular operating system, developed by AT&T in 1969 whereas Linux was first released in 1991. Note that the time difference between the introduction of the two is a long 22 yrs. It is a myth that Linux is a GUI for the UNIX core. However, GNOME and KDE are GUIs for GNU/Linux. UNIX is the foundation for a number of operating systems, with Linux being the most popular one.

1.DIFFERENT AT THEIR KERNEL LEVELS
UNIX kernel is not freely available. So a geek, named Linus Torvalds, at the age of 21 sat down and wrote a kernel right from scratch borrowing ideas from UNIX. This later came to be known as Linux Kernel which he licensed under the GPL (GNU General Public License). Linux kernel is freely available. Hence Linux is called UNIX-like. He later said in an interview that “This is the best thing I have done in my life”.

2.HARDWARE
Linux runs on many hardware platforms, including Intel x86 computers. On the other hand, UNIX is proprietary-hardware-bonded and this hardware is much more expensive than a typical PC.
Unix requires a more powerful hardware configuration. It will work in large mainframe computers but not in an x86 based personal computer. Linux will work on both a large mainframe computer and an x86 based personal computer.
Putting it in simple words, UNIX will not run in the normal desktops or laptops that most of us use.

3.LICENSE
Unix is a proprietary software and you would need to buy it if you want to use it.
GNU/Linux is licensed under the GPL (GNU General Public License) which is an open source license. This means that the kernel-code is available for anyone to use or change as long as the changes are again licensed under GPL.

4.LINUX – JUST A KERNEL & UNIX – A COMPLETE OS

Linux is just a kernel. All Linux distributions (Fedora,Ubuntu,OpenSUSE etc.) includes GUI system,GNU utilities and various other applications (such as OpenOffice, Firefox) and of course the kernel. It is the distributions that make Linux a complete, usable Operating System.
However, UNIX operating systems are considered as complete operating systems.

5.EASE OF USE
Linux was built with the common user in mind, therefore most Linux distributions provide users with a very capable GUI ( that also eats up a portion of the computer’s processing power). Owing to Linux’s flexibility, the GUI can be removed.

6.SUPPORT FOR FILESYSTEMS
Most commercial version of UNIX supports two, or possibly three, different local filesystem types. Linux, however, supports almost all of the filesystems that are currently available on any operating system.

SIMILARITIES

  • Both Linux and UNIX use same shells (eg. bash and korn).
  • Both are capable of using a command line and a GUI.
  • Linux is used in many applications that need to maintain up-time because Linux, like UNIX, can run for months at a time without rebooting. While the typical method of solving Microsoft problems is to “reboot”, that particular requirement does not seem to be appropriate in a Linux/Unix environment.

Appendix

Having said so much about kernel, let us see briefly what actually a kernel is.
Kernel is a bridge between applications and the actual data processing done at the hardware level. Its responsibilities include managing the system’s resources. Hence it forms the most vital part of an operating system.
A kernel has facilities to receive requests (eg.commands from user) and grant access to resources such as allocating space for a new file or creating a network connection (which mainly deals with hardware). Kernels use a system call (or syscall) interface to handshake with applications [Applications ==> syscall(INTERFACE) ==> Kernel]. At the user level the device details are not visible. The kernel recognizes what a device is (eg. I/O devices,RAM etc.) and how to communicate with it at the lowest level.
Generally, the boot loader starts executing the kernel in supervisor mode. The kernel then initializes itself and starts the first process. After this, the kernel does not typically execute directly, but only in response to external events (e.g., via system calls used by applications to request services from the kernel).

But no matter  what  OS you end up  using  in creating your websites, most likely, they  will be compatible with most of the hosting methods available

Encode Your Videos Using Your GPU

Encoding videos has always been time consuming task. Time consumption has been so long because of the CPU’s inability to use its raw power for image processing, which has always been below par when compared to GPU. Traditionally the encoding was done by the CPU with playback assist from DirectX. But with the introduction of Nvidia’s CUDA and Ati’s Stream  parallel processing power video encoding wont be the lazy bit of task anymore. GPU video encoding not only reduces the load on the CPU but also reduces the time for encoding, since GPU is more powerful than the CPU for image processing. Reducing the CPU load makes it possible to all possible things along with the encoding processes which were unimaginable otherwise.

Even though transcoding Blu-ray movies isn’t exactly at the top of everyone’s list, but one can significantly reduce its size using H.264/x264. x264 is the new DivX and its usefulness extends far beyond just ripping HD movies. Its use isn’t going to increase unless encoding using the codec gets faster. Elemental Technologies has been working on a technology they called RapiHD, which is a GPU-accelerated H.264 video encoder. This is introduced in Nvidia’s CUDA.

Many Software’s are already in market capable of using this raw GPU power.

Some of them are

1)Badaboom: Badaboom is a blazingly fast media converter that formats video files for a variety of devices, including iPod, PSP, Blackberry, and YouTube, by using your system’s graphics processing unit (GPU). In a practice that used to take several hours, Badaboom converts feature-length movies in a matter of minutes while keeping the videos looking crisp and clear. By harnessing the power of NVIDIA CUDA-enabled GPUs, Badaboom offloads the CPU to allow users to continue browsing the Internet or checking email without decreased system performance, making transcoding high-quality video fast, easy, and painless. Have a look at it here.

2)ATI Avivo Video Converter: ATI Avivo Video Converter supports transcoding between H.264, VC-1, WMV9, WMV9 PMC, MPEG-2, MPEG-4, DivX video formats, as well as formats used in iPod and PSP. Earlier versions of this software uses only the CPU for transcoding, but have been locked for exclusive use with the ATI X1000 series of GPUs. Software modifications have made it possible to use version 1.12 of converter on a wider range of graphics adapters. The ATI Avivo Video Converter with GPU transcoding acceleration is now also available for use with HD 4800 and HD 4600 series graphics cards and is included with the Catalyst 8.12 drivers. Support for Vista x64 is available via a separate download starting with Catalyst 9.6. The new software is faster than Badaboom, an encoder that uses NVIDIA’s CUDA to accelerate encoding, but has a higher CPU utilization than Badaboom.Have a look at it here.

3)CyberLink MediaShow Espresso: MediaShow Espresso’s support for NVIDIA® CUDA™ and ATI ® Stream™ technology delivers huge gains when transcoding high-definition video content. Delivering up to 10X FASTER performance, MediaShow Espresso leverages the power of the GPU to the maximum and produces faster results. With faster speeds for HD video transcoding, you’ll spend less time converting home videos to H.264, and more time enjoying your movie masterpieces. MediaShow Espresso allows the output of H.264 content for playback on PSP, iPod, iPhone and PS3 and a choice of video profiles for high quality or small file sizes.Have a look at it here.

Technical Procedure To Set Up the Virtual Supercomputer

Hope you have read about the Overview on setting up Virtual Computer Using Boinc.

So now I will explain the technical details behind setting up of a super computer in the academic campus.

There are four main steps involved in this:

  • Setting up a BOINC server.
  • Creating grid of trusted nodes.
  • Setting up volunteer computing segment.
  • Integration and Finalization.

    1) Setting up BOINC server:

    We need a server dedicated to manage the virtual super computer. Intel dual Xeon or AMD Opteron will be a nice choice. Internet connection should be reliable and server must have a static IP. At least 2 GB of RAM, and 40 GB of free disk space, UPS power supply, RAID disk configuration, hot-swappable spares, temperature-controlled machine room, etc and do everything  to make it secure. A midrange server computer like dell poweredge will do. Put the entire system behind a firewall. Switch of ports like ftp and telnet that are not in use.

    Software requirements:

    • VMware Player
    • BOINC Server Virtual Machine

    VMware Player is a freeware virtualization software product from VMware, Inc. (vmware.com). The player can run virtual machines, ie, it will create a virtual environment in the system. For example you can virtually run windows in Linux or vice versa provided you have appropriate virtual machines. You can download the BOINC server virtual machine from boinc.berkely.edu. Download and run the BOINC VM(847MB) in VMware player in the server to get started.

    So now that we have a server with BOINC virtual machine running on it, its time to move on to the grid creation part.

    2) Creating grid of trusted nodes

    Although BOINC was originally designed for volunteer computing, it can be configured to work for grid computing.

    The steps in creating a BOINC-based grid are:

    • Modify preferences of workunit (computation to be performed) from th BOINC server to disable redundant processing. Since a grid will contain only trusted nodes, redundancy is not necessary.
    • Create an account with the general preferences enforced for the desktop grid. Clients can be remotely monitored and controlled if necessary.
    • Configure project to disable account creation. New account creation is for the volunteer computing segment and we do not require it here.
    • Create a custom installer that includes the desired configuration files.
    • Deploy the installer in each system in the lab and other trusted computers.

    So now we have setup each the node in grid segment. Note that our Economic virtual campus supercomputing facility combines the benefits of both Desktop grid computing and volunteer computing. We connect the trusted systems (like lab) to the desktop grid part and other non trusted (student laptops and misc PCs) system to the volunteer computing segment. Now we move to setup the volunteer computing segment.

    3) Creating the volunteer computing segment

    As BOINC is specially designed for volunteer computing, much change is not necessary to be made to BOINC client.

    Following similar procedure setup another custom installer with

    • Account creation enabled
    • Redundancy set up to a desired value
    • Other preference parameters setup to suit specific needs.
    • Ask students and faculty to install this custom client.

    4) Integration and Finalization

    Connect systems to form, desktop grid. Let lab systems be ON whenever computing power is desired. Distribute the volunteer client to all non- trusted units in VCSF ( Eg: Student laptops). Let them connect when they power on their systems. The whole network is connected by wired or Wi-Fi LAN.

    THE CLIENT SIDE

    The volunteers who are ready to contribute to the project should be aware of their CPU usage of BOINC.

    First pic is the screen shot of CPU usage of my system before installing BOINC. The average CPU usage of your computer will be less than 20% approximate in windows vista and less than 5% in windows XP. Since this processor idle time is used for processing supercomputing tasks this will rise up.

    Second shows the CPU usage graph after installing BOINC.  You can notice that the CPU usage rise to 100%. I was contributing my CPU to SETI@home project, the search for extra terrestrial intelligence.

    Get ready for Next-Gen Controller free gaming with Project Natal

    Xbox 360 . Controller Free Gaming . Project Natal

    Don’t hesitate to play just because you are not familiar with your controllers. Do you have the real life experience in doing the same? Then that would be more than enough when the new revolutionary gaming technology codenamed Project NATAL is released by Microsoft. So rather than just playing FIFA with your controllers you could just get on to the field and start dribbling with your ball.

    When Tom Cruise aka John Anderton in the Minority Report used a computer by waving his hands in the air, the world never expected the creator behind this film Steven Spielberg has really got to do something with the new Controller Free Gaming. Now when Project Natal has been announced by Microsoft, reports have been confirmed that Steven Spielberg is being a part of it.

    The Next-Gen Controller Gaming Experience to be offered by Microsoft for Xbox 360 video game  platform. With Project Natal *addons* to your Xbox 360, you can just Fire at your enemy or Kick the ball without the need to touch the controllers. So it has got voice recognition, 3D motion capture and face recognition made possible with no hand held conrollers or wires. To be released as Christmas present for the Gamers from Microsoft, it has been one of the most widely awaited products of Microsoft. Steven Spielberg did meant it when he was quoted saying “This is a pivotal moment that will carry with it a wave of change, the ripples of which will reach far beyond video games”.

    Ubisoft, Activision Blizzard, Bethesda Softworks, Disney Interactive, Electronic Arts are just a few among the Top Game Creators who account for more than 70 percent of third-party software sales has accorded their support for this revolutionary gaming Technology.

    For more updates regarding Project Natal check out http://www.projectnatalgamer.com/

    Install Softwares in Ubuntu 9.10 without internet connection

    Weeks ago when I was trying to setup Ubuntu in my pc for the first time, installing new software you need in your new pc would be a impossible process without internet or any Repository DVDs. I managed to get a few resources from net and here I will explain it as a step by step procedure. First you should have another computer which is well connected to the internet or you should have an APTonCD created by someone. Once you install the required softwares with the help of internet connected PC, you could backup all the packages into a CD for using next time.

    • Generating List of required files to be downloaded.

    After you have installed Ubuntu in your system, you will definetely need files to keep it updated. First of all you have to generate the list of files to be downloaded. You use the following command for generating the required files list.

    sudo apt-get update -qq –print-uris |cut -d’ -f 2 > filelist.txt

    This will generate a text file filelist.txt with all the essential update files to be downloaded.

    Now if you want any specific softwares to installed like APTonCD you would need more files to be downloaded. To get the additional files to be downloaded use the following command

    apt-get -qq –print-uris install ***packagename*** | cut -d’ -f2 >filelist2.txt

    Move both filelist.txt and filelist2.txt into a removable media like pen drive.

    • Downloading the required files to be downloaded.

    In the computer with internet connection create a folder called files in the desktop.
    Copy the two text files into that folder.
    Move to the folder with the following command in terminal

    cd Desktop/files
    wget -i filelist.txt -x
    wget -i filelist2.txt -x

    Now you will have all your required files downloaded to the new folder in separate directories. Also keep the two text files inside the pen drive itself.

    • Final installation process

    Now move the files to the computer in which the new software are to be installed. Now you will have to open the file manager with root privileges to copy files into the root directory.

    Press Alt+F2

    In the popup window type

    gksudo nautilus

    Copy the folder into the root directory. You can move into the root directory by clicking the tab with the symbol of a harddisk in the upper part.

    Now using the same file manager window move to ‘etc’ folder in root directory.
    Now locate the sources.list found in ‘apt’ directory in ‘etc’./etc/apt/sources.list

    Make a duplicate copy of that file and name it “sources.list.cpy” (right-click on the file, copy, and then paste). This is just a safety precaution in-case something goes wrong.

    Now right-click the file sources.list and select “Open gedit” or any other text editor

    Now add all the contents of filelist2.txt at the end of sources.list
    Now using the Replace option under the Search menu in gedit replace all http:/ on that file with file:/files

    Ubuntu

    Next everything will be over with

    sudo apt-get update

    Setting Up a Virtual Supercomputer Using BOINC

    Campuses have always been the places of innovation. The presence of of a super computing facility in a campus can greatly aid in R&D associated with the campus. The students will get an exposure to super computing arena and they can contribute to indigenous projects.

    But what if we can setup such a facility using the computers already present in the campus with no extra investment??? And what if the  implementation do not induce any bottleneck in the proper functioning of those computers. Well it was a project we where working on..for quiet a long time… So that we can setup a virtual supercomputing facility in a campus in a cost effective way..which uses the unused processing power of all computers present in the campus.

    We have derived the idea of implementation from grid and volunteer computing notions. For those not so tech-savvy people who may stumble across these lines, Grid computing is a variant of distributed computing. Lets say someone has a very complex, resource draining program and a dozen computers. He designs the program in a such a manner that he could divide it into pieces of program each running autonomously in one of the computers and giving the same solution as if we used a very powerful computer with the the high capabilities the program demanded. So GRID computing is called a distributed computing form with loosely coupled (the computers will not have to communicate with each other in solving a problem assigned to them), Heterogenous (computers can be of diffrent forms,using diffrent latforms etc..) and geographically dispersed.

    In volunteer computing any person with his mind bent a bit (towards the side of greater human cause) can donate a part of their pc’s computational power as a service. Many data intensive projects like the SETI@home runs on volunteer computing with people all around the world participating in it.

    So in a campus we have the computers in labs as well as those in the hands of students. Using an Open Source  middle ware called BOINC we can pool the unused processing power of all these computers. Here we will be using something like cycle stealing where idle processor cycles will be nicked from the participating nodes to setup the required virtual super computer.

    The concept in its essence is similar to a volunteer computing project but essentially the BOINC middle ware should be adapted to perform in a smaller arena with the maximum number of nodes being 200 or 300. For this we developed some changes to  the original BOINC as such like the development of a hierarchal tree searching technique, development of an IDS(Intrusion Detection System) etc..

    I have tried to outline the basic concepts of this implementation in a not-so-techie manner. In the next post i will outline the technical procedure to setup the same in a campus and more details on the changes we made to BOINC s/w..

    And for those techie guys who i am sure will be bit disappointed after skimming through this – BOINC stands for Berkeley Open Infrastructure For Network Computing. It is an architecture developed by David Anderson to support GRID based projects.It is available in open source..thanks to those great minds.. And it is this middle-ware which integrates various nodes present in the virtual supercomputing facility, enabling them to interact with each other and manage multiple work modules…

    Technical Procedure To Set Up the Virtual Supercomputer