Archive for the ‘tutorial’ Category

Hello Script for Ruby

Thursday, May 1st, 2008

Hello Script is a file that contains the most commonly used elements of a programming language so that it can be used as a cheatsheet when working with that language. This Hello Script for Ruby is the sixth post in this series.

I have some experience with Ruby. I will not call myself an expert - but I am comfortable with Ruby. I like ruby. I even have written a few applications in it.

Hello Code


#!/usr/bin/ruby

print "Hello World\n"

name = "Binny"
year = 2008
print "Hello, " + name + " - welcome to " + year.to_s + "\n"

if (year > 2008) then
	print "Welcome to the future - yes, we have flying cars!"
elsif (year < 2008) then
	print "The past - please don't change anything. Don't step on any butterflies. And for the sake of all that's good and holy, stay away from your parents!"
else
	print "Anything wrong with your time machine? You have not gone anywhere, kiddo."
end
print "\n\n"

# For loop like structure
0.upto(3) { |i|
	print i.to_s + ") Hi there!\n"
}
print "\n"

# Numerical array
rules = ['Do no harm', 'Obey', 'Continue Living']
i = 0
while i<rules.length do
	print “Rule ” + (i+1).to_s + “: ” + rules[i] + “\n”
	i = i+1
end
print “\n”

# Associated arrays
associated = {
	‘hello’	=>	‘world’,
	‘foo’	=>	‘bar’,
	‘lorem’	=>	‘ipsum’
}
associated.each { |key,value|
	print key + ” : ” + value + “\n”
}
print “\n”

# Using Join and Split
csv_values = “hello,world,how,are,you\n”.split(”,”)
print csv_values.join(”:”)

# Function, argument, return, call
def hello(name)
	return “Hello ” + name
end
hello_string = hello(”Binny”)
print “Function call returned ‘” + hello_string + “‘\n\n”

# One for the OOP fanboys - Class, members, object and stuff.
class Movie
	public
	@name = ”
	@rating = 0

	def initialize(name)
		@name = name
		self.rateMovie()
	end

	def rateMovie()
		@rating = (@name.length % 10) + 1 #IMDBs rating algorithm. True story!
	end

	def printMovieDetails()
		print “Movie : ” + @name + “\n”
		print “Rating : ” + ‘*’ * @rating + “(” + @rating.to_s + “)\n\n”
	end
end
# Create the object
ncfom = Movie.new(”New Country for Old Men”) #It’s a sequel!
ncfom.printMovieDetails()

# File IO
# File reading, easy method…
file_in = File.new(’Hello.rb’, ‘r’)
contents = file_in.read
file_in.close
print “Hello has ” + contents.length.to_s + ” chars\n”

# Writing to a file
file_out = File.new(’/tmp/hello.txt’, ‘w’)
file_out.print “Hello World from Ruby.”
file_out.close

# Command Executing
print `ls` #Execute the command ‘ls’ and print its output
print “\n”

# Regular Expressions
string = “Hello World”
print “Yup - its evil\n” if(/^Hell/.match(string))
print string.gsub(/l([^l])/, ‘\1′) #Remove an ‘l’ from both words. Should print ‘Helo Word’ - The second arg must be in single quotes

print “\n”

# Some special/only-in-ruby stuff…
# Using a library
require “fileutils”

#Using yield/code blocks…
def doXTimes(i)
	0.upto(i) {|count|
		yield count+1
	}
end
doXTimes(5) {|count|
	print count.to_s + “th Time\n”
}

Hello Script for Tcl

Thursday, April 24th, 2008

Tcl Logo

Tcl, or Tool Command Language, will not be found in the ‘most popular languages’ hall of fame. That is partly because of its ‘wierd’ syntax. But those who know Tcl will tell you that Tcl is a pleasure to work with. I have a special interest in Tcl - its the language that introduced me to GUI programming(Tcl/Tk). Now, when ever I see a GUI toolkit, I compare it to Tcl.

I have a few years experience in Tcl - I have written a very popular Tcl/Tk Tutorial and also a few small applications in Tcl. I am not using it a lot now a days because Tk apps look really bad in Linux. This problem is not present in Windows.

Hello Code


#!/usr/bin/tclsh

# Printing(IO)
puts "Hello World!\n" 

