Archive

Posts Tagged ‘Programming’

Anagram Solver in C

September 18, 2011 Leave a comment

Hi, Here’s a small anagram solver written in C. It works based on generating permutations of given string and comparing them using a dictionary. For fast search in dictionary, the program first creates an index of the starting location of each alphabet. It takes a few minutes to process long words.

Here’s the source code. Suggestions are always welcome, Greetings ๐Ÿ™‚

Update: There’s a little problem in using the term ‘anagram solver’ here. An anagram solver finds words from another valid word – But this program finds words from the characters of given valid/invalid word.ย  Thanks to technikhil for the info ๐Ÿ™‚

It was really a wonderful experience at MES :)

Yesterday, I went to MES College of Engineering to deliver a small talk on programming and free software, it was entirely a new experience for me. A bigger crowd than expected was present. It went fine ๐Ÿ™‚ Thanks to Raghesh sir, Raju sir, S@IT and to friends there ๐Ÿ™‚

I’m happy to share my little slides. It was created according to numerous suggestions by Raghesh sir. For fun, the presentation was started with a SMS trigger from audience ๐Ÿ™‚ The code for that is like ‘get-thing-done’ and doesn’t have the quality to upload. It’s developed using python with gammu module. Please feel free to tell me if you want to have a look at the code.

Attribution: ‘Input -> Fun -> Output’ is an idea got from Niyam Bhushan during his talk at NIT Calicut on FOSS Meet day.

Thank you ๐Ÿ™‚

A cryptographic tool that converts weak password into a strong password before encrypting

Here’s a small encryption/decryption tool that works based on AES algorithm. No matter how weak your password is, the program converts it to aย  32 digits hexadecimal numberย  before encrypting. This is achieved by finding the MD5 hash of the password using hashlib python module. This hash is used to encrypt the file.

The source file is here

The idea in my mind while writing this program was this:

Suppose a cracker gets an encrypted file and he figures out it’s encrypted using AES somehow. Then he starts brute force attack on it to find the key and extract information. If the password used to encrypt that file is weak and if it’s based on a dictionary word, the cracker can easily figure out the password. Hence the passwordย  given by the user must be made stronger by the encrypting program. And the best way to make a password strong is by usingย  digest algorithms since it’s unique to a string.

What do you think? Am I wrong? Thank you ๐Ÿ™‚

 

A small and simple note taking app

Wrote a small python script that can be used with your favorite text editor as a simple note taking application. Hope you like it, suggestions are always welcome ๐Ÿ™‚

Here’s the code!

Thank you ๐Ÿ™‚

C program to extract email IDs from a file

Here’s a small program to extract email IDs from an input file. It could have done using regex (in Python orย  in any other high level language), but doing it in C is more fun, eh? ๐Ÿ™‚

The code is here!

Usage: parseEmail [FILE]

Suggestions and improvements are always welcome ๐Ÿ™‚ Thank you!

A sudoku checking program in C :)

It just started when my younger bro, Shafeeq who reads hacker news everyday, found a little interesting blog post. It was about the authors experience in applying for an internship at Google. The candidate was asked to write a program to check a completed sudoku during the telephone interviewย  for errors, in his favorite programming language. I asked bro, “Why don’t you give it a try?!”. He’s now in 11th standard and started coding in C++ which he learns in Computer Science subject.ย  He came up with the code in one day, and then it was my turn to do that ๐Ÿ™‚ Here’s the way I solved the problem and it’s in pure C.

You can find the code here, in github. The input is given as a plain text file that contains 9×9 numbers separated by space. A sample input is given below:

7 2 3 8 4 6 1 5 9
6 1 5 3 9 2 4 7 8
8 4 9 7 1 5 6 3 2
3 7 8 6 5 4 9 2 1
1 9 4 2 8 7 3 6 5
2 5 6 9 3 1 8 4 7
5 6 1 4 7 9 2 8 3
4 8 7 1 2 3 5 9 6
9 3 2 5 6 8 7 1 4

And to check for errors, please call the program with the file as argument, like this –

$checksudoku <data_file>

Hope you enjoyed it, Please go through the code and feel free to post your valuable comments and suggestions here. Thank you ๐Ÿ™‚

The little twitter client I use :)

Here’s a small python script to update and read tweets from different timelines. You can use it with head/tail commands to customize the output. Actually, I wrote this script just for personal use and now I would like to share it with you ๐Ÿ™‚ Thanks to tweepy python module, make sure it’s installed before trying the script ๐Ÿ™‚

#!/usr/bin/env python
# Copyright 2011 Ershad K <ershad92@[nospam]gmail.com>
# Licensed under GPL Version 3

import sys
import tweepy

CONSUMER_KEY = ' Fill here'
CONSUMER_SECRET = ' File here too'
ACCESS_KEY = ' Type yours here'
ACCESS_SECRET = 'Type yours here too'

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)

if sys.argv[1] == 'u':
    api.update_status(sys.argv[2])

elif sys.argv[1] == 'p':
    public_tweets = api.public_timeline()
    for tweet in public_tweets:
        print tweet.user.screen_name,":",tweet.text
        print ""

elif sys.argv[1] == 'r':
    mention_tweets = api.mentions()
    for mtweet in mention_tweets:
        print mtweet.user.screen_name,":",mtweet.text
        print ""

elif sys.argv[1] == 'h':
    friends_tweets = api.home_timeline()
    for ftweet in friends_tweets:
        print ftweet.user.screen_name,":", ftweet.text
        print ""

Hope you like it ๐Ÿ™‚