Are rational numbers countable?

The original article was penned for a the magazine, Teacher, published by the Karnataka chapter of Bharat Gyan Vigyan Samiti. The intended audiences are a combination of high school math teachers and students of the age group 13-15, hence the lack of formal language and rigour. Suggestions and comments are welcome

What is a rational number? A number which can be expressed in the form \frac{p}{q} (p and q being integers) is called a rational number. These numbers follow some interesting properties.

Firstly, between any two rational numbers, there is another rational number.

Try this as an exercise - choose two rational numbers which you feel are close by and try to list a few numbers in between them. You will see that you can grow your list forever. Say you pick \frac{2}{5} and \frac{3}{5} . Lets try to follow a pattern when listing numbers in between them. We know for certain that the average of two numbers in between them. So first, I pick their average \frac{1}{2}. Now I take the average of \frac{2}{5} and \frac{1}{2} - \frac{9}{20}. Now I take the average of \frac{2}{5} and \frac{9}{20} - \frac{13}{20}. And so on. Following this technique, I will be able to keep on listing number, all which are between \frac{2}{5} and \frac{3}{5}. We have just demonstrated that there are infinitely many numbers in between any two rational numbers.

Mathematicians call the set of all rational numbers as a densely ordered set because of this beautiful property.

Now let us introduce real numbers. Continue reading Are rational numbers countable?

Script to Download Fonts in Bulk From dafont.com

Being into design related stuff since joining college, I've found it a necessity to maintain a decent font collection. In this post, I will share and explain the script which helped me to create my collection.

What my script does is download fonts directly off a top 20 list of fonts from dafont.com, for each sub-category available there.

The website has a very organized way to let users download fonts. First, there are categories like Fancy, Foreign Look, Techno, Gothic etc. Under each of these categories, there are sub-categories. Each subcategory has an ID which will help our purpose.

You can just change the ID range in the script to download fonts of different category.

The Script

#! /usr/bin/python

# Name: dafont.com Bulk Download Tool
# Version: 0.3
# Summary: A tool for downloading top 20 fonts of each sub-category of dafont.com
# License: BSD
# Author: Pranav Ashok
# Author-email: iam@pranavashok.com
# Author-homepage: http://pranavashok.com/blog
# Support: http://pranavashok.com/blog/2010/05/script-to-download-fonts-in-bulk-from-dafont-com
# Support: Twitter (@pranavashok)

from BeautifulSoup import BeautifulSoup
import re
import os
import commands
import string

for cat in range(101, 119): #ID Range 101-119
	url = 'http://www.dafont.com/theme.php?cat=%d&nb_ppp=20' % cat
	contents = commands.getoutput("curl -s '"+url+"'")

	w = open('downloader.sh', 'a')
	
	soup = BeautifulSoup(contents)
	directory = soup.find('title').contents
	wholeTag = soup.findAll('a', {"class" : "dl"})
	directory[0] = string.rstrip(directory[0], " | dafont.com")
	fontCat, useless, subCat = directory[0].partition(" > ")
	
	w.write('mkdir \"%s\"\n' % fontCat)
	w.write('cd \"%s\"\n' % fontCat)

	w.write('mkdir \"%s\"\n' % subCat)
	w.write('cd \"%s\"\n' % subCat)
	for link in wholeTag:
		name = os.path.basename(link['href'])
		fileName, fileExt = os.path.splitext(name)
		fileName = string.lstrip(fileName, "?f=")
		w.write('wget -c -O \"%s.zip\" \"%s\" \n' % (fileName, link['href']))
	w.write('cd ..\n')
	w.write('cd ..\n')
	w.close()

Continue reading Script to Download Fonts in Bulk From dafont.com

Script to Download TED Videos in Bulk

I recently became addicted to TED Videos. This inspired me to create a simple python script which helps one download TED Talks in bulk. Here is the main part of the script. Scroll down for download link and usage instructions.

#! /usr/bin/python

# Name: TED Video Downloader
# Version: 0.4
# Summary: A bulk TED Talks download tool
# License: BSD
# Author: Pranav Ashok
# Author-email: iam@pranavashok.com
# Author-homepage: http://pranavashok.com/blog
# Support: http://pranavashok.com/blog/2009/12/script-to-download-ted-videos-in-bulk/
# Support: Twitter (@pranavashok)

from BeautifulSoup import BeautifulSoup
from urllib2 import urlopen
import re
import os
import sys

f = open(sys.argv[1], 'r')
for link in f:
	web = urlopen(link)
	soup = BeautifulSoup(web.read())
	wholeTag = soup.find(href=re.compile("download.ted.com/talks/.+"))

	name = os.path.basename(link)
	fileName, fileExt = os.path.splitext(name)
	outputFile = fileName+".mp4"

	# wholeTag['href'] gives the value of the href attribute
	downloadUrl = wholeTag['href']

	w = open('downloader.sh', 'a')
	w.write('wget -c -O \"%s\" \"%s\"\n' % (outputFile, downloadUrl))
	w.close()
exit()

Continue reading Script to Download TED Videos in Bulk

Start Using Linux - Basic Terminal Commands

This is a compilation of some terminal commands I've found useful.

Before starting, I'd like to emphasize on a few things:
- You might want to understand the filesystem hierarchy in linux before you start.
- When you start terminal, your default working directory is /home/user-name
- If you want to get more info on any command, just type '
command-name --help' without the quotes in terminal.
- In this post, when I say 'type' something in terminal, it means 'execute it' by typing it and pressing enter.
- Whenever you want to end a looping command, for example, ping in terminal - press Ctrl + C.

Continue reading Start Using Linux - Basic Terminal Commands

Creating a WordPress Sandbox - Installing WordPress Locally

Here's a video I created an hour ago. Basically, it guides you in creating a wordpress sandbox to test your themes/plugins and other features of wordpress.

You'll need to download:
1. WAMPServer 2 from http://www.wampserver.com/dl.php) and;
2. WordPress from http://wordpress.org/latest.zip)

I'm planning to create more tutorial videos. Please give your suggestions, if any.

Batch Script to Generate File/Folder Listing

I was chatting with a friend who had a huge music collection and I wanted to know what all he had. This provoked me to make a batch script which would do the job. I did some research online and found out some basics of batch scripts. This is the final thing which I ended up with.

@echo Directory listing will be created at c:\dirList.txt
@dir %1 /S > c:\dirList.txt
@echo Opening c:\dirList.txt in Notepad
@notepad c:\dirList.txt
@pause

I think it’s self explanatory. But still, I’ll go ahead and explain.

1. Prints “Directory listing will be created at c:\dirList.txt”

2. dir is a command which will print the list of directories and files. %1 is a variable which will contain the location from where you run this script. /s is a switch for Continue reading Batch Script to Generate File/Folder Listing