Search This Blog

Captain Vyom. Yes!

A science fiction TV series from 1998. Too bad there's little sign of it on the net. Not only did they make an interesting story, their use of computer graphics was a big achievement for an Indian show of that time. Shaktimaan's effects weren't even close.

So, one day I was in the mood to do something new and I tried to recreate its theme song. The result wasn't that good.


To make the track, I recorded the tune played with guitar and a rhythm pattern played on my table (yes, that's right, a table). Then, I distorted them beyond recognition in the sweet GoldWave and added some sounds from here and there.
And for the background of the video, I searched for images on the web and was surprised to get a pretty good quality comic scan. Then, after some image editing, the track and the background image were put together in Adobe Flash and the video was made.

It did get quite some traffic on YouTube. So, I made a better version.


For this one, I used FL Studio.

For a old show like Captain Vyom, the videos have been getting a lot of views. On my old (deleted) channel, the first video got about 10K hits in 5 months. On my new channel too the videos have been getting a decent traffic. And that's only for fan made content.

What it means? It means that there are people who would like to watch this show again.
[to be updated]

Internet and LAN at IIT Kharagpur

   This article briefly explains the use of Internet and LAN at IIT Kharagpur for new users.

Connecting to the Internet

   You can access Internet either through LAN ports using wire or using Wireless LAN (Wi-Fi). In both cases, you need to set the proxy servers.
  • Accessing through a LAN port

   LAN ports have been provided for students in their rooms. To use one, you need a LAN cable and a computer. While buying your LAN cable, be sure it supports high speeds. As of now 100 Mbit/s communication is supported. To get a quick look at the cable specifications, read this: http://www.home-network-help.com/transmission-speed.html
   To access the LAN, simply connect the LAN port to the computer using the cable and the computer will automatically connect to the LAN. But, you won't be able to connect to the Internet just yet. For that, you need to set the proxy servers.
  • Setting up the proxy servers

   Here, the Internet is provided through proxy servers. If you have only used broadband or dial-up Internet you might not have heard of proxies. Simply stated, they act as middlemen in your communications with any device on the Internet. Without, setting proxy servers, you can only access internal sites of IIT Kharagpur like "http://iitkgp.ac.in".
   For Internet Explorer and Google Chrome,
Go to Control Panel -> Open "Internet Options" -> Select "Connections" tab
-> Click the "LAN Settings" button
Now, enter a proxy server address. 144.16.192.218:8080, 144.16.192.245:8080 and 10.3.100.212:8080 are some of the reliable ones as of now.


Be sure to uncheck all options in "Automatic configuration" group. So, this sets up the HTTP/HTTPS proxy servers, which means you can connect to any website now. Here is the official list of all HTTP/HTTPS servers: http://www.cic.iitkgp.ernet.in/proxy/network.php. Proxy settings for other browsers can be changed through their own settings dialog.

I've found that some FTP sites open with the same proxy as for HTTP. So, you may be able to access FTP sites by setting the FTP proxy same as the HTTP proxy.

Mind you, proxy servers also use Internet security software to block connections to dangerous or "objectionable" sites.

e.g. anonymouse.org is one of the many sites blocked by the security software

The restrictive proxy system, apart from blocking certain sites also makes it difficult to use protocols like BitTorrent on the Internet. Normally you won't need the access. But if you are desperate, talk with the experienced people to know the workaround. The philosophy of "just because there's a goalie doesn't mean you can't score" applies here as well.
  • Accessing using Wi-Fi

   Wi-Fi is available in most of the academic area and some of the residential areas. It functions using wireless routers which you may spot there fitted on walls. To use, you need a device which can accept Wi-Fi connections. Such devices include smartphones and for sure, laptops.

Of course, you still need to connect through proxies. For phones, you would have to configure the access points and set the proxy servers. For laptops, if you have configured for wired LAN, no change is required. To connect, simply look for the available networks and connect (method varies according to the operating system).

Tip

If you have a computer which has Wi-Fi support, you may be able to use it as a Wi-Fi hotspot. i.e. Your laptop, when connected to the net, can act as an Wi-Fi access point for internet for other devices. Connectify is a software which provides this functionality. Works smooth.

Now that you have the essential knowledge of connecting to the Internet, we can talk about file-sharing.

LAN basics and file sharing with the IIT Kharagpur DC Network

   Now, this is another thing which many of you might be new to. This might very well be the first time, you would use a Local Area Network nay, a Metropolitan Area Network. The Computer and Informatics Center (CIC) is where the center of the network lies.

   So, apart from accessing Internet, as described above, you can do a lot of fun things on LAN including multi-player gaming, file sharing and streaming videos.

   File sharing is quite a big part of not only the network traffic, but also the general life here. Anyway, I won't romanticize the thing, and just move ahead to tell you about using it.

   You must have downloaded files from the Internet. But the speed with which you can download from direct LAN is way higher. So, here an infrastructure based on Direct Connect technology is present, which enables a connected user to download files from other users as well as share their own files. This network is administrated by students themselves, who happen to be very enthusiastic about the network.

   SO! First, you need to install DC++ or any of its alternates. You need to get the hub address next. Go to this page to find out the current one: https://www.facebook.com/iitkgpdc.
   Then, open DC++ and add that address to the favorite hub list to save it. Before connecting, you need to go to settings, provide a nick and choose folders from your computer to share. If you have the correct share size you'll be able to connect and download straight away. If not, either the hub will tell you the needed size or you need to find it out from the above link.
   Here's a YouTube channel about IITKGP's DC++ setttings: http://www.youtube.com/user/surendraverma2501

   If you don't have required amount of data to share and are having trouble finding data to share, you can:
  • Duplicate a few large files
   Of course such techniques aren't exactly favoured by the admins, and in extreme cases might cause your getting a ban. And for the record, I don't endorse these methods either. So, if you HAVE TO do any of the two, make sure that after you have connected to the hub, download some proper files, share them and then delete those duplicates or fake files.
   Might be someday, the admins will provide some facility for the new users to download the required share, without weakening the sharing rules. One method would be to have a secondary hub which allows anyone to connect, but contains only a limited amount of data. This way admins can increase the mirroring of files of their choice i.e. admins can put files which aren't shared much on the secondary hub, and obviously those files are going to be downloaded and shared by the new users for sure. Just sayin'. :)

   Apart from all that, keep an eye on the notices appearing on the DC hub.

   And for the interested people, a DC hub can be created on any computer. Just as DC++ is a client to the network, there are servers for the DC networks, which one can install and create their own hub. PtokaX server was being used the last time I checked. YnHub server has been used in the past.