# Variables, concatenation
set name 'Binny'
set year 2008
puts [concat "Hello, "  $name  " - welcome to "  $year]

#If,else conditions
if { $year > 2008 } {
	 puts “Welcome to the future - yes, we have flying cars!” 

} elseif { $year < 2008 }  {
	 puts “The past - please don’t change anything. Don’t step on any butterflies. And for the sake of all that’s good and holy, stay away from your parents!” 

} else {
	 puts “Anything wrong with your time machine? You have not gone anywhere, kiddo.”
}

# For loop
for { set i 0 } { $i<3 } { incr i  }  {
	 puts “$i) Hi there!”
}

#Numerical Array, foreach
set rules [list "Do no harm" "Obey" "Continue Living"]

set i 0
while { $i < [llength $rules] } {
	puts [concat "Rule " [expr $i+1] ” : ”  [lindex $rules $i]]
	incr i
}

# Associated array, while
array set associated {
	hello	“world”
	foo		“bar”
	lorem	“ipsum”
}

foreach key [array names associated] {
	 puts [concat $key " : " $associated($key)]
}

# Using Join and Split
set csv_values [split "hello,world,how,are,you\n" ","]
puts [join $csv_values ":"]

# Function, argument, return, call
proc hello { person_name } {
	return [concat "Hello, " $person_name]
}
puts [hello "Binny"]

# File IO
# File reading, easy method…
set IN [open "Hello.tcl" r]
set contents [read $IN]
close $IN
puts [concat "Hello has " [string length $contents] ” chars”]

# Writing to a file
set OUT [open "/tmp/hello.txt" w]
puts $OUT “Hello World”
close $OUT

# Regular Expressions
set str “Hello World”
if { [regexp {^Hell} $str] } {
	puts “Yup, its evil”
}

puts [regsub -all {l([^l])} $str {\1}]

# Special Tcl Syntax
# Math ops
set answer [expr {3 + 2}]

# Comments
puts $answer ;# Comments in the same line as code must use ;# instead of just #

Tcl/Tk Links

Perl Hello Script

Thursday, April 10th, 2008

Perl Logo

This is the next installment of the Hello Script series - Hello Script for Perl. ‘Hello Script’ is a file that contains the most commonly used elements of a programming language so that it can be used as a cheat sheet when working with that language.

Introduction to Perl

For those of who are unfamiliar with perl, here is the Wikipedia definition…

Perl is a dynamic programming language created by Larry Wall and first released in 1987. Perl borrows features from a variety of other languages including C, shell scripting (sh), AWK, sed and Lisp. Perl was widely adopted for its strengths in text processing and lack of the arbitrary limitations of many scripting languages at the time.

If you are interested in learning perl, I have written a Perl Tutorial. And here are some more links if you are interested

Hello Script for Perl


#!/usr/bin/perl
use strict;
use warnings;

# Printing(IO)
print "Hello World!\n";

# Variables, concatenation
my $name = 'Binny';
my $year = 2008;
print "Hello, " . $name . " - welcome to " . $year . "\n";

#If,else conditions
if ($year > 2008) {
	print "Welcome to the future - yes, we have flying cars!";
}
elsif($year < 2008) {
	print "The past - please don't change anything. Don't step on any butterflies. And for the sake of all that's good and holy, stay away from your parents!";
}
else {
	print "Anything wrong with your time machine? You have not gone anywhere, kiddo.";
}
print "\n";

# For loop
for(my $i=0; $i<3; $i++) {
	print "$i) Hi there!\n";
}

#Numerical Array, foreach
my @rules = (
	'Do no harm',
	'Obey',
	'Continue Living'
);
my $i = 1;
foreach my $rule (@rules) {
	print "Rule " . $i . " : " . $rule . "\n";
	$i++;
}

# Associated array, while
my %associated = (
	'hello'	=>	'world',
	'foo'	=>	'bar',
	'lorem'	=>	'ipsum'
);
while(my ($key, $value) = each(%associated)) {
	print "$key: $value\n";
}

# Using Join and Split
my @csv_values = split(',', "hello,world,how,are,you\n");
print join(":", @csv_values);

# Function, argument, return, call
sub hello {
	$name = shift; #First argument.
	return "Hello " . $name;
}
print hello("Binny");

