odu acm python & memento presentation
DESCRIPTION
My presention to the Old Dominion University (ODU) ACM. Covers Python basics, Memento, and timemaps.TRANSCRIPT
![Page 1: ODU ACM Python & Memento Presentation](https://reader038.vdocuments.mx/reader038/viewer/2022100500/555a70ced8b42ae7218b532d/html5/thumbnails/1.jpg)
PythonScott G. Ainsworth
for ODU ACM22 Sept 2011
![Page 2: ODU ACM Python & Memento Presentation](https://reader038.vdocuments.mx/reader038/viewer/2022100500/555a70ced8b42ae7218b532d/html5/thumbnails/2.jpg)
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](https://reader038.vdocuments.mx/reader038/viewer/2022100500/555a70ced8b42ae7218b532d/html5/thumbnails/3.jpg)
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](https://reader038.vdocuments.mx/reader038/viewer/2022100500/555a70ced8b42ae7218b532d/html5/thumbnails/4.jpg)
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](https://reader038.vdocuments.mx/reader038/viewer/2022100500/555a70ced8b42ae7218b532d/html5/thumbnails/5.jpg)
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](https://reader038.vdocuments.mx/reader038/viewer/2022100500/555a70ced8b42ae7218b532d/html5/thumbnails/6.jpg)
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](https://reader038.vdocuments.mx/reader038/viewer/2022100500/555a70ced8b42ae7218b532d/html5/thumbnails/7.jpg)
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](https://reader038.vdocuments.mx/reader038/viewer/2022100500/555a70ced8b42ae7218b532d/html5/thumbnails/8.jpg)
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](https://reader038.vdocuments.mx/reader038/viewer/2022100500/555a70ced8b42ae7218b532d/html5/thumbnails/9.jpg)
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](https://reader038.vdocuments.mx/reader038/viewer/2022100500/555a70ced8b42ae7218b532d/html5/thumbnails/10.jpg)
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](https://reader038.vdocuments.mx/reader038/viewer/2022100500/555a70ced8b42ae7218b532d/html5/thumbnails/11.jpg)
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](https://reader038.vdocuments.mx/reader038/viewer/2022100500/555a70ced8b42ae7218b532d/html5/thumbnails/12.jpg)
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](https://reader038.vdocuments.mx/reader038/viewer/2022100500/555a70ced8b42ae7218b532d/html5/thumbnails/13.jpg)
Questions?
?
![Page 14: ODU ACM Python & Memento Presentation](https://reader038.vdocuments.mx/reader038/viewer/2022100500/555a70ced8b42ae7218b532d/html5/thumbnails/14.jpg)
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