Extra Stuff

  • For the management of institute activities, the ERP system is used. The site (erp.iitkgp.ernet.in) is configured to open only with Chrome and Firefox. However, if you use Opera (like I do and find very good), you can trick the site to allow you as a Firefox client. For that you need to go the the site, right click or press F12 to open up the Quick Preferences menu and open the Site Preferences dialog. In the Network tab of the dialog, change the Browser Identification option to "Identify as Firefox". Now you can access the site without leaving Opera.

Starting Windows GUI Programming in C

(This article is written keeping in mind the beginner learner and friends I have come across who missed concepts which seem obvious to a luckier learner and the questions I wondered about while learning this stuff. So if you are among those who got it fast or if you don't want to question yourself too much, you might like to graze through the first few paragraphs. And for others, this article will be quite helpful in its entirety. But, having the zeal of figuring stuff out is more useful.)
View Sections
Sections

Background
   Usually learning computer programming starts with learning languages and writing console (text-mode or Command Line Interface) programs. Very often while learning, we don't get any hint of how much one can do with a text editor and compiler. Also, we usually aren't exposed to the power of using external libraries. Making GUI (Graphical User Interface) programs utilizes all these aspects of programming and for sure makes one feel of having put coding to some really cool use. (Though that doesn't mean console applications don't do cool stuff.)

Programming tools
   First, I would like you to know about what an IDE is and about command line tools. An IDE (Integrated Development Environment) is a GUI program which has all options related to developing a program. You can write code inside it, compile it using a menu option and run it - all inside the same place. Another great plus with some of them is code completion - helping you find correct "words" for your code. You just might be using one and not know the term for it. "IDE"! Examples of IDEs include Microsoft Visual Studio, C-Free, Code::Blocks, Eclipse, Turbo C/C++ (ancient, not recommended for serious use). An IDE makes developing programs and managing code easier.
   However, you can also do the same thing using an individual compiler and text editor. Notepad++ is a good text editor for Windows which provides many more options than the simple Notepad. For compiling you can use MinGW/gcc (gcc was originally for Unix, MinGW is its "adaptation" for Windows). So, open your code in a text editor. Then, open command prompt and go the folder where your code file is placed. And write the command for compilation. e.g. "C:\code>gcc first.c" is the command to compile first.c of C:\code folder (active folder). This method is again used below in more detail.

Windows API
   While typically learning C programming starts with console programs which use the Standard Library for i/o (in form of printf(), scanf() etc.), GUI programs use Windows API (Application Programming Interface). The API, in simple terms, is a library which provides functions and definitions which can be used in your programs the same way as printf() or cout. The code of the API remains largely hidden from us and is embedded in our program (executable .exe) while compilation; i.e. the compiling process performs the task of linking the API library files along with compiling our code (exactly like your introductory console programs). While learning more about programming, you will find about manually linking files. This link provides quite a detailed view of the whole process.

   To have an interesting start, just copy-paste some basic code, compile it and watch it work. You might then learn about what the code means. So, here you go.

First: Using command line tools
Compiling a Windows GUI executable on command prompt with gcc (MinGW):
  • The following file contains a basic Windows GUI program code, which uses the core Windows API functions: sites.google.com/site/vyoamx/win32.c.  Download and save it to your computer.
  • Assuming you have gcc (MinGW) installed and the gcc folder is in your PATH, open command prompt and go to the folder where the code file is saved.
  • gcc -o <name of your choice for the .exe> <name of the code file (with extension)> -mwindows
And boom bam boom, you have a Windows executable made in C without use of any IDE. Mind the "-mwindows" flag. My win32.c code allows for simple freehand drawing.

Second: Using an IDE
I find Code::Blocks and Microsoft Visual C++ Express good for C/C++. Visual C++ however, uses some Microsoft-specific code, which might be a small issue at start. So, we'll go with Code::Blocks here.
   Download the Code::Blocks installation binary (means the executable .exe), install and you are ready to go. Create a new project (Win32 GUI project -> Frame-based). In the "Sources" group of the project select main.cpp and replace its contents with the code of the file used above. Then F9 for Build and Run. Note that, by default C++ is the language. To configure, read this page.

Code explanation
   So, now you have made your own meaningful Windows GUI program. In the code the most important thing to note is the WinMain() function, as opposed the main() function. Next you have the user-defined WindowProcedur(), where events such as mouse click, program "refresh" etc, are reported and the corresponding actions are defined. This function is where most of the programming is done.

Learning material
   Now, to understand about the code you have to get some nice material on Windows programming. Indian author Yashwant Kanetkar's Let Us C is where my code is from and is explained properly. Nice book to say the least. For more specific material, the following are the two recommendations I have come across. I'll update them when I find better ones.

A few thoughts
   Now, I have a bit rambling to do about my learning to code. You may skip the next paragraph if you aren't interested in non-technical discussion.
   So, programming. In all the courses in my school and college on programming, they taught all about the language without giving any hint about its, shall we say, practical uses. I mean, it wouldn't hurt to include concepts of using external libraries and little bit of GUI in these courses. They were confined to console programs and the standard libraries. So, I have started learning about them now by myself. That is, as of now I am a beginner in the subject. Anyway, better late than never. Talking of academic courses, the good thing about them is that they have an established syllabus, which makes me feel I am learning a topic properly. I still feel a bit unsure when I learn stuff by myself about whether I am learning the stuff the right way or I am just getting it done some way. But, that's just me. And I am a bit insane. What do you think about learning that way? And how did you reach upto this topic? Do comment. "My journey in learning Windows programming". People should write that. Learning of other people's experience is very valuable in learning at large. I have to add, good books help more than Google. For the record, I started noob-level Windows programming with the book "Let Us C" by Yashwant Kanetkar.

Buying Musical Instruments in Kharagpur - Paul's Musical Mart

I wanted to buy an harmonica. So, where in Kharagpur could I get one? I asked a senior and he suggested this shop called 'Paul's Musical Mart'.

Located in Gole Bazar - a big marketplace of Kharagpur near the railway station - you can buy a variety of musical instruments here. Me and my friend got to the place, had a bit trouble finding the shop, but eventually got there asking around.

The shop has a variety of instruments including acoustic and electric guitars, harmonicas and violins.