Wednesday, June 5, 2013

tweepy-get users timeline status from twitter in python

import urllib, json
import sys
import tweepy
from tweepy import OAuthHandler

def twitter_fetch(screen_name = "BBCNews",maxnumtweets=10):
    'Fetch tweets from @BBCNews'
    # API described at https://dev.twitter.com/docs/api/1.1/get/statuses/user_timeline

    consumer_token = '' #substitute values from twitter website
    consumer_secret = ''
    access_token = ''
    access_secret = ''
   
    auth = tweepy.OAuthHandler(consumer_token,consumer_secret)
    auth.set_access_token(access_token,access_secret)
   
    api  = tweepy.API(auth)
    #print api.me().name
    #api.update_status('Hello -tweepy + oauth!')

    for status in tweepy.Cursor(api.user_timeline,id=screen_name).items(2):
        print status.text+'\n'

  

if __name__ == '__main__':
    twitter_fetch('BBCNews',10)



YOu can obtain these tokens by registering your app with twitter(mandatory) - Keep them private.
References:

http://pythonhosted.org/tweepy/html/api.html

Thursday, March 1, 2012

Hailstone sequences - Easy one

Problem
=================================================
Start with x,
    if x is even --> x becomes half
    if x is off --> x becomes triple plus one
Sequence is believed to end with '1' all the time (hailstone sequence)
=================================================

Solution
============
I decided to put my newly learnt skills of Python to use for this easy one. :)

Here it goes:

   def hailstone_seq(x):
       print x,
       while x > 1:
           if x % 2 == 0:
               x = x/2
           else:
               x = 3*x + 1
           print x,
    
 

Friday, September 30, 2011

Hamming Numbers

This exercise is taken from www.programmingpraxis.com
=========================================================
"The sequence of Hamming numbers 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24, 25, 27, 30, 32, 36, … (A051037) consists of all numbers of the form 2i·3j·5k where i, j and k are non-negative integers. Edsger Dijkstra introduced this sequence to computer science in his book A Discipline of Programming, and it has been a staple of beginning programming courses ever since. Dijkstra wrote a program based on three axioms:

Axiom 1: The value 1 is in the sequence.

Axiom 2: If x is in the sequence, so are 2 * x, 3 * x, and 5 * x.

Axiom 3: The sequence contains no other values other than those that belong to it on account of Axioms 1 and 2.

Your task is to write a program to compute the first thousand terms of the Hamming sequence. When you are finished, you are welcome to read or run a suggested solution, or to post your own solution or discuss the exercise in the comments below."

=========================================================

Here is my C solution

=========================================================

#include 
#include 

int ham_num(int x) {
    int h = x;
    while (h && (h%2 == 0)) 
        h = h/2;

    while (h && (h%3 == 0)) 
        h = h/3;
    
    while (h && (h%5 == 0)) 
        h = h/5;
   /* 
    * h will be 1, when it is ham num, else it will be  
    * something else - example h =10  
    */
   return h;
}

int main(int argc, char *argv[])
{
    int x = 1, cnt = 1000;
    printf("Hamming Numbers : \n");
    if (argc > 1)  
        cnt = atoi(argv[1]); 

    while (cnt) {
        if (ham_num(x) == 1) {
            printf("%d ",x);
            cnt--;
        }   
        x++;
    }   
    printf("\n");
}