odu acm python & memento presentation

14

Click here to load reader

Upload: scottainsworth

Post on 19-May-2015

1.367 views

Category:

Technology


1 download

DESCRIPTION

My presention to the Old Dominion University (ODU) ACM. Covers Python basics, Memento, and timemaps.

TRANSCRIPT

Page 1: ODU ACM Python & Memento Presentation

PythonScott G. Ainsworth

for ODU ACM22 Sept 2011

Page 2: ODU ACM Python & Memento Presentation

What is Python?

Easy to learn

Simple syntax

Dynamic typing

High-level data structures

Free

Linux/Unix, OS X, Windows

MIT’s language of choice

Page 3: ODU ACM Python & Memento Presentation

Why Python?

Fast development cycle Interactive & edit, debug/run vs. edit, compile, debug/run

Extensive standard and add-on libraries (MIT’s language of choice)

Python, Jython, & IronPython

Google AppEngine

Page 4: ODU ACM Python & Memento Presentation

Basic Syntax

Block structured

But no braces

Indent defines blocks

def fib(n): a, b = 0, 1 while b < n: print b, a, b = b, a+b

Page 5: ODU ACM Python & Memento Presentation

Numbers & Strings

Integers: -231 – 231-1 5 + 23

Long: unlimited 123456789012345678

9

Boolean: True or False

0 or 1

Real and Complex: 1.25 / 6.3 Complex(1.1,2.2)

'value' == "value"

"""multiplelines"""

u'unicode'

'substring'[2:5] == 'bst'

Page 6: ODU ACM Python & Memento Presentation

Sequence Types

Lists primes = [ 2, 3, 5, 7, 11, 13, 17, 19, 23 ] primes.append(27) Primes[-2:] = [ 23, 27 ]

Tuples primes = ( 2, 3, 5, 7, 11, 13, 17,19, 23 ) primes.append(27) # fails, tuples are

immutable primes[-2:] = ( 23, 27 )

Strings are an immutable list of single characters

Page 7: ODU ACM Python & Memento Presentation

Dictionaries & Sets

Dictionaries pdict = { "p1" : 2, "p2" : 3, "p3" : 5 } pdict["p4"] = 7 pdict["p2"] == 3

Sets primes = Set([ 2, 3, 5, 7, 11, 13, 17,19,

23 ]) primes.append(27) # fails, set are

unordered primes.add(27) # succeeds

Page 8: ODU ACM Python & Memento Presentation

Classes

Class complex: """implement complex numbers"""

def __init__(self, r, i): self.__r = r self.__i = i

def isreal(self): return self.c == 0

def __add__(self, c): return complex(self.r + c.r, self.i + c.i)

Page 9: ODU ACM Python & Memento Presentation

Memento & Timemap for www.cs.odu.edu

http://api.wayback.archive.org/memento/timemap/link/http://www.cs.odu.edu1. <http://www.cs.odu.edu>; rel="original",

2. <http://api.wayback.archive.org/list/timemap/link/http://www.cs.odu.edu>; rel="timemap"; type="application/link-format”,

3. <http://api.wayback.archive.org/memento/19970102130137/http://cs.odu.edu/>; rel="first memento"; datetime="Thu, 02 Jan 1997 13:01:37 GMT”,

4. <http://api.wayback.archive.org/memento/19970606105039/http://www.cs.odu.edu/>; rel="memento"; datetime="Fri, 06 Jun 1997 10:50:39 GMT",

Output from timemap.py test5. Original: http://www.cs.odu.edu

6. Time Map: http://api.wayback.archive.org/list/timemap/link/http://www.cs.odu.edu

7. First Memento: (datetime.datetime(1997, 1, 2, 13, 1, 37, tzinfo=tzutc()), 'http://api.wayback.archive.org/memento/19970102130137/http://cs.odu.edu/')

8. 1997-06-06 10:50:39+00:00 = http://api.wayback.archive.org/memento/19970606105039/http://www.cs.odu.edu/

Page 10: ODU ACM Python & Memento Presentation

timemap.py Output

Original: http://www.cs.odu.edu

Time Bundle: http://api.wayback.archive.org/list/timebundle/http://www.cs.odu.edu

Time Gate: http://api.wayback.archive.org/list/timegate/http://www.cs.odu.edu

Time Map: http://api.wayback.archive.org/list/timemap/link/http://www.cs.odu.edu

First Memento: 1997-01-02 13:01:37+00:00

Last Memento: 2011-07-20 01:58:31+00:00

Mementos:

1997-06-06 10:50:39+00:00 = http://api.wayback.archive.org/memento/

19970606105039/http://www.cs.odu.edu/

1997-10-10 20:16:32+00:00 = http://api.wayback.archive.org/memento/

19971010201632/http://www.cs.odu.edu/

Page 11: ODU ACM Python & Memento Presentation

Code Walk Through

class TimeMap: Memento timemap container class

class TimeMapTokenizer: Helper class to tokenize a link-style timemap

__main__: Used for quick unit testing

Download the code: http://www.cs.odu.edu/~sainswor/uploads/Downloads/timemap.py

Page 12: ODU ACM Python & Memento Presentation

Summary

Easy to learn

Dynamic typing

High-level data structures

Free

Linux/Unix, OS X, Windows

Fast development cycle

Extensive standard and add-on libraries

Widely-supported

Page 13: ODU ACM Python & Memento Presentation

Questions?

?

Page 14: ODU ACM Python & Memento Presentation

Links

Slides: http://www.cs.odu.edu/~sainswor/uploads/Downloads/ACM-Python.py

Code: http://www.cs.odu.edu/~sainswor/uploads/Downloads/timemap.py

Python: http://www.python.org

Python Docs: http://docs.python.org

Python Libraries: http://pypi.python.org