# File IO
# File reading, easy method...
open(IN,'Hello.pl') or die("Cannot open file : $!");
my @lines = <IN>;
close(IN);
my $contents = join('',@lines);
print "Hello has " . length($contents) . " chars\n";
# Writing to a file
open(OUT, '>/tmp/hello.txt');
print OUT "Hello World";
close(OUT);

# Command Executing
print `ls`; #Execute the command 'ls' and print its output
print "\n";

# Regular Expressions
my $string = "Hello World";
print "Yup - its evil\n" if($string =~ /^Hell/);
$string =~ s/l([^l])/$1/g; #Remove an ‘l’ from both words. Should print ‘Helo Word’
print $string;

print “\n\n”;

Python Hello Script

Wednesday, March 19th, 2008

Python Logo

As promised in the last post(Hello Script for PHP), this is my Hello Script for Python. Hello Script‘ is a file that contains the most commonly used elements of a programming language so that it can be used as a cheat sheet when working with that language.

A word of caution here - the blocks in Python is created using whitespace - so the indentation is important. So when you see an indentation in the below code, think of it as one tab(instead of four spaces or something).

I want to insert a disclaimer here - I am not that good with python. We never really clicked. I have done very limited work in Python. So if you notice any problems with the below script, let me know and I’ll correct it.


#!/usr/bin/python

print "Hello World\n"

name = "Binny"
year = 2008
print "Hello, " + name + " - welcome to " + str(year) + "\n"

# If,else conditions
if (year > 2008):
	print "Welcome to the future - yes, we have flying cars!\n"
elif(year < 2008):
	print "The past - please don't change anything. Don't step on any butterflies. And for the sake of all thats good and holy, stay away from your parents!\n"
else:
	print "Anything wrong with your time machine? You have not gone anywhere, kiddo.\n"

# For loop
for i in range(0,3):
	print str(i) + ") Hi there!"

print ""

#Numerical Array, While
rules = ['Do no harm','Obey','Continue Living']
i = 0
while(i<len(rules)):
	print “Rule ” + str(i+1) + ” : ” + rules[i]
	i = i + 1
print “”

# Associated array, foreach
associated = {
	‘hello’	:	‘world’,
	‘foo’	:	‘bar’,
	‘lorem’	:	‘ipsum’
}
for key in associated:
	print key + ” : ” + associated[key]
print “”

import string
csv_values = string.split(”hello,world,how,are,you\n”, “,”)
print string.join(csv_values, “:”)

# Function, argument, return, call
def hello(name):
	return “Hello ” + name + “\n”

hello_string = hello(”Binny”)
print hello_string

# One for the OOP fanboys - Class, members, object and stuff.
class Movie:
	name = ”
	rating = 0

	def __init__(self, name):
		self.name = name
		self.rateMovie()

	def rateMovie(self):
		self.rating = (len(self.name) % 10) + 1 #IMDBs rating algorithm. True story!

	def printMovieDetails(self):
		print “Movie : “,  self.name
		print “Rating : “, ‘*’ * self.rating , “(”, self.rating ,”)\n”

#Create the object
ncfom = Movie(”New Country for Old Men”) #It’s a sequel!
ncfom.printMovieDetails()

# File IO
# File reading, easy method…
file_in  = open(’Hello.py’, ‘r’)
contents = file_in.read()
print “Current file has ” + str(len(contents)) + ” chars\n”
file_in.close()
# Writing to a file
file_out = open(’/tmp/hello.txt’, ‘w’)
file_out.write(”Hello World”)
file_out.close()

# Command Executing
import commands
import os
print “Result of ‘ls’ command is ” + commands.getoutput(’ls’) #Execute the command ‘ls’ and print its output
print

# Regular Expressions
import re
hell_check = re.compile(”^Hell”)
string = “Hello World”
if hell_check.match(string): print “Yup - its evil (Compiled)”
if re.match(’^Hell’, string): print “Yup - its evil (Not Compiled)”
print re.sub(r’l([^l])’, r’\1′, string)

As I said last time, save this to a file and keep it around for future reference.

Next hello script - Perl, Ruby or Tcl/Tk? Which one do you want - leave it in the comments.

Subscribe to Feed