+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.ipynb_checkpoints/HelloWorld-checkpoint.ipynb b/.ipynb_checkpoints/HelloWorld-checkpoint.ipynb
new file mode 100644
index 0000000..2122d66
--- /dev/null
+++ b/.ipynb_checkpoints/HelloWorld-checkpoint.ipynb
@@ -0,0 +1,43 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pandas as pd\n",
+ "music_data = pd.read_csv(\"music.csv\")\n",
+ "music_data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.6.8"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/.ipynb_checkpoints/Untitled-checkpoint.ipynb b/.ipynb_checkpoints/Untitled-checkpoint.ipynb
new file mode 100644
index 0000000..2fd6442
--- /dev/null
+++ b/.ipynb_checkpoints/Untitled-checkpoint.ipynb
@@ -0,0 +1,6 @@
+{
+ "cells": [],
+ "metadata": {},
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/.ipynb_checkpoints/Untitled1-checkpoint.ipynb b/.ipynb_checkpoints/Untitled1-checkpoint.ipynb
new file mode 100644
index 0000000..2fd6442
--- /dev/null
+++ b/.ipynb_checkpoints/Untitled1-checkpoint.ipynb
@@ -0,0 +1,6 @@
+{
+ "cells": [],
+ "metadata": {},
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/.ipynb_checkpoints/Untitled2-checkpoint.ipynb b/.ipynb_checkpoints/Untitled2-checkpoint.ipynb
new file mode 100644
index 0000000..2fd6442
--- /dev/null
+++ b/.ipynb_checkpoints/Untitled2-checkpoint.ipynb
@@ -0,0 +1,6 @@
+{
+ "cells": [],
+ "metadata": {},
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/.ipynb_checkpoints/Untitled3-checkpoint.ipynb b/.ipynb_checkpoints/Untitled3-checkpoint.ipynb
new file mode 100644
index 0000000..2fd6442
--- /dev/null
+++ b/.ipynb_checkpoints/Untitled3-checkpoint.ipynb
@@ -0,0 +1,6 @@
+{
+ "cells": [],
+ "metadata": {},
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/.turtle5.py.swp b/.turtle5.py.swp
new file mode 100644
index 0000000..e0c3600
Binary files /dev/null and b/.turtle5.py.swp differ
diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json
new file mode 100644
index 0000000..bcddf4e
--- /dev/null
+++ b/.vscode/c_cpp_properties.json
@@ -0,0 +1,33 @@
+{
+ "configurations": [
+ {
+ "name": "Mac",
+ "includePath": [
+ "${workspaceFolder}/**"
+ ],
+ "defines": [],
+ "macFrameworkPath": [
+ "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks"
+ ],
+ "compilerPath": "/usr/bin/clang",
+ "cStandard": "c11",
+ "cppStandard": "c++17",
+ "intelliSenseMode": "clang-x64"
+ },
+ {
+ "name": "pio_mac",
+ "includePath": [
+ "${workspaceFolder}/**"
+ ],
+ "defines": [],
+ "macFrameworkPath": [
+ "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks"
+ ],
+ "compilerPath": "/usr/bin/clang",
+ "cStandard": "c11",
+ "cppStandard": "c++17",
+ "intelliSenseMode": "clang-x64"
+ }
+ ],
+ "version": 4
+}
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..7a73a41
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,2 @@
+{
+}
\ No newline at end of file
diff --git a/11-15-1981.ppt b/11-15-1981.ppt
new file mode 100644
index 0000000..e69de29
diff --git a/13-12-1980.txt b/13-12-1980.txt
new file mode 100644
index 0000000..e69de29
diff --git a/15-10-1981.ppt b/15-10-1981.ppt
new file mode 100644
index 0000000..e69de29
diff --git a/AddUpNums.py b/AddUpNums.py
new file mode 100644
index 0000000..fbec63d
--- /dev/null
+++ b/AddUpNums.py
@@ -0,0 +1,14 @@
+#!/usr/bin/env python3
+
+# Add up numbers from 1 to a target number.
+
+target = int(input("Enter a target number: "))
+total = 0
+nextNumberToAddIn = 1
+while nextNumberToAddIn <= target:
+ # add in the next value
+ total = total + nextNumberToAddIn # add in the next number
+ print("Added in:", nextNumberToAddIn, "Total so far is:", total)
+ nextNumberToAddIn = nextNumberToAddIn + 1
+
+print("The sum of the numbers from 1 to", target, "is:", total)
diff --git a/AutoClickerBot.py b/AutoClickerBot.py
new file mode 100644
index 0000000..3667ad0
--- /dev/null
+++ b/AutoClickerBot.py
@@ -0,0 +1,59 @@
+#!/usr/bin/env python3
+
+# https://www.youtube.com/watch?v=9KiqJXMpDXc&t=626s
+
+import time
+import threading
+from pynput.mouse import Button, Controller
+from pynput.keyboard import Listener, KeyCode
+
+
+delay = 0.01
+button = Button.left
+start_stop_key = KeyCode(char='s')
+exit_key = KeyCode(char='e')
+
+
+class ClickMouse(threading.Thread):
+ def __init__(self, delay, button):
+ super(ClickMouse, self).__init__()
+ self.delay = delay
+ self.button = button
+ self.running = False
+ self.program_running = True
+
+ def start_clicking(self):
+ self.running = True
+
+ def stop_clicking(self):
+ self.running = False
+
+ def exit(self):
+ self.stop_clicking()
+ self.program_running = False
+
+ def run(self):
+ while self.program_running:
+ while self.running:
+ mouse.click(self.button)
+ time.sleep(self.delay)
+
+
+mouse = Controller()
+click_thread = ClickMouse(delay, button)
+click_thread.start()
+
+
+def on_press(key):
+ if key == start_stop_key:
+ if click_thread.running:
+ click_thread.stop_clicking()
+ else:
+ click_thread.start_clicking()
+ elif key == exit_key:
+ click_thread.exit()
+ listener.stop()
+
+
+with Listener(on_press=on_press) as listener:
+ listener.join()
diff --git a/Average_yards.py b/Average_yards.py
new file mode 100644
index 0000000..8c6fd03
--- /dev/null
+++ b/Average_yards.py
@@ -0,0 +1,22 @@
+#!/usr/bin/env python3
+
+def calculateAverage(param1, param2, param3, param4):
+ total = param1 + param2 + param3 + param4
+ average = total / 4.0 # floating point divide
+ return average
+
+yardsOnRun1 = 4
+yardsOnRun2 = 6.5
+yardsOnRun3 = 2.5
+yardsOnRun4 = -2
+
+averageYardsPerRun = calculateAverage(yardsOnRun1, yardsOnRun2, yardsOnRun3, yardsOnRun4)
+print("Average yards per run is:", averageYardsPerRun)
+
+yardsOnPass1 = 0
+yardsOnPass2 = 25.5
+yardsOnPass3 = 0
+yardsOnPass4 = 12
+
+averageYardsPerPass = calculateAverage(yardsOnPass1, yardsOnPass2, yardsOnPass3, yardsOnPass4)
+print("Average yards per pass is:", averageYardsPerPass)
diff --git a/BeautifulSoup_obj.py b/BeautifulSoup_obj.py
new file mode 100644
index 0000000..22d1cef
--- /dev/null
+++ b/BeautifulSoup_obj.py
@@ -0,0 +1,8 @@
+#!/usr/bin/env python3
+
+import requests, bs4
+res = requests.get("http://www.stealmylogin.com")
+res.raise_for_status()
+noStarchSoup = bs4.BeautifulSoup(res.text)
+print(type(noStarchSoup))
+
diff --git a/CalcAbsoluteValue.py b/CalcAbsoluteValue.py
new file mode 100644
index 0000000..775d8b8
--- /dev/null
+++ b/CalcAbsoluteValue.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+
+# Absolute Value Program
+# Function to generate the absolute value of a number.
+
+def absoluteValue(valueIn):
+ if valueIn >= 0:
+ valueOut = valueIn # Since valueIn is >= 0, therefore is already a absolute value.
+ # So the absolute value can be passed into the variable valueOut.
+ else: # Must be negative, then multiply by minus one to get a positive absolute value.
+ valueOut = -1 * valueIn
+ return valueOut
+
+# Test cases
+
+result = absoluteValue(10.5)
+print("The absolute value of 10.5 is", result)
+
+result = absoluteValue(-8)
+print("The absolute value of -8 is", result)
+
+# Get user input and convert to a floating point number.
+userNumber = int(input("Enter a number: "))
+
+# Call the function with the user's number and print the answer.
+result = absoluteValue(userNumber)
+print("The absolute value of", userNumber, "is", result)
diff --git a/CalculateSum.py b/CalculateSum.py
new file mode 100644
index 0000000..8852ae2
--- /dev/null
+++ b/CalculateSum.py
@@ -0,0 +1,22 @@
+#!/usr/bin/env python3
+
+# Calculate total - repeat
+
+def calculateSum(target):
+ total = 0
+ nextNumberToAddIn = 1
+ while nextNumberToAddIn <= target:
+ # add in the next value
+ total = total + nextNumberToAddIn
+ # increment
+ nextNumberToAddIn = nextNumberToAddIn + 1
+ return total
+
+answer = "y" # start off with the value "y" to go through the first time
+while answer == "y":
+ usersTarget = int(input("Enter a target number: "))
+ thisTotal = calculateSum(usersTarget) # call our function and get back the answer
+ print("The sum of the numbers 1 to", usersTarget, "is:", thisTotal)
+ answer = input("Do you want to try again (y or n): ")
+
+print("OK Bye")
diff --git a/CalculateSum2.py b/CalculateSum2.py
new file mode 100644
index 0000000..b71f756
--- /dev/null
+++ b/CalculateSum2.py
@@ -0,0 +1,20 @@
+#!/usr/bin/env python3
+
+def calculateSum(target):
+ total = 0
+ nextNumberToAddIn = 1
+ while nextNumberToAddIn <= target:
+ # add in the next value
+ total = total + nextNumberToAddIn
+ # increment
+ nextNumberToAddIn = nextNumberToAddIn + 1
+ return total
+
+nTimes = 0 # initialize a counter
+while nTimes < 3: # To run a certain number of times.
+ usersTarget = int(input("Enter a target number: "))
+ thisTotal = calculateSum(usersTarget)
+ print("The sum of the numbers 1 to", usersTarget, "is:", thisTotal)
+ nTimes = nTimes + 1 # increment the counter
+
+print("OK Bye")
diff --git a/CardGame.py b/CardGame.py
new file mode 100644
index 0000000..c7de3f8
--- /dev/null
+++ b/CardGame.py
@@ -0,0 +1,260 @@
+#!/usr/bin/env python3
+
+from random import shuffle
+
+class Card:
+
+ # suits and values lists are 'class variables'.
+
+ """
+ suits, a class var, are arranged in order of strength--with the
+ strongest suit last, and thus assigned the highest index, and
+ the least powerful suit assigned the lowest index.
+ """
+ suits = ["spades", # spades is the weakest suit at index 0.
+ "hearts",
+ "diamonds",
+ "clubs"] # while clubs is the strongest suit at index 3.
+
+ """
+ values, a class var, have items at the first two indexes of the
+ values list as None, so that the strings in the list match
+ up with the index they represent--so the string "2" in the values
+ list is at index 2.
+ """
+ values = [None, None, "2", "3",
+ "4", "5", "6", "7",
+ "8", "9", "10",
+ "Jack", "Queen",
+ "King", "Ace"]
+
+ """
+ Card objs have 'two instance variables': suit and value---each
+ represented by an integer. Together, the instance variables
+ represents what kind of card the Card obj is.
+ eg. you create a '2 of hearts' by creating a Card obj and passing
+ it the params 2 (for the suit) and 1 (for the value--1 because
+ hearts is at index 1 in the suits list).
+ """
+ def __init__(self, v, s):
+ # suit and value are integers, and are instance variables.
+ self.value = v
+ self.suit = s
+
+ """
+ The magic methods __lt__ and __gt__ allow you to compare two
+ Card objs in an expression using the less than and greater than
+ operators. The codes in the below two function methods determines
+ if the card is less than or greater than the other card passed in
+ as a param.
+ The codes in these two magic methods can also handle if the cards
+ have the same value--for example if both cards are 10s. If this
+ occurs, the methods use the index value of the suits to break
+ the tie.
+ """
+ def __lt__(self, c2): # c2 param represent comparing card two.
+ if self.value < c2.value:
+ return True
+ if self.value == c2.value: # So if the two cards are same value,
+ if self.suit < c2.suit: # we then compare the suit as well.
+ return True
+ else:
+ return False
+ else: # This else line is actually redundant.
+ return False
+
+ def __gt__(self, c2):
+ if self.value > c2.value:
+ return True
+ if self.value == c2.value:
+ if self.suit > c2.suit:
+ return True
+ else:
+ return False
+ else: # This else line is actually redundant.
+ return False
+
+ """
+ The magic method __repr__ uses the value and suit instance var
+ to look up the value and suit of the card in the values and
+ suits lists, and returns them so you can print the card, that
+ a Card obj represents
+ """
+ def __repr__(self):
+ v = self.values[self.value] + " of " + self.suits[self.suit]
+ return v
+
+
+"""
+When you initialize the Deck obj, the two for-loops in __init__
+create Card objs representing all cards in a 52-card deck and
+appends them to the cards list. So if 52 divides by 4, we take
+the first loop from 2 to 15 because the first value for a card
+is 2, and the last value for a card is 14 (the ace).
+Each time around the inner loop, a new card is created using
+the int from outer loop as the value (i.e. 14 for an ace) and
+the int from the inner loop as the suit (i.e. a 2 for hearts).
+This process creates 52 cards--one card for every suit and value
+combinations. After the method creates the cards, the shuffle
+method from the random module rearranges the items in the cards
+list; mimicking the shuffling of a deck of cards.
+Our deck has one other method called rm_card that removes and
+returns a card from the cards list, or returns None if it is
+empty.
+"""
+class Deck:
+ def __init__(self):
+ self.cards = []
+ for i in range(2, 15): # up to 15 but not including 15.
+ for j in range(4):
+ self.cards.append(Card(i, j))
+ shuffle(self.cards)
+
+ def rm_card(self):
+ if len(self.cards) == 0:
+ return None
+ else:
+ return self.cards.pop()
+
+
+"""
+A class to represent each player in the group to keep track of
+their cards and how many rounds they've won.
+"""
+class Player:
+ def __init__(self, name):
+ # instance var 'wins' to keep track of how many rounds
+ # a player has won.
+ self.wins = 0
+ # instance var 'card' to represent the card a player is
+ # currently holding.
+ self.card = None
+ # instance var 'name' to keep track of a player's name.
+ self.name = name
+
+
+"""
+When you create the game obj class, Python calls the __init__
+method and collects the names of the two players and stores them
+in the vars name1 and name2.
+Next, create a new Deck object and store it in the instance var
+deck, and create two Player objs using the names in name1 and name2.
+"""
+class Game:
+ def __init__(self):
+ name1 = input("Type in player one's name: ")
+ name2 = input("Type in player two's name: ")
+ # From self, set deck to an instance of class Deck.
+ self.deck = Deck()
+ # From self, set p1 and p2 to player name1 and name2.
+ self.p1 = Player(name1) # p1 is-a name1
+ self.p2 = Player(name2) # p2 is-a name2
+
+ def wins(self, winner):
+ w = "{} wins this round."
+ w = w.format(winner)
+ print(w)
+
+ # p1n - P1 name; p1c - P1 card.
+ def draw(self, p1n, p1c, p2n, p2c):
+ d = "{} drew {}, and {} drew {}."
+ d = d.format(p1n, p1c, p2n, p2c)
+ print(d)
+
+ """
+ The play_game in the Game class starts the game.
+ The loop in the method keeps the game going as long as there
+ are two or more cards left in the deck, and as long as the
+ var response does not equal to q.
+ """
+ def play_game(self):
+ cards = self.deck.cards
+ print("Beginning War!")
+ """
+ Each time around the loop, you assign the var response to
+ the input of the user. The game continues until either the
+ user types "q", or when there are less than two cards left
+ in the deck.
+ """
+ while len(cards) >= 2:
+ m = "Type q to quit or any key to play: "
+ response = input(m)
+ if response == "q":
+ break
+ """
+ Two cards are drawn each time through the loop.
+ The play_game method assigns the first card to p1, and
+ the second card to p2.
+ """
+ p1c = self.deck.rm_card()
+ p2c = self.deck.rm_card()
+ """
+ Then it prints the name of each player and the card they
+ drew, compares the two cards to see which card is greater,
+ increments the 'wins' instance var for the player with
+ the greater card, and prints a message that says who won.
+ """
+ p1n = self.p1.name
+ p2n = self.p2.name
+ self.draw(p1n, p1c, p2n, p2c)
+ if p1c > p2c:
+ self.p1.wins += 1
+ self.wins(self.p1.name)
+ else:
+ self.p2.wins += 1
+ self.wins(self.p2.name)
+
+ """
+ When the Deck obj runs out of cards, the 'play_game' method
+ prints a message saying the war is over, calls the 'winner'
+ method (passing in both p1 and p2), and prints a message with
+ the results--the name of the player who won.
+ """
+ win = self.winner(self.p1, self.p2)
+
+ print("War is over. {} wins.".format(win))
+
+ """
+ The Game class also has a method called 'winner' that takes two
+ player objs, looks at the number of rounds they won, and returns
+ the player who won the most rounds.
+ """
+ def winner(self, p1, p2):
+ if p1.wins > p2.wins:
+ return p1.name
+ if p1.wins < p2.wins:
+ return p2.name
+ else: # This else line can be redundant/omitted.
+ return "It was a tie!"
+
+
+# Client call to test out the lesser than function method.
+card1 = Card(10, 2)
+card2 = Card(11, 3)
+print(card1 < card2)
+print("")
+
+# Client call to test out the greater than function method.
+card1 = Card(10, 2)
+card2 = Card(11, 3)
+print(card1 > card2)
+print("")
+
+# Client call to test out the representation function method
+# to print out what the value and suit represents in the values and
+# suits lists.
+card = Card(10, 2)
+print(card)
+print("")
+
+# You can use the Deck class to create a new deck of cards and
+# print each card in it.
+deck = Deck()
+for card in deck.cards:
+ print(card)
+ print("")
+
+# Start of the full game.
+game = Game() # Set var game to an instance of class Game.
+game.play_game() # From game, call the 'play_game' method.
+
diff --git a/Celsius2Fahrenheit_ex2.15.py b/Celsius2Fahrenheit_ex2.15.py
new file mode 100644
index 0000000..0afeafe
--- /dev/null
+++ b/Celsius2Fahrenheit_ex2.15.py
@@ -0,0 +1,7 @@
+# Ask user to input only the integer values of temperature celsius.
+Celsius = int(input("Enter a temperature in Celsius: "))
+
+# Formula for converting celsius to fahrenheit.
+Fahrenheit = 9/5 * Celsius + 32
+
+print("Temperature: ", Celsius, "Celsius= ", Fahrenheit, " F")
diff --git a/ClosuresAndFunc/closures.py b/ClosuresAndFunc/closures.py
new file mode 100644
index 0000000..1595926
--- /dev/null
+++ b/ClosuresAndFunc/closures.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python3
+
+# Using nested funcs and closures in Python.
+
+# Defining a func in a func.
+# Therefore the outerFunction() is an enclosing function.
+def outerFunction(text): # The 'outerFunction()' takes 'text' as an argument param.
+ def innerFunction(): # Another local func of the 'outerFunction()' that prints the text param.
+ print(text)
+ innerFunction()
+
+outerFunction("Hello")
+print("")
+""" Therefore if you define a function inside another function, it is called the nesting of function. """
+
+def pop(list): # Define outer function or an enclosing function.
+ def get_last_item(my_list): # Define a local function or inner function.
+ return my_list[len(list) - 1] # Find out the last item on the list 'my_list' and return to the
+ # answer to get_last_item() inner function.
+
+ list.remove(get_last_item(list)) # From list, use the '.remove' method and pass in the last item
+ # from the inner function. This will remove the last item from the list.
+ return list # And then return the remaining items from the list to the 'pop(list)' func.
+
+
+a = [1, 2, 3, 4, 6] # Create a list with numbers and assign to var 'a'.
+print(pop(a)) # Client call the pop() outer function with list 'a' as param.
+print(pop(a))
+print(pop(a))
diff --git a/ClosuresAndFunc/closures2.py b/ClosuresAndFunc/closures2.py
new file mode 100644
index 0000000..c8bd37e
--- /dev/null
+++ b/ClosuresAndFunc/closures2.py
@@ -0,0 +1,50 @@
+#!/usr/bin/env python3
+
+"""
+A closures is a function whose return value depends on the value of one or more var which are declared
+outside the function.
+"""
+# Example of a closure.
+def outerFunction(text): # The 'text' var param is declared outside of the innerFunction().
+ def innerFunction(): # So the value of the innerFunction() depends on the value of 'text' var that
+ # is declared outside of the inner func. And that makes it a closure.
+ print(text)
+ return innerFunction # Return the innerFunction without any parenthesis ().
+
+# Because the outer func is returning the inner func, that means now 'a' contains the inner func.
+a = outerFunction("Hello")
+
+# We will try deleting the outerFunction.
+del outerFunction
+
+# Because we have created in line 15 the var 'a' that contains the inner func, we can still use 'a()'
+# as the inner func.
+a() # Client call the 'a()' inner func that prints the text var param.
+
+"""
+This means var 'a' is storing the state of the inner function even if the outer function is deleted.
+And that is the magic of the closures.
+A closures function is able to remember the values (eg. text) which are declared outside the function.
+"""
+print("")
+
+"""
+Creating a closures func to calculate the power of a given base number.
+"""
+def nth_power(exponent): # Define an outer func named 'nth_power()' with param 'exponent'.
+ def pow_of(base): # Define an inner func named 'pow_of()' with param 'base'.
+ return pow(base, exponent) # Use the built-in func of pow() to calculate with 'base' and
+ # 'exponent' value, and return the answer to the inner func 'pow_of()'.
+ return pow_of # Then finally return the value of 'pow_of' without parenthesis to the outer func.
+
+square = nth_power(2) # Passing the exponent value of '2' into the func 'nth_power()', and assigning to var 'square'.
+print(square(2)) # Print the answer of square 2 to the power of 2.
+print(square(3)) # Print the answer of square 3 to the power of 2.
+print(square(4)) # Print the answer of square 4 to the power of 2.
+print(square(5)) # Print the answer of square 5 to the power of 2.
+
+cube = nth_power(3) # Passing the exponent value of '3' into the func 'nth_power()', and assigning to the var 'cube'.
+print(cube(2)) # Print the answer of cube 2 to the power of 3.
+print(cube(3)) # Print the answer of cube 3 to the power of 3.
+print(cube(4)) # Print the answer of cube 4 to the power of 3.
+print(cube(5)) # Print the answer of cube 5 to the power of 3.
diff --git a/CoinFlips.py b/CoinFlips.py
new file mode 100644
index 0000000..60d144b
--- /dev/null
+++ b/CoinFlips.py
@@ -0,0 +1,28 @@
+#!/usr/bin/env python3
+
+# Coin flip program
+
+import random
+
+nFlips = 0 # To count the number of flips
+nTails = 0 # To count the number of flips that came up as tails
+nHeads = 0 # To count the number of flips that came up as heads
+
+maxFlips = int(input("How many flips do you want to do? "))
+
+while nFlips < maxFlips:
+ # Randomly choose 0 or 1, because a coin flip can only result in one of two answers
+ # (heads or tails)
+ zeroOrOne = random.randrange(0, 2)
+
+ # If we get a zero, say that was a heads
+ # If we get a one, say that was a tails
+ if zeroOrOne == 0:
+ nHeads = nHeads + 1
+ else:
+ nTails = nTails + 1
+
+ nFlips = nFlips + 1
+
+print()
+print("Out of", nFlips, "coin tosses, we had:", nHeads, "heads, and", nTails, "tails.")
diff --git a/ComparisonOperators.py b/ComparisonOperators.py
new file mode 100644
index 0000000..18af83d
--- /dev/null
+++ b/ComparisonOperators.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python3
+
+x = 5
+
+if x == 5:
+ print("Equals 5")
+
+if x > 4:
+ print("Greater than 4")
+
+if x >= 5:
+ print("Greater than or equals 5")
+
+if x < 6:
+ print("Less than 6")
+
+if x <= 5:
+ print("Less than or equals 5")
+
+if x != 6:
+ print("Not equal 6")
diff --git a/CounterMovementObject1.py b/CounterMovementObject1.py
new file mode 100644
index 0000000..6c9d6a5
--- /dev/null
+++ b/CounterMovementObject1.py
@@ -0,0 +1,137 @@
+import datetime
+import math
+import cv2
+import numpy as np
+
+#variaveis globais
+width = 0
+height = 0
+CounterEntries = 0
+AccountReceiver = 0
+AreaLimitMin = 3000 #This value is empirical. Adjust it as required
+ThresholdBinary = 70 #This value is empirical. Adjust it as required
+OffsetLinesRef = 150 #This value is empirical. Adjust it as required
+
+#Checks whether the detected body is entering the monitored area
+def IntersectionTest(y, CoordinateYLineInput, CoordinateYLineOutput):
+ DifferentialAbsolute = abs(y - CoordinateYLineInput)
+
+ if ((DifferentialAbsolute <= 2) and (y < CoordinateYLineOutput)):
+ return 1
+ else:
+ return 0
+
+#Checks if the detected body is leaving the monitored area
+def ForeheadIntersectionExit(y, CoordinateYLineInput, CoordinateYLineOutput):
+ DifferentialAbsolute = abs(y - CoordinateYLineOutput)
+
+ if ((DifferentialAbsolute <= 2) and (y > CoordinateYLineInput)):
+ return 1
+ else:
+ return 0
+
+camera = cv2.VideoCapture(0)
+
+#forces the camera to take resolution 640x480
+camera.set(3,640)
+camera.set(4,480)
+
+FirstFrame = None
+
+#does some frame reads before consenting the analysis
+#Reason: some cameras may take longer to "acuminate the light" when they connect, capturing consecutive frames with a lot of brightness. In order not to bring this effect to image processing, successive captures are made outside the image processing, giving the camera time to "get accustomed" to the brightness of the environment
+
+for i in range(0,20):
+ (grabbed, Frame) = camera.read()
+
+while True:
+ #first frame and determines image resolution
+ (grabbed, Frame) = camera.read()
+ height = np.size(Frame,0)
+ width = np.size(Frame,1)
+
+ #if it was not possible to get frame, nothing else should be done
+ if not grabbed:
+ break
+
+ #converts frame to grayscale and applies blur effect (to enhance the contours)
+ FrameGray = cv2.cvtColor(Frame, cv2.COLOR_BGR2GRAY)
+ FrameGray = cv2.GaussianBlur(FrameGray, (21, 21), 0)
+
+ #as the comparison is made between two subsequent images, if the first frame is null (ie first "passed" in the loop), this is initialized
+ if FirstFrame is None:
+ FirstFrame = FrameGray
+ continue
+
+ #absolute difference between initial frame and current frame (background subtraction)
+ #in addition, it makes the binarization of the frame with subtracted background
+ FrameDelta = cv2.absdiff(FirstFrame, FrameGray)
+ FrameThresh = cv2.threshold(FrameDelta, ThresholdBinary, 255, cv2.THRESH_BINARY)[1]
+
+ #dilates the binarized frame, in order to eliminate "holes" / white zones within detected contours.
+ #In this way, detected objects will be considered a "mass" of black color
+ #In addition, it finds the contours after dilation.
+ FrameThresh = cv2.dilate(FrameThresh, None, iterations=2)
+ _, cnts, _ = cv2.findContours(FrameThresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
+
+ ContourQty = 0
+
+ #draws reference lines
+ CoordinateYLineInput = (height / 2)-OffsetLinesRef
+ CoordinateYLineOutput = (height / 2)+OffsetLinesRef
+ cv2.line(Frame, (0,CoordinateYLineInput), (width,CoordinateYLineInput), (255, 0, 0), 2)
+ cv2.line(Frame, (0,CoordinateYLineOutput), (width,CoordinateYLineOutput), (0, 0, 255), 2)
+
+
+ #Scans all contours found
+ for c in cnts:
+ #Contours of small areas are ignored.
+ if cv2.contourArea(c) < AreaLimitMin:
+ continue
+
+ #For purification purposes, count the number of contours found
+ ContourQty = ContourQty+1
+
+ #gets coordinates of the contour (in fact, of a rectangle that can cover the whole contour)
+ #and outlines with a rectangle.
+ (x, y, w, h) = cv2.boundingRect(c) #x e y: coordinates of the upper left vertex
+ #w e h: respectively width and height of the rectangle
+
+ cv2.rectangle(Frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
+
+ #determines the center point of the contour and draws a circle to indicate
+ CoordinateXContourCenter = (x+x+w)/2
+ CoordinateYContourCenter = (y+y+h)/2
+ OutlineCenter = (CoordinateXContourCenter,CoordinateYContourCenter)
+ cv2.circle(Frame, OutlineCenter, 1, (0, 0, 0), 5)
+
+ #intersect the centers of the contours with the reference lines
+ #dessa forma, contabiliza-se quais contornos cruzaram quais linhas (num determinado sentido)
+ if (IntersectionTest(CoordinateYContourCenter,CoordinateYLineInput,CoordinateYLineOutput)):
+ CounterEntries += 1
+
+ if (ForeheadIntersectionExit(CoordinateYContourCenter,CoordinateYLineInput,CoordinateYLineOutput)):
+ AccountReceiver += 1
+
+ #If necessary, uncomment the lines below to show the frames used in image processing
+ #cv2.imshow("Frame binary", FrameThresh)
+ #cv2.waitKey(1);
+ #cv2.imshow("Frame with background subtraction", FrameDelta)
+ #cv2.waitKey(1);
+
+
+ print("Found contours: "+str(ContourQty))
+
+ #Write in the picture the number of people who entered or left the surveillance area
+ cv2.putText(Frame, "Entrances: {}".format(str(CounterEntries)), (10, 50),
+ cv2.FONT_HERSHEY_SIMPLEX, 0.5, (250, 0, 1), 2)
+ cv2.putText(Frame, "Exits: {}".format(str(AccountReceiver)), (10, 70),
+ cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)
+ cv2.imshow("Original", Frame)
+ cv2.waitKey(1);
+
+
+# cleanup the camera and close any open windows
+camera.release()
+cv2.destroyAllWindows()
+
diff --git a/CounterMovementObject1_en.py b/CounterMovementObject1_en.py
new file mode 100644
index 0000000..ecdcc90
--- /dev/null
+++ b/CounterMovementObject1_en.py
@@ -0,0 +1,139 @@
+import datetime
+import math
+import cv2
+import numpy as np
+
+#global variables
+width = 0
+height = 0
+CounterEntries = 0
+AccountReceiver = 0
+AreaLimitMin = 3000 #This value is empirical. Adjust it as required
+ThresholdBinary = 40 #This value is empirical. Adjust it as required
+OffsetLinesRef = 80 #This value is empirical. Adjust it as required
+
+#Checks whether the detected body is entering the monitored area
+def IntersectionTest(y, CoordinateYLineInput, CoordinateYLineOutput):
+ DifferentialAbsolute = abs(y - CoordinateYLineInput)
+
+ if ((DifferentialAbsolute <= 2) and (y < CoordinateYLineOutput)):
+ return 1
+ else:
+ return 0
+
+#Checks if the detected body is leaving the monitored area
+def ForeheadIntersectionExit(y, CoordinateYLineInput, CoordinateYLineOutput):
+ DifferentialAbsolute = abs(y - CoordinateYLineOutput)
+
+ if ((DifferentialAbsolute <= 2) and (y > CoordinateYLineInput)):
+ return 1
+ else:
+ return 0
+
+camera = cv2.VideoCapture(0)
+
+#forces the camera to take resolution 640x480
+camera.set(3,640)
+camera.set(4,480)
+
+FirstFrame = None
+
+#Does some frame reads before consenting the analysis.
+#Reason: some cameras may take longer to "acuminate the light" when they connect, capturing consecutive frames with a lot of brightness.
+#In order not to bring this effect to image processing, successive captures are made outside the image processing,
+#giving the camera time to "get accustomed" to the brightness of the environment.
+
+for i in range(0,20):
+ (grabbed, Frame) = camera.read()
+
+while True:
+ #first frame and determines image resolution
+ (grabbed, Frame) = camera.read()
+ height = np.size(Frame,0)
+ width = np.size(Frame,1)
+
+ #if it was not possible to get frame, nothing else should be done
+ if not grabbed:
+ break
+
+ #converts frame to grayscale and applies blur effect (to enhance the contours)
+ FrameGray = cv2.cvtColor(Frame, cv2.COLOR_BGR2GRAY)
+ FrameGray = cv2.GaussianBlur(FrameGray, (21, 21), 0)
+
+ #as the comparison is made between two subsequent images, if the first frame is null (ie first "passed" in the loop), this is initialized
+ if FirstFrame is None:
+ FirstFrame = FrameGray
+ continue
+
+ #absolute difference between initial frame and current frame (background subtraction)
+ #in addition, it makes the binarization of the frame with subtracted background
+ FrameDelta = cv2.absdiff(FirstFrame, FrameGray)
+ FrameThresh = cv2.threshold(FrameDelta, ThresholdBinary, 255, cv2.THRESH_BINARY)[1]
+
+ #dilates the binarized frame, in order to eliminate "holes" / white zones within detected contours.
+ #In this way, detected objects will be considered a "mass" of black color
+ #In addition, it finds the contours after dilation.
+ FrameThresh = cv2.dilate(FrameThresh, None, iterations=2)
+ _, cnts, _ = cv2.findContours(FrameThresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
+
+ ContourQty = 0
+
+ #draws reference lines
+ CoordinateYLineInput = (height / 2)-OffsetLinesRef
+ CoordinateYLineOutput = (height / 2)+OffsetLinesRef
+ cv2.line(Frame, (0,CoordinateYLineInput), (width,CoordinateYLineInput), (255, 0, 0), 2)
+ cv2.line(Frame, (0,CoordinateYLineOutput), (width,CoordinateYLineOutput), (0, 0, 255), 2)
+
+
+ #Scans all contours found
+ for c in cnts:
+ #Contours of small areas are ignored.
+ if cv2.contourArea(c) < AreaLimitMin:
+ continue
+
+ #For purification purposes, count the number of contours found
+ ContourQty = ContourQty+1
+
+ #gets coordinates of the contour (in fact, of a rectangle that can cover the whole contour)
+ #and outlines with a rectangle.
+ (x, y, w, h) = cv2.boundingRect(c) #x e y: coordinates of the upper left vertex
+ #w e h: respectively width and height of the rectangle
+
+ cv2.rectangle(Frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
+
+ #determines the center point of the contour and draws a circle to indicate
+ CoordinateXContourCenter = (x+x+w)/2
+ CoordinateYContourCenter = (y+y+h)/2
+ OutlineCenter = (CoordinateXContourCenter,CoordinateYContourCenter)
+ cv2.circle(Frame, OutlineCenter, 1, (0, 0, 0), 5)
+
+ #intersect the centers of the contours with the reference lines
+ #dessa forma, contabiliza-se quais contornos cruzaram quais linhas (num determinado sentido)
+ if (IntersectionTest(CoordinateYContourCenter,CoordinateYLineInput,CoordinateYLineOutput)):
+ CounterEntries += 1
+
+ if (ForeheadIntersectionExit(CoordinateYContourCenter,CoordinateYLineInput,CoordinateYLineOutput)):
+ AccountReceiver += 1
+
+ #If necessary, uncomment the lines below to show the frames used in image processing
+ #cv2.imshow("Frame binary", FrameThresh)
+ #cv2.waitKey(1);
+ #cv2.imshow("Frame with background subtraction", FrameDelta)
+ #cv2.waitKey(1);
+
+
+ print("Found contours: "+str(ContourQty))
+
+ #Write in the picture the number of people who entered or left the surveillance area
+ cv2.putText(Frame, "Entrances: {}".format(str(CounterEntries)), (10, 50),
+ cv2.FONT_HERSHEY_SIMPLEX, 0.5, (250, 0, 1), 2)
+ cv2.putText(Frame, "Exits: {}".format(str(AccountReceiver)), (10, 70),
+ cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)
+ cv2.imshow("Original", Frame)
+ cv2.waitKey(1);
+
+
+# cleanup the camera and close any open windows
+camera.release()
+cv2.destroyAllWindows()
+
diff --git a/Coursera_GoogleITAutomationwithPython/Module 1 Graded Assessment.py b/Coursera_GoogleITAutomationwithPython/Module 1 Graded Assessment.py
new file mode 100644
index 0000000..f75340d
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/Module 1 Graded Assessment.py
@@ -0,0 +1,52 @@
+#!/usr/bin/env python3
+
+"""
+Keeping in mind there are 86400 seconds per day, write a program that calculates how many
+seconds there are in a week, if a week is 7 days. Print the result on the screen.
+
+Note: Your result should be in the format of just a number, not a sentence.
+"""
+
+secs_a_day = 86400
+days_a_wk = 7
+secs_in_a_week = days_a_wk * secs_a_day
+print(secs_in_a_week)
+print("")
+
+
+
+"""
+Use Python to calculate how many different passwords can be formed with 6 lower case
+English letters. For a 1 letter password, there would be 26 possibilities.
+For a 2 letter password, each letter is independent of the other, so there would be
+26 times 26 possibilities. Using this information, print the amount of possible
+passwords that can be formed with 6 letters.
+
+hint:
+As the alphabet length is 26, take a variable and assign 26 to it.
+Take the length of the password from the user.
+As it is given that each letter is independent from the other, repetitions are clearly allowed.
+So, each block of n letter word can be filled with any of 26 letters i.e., 26 choices.
+In such case, n blanks can be filled in 26x26x26x26x26x26....x26 ways. Simply in 26ⁿ ways.
+As n=6, result will be 26⁶, which is equal to 308915776.
+"""
+
+pw_length = 6
+alphabet_length = 26
+pos_pws = 26**6
+print(pos_pws)
+print("")
+
+
+
+"""
+Most hard drives are divided into sectors of 512 bytes each.
+Our disk has a size of 16 GB.
+Fill in the blank to calculate how many sectors the disk has.
+"""
+
+disk_size = 16*1024*1024*1024
+sector_size_each = 512
+sector_amount = disk_size / sector_size_each
+print(sector_amount)
+print("")
diff --git a/Coursera_GoogleITAutomationwithPython/Module 2 Graded Assessment.py b/Coursera_GoogleITAutomationwithPython/Module 2 Graded Assessment.py
new file mode 100644
index 0000000..428b016
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/Module 2 Graded Assessment.py
@@ -0,0 +1,210 @@
+#!/usr/bin/env python3
+
+"""
+The color_translator function receives the name of a color, then prints its hexadecimal value. Currently, it only supports the three additive primary colors (red, green, blue), so it returns "unknown" for all other colors.
+"""
+
+def color_translator(color):
+ if color == "red":
+ hex_color = "#ff0000"
+
+ elif color == "green":
+ hex_color = "#00ff00"
+
+ elif color == "blue":
+ hex_color = "#0000ff"
+
+ else:
+ hex_color = "unknown"
+
+ return hex_color
+
+
+print(color_translator("blue")) # Should be #0000ff
+print(color_translator("yellow")) # Should be unknown
+print(color_translator("red")) # Should be #ff0000
+print(color_translator("black")) # Should be unknown
+print(color_translator("green")) # Should be #00ff00
+print(color_translator("")) # Should be unknown
+print("")
+
+
+
+"""
+What's the value of this Python expression: "big" > "small"
+"""
+
+print("big" > "small")
+print("")
+
+
+
+"""
+Students in a class receive their grades as Pass/Fail.
+Scores of 60 or more (out of 100) mean that the grade is "Pass".
+For lower scores, the grade is "Fail".
+In addition, scores above 95 (95 itself is not included) are graded as "Top Score".
+Fill in this function so that it returns the proper grade.
+"""
+
+def exam_grade(score):
+ if score > 95:
+ grade = "Top Score"
+
+ elif score >= 60:
+ grade = "Pass"
+
+ else:
+ grade = "Fail"
+
+ return grade
+
+
+print(exam_grade(65)) # Should be Pass
+print(exam_grade(55)) # Should be Fail
+print(exam_grade(60)) # Should be Pass
+print(exam_grade(95)) # Should be Pass
+print(exam_grade(100)) # Should be Top Score
+print(exam_grade(0)) # Should be Fail
+print("")
+
+
+
+"""
+What's the value of this Python expression: 11 % 5?
+"""
+
+print(11 % 5)
+print("")
+
+
+
+"""
+Complete the body of the format_name function.
+This function receives the first_name and last_name parameters and then returns a
+properly formatted string.
+
+Specifically:
+
+If both the last_name and the first_name parameters are supplied, the function should
+return like so:
+
+print(format_name("Ella", "Fitzgerald"))
+>>> Name: Fitzgerald, Ella
+
+If only one name parameter is supplied (either the first name or the last name) ,the
+function should return like so:
+
+print(format_name("Adele", ""))
+>>> Name: Adele
+
+or
+
+print(format_name("", "Einstein"))
+>>> Name: Einstein
+
+Finally, if both names are blank, the function should return the empty string:
+>>>
+
+"""
+
+def format_name(first_name, last_name):
+ # code goes here
+ if len(first_name) > 0 and len(last_name) > 0:
+ string = ("Name: " + last_name + ", " + first_name)
+
+ elif len(first_name) == 0 and len(last_name) > 0:
+ string = ("Name: " + last_name)
+
+ elif len(first_name) > 0 and len(last_name) == 0:
+ string = ("Name: " + first_name)
+
+ else:
+ string = ("")
+
+ return string
+
+
+print(format_name("Ernest", "Hemingway"))
+# Should return the string "Name: Hemingway, Ernest"
+
+print(format_name("", "Madonna"))
+# Should return the string "Name: Madonna"
+
+print(format_name("Voltaire", ""))
+# Should return the string "Name: Voltaire"
+
+print(format_name("", ""))
+# Should return an empty string
+
+print("")
+
+
+
+"""
+The longest_word function is used to compare 3 words. It should return the word with
+the most number of characters (and the first in the list when they have the same length).
+Fill in the blank to make this happen.
+"""
+
+def longest_word(word1, word2, word3):
+ if len(word1) >= len(word2) and len(word1) >= len(word3):
+ word = word1
+
+ elif len(word2) >= len(word1) and len(word2) >= len(word3):
+ word = word2
+
+ else:
+ word = word3
+
+ return(word)
+
+print(longest_word("chair", "couch", "table"))
+print(longest_word("bed", "bath", "beyond"))
+print(longest_word("laptop", "notebook", "desktop"))
+print("")
+
+
+
+"""
+Output of the code below.
+"""
+
+def sum(x, y):
+ return(x + y)
+print(sum(sum(1, 2), sum(3, 4)))
+print("")
+
+
+
+"""
+What's the value of this Python expression?
+"""
+
+print(((10 >= 5*2) and (10 <= 5*2)))
+print("")
+
+
+
+"""
+The fractional_part function divides the numerator by the denominator, and returns just
+the fractional part (a number between 0 and 1). Complete the body of the function so that
+it returns the right number.
+Note: Since division by 0 produces an error, if the denominator is 0, the function should
+return 0 instead of attempting the division.
+"""
+
+def fractional_part(numerator, denominator):
+ # Operate with numerator and denominator to keep just the
+ # fractional part of the quotient.
+ if denominator > 0:
+ return (numerator%denominator) / denominator
+ return 0
+
+print(fractional_part(5, 5)) # Should be 0
+print(fractional_part(5, 4)) # Should be 0.25
+print(fractional_part(5, 3)) # Should be 0.66...
+print(fractional_part(5, 2)) # Should be 0.5
+print(fractional_part(5, 0)) # Should be 0
+print(fractional_part(0, 5)) # Should be 0
+print("")
diff --git a/Coursera_GoogleITAutomationwithPython/Quiz_Expressions_and_Var.py b/Coursera_GoogleITAutomationwithPython/Quiz_Expressions_and_Var.py
new file mode 100644
index 0000000..2ac450f
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/Quiz_Expressions_and_Var.py
@@ -0,0 +1,60 @@
+#!/usr/bin/env python3
+
+"""
+Two friends are eating dinner at a restaurant. The bill comes in the amount of 47.28 dollars. The friends decide to split the bill evenly between them, after adding 15% tip for the service. Calculate the tip, the total amount to pay, and each friend's share, then output a message saying "Each person needs to pay: " followed by the resulting number.
+"""
+
+bill = 47.28
+tip = bill * 0.15
+total = bill + tip
+share = total/2
+print("Each person needs to pay: " + str(share))
+print("")
+
+
+
+"""
+This code is supposed to take two numbers, divide one by another so that the result
+is equal to 1, and display the result on the screen. Unfortunately, there is an
+error in the code. Find the error and fix it, so that the output is correct.
+"""
+
+numerator = 10
+denominator = 10
+result = numerator / denominator
+print(int(result))
+print("")
+
+
+
+"""
+Combine the variables to display the sentence "How do you like Python so far?"
+"""
+
+word1 = "How"
+word2 = "do"
+word3 = "you"
+word4 = "like"
+word5 = "Python"
+word6 = "so"
+word7 = "far?"
+
+print(word1, word2, word3, word4, word5, word6, word7)
+print("")
+
+
+
+"""
+This code is supposed to display "2 + 2 = 4" on the screen, but there is an error. Find the error in the code and fix it, so that the output is correct.
+"""
+
+print("2 + 2 = 4")
+print("")
+
+
+
+"""
+What do you call a combination of numbers, symbols, or other values that produce a result when evaluated?
+
+Ans: An expression
+"""
diff --git a/Coursera_GoogleITAutomationwithPython/Quiz_ForLoops.py b/Coursera_GoogleITAutomationwithPython/Quiz_ForLoops.py
new file mode 100644
index 0000000..b0989f6
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/Quiz_ForLoops.py
@@ -0,0 +1,110 @@
+#!/usr/bin/env python3
+
+"""
+1. How are while loops and for loops different in Python?
+
+( )While loops can be used with all data types, for loops can only be used with numbers.
+( )For loops can be nested, but while loops can't.
+(*)While loops iterate while a condition is true, for loops iterate through a sequence of elements.
+( )While loops can be interrupted using break, for loops using continue.
+"""
+
+
+
+"""
+2. Fill in the blanks to make the factorial function return the factorial of n. Then, print the
+first 10 factorials (from 0 to 9) with the corresponding number. Remember that the factorial
+of a number is defined as the product of an integer and all integers before it. For example,
+the factorial of five (5!) is equal to 1*2*3*4*5=120. Also recall that the factorial of
+zero (0!) is equal to 1.
+
+def factorial(n):
+ result = 1
+ for x in range(1,___):
+ result = ___ * ___
+ return ___
+
+for n in range(___,___):
+ print(n, factorial(n+___))
+"""
+
+
+
+def factorial(n):
+ result = 1
+ for x in range(1, n + 1):
+ result = result * x
+ return result
+
+for n in range(1,10):
+ print(n, factorial(n))
+
+print("")
+
+
+
+"""
+3. Write a script that prints the first 10 cube numbers (x**3), starting with x=1 and ending
+with x=10.
+
+for __ in range(__,__):
+ print(__)
+"""
+
+for x in range(1,11,1):
+ print(x**3)
+
+print("")
+
+
+
+"""
+4. Write a script that prints the multiples of 7 between 0 and 100. Print one multiple per line
+and avoid printing any numbers that aren't multiples of 7. Remember that 0 is also a multiple
+of 7.
+
+print()
+"""
+
+#print("\n".join(str(i) for i in range(1, 101, 7) if i % 7 == 0))
+def multiples(n):
+ for x in range(0,100):
+ if x % n == 0:
+ print(x)
+ return
+
+
+print(multiples(7))
+print("")
+
+
+
+"""
+5. The retry function tries to execute an operation that might fail, it retries the operation for
+a number of attempts. Currently the code will keep executing the function even if it succeeds.
+Fill in the blank so the code stops trying after the operation succeeded.
+
+def retry(operation, attempts):
+ for n in range(attempts):
+ if operation():
+ print("Attempt " + str(n) + " succeeded")
+ ___
+ else:
+ print("Attempt " + str(n) + " failed")
+
+retry(create_user, 3)
+retry(stop_service, 5)
+"""
+
+def retry(operation, attempts):
+ for n in range(attempts):
+ if operation():
+ print("Attempt " + str(n) + " succeeded")
+ break
+ else:
+ print("Attempt " + str(n) + " failed")
+
+
+retry(create_user, 3)
+retry(stop_service, 5)
+print("")
diff --git a/Coursera_GoogleITAutomationwithPython/Quiz_Functions.py b/Coursera_GoogleITAutomationwithPython/Quiz_Functions.py
new file mode 100644
index 0000000..a4f7b43
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/Quiz_Functions.py
@@ -0,0 +1,70 @@
+#!/usr/bin/env python3
+
+"""
+This function converts miles to kilometers (km).
+
+Complete the function to return the result of the conversion.
+Call the function to convert the trip distance from miles to kilometers.
+Fill in the blank to print the result of the conversion.
+Calculate the round-trip in kilometers by doubling the result, and fill in
+the blank to print the result.
+"""
+
+# 1) Complete the function to return the result of the conversion
+def convert_distance(miles):
+ km = miles * 1.6 # approximately 1.6 km in 1 mile
+ return km
+
+my_trip_miles = 55
+
+# 2) Convert my_trip_miles to kilometers by calling the function above
+my_trip_km = convert_distance(55)
+
+# 3) Fill in the blank to print the result of the conversion
+print("The distance in kilometers is " + str(my_trip_km))
+
+# 4) Calculate the round-trip in kilometers by doubling the result,
+# and fill in the blank to print the result
+print("The round-trip in kilometers is " + str(my_trip_km * 2))
+print("")
+
+
+
+"""
+This function compares two numbers and returns them in increasing order.
+
+Fill in the blanks, so the print statement displays the result of the function
+call in order.
+Hint: if a function returns multiple values, don't forget to store these values
+in multiple variables.
+"""
+
+# This function compares two numbers and returns them in increasing order.
+def order_numbers(number1, number2):
+ if number2 > number1:
+ return number1, number2
+ else:
+ return number2, number1
+
+# Fill in the blanks so the print statement displays the result of the function call.
+smaller, bigger = order_numbers(100, 99)
+smaller2, bigger2 = order_numbers(10, 19)
+print(smaller, bigger)
+print(smaller2, bigger2)
+print(order_numbers(55, 16))
+print("")
+
+
+
+"""
+Let's revisit our lucky_number function. We want to change it, so that instead of printing the message, it returns the message. This way, the calling line can print the message, or do something else with it if needed. Fill in the blanks to complete the code to make it work.
+"""
+
+def lucky_number(name):
+ number = len(name) * 9
+ message = "Hello " + name + ". Your lucky number is " + str(number)
+ return message
+
+print(lucky_number("Kay"))
+print(lucky_number("Cameron"))
+print("")
diff --git a/Coursera_GoogleITAutomationwithPython/Quiz_WhileLoops.py b/Coursera_GoogleITAutomationwithPython/Quiz_WhileLoops.py
new file mode 100644
index 0000000..33dcabb
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/Quiz_WhileLoops.py
@@ -0,0 +1,195 @@
+#!/usr/bin/env python3
+
+"""
+What are while loops in Python?
+
+While loops let the computer execute a set of instructions while a condition is true.
+
+"""
+
+
+
+"""
+Fill in the blanks to make the print_prime_factors function print all the prime factors
+of a number.
+A prime factor is a number that is prime and divides another without a remainder.
+
+def print_prime_factors(number):
+ # Start with two, which is the first prime
+ factor = ___
+ # Keep going until the factor is larger than the number
+ while factor <= number:
+ # Check if factor is a divisor of number
+ if number % factor == ___:
+ # If it is, print it and divide the original number
+ print(factor)
+ number = number / factor
+ else:
+ # If it's not, increment the factor by one
+ ___
+ return "Done"
+
+print_prime_factors(100)
+# Should print 2,2,5,5
+# DO NOT DELETE THIS COMMENT
+"""
+
+def print_prime_factors(number):
+ # Start with two, which is the first prime
+ factor = 2
+ # Keep going until the factor is larger than the number
+ while factor <= number:
+ # Check if factor is a divisor of number
+ if number % factor == 0:
+ # If it is, print it and divide the original number
+ print(factor)
+ number = number / factor
+ else:
+ # If it's not, increment the factor by one
+ factor += 1
+ return "Done"
+
+
+print_prime_factors(100)
+# Should print 2,2,5,5
+# DO NOT DELETE THIS COMMENT
+print("")
+
+
+
+"""
+The following code can lead to an infinite loop. Fix the code so that it can finish
+successfully for all numbers.
+Note: Try running your function with the number 0 as the input, and see what you get!
+
+def is_power_of_two(n):
+ # Check if the number can be divided by two without a remainder
+ while n % 2 == 0:
+ n = n / 2
+ # If after dividing by two the number is 1, it's a power of two
+ if n == 1:
+ return True
+ return False
+
+
+print(is_power_of_two(0)) # Should be False
+print(is_power_of_two(1)) # Should be True
+print(is_power_of_two(8)) # Should be True
+print(is_power_of_two(9)) # Should be False
+"""
+
+def is_power_of_two(n):
+ # Check if the number can be divided by two without a remainder.
+ while n % 2 == 0:
+ if n == 0: # Therefore the answer is to add in a 'if' line conition,
+ break # and a 'break' out of the while loop.
+ n = n / 2
+ # If after dividing by two the number is 1, it's a power of two.
+ if n == 1:
+ return True
+ return False
+
+
+print(is_power_of_two(0)) # Should be False
+print(is_power_of_two(1)) # Should be True
+print(is_power_of_two(8)) # Should be True
+print(is_power_of_two(9)) # Should be False
+print("")
+
+
+
+"""
+Fill in the empty function so that it returns the sum of all the divisors of a number,
+without including it. A divisor is a number that divides into another without a remainder.
+
+def sum_divisors(n):
+ sum = 0
+ # Return the sum of all divisors of n, not including n.
+ return sum
+
+print(sum_divisors(0))
+# 0
+print(sum_divisors(3)) # Should sum of 1
+# 1
+print(sum_divisors(36)) # Should sum of 1+2+3+4+6+9+12+18
+# 55
+print(sum_divisors(102)) # Should be sum of 2+3+6+17+34+51
+# 114
+"""
+
+# Note that the solution is not totally correct.
+def sum_divisors(num):
+ add = []
+ sum = 0
+ for i in range(1, num - 1):
+ if num % 1 == 0:
+ add.append(str(i))
+ sum += i
+
+ #return "{}={}".format("+".join(add), sum)
+ return sum
+
+
+print(sum_divisors(0))
+# 0
+print(sum_divisors(3)) # Should sum of 1
+# 1
+print(sum_divisors(36)) # Should sum of 1+2+3+4+6+9+12+18
+# 55
+print(sum_divisors(102)) # Should be sum of 2+3+6+17+34+51
+# 114
+print("")
+
+
+
+"""
+The multiplication_table function prints the results of a number passed to it multiplied
+by 1 through 5. An additional requirement is that the result is not to exceed 25, which
+is done with the 'break' statement. Fill in the blanks to complete the function to satisfy
+these conditions.
+
+def multiplication_table(number):
+ # Initialize the starting point of the multiplication table
+ multiplier = 1
+ # Only want to loop through 5
+ while multiplier <= 5:
+ result = ___
+ # What is the additional condition to exit out of the loop?
+ if ___ :
+ break
+ print(str(number) + "x" + str(multiplier) + "=" + str(result))
+ # Increment the variable for the loop
+ ___ += 1
+
+multiplication_table(3)
+# Should print: 3x1=3 3x2=6 3x3=9 3x4=12 3x5=15
+
+multiplication_table(5)
+# Should print: 5x1=5 5x2=10 5x3=15 5x4=20 5x5=25
+
+multiplication_table(8)
+# Should print: 8x1=8 8x2=16 8x3=24
+"""
+
+def multiplication_table(number):
+ # Initialize the starting point of the multiplication table
+ multiplier = 1
+ # Only want to loop through 5
+ while multiplier <= 5:
+ result = number * multiplier
+ # What is the additional condition to exit out of the loop?
+ if result > 25:
+ break
+ print(str(number) + "x" + str(multiplier) + "=" + str(result))
+ # Increment the variable for the loop
+ multiplier += 1
+
+
+multiplication_table(3)
+# Should print: 3x1=3 3x2=6 3x3=9 3x4=12 3x5=15
+multiplication_table(5)
+# Should print: 5x1=5 5x2=10 5x3=15 5x4=20 5x5=25
+multiplication_table(8)
+# Should print: 8x1=8 8x2=16 8x3=24
+print("")
+
diff --git a/Coursera_GoogleITAutomationwithPython/calculate1.py b/Coursera_GoogleITAutomationwithPython/calculate1.py
new file mode 100644
index 0000000..8f14e1a
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/calculate1.py
@@ -0,0 +1,17 @@
+#!/usr/bin/env python3
+
+"""
+Use Python to calculate (((1+2)*3)/4)^5(((1+2)∗3)/4)^5
+"""
+
+print((((1+2)*3)/4)**5)
+print("")
+
+
+
+"""
+Calculate the Golden ratio
+"""
+
+print((1 + (5**(1/2)))/ 2)
+print("")
diff --git a/Coursera_GoogleITAutomationwithPython/datatype1.py b/Coursera_GoogleITAutomationwithPython/datatype1.py
new file mode 100644
index 0000000..baf0a03
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/datatype1.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+"""
+We have a directory with 5 files in it.
+Each file has a different size: 2048, 4357, 97658, 125, and 8.
+Fill in the blanks to calculate the average file size by having
+Python add all the values for you, and then set the files variable
+to the number of files.
+Finally, output a message saying "The average size is: " followed by
+the resulting number. Remember to use the str() function to convert
+the number into a string.
+"""
+
+total = 2048 + 4357 + 97658 + 125 + 8
+files = 5
+average = total / files
+print("The average size is: " + str(average))
+print("")
diff --git a/Coursera_GoogleITAutomationwithPython/forloop1_range10.py b/Coursera_GoogleITAutomationwithPython/forloop1_range10.py
new file mode 100644
index 0000000..9d4d318
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/forloop1_range10.py
@@ -0,0 +1,6 @@
+#!/usr/bin/env python3
+
+for i in range(10):
+ print(i)
+
+print("")
diff --git a/Coursera_GoogleITAutomationwithPython/forloop2_SumSquares.py b/Coursera_GoogleITAutomationwithPython/forloop2_SumSquares.py
new file mode 100644
index 0000000..419d5f7
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/forloop2_SumSquares.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python3
+
+"""
+Fill in the gaps of the sum_squares function, so that it returns the sum of all the
+squares of numbers between 0 and x (not included). Remember that you can use the
+range(x) function to generate a sequence of numbers from 0 to x (not included).
+
+def square(n):
+ return n*n
+
+def sum_squares(x):
+ sum = 0
+ for n in ___ :
+ sum += ___
+ return ___
+
+
+print(sum_squares(10)) # Should be 285
+"""
+
+def square(n):
+ return n*n
+
+def sum_squares(x):
+ sum = 0
+ for n in range(0, x):
+ sum += square(n)
+ return sum
+
+
+print(sum_squares(10)) # Should be 285
+print("")
+
diff --git a/Coursera_GoogleITAutomationwithPython/forloop3_list.py b/Coursera_GoogleITAutomationwithPython/forloop3_list.py
new file mode 100644
index 0000000..9de5846
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/forloop3_list.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python3
+
+values = [23, 52, 59, 37, 48]
+sum = 0 # Initialize a accumulator var of 'sum'.
+length = 0 # Initialize a accumulator var of 'length'.
+
+for value in values:
+ sum += value
+ length += 1
+
+print("Total sum: " + str(sum) + " - Average: " + str(sum / length))
+print("")
+
+
+
+"""
+Note: A for loop works well when you want to iterate over a sequence of elements.
+"""
diff --git a/Coursera_GoogleITAutomationwithPython/forloop4_factorial.py b/Coursera_GoogleITAutomationwithPython/forloop4_factorial.py
new file mode 100644
index 0000000..3c6ac82
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/forloop4_factorial.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+
+"""
+In math, the factorial of a number is defined as the product of an integer and all the
+integers below it. For example, the factorial of four (4!) is equal to 1*2*3*4=24.
+Fill in the blanks to make the factorial function return the right number.
+
+def factorial(n):
+ result = 1
+ for i in ___:
+ __
+ return result
+
+print(factorial(4)) # should return 24
+print(factorial(5)) # should return 120
+"""
+
+def factorial(n):
+ result = 1
+ for i in range(2, n + 1):
+ result = result * i
+ return result
+
+
+print(factorial(4)) # should return 24
+print(factorial(5)) # should return 120
+print("")
diff --git a/Coursera_GoogleITAutomationwithPython/forloop5_to_celsius.py b/Coursera_GoogleITAutomationwithPython/forloop5_to_celsius.py
new file mode 100644
index 0000000..3cba23b
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/forloop5_to_celsius.py
@@ -0,0 +1,9 @@
+#!/usr/bin/env python3
+
+def to_celsius(x):
+ return (x-32) * 5/9
+
+for x in range(0, 101, 10): # range starts from 0 to 101 so as to stop at 100, at a jump of 10 each.
+ print(x, to_celsius(x))
+
+print("")
diff --git a/Coursera_GoogleITAutomationwithPython/forloop6_nestedforloop1.py b/Coursera_GoogleITAutomationwithPython/forloop6_nestedforloop1.py
new file mode 100644
index 0000000..d526299
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/forloop6_nestedforloop1.py
@@ -0,0 +1,39 @@
+#!/usr/bin/env python3
+
+for left in range(7):
+ for right in range(left, 7):
+ print("[" + str(left) + "|" + str(right) + "]", end=" ")
+ print()
+
+print("")
+
+"""
+Normally, once print has taken the content we passed and written it to the screen, then it
+writes a special character that creates a new line called the newline character.
+If we want print to write something else instead of the newline character, we use
+the end=" " parameter so that print continues for the current iterating loop.
+"""
+
+
+
+"""
+We want to write a script that will output all possible team pairings. For this, the order
+of the names matters because for each game, the first name will be the home team and the
+second name is the away team. Of course, what we don't want to do is have a team playing
+against itself. So what statement do we need to use to avoid that?
+What should the next line be to avoid both variables being printed with the same value?
+
+teams = ['Dragons', 'Wolves', 'Pandas', 'Unicorns']
+
+for home_team in teams:
+ for away_team in teams:
+"""
+
+teams = ['Dragons', 'Wolves', 'Pandas', 'Unicorns']
+
+for home_team in teams:
+ for away_team in teams:
+ if home_team != away_team: # the condition is to ensure the names are different.
+ print("[" + home_team + " vs " + away_team + "]")
+
+print("")
diff --git a/Coursera_GoogleITAutomationwithPython/function8_ifelse.py b/Coursera_GoogleITAutomationwithPython/function8_ifelse.py
new file mode 100644
index 0000000..cae891b
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/function8_ifelse.py
@@ -0,0 +1,19 @@
+#!/usr/bin/env python3
+
+"""
+The function receives a name, then returns a greeting based on whether or not that name
+is "Taylor".
+"""
+
+def greeting(name):
+ if name == "Taylor":
+ return "Welcome back Taylor!"
+ else:
+ return "Hello there, " + name
+
+print(greeting("Taylor"))
+print("")
+
+print(greeting("John"))
+print("")
+
diff --git a/Coursera_GoogleITAutomationwithPython/function9_calStoragesize.py b/Coursera_GoogleITAutomationwithPython/function9_calStoragesize.py
new file mode 100644
index 0000000..43453ec
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/function9_calStoragesize.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python3
+
+"""
+Question 5
+If a filesystem has a block size of 4096 bytes, this means that a file comprised of
+only one byte will still use 4096 bytes of storage. A file made up of 4097 bytes
+will use 4096*2=8192 bytes of storage. Knowing this, can you fill in the gaps in
+the calculate_storage function below, which calculates the total number of bytes
+needed to store a file of a given size?
+"""
+
+def calculate_storage(filesize):
+ block_size = 4096
+
+ # Use floor division (eg. //) to calculate how many blocks are fully occupied.
+ full_blocks = filesize // block_size
+
+ # Use the modulo operator (eg. %) to check whether there's any remainder.
+ partial_block_remainder = filesize % block_size
+
+ # Depending on whether there's a remainder or not, return
+ # the total number of bytes required to allocate enough blocks
+ # to store your data.
+ if partial_block_remainder > 0: # if there is a remainder from modulo in line 18.
+ return block_size * (full_blocks + 1)
+ return full_blocks * block_size
+
+
+print(calculate_storage(1)) # Should be 4096
+print(calculate_storage(4096)) # Should be 4096
+print(calculate_storage(4097)) # Should be 8192
+print(calculate_storage(6000)) # Should be 8192
+print("")
diff --git a/Coursera_GoogleITAutomationwithPython/functions1.py b/Coursera_GoogleITAutomationwithPython/functions1.py
new file mode 100644
index 0000000..6b46fa5
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/functions1.py
@@ -0,0 +1,20 @@
+#!/usr/bin/env python3
+
+def greeting(name):
+ print("Welcome, " + name)
+
+
+greeting("John")
+print("")
+
+
+
+def greeting2(name2, department):
+ print("Welcome, " + name2)
+ print("You are part of " + department + " department")
+ print("")
+
+
+greeting2("Joey", "Account")
+print("")
+
diff --git a/Coursera_GoogleITAutomationwithPython/functions2_returnValue.py b/Coursera_GoogleITAutomationwithPython/functions2_returnValue.py
new file mode 100644
index 0000000..e291385
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/functions2_returnValue.py
@@ -0,0 +1,50 @@
+#!/usr/bin/env python3
+
+def area_triangle(base, height):
+ return base * height / 2
+
+
+base = float(input("Enter base in cm: "))
+height= float(input("Enter height in cm: "))
+
+
+# Func call and assign returned value to var 'Ans'.
+Ans = area_triangle(base, height)
+print(Ans)
+print("")
+
+
+
+"""
+Use the get_seconds function to work out the amount of seconds in 2 hours and
+30 minutes, then add this number to the amount of seconds in 45 minutes and
+15 seconds. Then print the result.
+"""
+
+def get_seconds(hours, minutes, seconds):
+ return 3600*hours + 60*minutes + seconds
+
+amount_a = get_seconds(2, 30, 0)
+amount_b = get_seconds(0, 45, 15)
+result = amount_a + amount_b
+print(result)
+print("")
+
+
+
+"""
+Convert total given seconds back into hours, mins and seconds.
+// - this is a floor division operator.
+It divides a number and takes only the integer but not the remainder.
+"""
+
+def convert_seconds(seconds):
+ hours = seconds // 3600 # calc how many hrs in a given amount of secs, because 1 hr equals to 3600 secs.
+ minutes = (seconds - hours * 3600) // 60 # calc how many mins are left after subtracting the hrs.
+ remaining_seconds = seconds - hours * 3600 - minutes * 60 # calc how many secs remain after subtracting mins.
+ return hours, minutes, remaining_seconds
+
+
+hours, minutes, seconds = convert_seconds(5000)
+print(hours, minutes, seconds)
+print("")
diff --git a/Coursera_GoogleITAutomationwithPython/functions2_totalSecs.py b/Coursera_GoogleITAutomationwithPython/functions2_totalSecs.py
new file mode 100644
index 0000000..93780bd
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/functions2_totalSecs.py
@@ -0,0 +1,16 @@
+#!/usr/bin/env python3
+
+"""
+Flesh out the body of the print_seconds function so that it prints the total
+amount of seconds given the hours, minutes, and seconds function parameters.
+Remember that there are 3600 seconds in an hour and 60 seconds in a minute.
+"""
+
+def print_seconds(hours, minutes, seconds):
+ print((3600 * hours) + (60 * minutes) + seconds)
+
+
+# Func call to print out the total number of secs with given 1 hr, 2 mins and 3 secs.
+print_seconds(1, 2, 3)
+print("")
+
diff --git a/Coursera_GoogleITAutomationwithPython/functions3_len.py b/Coursera_GoogleITAutomationwithPython/functions3_len.py
new file mode 100644
index 0000000..e12c293
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/functions3_len.py
@@ -0,0 +1,10 @@
+#!/bin/env/python3
+
+def lucky_number(name):
+ number = len(name) * 9
+ print("Hello " + name + ". Your lucky number is " + str(number))
+
+
+lucky_number("Kay")
+lucky_number("Cameron")
+print("")
diff --git a/Coursera_GoogleITAutomationwithPython/functions4_MonthDays.py b/Coursera_GoogleITAutomationwithPython/functions4_MonthDays.py
new file mode 100644
index 0000000..d731235
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/functions4_MonthDays.py
@@ -0,0 +1,25 @@
+#!/usr/bin/env python3
+
+"""
+In this code, identify the repeated pattern and replace it with a function called
+month_days, that receives the name of the month and the number of days in that
+month as parameters. Adapt the rest of the code so that the result is the same.
+Confirm your results by making a function call with the correct parameters for
+both months listed.
+"""
+
+# REPLACE THIS STARTER CODE WITH YOUR FUNCTION
+june_days = 30
+print("June has " + str(june_days) + " days.")
+july_days = 31
+print("July has " + str(july_days) + " days.")
+print("")
+
+
+def month_days(month, days):
+ print(month + " has " + str(days) + " days.")
+
+
+month_days("June", 30)
+month_days("July", 31)
+print("")
diff --git a/Coursera_GoogleITAutomationwithPython/functions5_areaRect.py b/Coursera_GoogleITAutomationwithPython/functions5_areaRect.py
new file mode 100644
index 0000000..23d9255
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/functions5_areaRect.py
@@ -0,0 +1,9 @@
+#!/usr/bin/env python3
+
+def rectangle_area(base, height):
+ area = base*height # the area is base*height
+ print("The area is " + str(area))
+
+
+rectangle_area(5, 6)
+print("")
diff --git a/Coursera_GoogleITAutomationwithPython/functions6_comparison_if.py b/Coursera_GoogleITAutomationwithPython/functions6_comparison_if.py
new file mode 100644
index 0000000..788b44d
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/functions6_comparison_if.py
@@ -0,0 +1,15 @@
+#!/usr/bin/env python3
+
+"""
+The is_positive function should return True if the number received is positive, otherwise
+it returns None. Can you fill in the gaps to make that happen?
+Remember that positive numbers are those bigger than zero.
+"""
+
+def is_positive(number):
+ if number >= 1:
+ return True
+
+
+print(is_positive(0))
+print("")
diff --git a/Coursera_GoogleITAutomationwithPython/functions7_comparison_elif.py b/Coursera_GoogleITAutomationwithPython/functions7_comparison_elif.py
new file mode 100644
index 0000000..1f51389
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/functions7_comparison_elif.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python3
+
+def hint_username(username):
+ if len(username) < 3:
+ print("Invalid username. Must be at least 3 characters long.")
+ elif len(username) > 15:
+ print("Invalid username. Must not be more than 15 characters long.")
+ else:
+ print("Valid username.")
+
+
+print(hint_username("Johny Winter Hates Jazz"))
+print("")
+
+print(hint_username("Johny Depp"))
+print("")
+
+
+
+"""
+The number_group function should return "Positive" if the number received is positive, "Negative" if it's negative, and "Zero" if it's 0.
+"""
+
+def number_group(number):
+ if number > 1:
+ return "Positive"
+ elif number == 0:
+ return "Zero"
+ else:
+ return "Negative"
+
+
+print(number_group(4))
+print("")
+
+print(number_group(0))
+print("")
diff --git a/Coursera_GoogleITAutomationwithPython/if_elif_else.py b/Coursera_GoogleITAutomationwithPython/if_elif_else.py
new file mode 100644
index 0000000..1de6db7
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/if_elif_else.py
@@ -0,0 +1,17 @@
+#!/usr/bin/env python3
+
+"""
+What’s the output of this code if number equals 10?
+"""
+
+number = int(input("Enter a number: "))
+
+if number > 11:
+ print(0)
+elif number != 10:
+ print(1)
+elif number >= 20 or number < 12:
+ print(2)
+else:
+ print(3)
+
\ No newline at end of file
diff --git a/Coursera_GoogleITAutomationwithPython/list1.py b/Coursera_GoogleITAutomationwithPython/list1.py
new file mode 100644
index 0000000..a2ba161
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/list1.py
@@ -0,0 +1,9 @@
+#!/usr/bin/env python3
+
+friends = ["Taylor", "Alex", "Pat", "Eli"]
+print(friends)
+
+for person in friends:
+ print("Hi " + person)
+
+print("")
diff --git a/Coursera_GoogleITAutomationwithPython/var1.py b/Coursera_GoogleITAutomationwithPython/var1.py
new file mode 100644
index 0000000..b6ab3d0
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/var1.py
@@ -0,0 +1,13 @@
+#!/usr/bin/env python3
+
+"""
+Calculate the area of a triangle of base 5, height 3 and output the result.
+Reminder: the area of a triangle is (base*height)/2.
+"""
+
+base = 5
+height = 3
+area = (base * height)/2
+
+print(area)
+print("")
diff --git a/Coursera_GoogleITAutomationwithPython/whileloop1.py b/Coursera_GoogleITAutomationwithPython/whileloop1.py
new file mode 100644
index 0000000..7a470d1
--- /dev/null
+++ b/Coursera_GoogleITAutomationwithPython/whileloop1.py
@@ -0,0 +1,78 @@
+#!/usr/bin/env python3
+
+x = 0
+while x < 5:
+ print("Not there yet, x = " + str(x))
+ x += 1
+
+#print(x)
+print("x = " + str(x) + ", so we stop here.")
+print("")
+
+
+def attempts(n):
+ x = 1
+ while x <= n:
+ print("Attempts " + str(x))
+ x += 1
+
+ print("Done")
+
+
+attempts(5)
+print("")
+
+
+
+"""
+In this code, there's an initialization problem that's causing our function to behave
+incorrectly. Can you find the problem and fix it?
+"""
+
+def count_down(start_number):
+ current = start_number # Therefore answer is 'current = start_number'.
+ while (current > 0):
+ print(current)
+ current -= 1
+ print("Zero!")
+
+
+count_down(4)
+print("")
+"""
+Note: Therefore whenever you're writing a loop, check that you're initializing all the
+variables you want to use before you use them.
+"""
+
+
+
+"""
+The following code causes an infinite loop.
+Can you figure out what’s missing and how to fix it?
+
+def print_range(start, end):
+ # Loop through the numbers from start to end
+ n = start
+ while n <= end:
+ print(n)
+
+print_range(1, 5) # Should print 1 2 3 4 5 (each number on its own line)
+"""
+
+def print_range(start, end):
+ # Loop through the numbers from start to end
+ n = start
+ while n <= end:
+ print(n)
+ n += 1 # Therefore the answer is to include this line to increase the accumulator
+ # until 'n' reaches lesser or equal to the value of the second param (end).
+
+
+print_range(1, 5) # Should print 1 2 3 4 5 (each number on its own line)
+print("")
+
+
+
+"""
+Note: A while loop is great for performing an action over and over until a condition has changed.
+"""
diff --git a/Coursera_Python3ProgAccessWebData/.DS_Store b/Coursera_Python3ProgAccessWebData/.DS_Store
new file mode 100644
index 0000000..5552d47
Binary files /dev/null and b/Coursera_Python3ProgAccessWebData/.DS_Store differ
diff --git a/Coursera_Python3ProgAccessWebData/1_2021-02-19_13-58-50.png b/Coursera_Python3ProgAccessWebData/1_2021-02-19_13-58-50.png
new file mode 100644
index 0000000..9a27de6
Binary files /dev/null and b/Coursera_Python3ProgAccessWebData/1_2021-02-19_13-58-50.png differ
diff --git a/Coursera_Python3ProgAccessWebData/2021-02-19_13-58-50.png b/Coursera_Python3ProgAccessWebData/2021-02-19_13-58-50.png
new file mode 100644
index 0000000..0fecf7d
Binary files /dev/null and b/Coursera_Python3ProgAccessWebData/2021-02-19_13-58-50.png differ
diff --git a/Coursera_Python3ProgAccessWebData/2_2021-02-19_14-02-07.png b/Coursera_Python3ProgAccessWebData/2_2021-02-19_14-02-07.png
new file mode 100644
index 0000000..b992c92
Binary files /dev/null and b/Coursera_Python3ProgAccessWebData/2_2021-02-19_14-02-07.png differ
diff --git a/Coursera_Python3ProgAccessWebData/Assignment10_sqlite/geodata.sqlite b/Coursera_Python3ProgAccessWebData/Assignment10_sqlite/geodata.sqlite
new file mode 100644
index 0000000..cbb9c79
Binary files /dev/null and b/Coursera_Python3ProgAccessWebData/Assignment10_sqlite/geodata.sqlite differ
diff --git a/Coursera_Python3ProgAccessWebData/Assignment10_sqlite/roster.py b/Coursera_Python3ProgAccessWebData/Assignment10_sqlite/roster.py
new file mode 100644
index 0000000..0574945
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment10_sqlite/roster.py
@@ -0,0 +1,101 @@
+#!/usr/bin/env python3
+
+"""
+Many Students in Many Courses.
+
+Instructions:
+This application will read roster data in JSON format, parse the file, and then produce an
+SQLite database that contains a User table, Course table, and Member table and then populate the
+tables from the data file in 'roster_data.json'.
+"""
+
+
+import json
+import sqlite3
+
+conn = sqlite3.connect('rosterdb.sqlite')
+cur = conn.cursor()
+
+# Do some database tables setup.
+cur.executescript('''
+DROP TABLE IF EXISTS User;
+DROP TABLE IF EXISTS Course;
+DROP TABLE IF EXISTS Member;
+
+CREATE TABLE User (
+ id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
+ name TEXT UNIQUE
+);
+
+CREATE TABLE Course (
+ id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
+ title TEXT UNIQUE
+);
+
+CREATE TABLE Member (
+ user_id INTEGER,
+ course_id INTEGER,
+ role INTEGER,
+ PRIMARY KEY (user_id, course_id)
+)
+''')
+
+fname = input('Enter file name: ')
+if len(fname) < 1: # This is to assume that the json file is already
+ fname = 'roster_data.json' # located in the same folder as the
+ # *.py application file.
+
+# A few sample line of the JSON file below.
+#[
+# [
+# "Eisha",
+# "si110",
+# 1
+# ],
+
+str_data = open(fname).read()
+json_data = json.loads(str_data)
+
+for entry in json_data:
+
+ name = entry[0]
+ title = entry[1]
+ role = entry[2]
+
+ print((name, title, role))
+
+ cur.execute('''INSERT OR IGNORE INTO User (name)
+ VALUES ( ? )''', ( name, ) )
+ cur.execute('SELECT id FROM User WHERE name = ? ', (name, ))
+ user_id = cur.fetchone()[0]
+
+ cur.execute('''INSERT OR IGNORE INTO Course (title)
+ VALUES ( ? )''', ( title, ) )
+ cur.execute('SELECT id FROM Course WHERE title = ? ', (title, ))
+ course_id = cur.fetchone()[0]
+
+ cur.execute('''INSERT OR REPLACE INTO Member
+ (user_id, course_id, role) VALUES ( ?, ?, ? )''',
+ ( user_id, course_id, role) )
+
+ conn.commit()
+
+print("")
+
+
+"""
+Once you have made the necessary changes to the program and it has been run successfully reading
+the above JSON data, run the following SQL command:
+
+sqlstr='SELECT User.name,Course.title, Member.role FROM User JOIN Member JOIN Course ON User.id = Member.user_id AND Member.course_id = Course.id ORDER BY User.name DESC, Course.title DESC, Member.role DESC LIMIT 2'
+
+The output should look as follows:
+Zoe|si206|0
+Zara|si110|0
+
+Once that query gives the correct data, run this query:
+
+sqlstr='SELECT "XYZZY" || hex(User.name || Course.title || Member.role ) AS X FROM User JOIN Member JOIN Course ON User.id = Member.user_id AND Member.course_id = Course.id ORDER BY X LIMIT 1'
+
+You should get one row with a string that looks like: XYZZY53656C696E613333.
+"""
diff --git a/Coursera_Python3ProgAccessWebData/Assignment10_sqlite/roster_data.json b/Coursera_Python3ProgAccessWebData/Assignment10_sqlite/roster_data.json
new file mode 100644
index 0000000..7af0ffb
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment10_sqlite/roster_data.json
@@ -0,0 +1,2028 @@
+[
+ [
+ "Eisha",
+ "si110",
+ 1
+ ],
+ [
+ "Ishbel",
+ "si110",
+ 0
+ ],
+ [
+ "Hamad",
+ "si110",
+ 0
+ ],
+ [
+ "Zara",
+ "si110",
+ 0
+ ],
+ [
+ "Shaiza",
+ "si110",
+ 0
+ ],
+ [
+ "Kiern",
+ "si110",
+ 0
+ ],
+ [
+ "Callia",
+ "si110",
+ 0
+ ],
+ [
+ "Kendall",
+ "si110",
+ 0
+ ],
+ [
+ "Susan",
+ "si110",
+ 0
+ ],
+ [
+ "Awwal",
+ "si110",
+ 0
+ ],
+ [
+ "Iiona",
+ "si110",
+ 0
+ ],
+ [
+ "Pavit",
+ "si110",
+ 0
+ ],
+ [
+ "Aiesha",
+ "si110",
+ 0
+ ],
+ [
+ "Ivy",
+ "si110",
+ 0
+ ],
+ [
+ "Danya",
+ "si110",
+ 0
+ ],
+ [
+ "Habeeb",
+ "si110",
+ 0
+ ],
+ [
+ "Praise",
+ "si110",
+ 0
+ ],
+ [
+ "Makala",
+ "si110",
+ 0
+ ],
+ [
+ "Oryn",
+ "si110",
+ 0
+ ],
+ [
+ "Ayat",
+ "si110",
+ 0
+ ],
+ [
+ "Denton",
+ "si110",
+ 0
+ ],
+ [
+ "Lucee",
+ "si110",
+ 0
+ ],
+ [
+ "Uzair",
+ "si110",
+ 0
+ ],
+ [
+ "Kristofer",
+ "si110",
+ 0
+ ],
+ [
+ "Logann",
+ "si110",
+ 0
+ ],
+ [
+ "Shazil",
+ "si110",
+ 0
+ ],
+ [
+ "Arihant",
+ "si110",
+ 0
+ ],
+ [
+ "Casey",
+ "si110",
+ 0
+ ],
+ [
+ "Robert",
+ "si110",
+ 0
+ ],
+ [
+ "Dermot",
+ "si110",
+ 0
+ ],
+ [
+ "Leighton",
+ "si110",
+ 0
+ ],
+ [
+ "Moyes",
+ "si110",
+ 0
+ ],
+ [
+ "Brydon",
+ "si110",
+ 0
+ ],
+ [
+ "Oakley",
+ "si110",
+ 0
+ ],
+ [
+ "Abiola",
+ "si110",
+ 0
+ ],
+ [
+ "Leevi",
+ "si110",
+ 0
+ ],
+ [
+ "Jayke",
+ "si110",
+ 0
+ ],
+ [
+ "Lucie",
+ "si110",
+ 0
+ ],
+ [
+ "Cailie",
+ "si110",
+ 0
+ ],
+ [
+ "Keayn",
+ "si110",
+ 0
+ ],
+ [
+ "Wayne",
+ "si110",
+ 0
+ ],
+ [
+ "Eimantas",
+ "si110",
+ 0
+ ],
+ [
+ "Mitchell",
+ "si110",
+ 0
+ ],
+ [
+ "Antonina",
+ "si110",
+ 0
+ ],
+ [
+ "Sukhi",
+ "si110",
+ 0
+ ],
+ [
+ "Aidan",
+ "si110",
+ 0
+ ],
+ [
+ "Keera",
+ "si110",
+ 0
+ ],
+ [
+ "Samar",
+ "si110",
+ 0
+ ],
+ [
+ "Rovia",
+ "si110",
+ 0
+ ],
+ [
+ "Jock",
+ "si110",
+ 0
+ ],
+ [
+ "Lasse",
+ "si110",
+ 0
+ ],
+ [
+ "Primrose",
+ "si106",
+ 1
+ ],
+ [
+ "Alyse",
+ "si106",
+ 0
+ ],
+ [
+ "Ramsey",
+ "si106",
+ 0
+ ],
+ [
+ "Baron",
+ "si106",
+ 0
+ ],
+ [
+ "Kaylen",
+ "si106",
+ 0
+ ],
+ [
+ "Bryanna",
+ "si106",
+ 0
+ ],
+ [
+ "Delilah",
+ "si106",
+ 0
+ ],
+ [
+ "Isabelle",
+ "si106",
+ 0
+ ],
+ [
+ "Shannyn",
+ "si106",
+ 0
+ ],
+ [
+ "Grainne",
+ "si106",
+ 0
+ ],
+ [
+ "Odynn",
+ "si106",
+ 0
+ ],
+ [
+ "Marisa",
+ "si106",
+ 0
+ ],
+ [
+ "Kahlia",
+ "si106",
+ 0
+ ],
+ [
+ "Maxx",
+ "si106",
+ 0
+ ],
+ [
+ "Rosa",
+ "si106",
+ 0
+ ],
+ [
+ "Fraya",
+ "si106",
+ 0
+ ],
+ [
+ "Deena",
+ "si106",
+ 0
+ ],
+ [
+ "Samira",
+ "si106",
+ 0
+ ],
+ [
+ "Aamna",
+ "si106",
+ 0
+ ],
+ [
+ "Brunon",
+ "si106",
+ 0
+ ],
+ [
+ "Elleanne",
+ "si106",
+ 0
+ ],
+ [
+ "Melisa",
+ "si106",
+ 0
+ ],
+ [
+ "Pamindar",
+ "si106",
+ 0
+ ],
+ [
+ "Sadhbh",
+ "si106",
+ 0
+ ],
+ [
+ "Josiah",
+ "si106",
+ 0
+ ],
+ [
+ "Karyss",
+ "si106",
+ 0
+ ],
+ [
+ "Darrie",
+ "si106",
+ 0
+ ],
+ [
+ "Marcelina",
+ "si106",
+ 0
+ ],
+ [
+ "Milo",
+ "si106",
+ 0
+ ],
+ [
+ "Moshy",
+ "si106",
+ 0
+ ],
+ [
+ "Ka",
+ "si106",
+ 0
+ ],
+ [
+ "Jaden",
+ "si106",
+ 0
+ ],
+ [
+ "Lauren",
+ "si106",
+ 0
+ ],
+ [
+ "Konstancja",
+ "si106",
+ 0
+ ],
+ [
+ "Safara",
+ "si106",
+ 0
+ ],
+ [
+ "Lileidh",
+ "si106",
+ 0
+ ],
+ [
+ "Fatima",
+ "si106",
+ 0
+ ],
+ [
+ "Falyn",
+ "si106",
+ 0
+ ],
+ [
+ "Mishkat",
+ "si106",
+ 0
+ ],
+ [
+ "Lachlan",
+ "si106",
+ 0
+ ],
+ [
+ "Fasai",
+ "si106",
+ 0
+ ],
+ [
+ "Keanna",
+ "si106",
+ 0
+ ],
+ [
+ "Cleo",
+ "si106",
+ 0
+ ],
+ [
+ "Freya",
+ "si106",
+ 0
+ ],
+ [
+ "Karen",
+ "si106",
+ 0
+ ],
+ [
+ "Denise",
+ "si106",
+ 0
+ ],
+ [
+ "Shania",
+ "si106",
+ 0
+ ],
+ [
+ "Queenie",
+ "si106",
+ 0
+ ],
+ [
+ "Bendeguz",
+ "si106",
+ 0
+ ],
+ [
+ "Morwena",
+ "si106",
+ 0
+ ],
+ [
+ "Irem",
+ "si106",
+ 0
+ ],
+ [
+ "Howard",
+ "si206",
+ 1
+ ],
+ [
+ "Tylor",
+ "si206",
+ 0
+ ],
+ [
+ "Ayrton",
+ "si206",
+ 0
+ ],
+ [
+ "Aliza",
+ "si206",
+ 0
+ ],
+ [
+ "Faiza",
+ "si206",
+ 0
+ ],
+ [
+ "Lillay",
+ "si206",
+ 0
+ ],
+ [
+ "Louise",
+ "si206",
+ 0
+ ],
+ [
+ "Kelisse",
+ "si206",
+ 0
+ ],
+ [
+ "Vrishin",
+ "si206",
+ 0
+ ],
+ [
+ "Hailie",
+ "si206",
+ 0
+ ],
+ [
+ "Vinay",
+ "si206",
+ 0
+ ],
+ [
+ "Thom",
+ "si206",
+ 0
+ ],
+ [
+ "Adrienne",
+ "si206",
+ 0
+ ],
+ [
+ "Abdurraheem",
+ "si206",
+ 0
+ ],
+ [
+ "Kia",
+ "si206",
+ 0
+ ],
+ [
+ "Mariesha",
+ "si206",
+ 0
+ ],
+ [
+ "Zoe",
+ "si206",
+ 0
+ ],
+ [
+ "Chin",
+ "si206",
+ 0
+ ],
+ [
+ "Sonia",
+ "si206",
+ 0
+ ],
+ [
+ "Tiegan",
+ "si206",
+ 0
+ ],
+ [
+ "Aimi",
+ "si206",
+ 0
+ ],
+ [
+ "Sorcha",
+ "si206",
+ 0
+ ],
+ [
+ "Kaelynn",
+ "si206",
+ 0
+ ],
+ [
+ "Inan",
+ "si206",
+ 0
+ ],
+ [
+ "Safara",
+ "si206",
+ 0
+ ],
+ [
+ "Marcos",
+ "si206",
+ 0
+ ],
+ [
+ "Deonaid",
+ "si206",
+ 0
+ ],
+ [
+ "Tiree",
+ "si206",
+ 0
+ ],
+ [
+ "Maitlind",
+ "si206",
+ 0
+ ],
+ [
+ "Finnen",
+ "si206",
+ 0
+ ],
+ [
+ "Adalaide",
+ "si206",
+ 0
+ ],
+ [
+ "Shivani",
+ "si206",
+ 0
+ ],
+ [
+ "Hijab",
+ "si206",
+ 0
+ ],
+ [
+ "Lileidh",
+ "si206",
+ 0
+ ],
+ [
+ "Domhnall",
+ "si206",
+ 0
+ ],
+ [
+ "Asra",
+ "si206",
+ 0
+ ],
+ [
+ "Wilson",
+ "si206",
+ 0
+ ],
+ [
+ "Shreya",
+ "si206",
+ 0
+ ],
+ [
+ "Safiya",
+ "si206",
+ 0
+ ],
+ [
+ "Kale",
+ "si206",
+ 0
+ ],
+ [
+ "Peaches",
+ "si206",
+ 0
+ ],
+ [
+ "Banan",
+ "si206",
+ 0
+ ],
+ [
+ "Amelie",
+ "si206",
+ 0
+ ],
+ [
+ "Lincon",
+ "si206",
+ 0
+ ],
+ [
+ "Setana",
+ "si206",
+ 0
+ ],
+ [
+ "Izaak",
+ "si206",
+ 0
+ ],
+ [
+ "Darrell",
+ "si206",
+ 0
+ ],
+ [
+ "Kerryn",
+ "si206",
+ 0
+ ],
+ [
+ "Alysa",
+ "si206",
+ 0
+ ],
+ [
+ "Finnan",
+ "si206",
+ 0
+ ],
+ [
+ "Nairne",
+ "si206",
+ 0
+ ],
+ [
+ "Saphyre",
+ "si301",
+ 1
+ ],
+ [
+ "Cian",
+ "si301",
+ 0
+ ],
+ [
+ "Clyde",
+ "si301",
+ 0
+ ],
+ [
+ "Kalum",
+ "si301",
+ 0
+ ],
+ [
+ "Kelice",
+ "si301",
+ 0
+ ],
+ [
+ "Anish",
+ "si301",
+ 0
+ ],
+ [
+ "Lillyanne",
+ "si301",
+ 0
+ ],
+ [
+ "Sweet",
+ "si301",
+ 0
+ ],
+ [
+ "Alison",
+ "si301",
+ 0
+ ],
+ [
+ "Queen",
+ "si301",
+ 0
+ ],
+ [
+ "Sukhman",
+ "si301",
+ 0
+ ],
+ [
+ "Caleb",
+ "si301",
+ 0
+ ],
+ [
+ "Aieecia",
+ "si301",
+ 0
+ ],
+ [
+ "Lauchlan",
+ "si301",
+ 0
+ ],
+ [
+ "Murrun",
+ "si301",
+ 0
+ ],
+ [
+ "Inaara",
+ "si301",
+ 0
+ ],
+ [
+ "Theresa",
+ "si301",
+ 0
+ ],
+ [
+ "Susanne",
+ "si301",
+ 0
+ ],
+ [
+ "Flyn",
+ "si301",
+ 0
+ ],
+ [
+ "Shahed",
+ "si301",
+ 0
+ ],
+ [
+ "Caedan",
+ "si301",
+ 0
+ ],
+ [
+ "Shola",
+ "si301",
+ 0
+ ],
+ [
+ "Aahana",
+ "si301",
+ 0
+ ],
+ [
+ "Stefan",
+ "si301",
+ 0
+ ],
+ [
+ "Jools",
+ "si301",
+ 0
+ ],
+ [
+ "Samanthalee",
+ "si301",
+ 0
+ ],
+ [
+ "Aisa",
+ "si301",
+ 0
+ ],
+ [
+ "Tammi",
+ "si301",
+ 0
+ ],
+ [
+ "Dior",
+ "si301",
+ 0
+ ],
+ [
+ "Skye",
+ "si301",
+ 0
+ ],
+ [
+ "Kathryn",
+ "si301",
+ 0
+ ],
+ [
+ "Ayleigh",
+ "si301",
+ 0
+ ],
+ [
+ "Jill",
+ "si301",
+ 0
+ ],
+ [
+ "Trey",
+ "si301",
+ 0
+ ],
+ [
+ "Catriona",
+ "si301",
+ 0
+ ],
+ [
+ "Evalina",
+ "si301",
+ 0
+ ],
+ [
+ "Nana",
+ "si301",
+ 0
+ ],
+ [
+ "Amrita",
+ "si301",
+ 0
+ ],
+ [
+ "Mcbride",
+ "si301",
+ 0
+ ],
+ [
+ "Leonard",
+ "si301",
+ 0
+ ],
+ [
+ "Faisal",
+ "si301",
+ 0
+ ],
+ [
+ "Jagoda",
+ "si301",
+ 0
+ ],
+ [
+ "Shivani",
+ "si301",
+ 0
+ ],
+ [
+ "Rokas",
+ "si301",
+ 0
+ ],
+ [
+ "Jon",
+ "si301",
+ 0
+ ],
+ [
+ "Meika",
+ "si301",
+ 0
+ ],
+ [
+ "Rheanna",
+ "si301",
+ 0
+ ],
+ [
+ "Isabell",
+ "si301",
+ 0
+ ],
+ [
+ "Scot",
+ "si301",
+ 0
+ ],
+ [
+ "Taddy",
+ "si301",
+ 0
+ ],
+ [
+ "Aaryan",
+ "si310",
+ 1
+ ],
+ [
+ "Che",
+ "si310",
+ 0
+ ],
+ [
+ "Bjorn",
+ "si310",
+ 0
+ ],
+ [
+ "Vasiliki",
+ "si310",
+ 0
+ ],
+ [
+ "Manson",
+ "si310",
+ 0
+ ],
+ [
+ "Elli",
+ "si310",
+ 0
+ ],
+ [
+ "Siannon",
+ "si310",
+ 0
+ ],
+ [
+ "Henry",
+ "si310",
+ 0
+ ],
+ [
+ "Efanam",
+ "si310",
+ 0
+ ],
+ [
+ "Caysey",
+ "si310",
+ 0
+ ],
+ [
+ "Hayleigh",
+ "si310",
+ 0
+ ],
+ [
+ "Uzma",
+ "si310",
+ 0
+ ],
+ [
+ "Estelle",
+ "si310",
+ 0
+ ],
+ [
+ "Eesa",
+ "si310",
+ 0
+ ],
+ [
+ "Shaye",
+ "si310",
+ 0
+ ],
+ [
+ "Mhairade",
+ "si310",
+ 0
+ ],
+ [
+ "Mikey",
+ "si310",
+ 0
+ ],
+ [
+ "Keera",
+ "si310",
+ 0
+ ],
+ [
+ "Hariot",
+ "si310",
+ 0
+ ],
+ [
+ "Cooper",
+ "si310",
+ 0
+ ],
+ [
+ "Sairah",
+ "si310",
+ 0
+ ],
+ [
+ "Aleese",
+ "si310",
+ 0
+ ],
+ [
+ "Jincheng",
+ "si310",
+ 0
+ ],
+ [
+ "Anneliese",
+ "si310",
+ 0
+ ],
+ [
+ "Mounia",
+ "si310",
+ 0
+ ],
+ [
+ "Mikayla",
+ "si310",
+ 0
+ ],
+ [
+ "Domhnall",
+ "si310",
+ 0
+ ],
+ [
+ "Ana",
+ "si310",
+ 0
+ ],
+ [
+ "Mindy",
+ "si310",
+ 0
+ ],
+ [
+ "Kienan",
+ "si334",
+ 1
+ ],
+ [
+ "Eve",
+ "si334",
+ 0
+ ],
+ [
+ "Hillary",
+ "si334",
+ 0
+ ],
+ [
+ "Ida",
+ "si334",
+ 0
+ ],
+ [
+ "Robbi",
+ "si334",
+ 0
+ ],
+ [
+ "Leen",
+ "si334",
+ 0
+ ],
+ [
+ "Tamiem",
+ "si334",
+ 0
+ ],
+ [
+ "Samuela",
+ "si334",
+ 0
+ ],
+ [
+ "Saif",
+ "si334",
+ 0
+ ],
+ [
+ "Maisie",
+ "si334",
+ 0
+ ],
+ [
+ "Kieryn",
+ "si334",
+ 0
+ ],
+ [
+ "Katy",
+ "si334",
+ 0
+ ],
+ [
+ "Cristian",
+ "si334",
+ 0
+ ],
+ [
+ "Orlaigh",
+ "si334",
+ 0
+ ],
+ [
+ "Nathaniel",
+ "si334",
+ 0
+ ],
+ [
+ "Hiro",
+ "si334",
+ 0
+ ],
+ [
+ "Rebekkah",
+ "si334",
+ 0
+ ],
+ [
+ "Brogan",
+ "si334",
+ 0
+ ],
+ [
+ "Inemesit",
+ "si334",
+ 0
+ ],
+ [
+ "Areeba",
+ "si334",
+ 0
+ ],
+ [
+ "Amaarah",
+ "si334",
+ 0
+ ],
+ [
+ "Caitlynn",
+ "si334",
+ 0
+ ],
+ [
+ "Ireoluwa",
+ "si334",
+ 0
+ ],
+ [
+ "Basher",
+ "si334",
+ 0
+ ],
+ [
+ "Abbie",
+ "si334",
+ 0
+ ],
+ [
+ "Karmen",
+ "si334",
+ 0
+ ],
+ [
+ "Gabby",
+ "si334",
+ 0
+ ],
+ [
+ "Mungo",
+ "si363",
+ 1
+ ],
+ [
+ "Ellisha",
+ "si363",
+ 0
+ ],
+ [
+ "Danys",
+ "si363",
+ 0
+ ],
+ [
+ "Sanfur",
+ "si363",
+ 0
+ ],
+ [
+ "Tibet",
+ "si363",
+ 0
+ ],
+ [
+ "Sohan",
+ "si363",
+ 0
+ ],
+ [
+ "Lincoln",
+ "si363",
+ 0
+ ],
+ [
+ "Reilly",
+ "si363",
+ 0
+ ],
+ [
+ "Erika",
+ "si363",
+ 0
+ ],
+ [
+ "Emelye",
+ "si363",
+ 0
+ ],
+ [
+ "Alessio",
+ "si363",
+ 0
+ ],
+ [
+ "Ryan",
+ "si363",
+ 0
+ ],
+ [
+ "Bree",
+ "si363",
+ 0
+ ],
+ [
+ "Charlize",
+ "si363",
+ 0
+ ],
+ [
+ "Jedidiah",
+ "si363",
+ 0
+ ],
+ [
+ "Nagib",
+ "si363",
+ 0
+ ],
+ [
+ "Arda",
+ "si363",
+ 0
+ ],
+ [
+ "Sana",
+ "si363",
+ 0
+ ],
+ [
+ "Wen",
+ "si363",
+ 0
+ ],
+ [
+ "Mehreen",
+ "si364",
+ 1
+ ],
+ [
+ "Hariot",
+ "si364",
+ 0
+ ],
+ [
+ "Kashish",
+ "si364",
+ 0
+ ],
+ [
+ "Orin",
+ "si364",
+ 0
+ ],
+ [
+ "Ryo",
+ "si364",
+ 0
+ ],
+ [
+ "Eamonn",
+ "si364",
+ 0
+ ],
+ [
+ "Bushra",
+ "si364",
+ 0
+ ],
+ [
+ "Aneliese",
+ "si364",
+ 0
+ ],
+ [
+ "Berlin",
+ "si364",
+ 0
+ ],
+ [
+ "Seth",
+ "si364",
+ 0
+ ],
+ [
+ "Alexis",
+ "si364",
+ 0
+ ],
+ [
+ "Sali",
+ "si364",
+ 0
+ ],
+ [
+ "Benji",
+ "si364",
+ 0
+ ],
+ [
+ "Nontando",
+ "si364",
+ 0
+ ],
+ [
+ "Alexei",
+ "si364",
+ 0
+ ],
+ [
+ "Johnpaul",
+ "si364",
+ 0
+ ],
+ [
+ "Meika",
+ "si364",
+ 0
+ ],
+ [
+ "Kym",
+ "si364",
+ 0
+ ],
+ [
+ "Leithen",
+ "si364",
+ 0
+ ],
+ [
+ "Taira",
+ "si364",
+ 0
+ ],
+ [
+ "Chahinez",
+ "si364",
+ 0
+ ],
+ [
+ "Bo",
+ "si364",
+ 0
+ ],
+ [
+ "Doone",
+ "si364",
+ 0
+ ],
+ [
+ "Arabella",
+ "si364",
+ 0
+ ],
+ [
+ "Lucille",
+ "si364",
+ 0
+ ],
+ [
+ "Baileigh",
+ "si364",
+ 0
+ ],
+ [
+ "Evie",
+ "si364",
+ 0
+ ],
+ [
+ "Liona",
+ "si364",
+ 0
+ ],
+ [
+ "Hcen",
+ "si364",
+ 0
+ ],
+ [
+ "Euan",
+ "si364",
+ 0
+ ],
+ [
+ "Karley",
+ "si364",
+ 0
+ ],
+ [
+ "Leela",
+ "si364",
+ 0
+ ],
+ [
+ "Inaaya",
+ "si364",
+ 0
+ ],
+ [
+ "Ikechukwu",
+ "si364",
+ 0
+ ],
+ [
+ "Ksawery",
+ "si364",
+ 0
+ ],
+ [
+ "Jaina",
+ "si364",
+ 0
+ ],
+ [
+ "Sydney",
+ "si422",
+ 1
+ ],
+ [
+ "Kiegan",
+ "si422",
+ 0
+ ],
+ [
+ "Haadiyah",
+ "si422",
+ 0
+ ],
+ [
+ "Rowen",
+ "si422",
+ 0
+ ],
+ [
+ "Arlene",
+ "si422",
+ 0
+ ],
+ [
+ "Kalli",
+ "si422",
+ 0
+ ],
+ [
+ "Gursees",
+ "si422",
+ 0
+ ],
+ [
+ "Azim",
+ "si422",
+ 0
+ ],
+ [
+ "Francisca",
+ "si422",
+ 0
+ ],
+ [
+ "Kendall",
+ "si422",
+ 0
+ ],
+ [
+ "Eisa",
+ "si422",
+ 0
+ ],
+ [
+ "Betane",
+ "si422",
+ 0
+ ],
+ [
+ "Dominika",
+ "si422",
+ 0
+ ],
+ [
+ "Johnathan",
+ "si422",
+ 0
+ ],
+ [
+ "Eidhan",
+ "si422",
+ 0
+ ],
+ [
+ "Jared",
+ "si422",
+ 0
+ ],
+ [
+ "Neo",
+ "si422",
+ 0
+ ],
+ [
+ "Fay",
+ "si422",
+ 0
+ ],
+ [
+ "Ariana",
+ "si422",
+ 0
+ ],
+ [
+ "Broghan",
+ "si422",
+ 0
+ ],
+ [
+ "Charlee",
+ "si422",
+ 0
+ ],
+ [
+ "Dayna",
+ "si422",
+ 0
+ ],
+ [
+ "Shaiza",
+ "si422",
+ 0
+ ],
+ [
+ "Drakeo",
+ "si422",
+ 0
+ ],
+ [
+ "Kalum",
+ "si422",
+ 0
+ ],
+ [
+ "Tal",
+ "si422",
+ 0
+ ],
+ [
+ "Danial",
+ "si422",
+ 0
+ ],
+ [
+ "Harman",
+ "si422",
+ 0
+ ],
+ [
+ "Aoibheann",
+ "si422",
+ 0
+ ],
+ [
+ "Elsie",
+ "si422",
+ 0
+ ],
+ [
+ "Milli",
+ "si422",
+ 0
+ ],
+ [
+ "Adalaide",
+ "si422",
+ 0
+ ],
+ [
+ "Dani",
+ "si422",
+ 0
+ ],
+ [
+ "Caelinn",
+ "si422",
+ 0
+ ],
+ [
+ "Pascoe",
+ "si422",
+ 0
+ ],
+ [
+ "Thomson",
+ "si422",
+ 0
+ ],
+ [
+ "Tigan",
+ "si422",
+ 0
+ ],
+ [
+ "Anum",
+ "si422",
+ 0
+ ],
+ [
+ "Divya",
+ "si422",
+ 0
+ ],
+ [
+ "Antigone",
+ "si422",
+ 0
+ ],
+ [
+ "Alexx",
+ "si422",
+ 0
+ ],
+ [
+ "Mariella",
+ "si422",
+ 0
+ ],
+ [
+ "Blyth",
+ "si422",
+ 0
+ ],
+ [
+ "Phoenix",
+ "si422",
+ 0
+ ],
+ [
+ "Yann",
+ "si422",
+ 0
+ ],
+ [
+ "Lyle",
+ "si422",
+ 0
+ ],
+ [
+ "Latif",
+ "si422",
+ 0
+ ],
+ [
+ "Hector",
+ "si422",
+ 0
+ ],
+ [
+ "Sonni",
+ "si422",
+ 0
+ ],
+ [
+ "Dhyia",
+ "si422",
+ 0
+ ],
+ [
+ "Yorgos",
+ "si422",
+ 0
+ ],
+ [
+ "Calib",
+ "si422",
+ 0
+ ],
+ [
+ "Kalie",
+ "si430",
+ 1
+ ],
+ [
+ "Ismail",
+ "si430",
+ 0
+ ],
+ [
+ "Dennan",
+ "si430",
+ 0
+ ],
+ [
+ "Shi",
+ "si430",
+ 0
+ ],
+ [
+ "Ismaeel",
+ "si430",
+ 0
+ ],
+ [
+ "Deecan",
+ "si430",
+ 0
+ ],
+ [
+ "Kasha",
+ "si430",
+ 0
+ ],
+ [
+ "Raisha",
+ "si430",
+ 0
+ ],
+ [
+ "Keivlin",
+ "si430",
+ 0
+ ],
+ [
+ "Kieya",
+ "si430",
+ 0
+ ],
+ [
+ "Dougal",
+ "si430",
+ 0
+ ],
+ [
+ "Shannah",
+ "si430",
+ 0
+ ],
+ [
+ "Carlotta",
+ "si430",
+ 0
+ ],
+ [
+ "Hira",
+ "si430",
+ 0
+ ],
+ [
+ "Parya",
+ "si430",
+ 0
+ ],
+ [
+ "Dayem",
+ "si430",
+ 0
+ ],
+ [
+ "Eirinn",
+ "si430",
+ 0
+ ],
+ [
+ "Kaelyn",
+ "si430",
+ 0
+ ],
+ [
+ "Kinsey",
+ "si430",
+ 0
+ ],
+ [
+ "Caleigh",
+ "si430",
+ 0
+ ],
+ [
+ "Mei",
+ "si430",
+ 0
+ ],
+ [
+ "Nico",
+ "si430",
+ 0
+ ],
+ [
+ "Ayman",
+ "si430",
+ 0
+ ],
+ [
+ "Nuwaira",
+ "si430",
+ 0
+ ],
+ [
+ "Mueez",
+ "si430",
+ 0
+ ],
+ [
+ "Darcie",
+ "si430",
+ 0
+ ],
+ [
+ "Aysha",
+ "si430",
+ 0
+ ],
+ [
+ "Susan",
+ "si430",
+ 0
+ ],
+ [
+ "Taiba",
+ "si430",
+ 0
+ ],
+ [
+ "Courtneylee",
+ "si430",
+ 0
+ ],
+ [
+ "Trudie",
+ "si430",
+ 0
+ ],
+ [
+ "Charley",
+ "si430",
+ 0
+ ],
+ [
+ "Kyde",
+ "si430",
+ 0
+ ],
+ [
+ "Teresa",
+ "si430",
+ 0
+ ],
+ [
+ "Marian",
+ "si430",
+ 0
+ ],
+ [
+ "Kajetan",
+ "si430",
+ 0
+ ],
+ [
+ "Kajally",
+ "si430",
+ 0
+ ],
+ [
+ "Elyan",
+ "si430",
+ 0
+ ],
+ [
+ "Samarjit",
+ "si430",
+ 0
+ ]
+]
+
diff --git a/Coursera_Python3ProgAccessWebData/Assignment10_sqlite/rosterdb.sqbpro b/Coursera_Python3ProgAccessWebData/Assignment10_sqlite/rosterdb.sqbpro
new file mode 100644
index 0000000..fb13b1c
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment10_sqlite/rosterdb.sqbpro
@@ -0,0 +1 @@
+
diff --git a/Coursera_Python3ProgAccessWebData/Assignment10_sqlite/rosterdb.sqlite b/Coursera_Python3ProgAccessWebData/Assignment10_sqlite/rosterdb.sqlite
new file mode 100644
index 0000000..7b14f16
Binary files /dev/null and b/Coursera_Python3ProgAccessWebData/Assignment10_sqlite/rosterdb.sqlite differ
diff --git a/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/.DS_Store b/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/.DS_Store
new file mode 100644
index 0000000..7f916e5
Binary files /dev/null and b/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/.DS_Store differ
diff --git a/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata.zip b/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata.zip
new file mode 100644
index 0000000..35c0d3d
Binary files /dev/null and b/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata.zip differ
diff --git a/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/README.txt b/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/README.txt
new file mode 100644
index 0000000..2978184
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/README.txt
@@ -0,0 +1,144 @@
+Using the Google Places API with a Database and
+Visualizing Data on Google Map
+
+In this project, we are using the Google geocoding API
+to clean up some user-entered geographic locations of
+university names and then placing the data on a Google
+Map.
+
+Note: Windows has difficulty in displaying UTF-8 characters
+in the console so for each command window you open, you may need
+to type the following command before running this code:
+
+ chcp 65001
+
+http://stackoverflow.com/questions/388490/unicode-characters-in-windows-command-line-how
+
+
+You should install the SQLite browser to view and modify
+the databases from:
+
+http://sqlitebrowser.org/
+
+The first problem to solve is that the Google geocoding
+API is rate limited to a fixed number of requests per day.
+So if you have a lot of data you might need to stop and
+restart the lookup process several times. So we break
+the problem into two phases.
+
+In the first phase we take our input data in the file
+(where.data) and read it one line at a time, and retrieve the
+geocoded response and store it in a database (geodata.sqlite).
+Before we use the geocoding API, we simply check to see if
+we already have the data for that particular line of input.
+
+You can re-start the process at any time by removing the file
+geodata.sqlite
+
+Run the geoload.py program. This program will read the input
+lines in where.data and for each line check to see if it is already
+in the database and if we don't have the data for the location,
+call the geocoding API to retrieve the data and store it in
+the database.
+
+As of December 2016, the Google Geocoding APIs changed dramatically.
+They moved some functionality that we use from the Geocoding API
+into the Places API. Also all the Google Geo-related APIs require an
+API key. To complete this assignment without a Google account,
+without an API key, or from a country that blocks
+access to Google, you can use a subset of that data which is
+available at:
+
+http://py4e-data.dr-chuck.net/json
+
+To use this, simply leave the api_key set to False in
+geoload.py.
+
+This URL only has a subset of the data but it has no rate limit so
+it is good for testing.
+
+If you want to try this with the API key, follow the
+instructions at:
+
+https://developers.google.com/maps/documentation/geocoding/intro
+
+and put the API key in the code.
+
+Here is a sample run after there is already some data in the
+database:
+
+Mac: python3 geoload.py
+Win: geoload.py
+
+Found in database Northeastern University
+
+Found in database University of Hong Kong, Illinois Institute of Technology, Bradley University
+
+Found in database Technion
+
+Found in database Viswakarma Institute, Pune, India
+
+Found in database UMD
+
+Found in database Tufts University
+
+Resolving Monash University
+Retrieving http://py4e-data.dr-chuck.net/json?key=42&address=Monash+University
+Retrieved 2063 characters { "results" : [
+{u'status': u'OK', u'results': ... }
+
+Resolving Kokshetau Institute of Economics and Management
+Retrieving http://py4e-data.dr-chuck.net/json?key=42&address=Kokshetau+Institute+of+Economics+and+Management
+Retrieved 1749 characters { "results" : [
+{u'status': u'OK', u'results': ... }
+
+The first five locations are already in the database and so they
+are skipped. The program scans to the point where it finds un-retrieved
+locations and starts retrieving them.
+
+The geoload.py can be stopped at any time, and there is a counter
+that you can use to limit the number of calls to the geocoding
+API for each run.
+
+Once you have some data loaded into geodata.sqlite, you can
+visualize the data using the (geodump.py) program. This
+program reads the database and writes tile file (where.js)
+with the location, latitude, and longitude in the form of
+executable JavaScript code.
+
+A run of the geodump.py program is as follows:
+
+Mac: python3 geodump.py
+Win: geodump.py
+
+Northeastern University, 360 Huntington Avenue, Boston, MA 02115, USA 42.3396998 -71.08975
+Bradley University, 1501 West Bradley Avenue, Peoria, IL 61625, USA 40.6963857 -89.6160811
+...
+Technion, Viazman 87, Kesalsaba, 32000, Israel 32.7775 35.0216667
+Monash University Clayton Campus, Wellington Road, Clayton VIC 3800, Australia -37.9152113 145.134682
+Kokshetau, Kazakhstan 53.2833333 69.3833333
+...
+12 records written to where.js
+Open where.html to view the data in a browser
+
+The file (where.html) consists of HTML and JavaScript to visualize
+a Google Map. It reads the most recent data in where.js to get
+the data to be visualized. Here is the format of the where.js file:
+
+myData = [
+[42.3396998,-71.08975, 'Northeastern University, 360 Huntington Avenue, Boston, MA 02115, USA'],
+[40.6963857,-89.6160811, 'Bradley University, 1501 West Bradley Avenue, Peoria, IL 61625, USA'],
+[32.7775,35.0216667, 'Technion, Viazman 87, Kesalsaba, 32000, Israel'],
+ ...
+];
+
+This is a JavaScript list of lists. The syntax for JavaScript
+list constants is very similar to Python so the syntax should
+be familiar to you.
+
+Simply open where.html in a browser to see the locations. You
+can hover over each map pin to find the location that the
+geocoding API returned for the user-entered input. If you
+cannot see any data when you open the where.html file, you might
+want to check the JavaScript or developer console for your browser.
+
diff --git a/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/geodata.sqlite b/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/geodata.sqlite
new file mode 100644
index 0000000..4b5299d
Binary files /dev/null and b/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/geodata.sqlite differ
diff --git a/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/geodump.py b/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/geodump.py
new file mode 100644
index 0000000..5c5dcaa
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/geodump.py
@@ -0,0 +1,47 @@
+#!/usr/bin/env python3
+
+import sqlite3
+import json
+import codecs
+
+
+
+conn = sqlite3.connect('geodata.sqlite')
+cur = conn.cursor()
+
+cur.execute('SELECT * FROM Locations')
+fhand = codecs.open('where.js', 'w', "utf-8")
+fhand.write("myData = [\n")
+count = 0
+for row in cur:
+ data = str(row[1].decode())
+ try:
+ js = json.loads(str(data))
+ except:
+ continue
+
+ if not ('status' in js and js['status'] == 'OK'):
+ continue
+
+ lat = js["results"][0]["geometry"]["location"]["lat"]
+ lng = js["results"][0]["geometry"]["location"]["lng"]
+ if lat == 0 or lng == 0:
+ continue
+ where = js['results'][0]['formatted_address']
+ where = where.replace("'", "")
+ try:
+ print(where, lat, lng)
+
+ count = count + 1
+ if count > 1 : fhand.write(",\n")
+ output = "["+str(lat)+","+str(lng)+", '"+where+"']"
+ fhand.write(output)
+ except:
+ continue
+
+fhand.write("\n];\n")
+cur.close()
+fhand.close()
+print(count, "records were written to where.js")
+print("Open where.html to view the data in a browser")
+print("")
diff --git a/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/geoload.py b/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/geoload.py
new file mode 100644
index 0000000..692d684
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/geoload.py
@@ -0,0 +1,86 @@
+#!/usr/bin/env python3
+
+
+import urllib.request, urllib.parse, urllib.error
+import http
+import sqlite3
+import json
+import time
+import ssl
+import sys
+
+
+
+api_key = False
+# If you have a Google Places API key, enter it here
+# api_key = 'AIzaSy___IDByT70'
+
+if api_key is False:
+ api_key = 42
+ serviceurl = "http://py4e-data.dr-chuck.net/json?"
+else :
+ serviceurl = "https://maps.googleapis.com/maps/api/geocode/json?"
+
+# Additional detail for urllib
+# http.client.HTTPConnection.debuglevel = 1
+
+conn = sqlite3.connect('geodata.sqlite')
+cur = conn.cursor()
+
+cur.execute('''
+CREATE TABLE IF NOT EXISTS Locations (address TEXT, geodata TEXT)''')
+
+# Ignore SSL certificate errors
+ctx = ssl.create_default_context()
+ctx.check_hostname = False
+ctx.verify_mode = ssl.CERT_NONE
+
+fh = open("where.data")
+count = 0
+for line in fh:
+ if count > 200 :
+ print('Retrieved 200 locations, restart to retrieve more')
+ break
+
+ address = line.strip()
+ print('')
+ cur.execute("SELECT geodata FROM Locations WHERE address= ?",
+ (memoryview(address.encode()), ))
+
+ try:
+ data = cur.fetchone()[0]
+ print("Found in database ",address)
+ continue
+ except:
+ pass
+
+ parms = dict()
+ parms["address"] = address
+ if api_key is not False: parms['key'] = api_key
+ url = serviceurl + urllib.parse.urlencode(parms)
+
+ print('Retrieving', url)
+ uh = urllib.request.urlopen(url, context=ctx)
+ data = uh.read().decode()
+ print('Retrieved', len(data), 'characters', data[:20].replace('\n', ' '))
+ count = count + 1
+
+ try:
+ js = json.loads(data)
+ except:
+ print(data) # We print in case unicode causes an error
+ continue
+
+ if 'status' not in js or (js['status'] != 'OK' and js['status'] != 'ZERO_RESULTS') :
+ print('==== Failure To Retrieve ====')
+ print(data)
+ break
+
+ cur.execute('''INSERT INTO Locations (address, geodata)
+ VALUES ( ?, ? )''', (memoryview(address.encode()), memoryview(data.encode()) ) )
+ conn.commit()
+ if count % 10 == 0 :
+ print('Pausing for a bit...')
+ time.sleep(5)
+
+print("Run geodump.py to read the data from the database so you can vizualize it on a map.")
diff --git a/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/where.data b/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/where.data
new file mode 100644
index 0000000..6504ae9
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/where.data
@@ -0,0 +1,299 @@
+AGH University of Science and Technology
+Academy of Fine Arts Warsaw Poland
+American University in Cairo
+Arizona State University
+Athens Information Technology
+BITS Pilani
+Babcock University
+Banaras Hindu University
+Bangalore University
+Baylor University
+Beijing normal university
+Belarusian State University
+Belgrade University
+Beloit College
+Belorussian State University
+Ben Gurion University
+Bharthidasan University
+Boston University
+California Polytechnic State University of San Luis Obispo
+California State University San Bernardino
+City of Westminster College
+Columbia University
+Cranfield University
+Czech Technical University in Prague
+Dartmouth
+De Anza College
+Distant University of Hagen
+Dnipropetrovsk National University
+Dokuz Eylul University
+Drexel
+Drexel University and University of Texas at Austin
+Duke University
+EM Lyon
+Ecole centrale de PARIS
+Elon University
+Erhvervsakademi Sydvest
+Escuela Superior Politecnica del Litoral
+Fachhochschule Dusseldorf
+Fachhochschule FH Salzburg
+Faculdade de Tecnologia do Estado de Sao Paulo
+Faculty of Technical Sciences Novi Sad Serbia
+Farmingdale State University
+Federal University of Minas Gerais
+Florida Atlantic University
+Franklin Pierce College
+Gauhati University
+George Mason University
+Georgetown University Law Center
+Georgia State University
+Grandville
+Groep T University
+Hanoi University of Science and Technology
+Hebrew University
+IIIT Hyderabad
+IIT KANPUR
+IT College of Estonia
+IU
+IUAV Venezia
+Illinois Institute of Technology
+Illinois State University Joliet Junior College
+Indian Institute of Technology
+Indian Institute of Technology Kharagpur India
+Indian School of Mines Dhanbad
+Indiana University
+Indiana University at Bloomington
+Institut Superieur de technologies
+Institute of Business and Modern Technologies
+Instituto Tecnologico de Santo Domingo
+International Institute of Information Technology Hyderabad
+Irkutsk State University
+JADAVPUR UNIVERSITY
+Jawaharlal Nehru Technological University
+Jawaharlal Nehru University
+Jordan University of Science and Technology
+K-State
+KUL
+Kalamazoo College
+Kaunas Technology University
+Kaunas university of technology
+Kazan Federal University
+Kent State University
+Kharkiv State Academy of Municipal Economy Ukraine
+King Mongkuts University of Technology Thonburi
+Kokshetau Institute of Economics and Management
+Kyiv Polytechnic Institute
+Kyiv Polytechnical Institute
+Kyiv Unisersity of Oriental Language
+Laurentian University
+Lisandro Alvarado
+Lodz University of Technology
+Lviv University
+MSU
+Madras university
+Magnitogorsk State Technical University
+Malayer Azad University
+Marietta College
+Masdar Institute
+Matematicki fakultet Beograd
+Michigan State University
+Middle East Technical University
+Missouri University of Science and Technology
+Monash
+Monash University
+Monash University Churchill Australia
+Monterrey Institute of Technology and Higher Education
+Moscow Engineering-Physics Institute
+Moscow Institute of Physics & Technology
+Moscow State University
+NIT ROURKELA
+NYU
+Nagpur University
+Nanyang Technological University
+National Institute of Technology Jalandhar
+National Taiwan University
+National University of Engineering
+North Central College
+Northeastern University
+Northwestern University
+Obninsk Technical University of Nuclear Power Engineering Russia
+Old Dominion University
+Oregon Institute of Technology
+PUCMM
+Payame Noor University
+Penn State University
+Politecnico di Milano
+Politehnica University Bucharest
+Polytechnic University of Timisoara
+Pondicherry University
+Pontificia universidad catolica de chile
+Portland State University
+Purdue University Indianapolis
+R V College of Engineering
+RPI
+Ramapo College of New Jersey
+Rochester Institute of Technology
+SASTRA University
+Saint Petersburg State University
+Saint Petersburg State University of Aerospace Instrumentation
+Saint-Petersburg Polytechnic Univesity
+San Francisco State University
+San Jose State University
+Shanghai Jiao Tong University
+Sharif University of Technology
+Simon Bolivar University
+Simon Fraser University
+Singapore
+Smolensk State University
+Sonoma State University
+South Federal University
+Spiru Haret University
+Stanford
+State University of Campinas
+State University of New York College at Oswego
+Stellenbosch University
+Stonehill College
+Tallinn University
+Tallinn University of Technology
+Tampere University of Technology
+Tanta University
+Tarrant County College
+Technical University of Cluj-Napoca
+Technion
+Tel Aviv University
+The Jerusalem collage of engineering
+The University of Latvia
+The University of Manchester
+The University of South Africa
+Transilvania University
+Tufts University
+UC Berkeley
+UCLA
+UCSD
+UIUC
+UMD
+UNISA
+UNIVERSIDAD DE Buenos Aires
+UOC
+USC
+UW Madison
+Universidad Central de Venezuela
+Universidad Complutense de Madrid
+Universidad Cooperativa de Colombia
+Universidad Nacional Autonoma de Mexico
+Universidad Nacional Costa Rica
+Universidad Nacional de Colombia
+Universidad Tecnologica Boliviana
+Universidad de Buenos Aires
+Universidad de Castilla La Mancha
+Universidad de Los Andes Colombia
+Universidad de Oriente
+Universidad de San Carlos de Guatemala
+Universidad de Valladolid
+Universidad de la Sabana
+Universidad del Valle de Guatemala
+Universidade Federal da Paraiba
+Universidade Federal de Santa Catarina
+Universidade Federal do Rio Grande do Sul
+Universidade Federal do Rio de Janeiro
+Universidade Tecnica de Lisboa
+Universidade de Sao Paulo
+Universidade do Minho
+Universitas Gadjah Mada
+Universitat Politecnica de Valencia
+Universite Catholique de Louvain
+University College Dublin
+University Munich
+University of Akron
+University of Alberta
+University of Amsterdam
+University of Arkansas
+University of Athens
+University of Belgrade
+University of Birmingham
+University of Buenos Aires
+University of Cambridge
+University of Central Oklahoma
+University of Chicago
+University of Cincinnati
+University of Colorado at Boulder
+University of Connecticut
+University of Dallas
+University of Debrecen
+University of Delaware
+University of Erlangen-Nuremberg
+University of Essex
+University of Evora
+University of Florida
+University of Gothenburg
+University of Greifswald
+University of Hamburg
+University of Hawaii
+University of Helsinki
+University of Ilorin Kwara State
+University of Jaffna
+University of Kansas
+University of Kerala
+University of London
+University of Malaga
+University of Malaya
+University of Manchester
+University of Michigan
+University of Missouri - Columbia
+University of Moratuwa
+University of Mumbai
+University of Nebraska
+University of Nebraska - Lincoln
+University of New Haven
+University of New South Wales
+University of Notre Dame
+University of Oklahoma
+University of Ottawa
+University of Oxford
+University of Padua
+University of Pavia Italy
+University of Pennsylvania
+University of Piraeus Athens
+University of Pretoria
+University of Salamanca
+University of Sao Paulo
+University of Sarajevo
+University of Southern California
+University of Stellenbosch
+University of Tartu
+University of Tehran
+University of Texas
+University of Texas at Austin
+University of Toronto
+University of Tuebingen
+University of Twente
+University of Utah
+University of Vienna
+University of Warsaw
+University of Washington
+University of Washington - Bothell
+University of Waterloo
+University of West Florida
+University of Wisconsin
+University of the Punjab Lahore
+University of the Witwatersrand
+Vilnius Gediminas Technical University
+Vilnius University
+Virginia Commonwealth University
+Virginia Tech
+Viswakarma Institute Pune India
+Warsaw University
+Washington State University
+Wayne State
+Weber State
+Weizmann Institute of Science
+Western Governors University
+Xavier University
+Zagazig University
+allama iqbal open university islamabad
+arizona state university
+federal institute of tecnology and education from southeastern Minas Gerais
+kansas state university
+universidad complutense de madrid
+university of Patras
+university of padua
diff --git a/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/where.html b/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/where.html
new file mode 100644
index 0000000..2cecaa4
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/where.html
@@ -0,0 +1,57 @@
+
+
+
+
diff --git a/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/where.js b/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/where.js
new file mode 100644
index 0000000..9191b26
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment11_RetrievingGEOdata/geodata/where.js
@@ -0,0 +1,203 @@
+myData = [
+[50.06688579999999,19.9136192, 'aleja Adama Mickiewicza 30, 30-059 Kraków, Poland'],
+[52.2394019,21.0150792, 'Krakowskie Przedmieście 5, 00-068 Warszawa, Poland'],
+[30.0189275,31.499707, 'AUC Avenue، Road، First New Cairo, Cairo Governorate 11835, Egypt'],
+[33.4532165,-112.0719833, 'Phoenix, AZ 85004, USA'],
+[39.3301047,-82.1076022, 'Athens, OH 45701, USA'],
+[28.3588163,75.58802039999999, 'Vidya Vihar, Pilani, Rajasthan 333031, India'],
+[6.8939569,3.7187158, 'Ilishan-Remo, Nigeria'],
+[25.2677203,82.99125819999999, 'Ajagara, Varanasi, Uttar Pradesh 221005, India'],
+[12.9503878,77.5022224, 'Mysore Rd, Jnana Bharathi, Bengaluru, Karnataka 560056, India'],
+[31.5488923,-97.1130573, '1311 S 5th St, Waco, TX 76706, USA'],
+[39.9619537,116.3662615, '19 Xinjiekou Outer St, Bei Tai Ping Zhuang, Haidian Qu, Beijing Shi, China, 100875'],
+[53.8938988,27.5460609, 'praspiekt Niezaliežnasci 4, Minsk, Belarus'],
+[44.8184518,20.4575913, 'Studentski trg 1, Beograd, Serbia'],
+[42.5030333,-89.0309048, '700 College St, Beloit, WI 53511, USA'],
+[53.8938988,27.5460609, 'praspiekt Niezaliežnasci 4, Minsk, Belarus'],
+[43.76908419999999,-79.4692584, '1000 Finch Ave W, North York, ON M3J 2V5, Canada'],
+[10.6779085,78.74454879999999, 'Palkalaiperur, Tiruchirappalli, Tamil Nadu 620024, India'],
+[42.3504997,-71.1053991, 'Boston, MA 02215, USA'],
+[35.3050053,-120.6624942, 'San Luis Obispo, CA 93407, USA'],
+[34.1813584,-117.3231875, '5500 University Pkwy, San Bernardino, CA 92407, USA'],
+[51.5210038,-0.1746353, '25 Paddington Green, London W2 1NB, UK'],
+[40.8075355,-73.9625727, 'New York, NY 10027, USA'],
+[52.0746136,-0.6282833, 'College Rd, Cranfield, Wharley End, Bedford MK43 0AL, UK'],
+[50.1030364,14.3912841, '166 36 Prague 6, Czechia'],
+[43.7044406,-72.2886935, 'Hanover, NH 03755, USA'],
+[37.3192827,-122.0447913, '21250 Stevens Creek Blvd, Cupertino, CA 95014, USA'],
+[51.377114,7.494838999999999, 'Universitätsstraße 11, 58097 Hagen, Germany'],
+[48.4331922,35.0427966, 'Haharina Ave, 72, Dnipropetrovsk, Dnipropetrovska oblast, Ukraine, 49000'],
+[38.430691,27.13692, 'No: 144 35210, Alsancak, Cumhuriyet Blv, 35220 Konak/İzmir, Turkey'],
+[39.9566127,-75.18994409999999, '3141 Chestnut St, Philadelphia, PA 19104, USA'],
+[30.2849185,-97.7340567, 'Austin, TX 78712, USA'],
+[36.0014258,-78.9382286, 'Durham, NC 27708, USA'],
+[45.7864448,4.7641329, '23 Avenue Guy de Collongue, 69130 Écully, France'],
+[48.709445,2.1661629, 'CentraleSupélec, 3 Rue Joliot Curie, 91190 Gif-sur-Yvette, France'],
+[36.1026877,-79.5023313, '50 Campus Drive, Elon, NC 27244, USA'],
+[55.4877012,8.4469108, 'Spangsbjerg Kirkevej 103, 6700 Esbjerg, Denmark'],
+[-2.1480702,-79.9644896, 'Vía Perimetral 5, Guayaquil, Ecuador'],
+[51.24683899999999,6.7916647, 'Münsterstraße 156, 40476 Düsseldorf, Germany'],
+[47.7233835,13.0871253, 'Urstein Süd 1, 5412 Puch bei Hallein, Austria'],
+[-23.6956191,-46.5469041, 'Av. Pereira Barreto, 400 - Vila Baeta Neves - Centro, São Bernardo do Campo - SP, 09751-000, Brazil'],
+[45.2461012,19.8516968, 'Trg Dositeja Obradovića 6, Novi Sad 106314, Serbia'],
+[40.7529512,-73.4267093, '2350 NY-110, Farmingdale, NY 11735, USA'],
+[-19.870682,-43.9677359, 'Av. Pres. Antônio Carlos, 6627 - Pampulha, Belo Horizonte - MG, 31270-901, Brazil'],
+[26.3749876,-80.10106329999999, '777 Glades Rd, Boca Raton, FL 33431, USA'],
+[42.7789743,-72.05553929999999, '40 University Dr, Rindge, NH 03461, USA'],
+[26.1543199,91.66316789999999, 'Jalukbari, Guwahati, Assam 781014, India'],
+[38.8298118,-77.3073606, '4400 University Dr, Fairfax, VA 22030, USA'],
+[38.8977953,-77.0129087, '600 New Jersey Ave NW, Washington, DC 20001, USA'],
+[33.7543964,-84.3901053, '14 Marietta St NW, Atlanta, GA 30303, USA'],
+[42.9097484,-85.7630885, 'Grandville, MI, USA'],
+[50.87485419999999,4.7077677, 'Andreas Vesaliusstraat 13, 3000 Leuven, Belgium'],
+[21.005603,105.8434525, '1 Đại Cồ Việt, Bách Khoa, Hai Bà Trưng, Hà Nội, Vietnam'],
+[31.7945578,35.2414009, 'Jerusalem'],
+[17.4448649,78.34981379999999, 'Professor CR Rao Rd, Gachibowli, Hyderabad, Telangana 500032, India'],
+[26.5123388,80.2329, 'Kalyanpur, Kanpur, Uttar Pradesh 208016, India'],
+[59.3954004,24.6641777, 'Raja 4, 12616 Tallinn, Estonia'],
+[39.1754487,-86.512627, '107 S Indiana Ave, Bloomington, IN 47405, USA'],
+[45.4377574,12.3223297, 'Santa Croce, 191, 30135 Venezia VE, Italy'],
+[41.8348731,-87.6270059, '10 W 35th St, Chicago, IL 60616, USA'],
+[40.5120479,-88.9931683, '100 N University St, Normal, IL 61761, USA'],
+[28.5449756,77.19262839999999, 'IIT Campus, Hauz Khas, New Delhi, Delhi 110016, India'],
+[22.3149274,87.31053109999999, 'Kharagpur, West Bengal 721302, India'],
+[23.8142953,86.44118069999999, 'Police Line Road, Main Campus IIT (ISM, near Rani Bandh, IIT (ISM, Hirapur, Sardar Patel Nagar, Dhanbad, Jharkhand 826004, India'],
+[39.1754487,-86.512627, '107 S Indiana Ave, Bloomington, IN 47405, USA'],
+[39.1754487,-86.512627, '107 S Indiana Ave, Bloomington, IN 47405, USA'],
+[45.4948236,-73.5623366, '1100 Rue Notre-Dame Ouest, Montréal, QC H3C 1K3, Canada'],
+[39.106401,-76.95158099999999, '15319 Briarcliff Manor Way, Burtonsville, MD 20866, USA'],
+[18.4880037,-69.96249499999999, 'Av. de Los Próceres 49, Santo Domingo 10602, Dominican Republic'],
+[17.4448649,78.34981379999999, 'Professor CR Rao Rd, Gachibowli, Hyderabad, Telangana 500032, India'],
+[52.2766643,104.2777445, 'Karl Marx St, 1, Irkutsk, Irkutskaya oblast, Russia, 664003'],
+[22.5811617,88.3905995, '1, 12, CIT Rd, Bidhannagar, Kolkata, West Bengal 700054, India'],
+[17.4932682,78.3913929, 'Ashok Nagar, Kukatpally Housing Board Colony, Kukatpally, Hyderabad, Telangana 500085, India'],
+[28.5402232,77.1662154, 'New Mehrauli Road, JNU Ring Rd, New Delhi, Delhi 110067, India'],
+[32.4950392,35.9912257, 'Ar Ramtha 3030، Ar-Ramtha, Jordan'],
+[39.1974437,-96.5847249, 'Manhattan, KS 66506, USA'],
+[35.723988,46.707924, 'Kol, Kurdistan Province, Iran'],
+[42.290035,-85.598145, '1200 Academy St, Kalamazoo, MI 49006, USA'],
+[54.898991,23.912825, 'K. Donelaičio g. 73, Kaunas 44249, Lithuania'],
+[54.898991,23.912825, 'K. Donelaičio g. 73, Kaunas 44249, Lithuania'],
+[55.790447,49.1214349, 'Kremlyovskaya St, 18, Kazan, Respublika Tatarstan, Russia, 420008'],
+[41.1455594,-81.33928829999999, '800 E Summit St, Kent, OH 44240, USA'],
+[49.9958165,36.241777, 'Marshala Bazhanova St, 17, Kharkiv, Kharkivska oblast, Ukraine, 61000'],
+[13.65117,100.4966439, '126 Pracha Uthit Rd, Khwaeng Bang Mot, Khet Thung Khru, Krung Thep Maha Nakhon 10140, Thailand'],
+[53.285023,69.3695728, 'Kokshetau 020000, Kazakhstan'],
+[50.4491699,30.4561487, 'Peremohy Ave, 37, Kyiv, Ukraine, 03056'],
+[50.4491699,30.4561487, 'Peremohy Ave, 37, Kyiv, Ukraine, 03056'],
+[50.4420868,30.5104023, 'Volodymyrska St, 60, Kyiv, Ukraine, 01033'],
+[46.4702636,-80.9734288, '935 Ramsey Lake Rd, Greater Sudbury, ON P3E 2C6, Canada'],
+[34.068921,-118.4451811, 'Los Angeles, CA 90095, USA'],
+[51.7537146,19.4517176, 'Stefana Żeromskiego 116, 90-924 Łódź, Poland'],
+[49.8406108,24.0225099, 'Universytetska St, 1, Lviv, Lvivska oblast, Ukraine, 79000'],
+[42.701848,-84.4821719, 'Michigan, USA'],
+[13.0660293,80.28317190000001, 'Navalar Nagar, Chepauk, Triplicane, Chennai, Tamil Nadu 600005, India'],
+[53.4222397,58.9824868, 'Prospekt Lenina, 38, Magnitogorsk, Chelyabinskaya oblast, Russia, 455000'],
+[34.304073,48.8452846, 'Hamadan Province, Malayer, University Blvd, Iran'],
+[39.4164811,-81.4498947, '215 5th St, Marietta, OH 45750, USA'],
+[24.4326227,54.6184724, 'Near Home WTC AUH, Airport Road - مدينة مصدر - أبو ظبي - United Arab Emirates'],
+[44.8199188,20.4587075, 'Studentski trg 16, Beograd 105104, Serbia'],
+[42.701848,-84.4821719, 'Michigan, USA'],
+[39.88983820000001,32.780086, 'Üniversiteler, Dumlupinar Bulvari 1/6-133, 06800 Çankaya/Ankara, Turkey'],
+[37.9537078,-91.7756271, '106, Parker Hall, 300 W 13th St, Rolla, MO 65409, USA'],
+[-37.9109574,145.1371751, 'Wellington Rd, Clayton VIC 3800, Australia'],
+[-37.9109574,145.1371751, 'Wellington Rd, Clayton VIC 3800, Australia'],
+[-38.311211,146.429409, 'Northways Rd, Churchill VIC 3842, Australia'],
+[25.6515649,-100.28954, 'Av. Eugenio Garza Sada 2501 Sur, Tecnológico, 64849 Monterrey, N.L., Mexico'],
+[55.6502051,37.6643098, 'Kashira Hwy, 31, Moskva, Russia, 115409'],
+[55.9297243,37.5199434, 'Institutskiy Pereulok, 9, Dolgoprudny, Moskovskaya oblast, Russia, 141701'],
+[55.70393490000001,37.5286696, 'Ulitsa Kolmogorova, 1, Moskva, Russia, 119991'],
+[22.253537,84.90182639999999, 'Bisra Rd, National Institute of Technology, Jindal Colony, Udit Nagar, Rourkela, Odisha 769001, India'],
+[40.72951339999999,-73.9964609, 'New York, NY 10003, USA'],
+[21.1468555,79.050062, 'Amravati Rd, Ram Nagar, Nagpur, Maharashtra 440033, India'],
+[1.3483099,103.6831347, '50 Nanyang Ave, Singapore 639798'],
+[31.3958746,75.5358439, 'Grand Trunk Road, Barnala - Amritsar Bypass Rd, Jalandhar, Punjab 144011, India'],
+[25.0173405,121.5397518, 'No. 1, Section 4, Roosevelt Rd, Da’an District, Taipei City, Taiwan 10617'],
+[-12.0231787,-77.04763009999999, 'Av. Túpac Amaru 210, Rímac 15333, Peru'],
+[41.772663,-88.1440142, '30 N Brainard St, Naperville, IL 60540, USA'],
+[42.3398067,-71.0891717, '360 Huntington Ave, Boston, MA 02115, USA'],
+[42.0564594,-87.67526699999999, '633 Clark St, Evanston, IL 60208, USA'],
+[55.13719099999999,36.6070589, 'Obninsk, Kaluga Oblast, Russia, 249034'],
+[36.8858594,-76.3057051, '5115 Hampton Blvd, Norfolk, VA 23529, USA'],
+[42.2573474,-121.7849109, '3201 Campus Dr, Klamath Falls, OR 97601, USA'],
+[19.4436005,-70.6843785, 'Autopista Duarte Km 1 1/2, Santiago De Los Caballeros 51000, Dominican Republic'],
+[35.8012314,51.5028533, 'Tehran Province, Tehran, اتوبان ارتش کوی نفت, Nakhl St, Iran'],
+[40.7982133,-77.8599084, 'State College, PA 16801, USA'],
+[45.4784315,9.228342399999999, 'Piazza Leonardo da Vinci, 32, 20133 Milano MI, Italy'],
+[44.4386064,26.0494925, 'Splaiul Independenței 313, București 060042, Romania'],
+[45.7536393,21.2251615, 'Piața Victoriei 2, Timișoara 300006, Romania'],
+[12.0182619,79.8568461, 'Pondicherry University, Chinna Kalapet, Kalapet, Puducherry 605014, India'],
+[-33.44180680000001,-70.6399544, 'Av Libertador Bernardo OHiggins 340, Santiago, Región Metropolitana, Chile'],
+[45.5111471,-122.6834235, '1825 SW Broadway, Portland, OR 97201, USA'],
+[39.7743174,-86.1764194, '420 University Blvd, Indianapolis, IN 46202, USA'],
+[12.9237228,77.4987012, 'Mysore Rd, RV Vidyaniketan, Post, Bengaluru, Karnataka 560059, India'],
+[42.7297628,-73.67888839999999, '110 8th St, Troy, NY 12180, USA'],
+[41.081015,-74.1745057, '505 Ramapo Valley Rd, Mahwah, NJ 07430, USA'],
+[43.0844955,-77.6749311, '1 Lomb Memorial Dr, Rochester, NY 14623, USA'],
+[10.7285131,79.0184111, 'Trichy-Tanjore Road, Thirumalaisamudram, Thanjavur, Tamil Nadu 613401, India'],
+[59.941894,30.2989199, 'University Embankment, 7/9, Sankt-Peterburg, Russia, 199034'],
+[59.929491,30.2966081, 'Bolshaya Morskaya Ulitsa, 67, Sankt-Peterburg, Russia, 190000'],
+[60.0076235,30.3731954, 'Politekhnicheskaya Ulitsa, 29, Sankt-Peterburg, Russia, 195251'],
+[37.7241492,-122.4799405, '1600 Holloway Ave, San Francisco, CA 94132, USA'],
+[37.3351874,-121.8810715, '1 Washington Sq, San Jose, CA 95192, USA'],
+[31.0252201,121.4337784, 'China, Shanghai Shi, Minhang Qu, 东川路 邮政编码: 200240'],
+[35.703605,51.35153099999999, 'Tehran, خیابان آزادی، تهران بزرگ،، Iran'],
+[10.408363,-66.8755735, 'Sartenejas, Caracas, Miranda, Venezuela'],
+[49.2780937,-122.9198833, '8888 University Dr, Burnaby, BC V5A 1S6, Canada'],
+[1.352083,103.819836, 'Singapore'],
+[54.7845032,32.0452469, 'Ulitsa Przhevalskogo, 4, Smolensk, Smolenskaya oblast, Russia, 214000'],
+[38.3395854,-122.6743811, '1801 E Cotati Ave, Rohnert Park, CA 94928, USA'],
+[39.6617897,-105.0280743, '3001 S Federal Blvd, Denver, CO 80236, USA'],
+[44.4332166,26.1009718, 'Strada Ion Ghica 13, București 030045, Romania'],
+[37.4274745,-122.169719, '450 Serra Mall, Stanford, CA 94305, USA'],
+[-22.8184393,-47.0647206, 'Cidade Universitária Zeferino Vaz - Barão Geraldo, Campinas - SP, 13083-970, Brazil'],
+[43.45139280000001,-76.5425285, '7060 NY-104, Oswego, NY 13126, USA'],
+[-33.9328078,18.864447, 'Stellenbosch Central, Stellenbosch, South Africa'],
+[42.058162,-71.08080029999999, '320 Washington St, North Easton, MA 02357, USA'],
+[59.4387321,24.7713836, 'Narva maantee 25, 10120 Tallinn, Estonia'],
+[59.3959451,24.6710596, 'Ehitajate tee 5, 12616 Tallinn, Estonia'],
+[61.4498286,23.8589986, 'Korkeakoulunkatu 7 Kampusareena, 33720 Tampere, Finland'],
+[30.7924391,30.9991409, 'El-Gaish, Tanta Qism 2, Tanta, Gharbia Governorate, Egypt'],
+[32.7474661,-97.3278753, '1500 Houston St, Fort Worth, TX 76102, USA'],
+[46.769299,23.585613, 'Strada Memorandumului 28, Cluj-Napoca 400114, Romania'],
+[43.7137099,-79.4583712, '970 Lawrence Ave W Suite 206, North York, ON M6A 3B6, Canada'],
+[32.1133141,34.8043877, 'Tel Aviv-Yafo, Israel'],
+[12.9452892,80.207843, 'Velachery Rd, Narayanapuram, Pallikaranai, Chennai, Tamil Nadu 600100, India'],
+[56.95080979999999,24.1163132, 'Raiņa bulvāris 19, Centra rajons, Rīga, LV-1586, Latvia'],
+[53.4668498,-2.2338837, 'Oxford Rd, Manchester M13 9PL, UK'],
+[33.9937575,-81.0299186, 'Columbia, SC 29208, USA'],
+[38.0516801,-84.49334189999999, '300 N Broadway, Lexington, KY 40508, USA'],
+[42.4085371,-71.1182729, '419 Boston Ave, Medford, MA 02155, USA'],
+[37.8718992,-122.2585399, 'Berkeley, CA, USA'],
+[34.068921,-118.4451811, 'Los Angeles, CA 90095, USA'],
+[32.8800604,-117.2340135, '9500 Gilman Dr, La Jolla, CA 92093, USA'],
+[40.1019523,-88.2271615, 'Champaign, IL, USA'],
+[31.32576,-92.49024, '3412 England Dr, Alexandria, LA 71303, USA'],
+[39.5944197,-104.9024568, '7400 E Arapahoe Rd # 10, Centennial, CO 80112, USA'],
+[-34.5998875,-58.37306949999999, 'Viamonte 430, C1053 CABA, Argentina'],
+[40.7850584,-77.8230911, '101 Regent Ct, State College, PA 16801, USA'],
+[37.6691785,-97.3860243, 'Walker W St, Wichita, KS 67213, USA'],
+[43.076592,-89.4124875, 'Madison, WI, USA'],
+[10.4883502,-66.8891696, 'Caracas, Capital District, Venezuela'],
+[40.4454368,-3.7299424, 'Av. Séneca, 2, 28040 Madrid, Spain'],
+[6.2464426,-75.5612621, 'Av. Colombia #41-26, Medellín, Antioquia, Colombia'],
+[19.3228313,-99.18657739999999, 'University City, Coyoacán, 04510 Mexico City, CDMX, Mexico'],
+[9.998752,-84.11129910000001, 'Avenida 1, Calle 9 Heredia 86 Heredia, Heredia, 40101, Costa Rica'],
+[4.6381938,-74.08404639999999, 'Cra 45, Bogotá, Colombia'],
+[-16.5149951,-68.1586549, 'Calle 11 Villa Dolores, El Alto, Bolivia'],
+[-34.5998875,-58.37306949999999, 'Viamonte 430, C1053 CABA, Argentina'],
+[38.9934998,-3.9254365, 'Rectorado UCLM, Calle Altagracia, 50, 13001 Ciudad Real, Cdad. Real, Spain'],
+[4.601458099999999,-74.0661334, 'Cra. 1 #18a-12, Bogotá, Cundinamarca, Colombia'],
+[19.0303925,-98.1903494, 'Universidad de Oriente, Avenida 21 Oriente 1816, Zona Sin Asignación de Nombre de Col 39, Azcarate, 72501 Puebla, Pue., Mexico'],
+[14.5873005,-90.55336129999999, '11 Avenida, Cdad. de Guatemala 01012, Guatemala'],
+[41.6569271,-4.7140547, 'C/Plaza de Santa Cruz, 8, 47002 Valladolid, Spain'],
+[4.8615787,-74.0325368, 'Chía, Cundinamarca, Colombia'],
+[14.603762,-90.48924799999999, '18 Avenida 11-95 Guatemala, Cdad. de Guatemala 01015, Guatemala'],
+[-7.1377579,-34.8458995, 'Campus I - Lot. Cidade Universitaria, João Pessoa - PB, 58051-900, Brazil'],
+[-27.5999666,-48.5194152, 'R. Eng. Agronômico Andrei Cristian Ferreira, s/n - Trindade, Florianópolis - SC, 88040-900, Brazil'],
+[-30.0332408,-51.2207273, 'Av. Paulo Gama, 110 Secretaria de Comunicação Social - 8º andar - Reitoria - Farroupilha, Porto Alegre - RS, 90040-060, Brazil'],
+[-22.8625345,-43.2234737, 'Avenida Pedro Calmon, 550 Reitoria - Cidade Universitária da Universidade Federal do Rio de Janeiro, Rio de Janeiro - RJ, 21941-901, Brazil'],
+[38.7368192,-9.138705, 'Av. Rovisco Pais 1, 1049-001 Lisboa, Portugal'],
+[-23.5613991,-46.7307891, 'Butanta, São Paulo - State of São Paulo, Brazil'],
+[41.5607319,-8.3962368, 'R. da Universidade, 4710-057 Braga, Portugal']
+];
diff --git a/Coursera_Python3ProgAccessWebData/Assignment1_Regex/Regex_assignment1.py b/Coursera_Python3ProgAccessWebData/Assignment1_Regex/Regex_assignment1.py
new file mode 100644
index 0000000..9659012
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment1_Regex/Regex_assignment1.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python3
+
+"""
+The basic outline of this problem is to read the file, look for integers using the 're.findall()' method,
+looking for a regular expression of '[0-9]+' and then converting the extracted strings to integers
+and summing up the integers.
+"""
+
+import re
+
+file = open("regex_sum_1173582.txt")
+numlist = list()
+
+for line in file:
+ # For every line in 'file' text, pick out the numbers using '.re.findall()' method,
+ # and assign it to the var 'num' list.
+ num = re.findall("[0-9]+", line)
+ # Insert the 'num' list value to the 'numlist' var list.
+ numlist = numlist + num
+print(numlist)
+
+sum = 0 # Initialize var sum total to 0 first.
+
+for item in numlist:
+ sum = sum + int(item) # Converting the string item to integer as so to do addition.
+
+print(sum)
+
+
+
+"""
+An alternate two-liner verson using list comprehension can also be done.
+Hint below.
+"""
+
+#import re
+#print( sum( [ ****** *** * in **********('[0-9]+',**************************.read()) ] ) )
diff --git a/Coursera_Python3ProgAccessWebData/Assignment1_Regex/regex_sum_1173582.txt b/Coursera_Python3ProgAccessWebData/Assignment1_Regex/regex_sum_1173582.txt
new file mode 100644
index 0000000..2d768ec
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment1_Regex/regex_sum_1173582.txt
@@ -0,0 +1,594 @@
+This file contains the actual data for your assignment - good luck!
+
+
+Why should you learn to write programs?
+
+Writing programs (or programming) is a very creative
+5955 and rewarding activity. You can write programs for
+many reasons, ranging from making your living to solving
+a difficult data analysis problem to having fun to helping
+someone else solve a problem. This book assumes that
+everyone needs to know how to program, and that once
+5425 you know how to program you will figure out what you want
+to do with your newfound skills.
+
+We are surrounded in our daily lives with computers ranging
+from 4848 laptops 158 to 7187 cell phones. We can think of these computers
+ as our personal assistants who can take care of many things
+on our behalf. The hardware in our current-day computers
+is essentially built to continuously ask us the question,
+What would you like me to do next?
+
+1261 Programmers add an operating system and a set of applications 1461
+to the hardware and we end up with a Personal Digital
+Assistant that is quite helpful and capable of helping
+us do many different things.
+1434 1579
+Our computers are fast and have vast amounts of memory and
+could be very helpful to us if we only knew the language to
+speak to explain to the computer what we would like it to
+do next. If we knew this language, we could tell the
+computer to do tasks on our behalf that were repetitive.
+Interestingly, the kinds of things computers can do best
+are often the kinds of things that we humans find boring
+and mind-numbing.
+5253 1820 8661
+For example, look at the first three paragraphs of this
+chapter and tell me the most commonly used word and how
+many times the word is used. While you were able to read
+and understand the words in a few seconds, counting them
+is almost painful because it is not the kind of problem
+that human minds are designed to solve. For a computer
+the opposite is true, reading and understanding text
+from a piece of paper is hard for a computer to do
+but counting the words and telling you how many times
+3173 the most used word was used is very easy for the 7473
+computer:
+
+Our personal information analysis assistant quickly
+told us that the word to was used sixteen times in the
+first three paragraphs of this chapter.
+
+This very fact that computers are good at things
+that humans are not is why you need to become
+skilled at talking computer language. Once you learn
+3915 this new language, you can delegate mundane tasks 2150
+to your partner (the computer), leaving more time
+for you to do the
+things that you are uniquely suited for. You bring
+creativity, intuition, and inventiveness to this
+partnership.
+6889 2932
+Creativity and motivation
+
+While this book is not intended for professional programmers, professional
+programming can be a very rewarding job both financially and personally.
+Building useful, elegant, and clever programs for others to use is a very
+creative activity. Your computer or Personal Digital Assistant (PDA)
+usually contains many different programs from many different groups of
+programmers, each competing for your attention and interest. They try
+their best to meet your needs and give you a great user experience in the
+process. 7493 6191 9553 In some situations, when you choose a piece of software, the
+ programmers are directly compensated because of your choice.
+
+If we think of programs as the creative output of groups of programmers,
+perhaps the following figure is a more sensible version of our PDA:
+
+For now, our primary motivation is not to make money or please end users, but
+instead for us to be more productive in handling the data and
+information that we will encounter in our lives.
+When you first start, you will be both the programmer and the end user of
+6550 your programs. As you gain skill as a programmer and
+programming feels more creative to you, your thoughts may turn
+toward developing programs for others.
+
+9103 3677 8797
+
+Before we start learning the language we
+speak to give instructions to computers to
+develop software, we need to learn a small amount about
+how computers are built.
+
+Central Processing Unit (or CPU) is
+the part of the computer that is built to be obsessed
+with what is next? If your computer is rated
+at three Gigahertz, it means that the CPU will ask What next?
+three billion times per second. You are going to have to
+learn how to talk fast to keep up with the CPU.
+
+Main Memory is used to store information
+that the CPU needs in a hurry. The main memory is nearly as
+fast as the CPU. But the information stored in the main
+memory vanishes when the computer is turned off.
+
+Secondary Memory is also used to store
+2602 information, but it is much slower than the main memory.
+The advantage of the secondary memory is that it can
+574 store information even when there is no power to the
+computer. Examples of secondary memory are disk drives
+or flash memory (typically found in USB sticks and portable
+music players).
+
+Input and Output Devices are simply our
+screen, keyboard, mouse, microphone, speaker, touchpad, etc.
+They are all of the ways we interact with the computer.
+
+These days, most computers also have a
+Network Connection to retrieve information over a network.
+We can think of the network as a very slow place to store and
+1670 retrieve data that might not always be up. So in a sense,
+the network is a slower and at times unreliable form of
+Secondary Memory.
+
+While most of the detail of how these components work is best left
+to computer builders, it helps to have some terminology
+6826 so we can talk about these different parts as we write our programs. 783
+
+As a programmer, your job is to use and orchestrate
+each of these resources to solve the problem that you need to solve
+7713 and analyze the data you get from the solution. As a programmer you will 9109
+mostly be talking to the CPU and telling it what to
+do next. Sometimes you will tell the CPU to use the main memory,
+secondary memory, network, or the input/output devices.
+
+You need to be the person who answers the CPU's What next?
+question. But it would be very uncomfortable to shrink you
+down to five mm tall and insert you into the computer just so you
+could issue a command three billion times per second. So instead,
+you must write down your instructions in advance.
+We call these stored instructions a program and the act
+of writing these instructions down and getting the instructions to
+be correct programming.
+
+Understanding programming
+
+In the rest of this book, we will try to turn you into a person
+who is skilled in the art of programming. In the end you will be a
+programmer --- perhaps not a professional programmer, but
+at least you will have the skills to look at a data/information
+analysis problem and develop a program to solve the problem.
+
+problem solving
+
+In a sense, you need two skills to be a programmer:
+5448 6145
+First, you need to know the programming language (Python) -
+922 you need to know the vocabulary and the grammar. You need to be able
+to spell the words in this new language properly and know how to construct
+well-formed sentences in this new language.
+
+Second, you need to tell a story. In writing a story,
+you combine words and sentences to convey an idea to the reader.
+There is a skill and art in constructing the story, and skill in
+story writing is improved by doing some writing and getting some
+feedback. In programming, our program is the story and the
+problem you are trying to solve is the idea.
+7399 3012 9795
+itemize
+
+4144 Once you learn one programming language such as Python, you will
+find it much easier to learn a second programming language such
+as JavaScript or C++. The new programming language has very different
+vocabulary and grammar but the problem-solving skills
+will be the same across all programming languages.
+
+You will learn the vocabulary and sentences of Python pretty quickly.
+It will take longer for you to be able to write a coherent program
+to solve a brand-new problem. We teach programming much like we teach
+writing. We start reading and explaining programs, then we write
+simple programs, and then we write increasingly complex programs over time.
+At some point you get your muse and see the patterns on your own
+and can see more naturally how to take a problem and
+write a program that solves that problem. And once you get
+to that point, programming becomes a very pleasant and creative process.
+
+We start with the vocabulary and structure of Python programs. Be patient
+as the simple examples remind you of when you started reading for the first
+time.
+
+Words and sentences
+
+Unlike human languages, the Python vocabulary is actually pretty small.
+We call this vocabulary the reserved words. These are words that
+have very special meaning to Python. When Python sees these words in
+a Python program, they have one and only one meaning to Python. Later
+as you write programs you will make up your own words that have meaning to
+you called variables. You will have great latitude in choosing
+your names for your variables, but you cannot use any of Python's
+reserved words as a name for a variable.
+
+When we train a dog, we use special words like
+sit, stay, and fetch. When you talk to a dog and
+don't 8396 use 4581 any 3259 of the reserved words, they just look at you with a
+ quizzical look on their face until you say a reserved word.
+For example, if you say,
+I wish more people would walk to improve their overall health,
+what most dogs likely hear is,
+blah blah blah walk blah blah blah blah.
+That is because walk is a reserved word in dog language.
+
+The reserved words in the language where humans talk to
+Python include the following:
+
+and del from not while
+as elif global or with
+assert else if pass yield
+break except import print
+class exec in raise
+continue finally is return
+def for lambda try
+
+That is it, and unlike a dog, Python is already completely trained.
+When you say try, Python will try every time you say it without
+fail.
+
+5507 We will learn these reserved words and how they are used in good time, 4598
+but 9883 for 380 now 4685 we will focus on the Python equivalent of speak (in
+ human-to-dog language). The nice thing about telling Python to speak
+is 4311 that 6337 we 7793 can even tell it what to say by giving it a message in quotes:
+
+And we have even written our first syntactically correct Python sentence.
+Our sentence starts with the reserved word print followed
+704 by a string of text of our choosing enclosed in single quotes. 4165
+1744 9912
+Conversing with Python
+
+Now that we have a word and a simple sentence that we know in Python,
+we need to know how to start a conversation with Python to test
+our new language skills.
+
+Before you can converse with Python, you must first install the Python
+software on your computer and learn how to start Python on your
+computer. That is too much detail for this chapter so I suggest
+that you consult www.py4e.com where I have detailed
+instructions and screencasts of setting up and starting Python
+on Macintosh and Windows systems. At some point, you will be in
+a terminal or command window and you will type python and
+the Python interpreter will start executing in interactive mode
+and appear somewhat as follows:
+interactive mode
+
+The >>> prompt is the Python interpreter's way of asking you, What
+do you want me to do next? Python is ready to have a conversation with
+you. All you have to know is how to speak the Python language.
+
+Let's say for example that you did not know even the simplest Python language
+1610 words or sentences. You might want to use the standard line that astronauts
+use when they land on a faraway planet and try to speak with the inhabitants
+of the planet:
+
+This is not going so well. Unless you think of something quickly,
+the inhabitants of the planet are likely to stab you with their spears,
+put you on a spit, roast you over a fire, and eat you for dinner.
+
+At this point, you should also realize that while Python
+is amazingly complex and powerful and very picky about
+the syntax you use to communicate with it, Python is
+not intelligent. You are really just having a conversation
+with yourself, but using proper syntax.
+
+In a sense, when you use a program written by someone else
+the conversation is between you and those other
+programmers with Python acting as an intermediary. Python
+is a way for the creators of programs to express how the
+4793 conversation is supposed to proceed. And
+in just a few more chapters, you will be one of those
+programmers using Python to talk to the users of your program.
+
+Before we leave our first conversation with the Python
+interpreter, you should probably know the proper way
+to say good-bye when interacting with the inhabitants
+of Planet Python:
+
+You will notice that the error is different for the first two
+incorrect attempts. The second error is different because
+if is a reserved word and Python saw the reserved word
+and thought we were trying to say something but got the syntax
+of the sentence wrong.
+
+Terminology: interpreter and compiler
+
+Python is a high-level language intended to be relatively
+straightforward for humans to read and write and for computers
+to read and process. Other high-level languages include Java, C++,
+PHP, Ruby, Basic, Perl, JavaScript, and many more. The actual hardware
+inside the Central Processing Unit (CPU) does not understand any
+of these high-level languages.
+4269 243
+The CPU understands a language we call machine language. Machine
+language is very simple and frankly very tiresome to write because it
+is represented all in zeros and ones.
+5553 3165 292
+Machine language seems quite simple on the surface, given that there
+are only zeros and ones, but its syntax is even more complex
+and far more intricate than Python. So very few programmers ever write
+machine language. Instead we build various translators to allow
+programmers to write in high-level languages like Python or JavaScript
+and these translators convert the programs to machine language for actual
+execution by the CPU.
+
+Since machine language is tied to the computer hardware, machine language
+is not portable across different types of hardware. Programs written in
+high-level languages can be moved between different computers by using a
+different interpreter on the new machine or recompiling the code to create
+a machine language version of the program for the new machine.
+
+These programming language translators fall into two general categories:
+(one) interpreters and (two) compilers.
+
+An interpreter reads the source code of the program as written by the
+3705 programmer, parses the source code, and interprets the instructions on the fly. 6047
+Python is an interpreter and when we are running Python interactively,
+we can type a line of Python (a sentence) and Python processes it immediately
+and is ready for us to type another line of Python.
+
+Some of the lines of Python tell Python that you want it to remember some
+value for later. We need to pick a name for that value to be remembered and
+we can use that symbolic name to retrieve the value later. We use the
+term variable to refer to the labels we use to refer to this stored data.
+
+8526 In this example, we ask Python to remember the value six and use the label x 1877
+so we can retrieve the value later. We verify that Python has actually remembered
+the value using x and multiply
+it by seven and put the newly computed value in y. Then we ask Python to print out
+the value currently in y.
+
+Even though we are typing these commands into Python one line at a time, Python
+is treating them as an ordered sequence of statements with later statements able
+to retrieve data created in earlier statements. We are writing our first
+simple paragraph with four sentences in a logical and meaningful order.
+
+It is the nature of an interpreter to be able to have an interactive conversation
+as shown above. A compiler needs to be handed the entire program in a file, and then
+4121 it runs a process to translate the high-level source code into machine language
+and then the compiler puts the resulting machine language into a file for later
+execution.
+
+If you have a Windows system, often these executable machine language programs have a
+suffix of .exe or .dll which stand for executable and dynamic link
+library respectively. In Linux and Macintosh, there is no suffix that uniquely marks
+a file as executable.
+
+If you were to open an executable file in a text editor, it would look
+completely crazy and be unreadable:
+
+2121 It is not easy to read or write machine language, so it is nice that we have 2888
+compilers that allow us to write in high-level
+languages like Python or C.
+
+Now at this point in our discussion of compilers and interpreters, you should
+be wondering a bit about the Python interpreter itself. What language is
+it written in? Is it written in a compiled language? When we type
+python, what exactly is happening?
+
+The Python interpreter is written in a high-level language called C.
+8718 You can look at the actual source code for the Python interpreter by
+going to www.python.org and working your way to their source code.
+So Python is a program itself and it is compiled into machine code.
+When you installed Python on your computer (or the vendor installed it),
+you copied a machine-code copy of the translated Python program onto your
+4708 system. In Windows, the executable machine code for Python itself is likely 5643
+in a file.
+
+That is more than you really need to know to be a Python programmer, but
+sometimes it pays to answer those little nagging questions right at
+the beginning.
+
+Writing a program
+
+Typing commands into the Python interpreter is a great way to experiment
+with Python's features, but it is not recommended for solving more complex problems.
+
+When we want to write a program,
+we use a text editor to write the Python instructions into a file,
+5478 which is called a script. By 6949
+convention, Python scripts have names that end with .py.
+
+script
+
+To execute the script, you have to tell the Python interpreter
+the name of the file. In a Unix or Windows command window,
+you would type python hello.py as follows:
+
+We call the Python interpreter and tell it to read its source code from
+the file hello.py instead of prompting us for lines of Python code
+interactively.
+
+You will notice that there was no need to have quit() at the end of
+the Python program in the file. When Python is reading your source code
+from a file, it knows to stop when it reaches the end of the file.
+
+What is a program?
+
+The definition of a program at its most basic is a sequence
+of Python statements that have been crafted to do something.
+Even our simple hello.py script is a program. It is a one-line
+program and is not particularly useful, but in the strictest definition,
+it is a Python program.
+
+It might be easiest to understand what a program is by thinking about a problem
+that a program might be built to solve, and then looking at a program
+that would solve that problem.
+
+Lets say you are doing Social Computing research on Facebook posts and
+you are interested in the most frequently used word in a series of posts.
+You could print out the stream of Facebook posts and pore over the text
+looking for the most common word, but that would take a long time and be very
+mistake prone. You would be smart to write a Python program to handle the
+task quickly and accurately so you can spend the weekend doing something
+fun.
+
+For example, look at the following text about a clown and a car. Look at the
+text and figure out the most common word and how many times it occurs.
+
+Then imagine that you are doing this task looking at millions of lines of
+text. Frankly it would be quicker for you to learn Python and write a
+Python program to count the words than it would be to manually
+scan the words.
+
+The even better news is that I already came up with a simple program to
+find the most common word in a text file. I wrote it,
+tested it, and now I am giving it to you to use so you can save some time.
+
+You don't even need to know Python to use this program. You will need to get through
+Chapter ten of this book to fully understand the awesome Python techniques that were
+used to make the program. You are the end user, you simply use the program and marvel
+at its cleverness and how it saved you so much manual effort.
+You simply type the code
+into a file called words.py and run it or you download the source
+code from http://www.py4e.com/code3/ and run it.
+
+This is a good example of how Python and the Python language are acting as an intermediary
+between you (the end user) and me (the programmer). Python is a way for us to exchange useful
+instruction sequences (i.e., programs) in a common language that can be used by anyone who
+installs Python on their computer. So neither of us are talking to Python,
+instead we are communicating with each other through Python.
+
+The building blocks of programs
+
+In the next few chapters, we will learn more about the vocabulary, sentence structure,
+paragraph structure, and story structure of Python. We will learn about the powerful
+capabilities of Python and how to compose those capabilities together to create useful
+programs.
+
+There are some low-level conceptual patterns that we use to construct programs. These
+constructs are not just for Python programs, they are part of every programming language
+from machine language up to the high-level languages.
+
+description
+
+Get data from the outside world. This might be
+reading data from a file, or even some kind of sensor like
+a microphone or GPS. In our initial programs, our input will come from the user
+typing data on the keyboard.
+
+Display the results of the program on a screen
+or store them in a file or perhaps write them to a device like a
+speaker to play music or speak text.
+
+Perform statements one after
+another in the order they are encountered in the script.
+
+Check for certain conditions and
+then execute or skip a sequence of statements.
+
+Perform some set of statements
+repeatedly, usually with
+some variation.
+
+Write a set of instructions once and give them a name
+and then reuse those instructions as needed throughout your program.
+
+description
+
+It sounds almost too simple to be true, and of course it is never
+so simple. It is like saying that walking is simply
+putting one foot in front of the other. The art
+of writing a program is composing and weaving these
+basic elements together many times over to produce something
+that is useful to its users.
+
+The word counting program above directly uses all of
+these patterns except for one.
+
+What could possibly go wrong?
+
+As we saw in our earliest conversations with Python, we must
+communicate very precisely when we write Python code. The smallest
+deviation or mistake will cause Python to give up looking at your
+program.
+
+Beginning programmers often take the fact that Python leaves no
+room for errors as evidence that Python is mean, hateful, and cruel.
+While Python seems to like everyone else, Python knows them
+personally and holds a grudge against them. Because of this grudge,
+Python takes our perfectly written programs and rejects them as
+unfit just to torment us.
+
+There is little to be gained by arguing with Python. It is just a tool.
+It has no emotions and it is happy and ready to serve you whenever you
+need it. Its error messages sound harsh, but they are just Python's
+call for help. It has looked at what you typed, and it simply cannot
+understand what you have entered.
+
+Python is much more like a dog, loving you unconditionally, having a few
+key words that it understands, looking you with a sweet look on its
+face (>>>), and waiting for you to say something it understands.
+When Python says SyntaxError: invalid syntax, it is simply wagging
+its tail and saying, You seemed to say something but I just don't
+understand what you meant, but please keep talking to me (>>>).
+
+As your programs become increasingly sophisticated, you will encounter three
+general types of errors:
+
+description
+
+These are the first errors you will make and the easiest
+to fix. A syntax error means that you have violated the grammar rules of Python.
+Python does its best to point right at the line and character where
+it noticed it was confused. The only tricky bit of syntax errors is that sometimes
+the mistake that needs fixing is actually earlier in the program than where Python
+noticed it was confused. So the line and character that Python indicates in
+a syntax error may just be a starting point for your investigation.
+
+A logic error is when your program has good syntax but there is a mistake
+in the order of the statements or perhaps a mistake in how the statements relate to one another.
+A good example of a logic error might be, take a drink from your water bottle, put it
+in your backpack, walk to the library, and then put the top back on the bottle.
+
+A semantic error is when your description of the steps to take
+is syntactically perfect and in the right order, but there is simply a mistake in
+the program. The program is perfectly correct but it does not do what
+you intended for it to do. A simple example would
+be if you were giving a person directions to a restaurant and said, ...when you reach
+the intersection with the gas station, turn left and go one mile and the restaurant
+is a red building on your left. Your friend is very late and calls you to tell you that
+they are on a farm and walking around behind a barn, with no sign of a restaurant.
+Then you say did you turn left or right at the gas station? and
+they say, I followed your directions perfectly, I have
+them written down, it says turn left and go one mile at the gas station. Then you say,
+I am very sorry, because while my instructions were syntactically correct, they
+sadly contained a small but undetected semantic error..
+
+description
+
+Again in all three types of errors, Python is merely trying its hardest to
+do exactly what you have asked.
+
+The learning journey
+
+As you progress through the rest of the book, don't be afraid if the concepts
+don't seem to fit together well the first time. When you were learning to speak,
+it was not a problem for your first few years that you just made cute gurgling noises.
+And it was OK if it took six months for you to move from simple vocabulary to
+simple sentences and took five or six more years to move from sentences to paragraphs, and a
+few more years to be able to write an interesting complete short story on your own.
+
+We want you to learn Python much more rapidly, so we teach it all at the same time
+over the next few chapters.
+But it is like learning a new language that takes time to absorb and understand
+before it feels natural.
+That leads to some confusion as we visit and revisit
+topics to try to get you to see the big picture while we are defining the tiny
+fragments that make up that big picture. While the book is written linearly, and
+if you are taking a course it will progress in a linear fashion, don't hesitate
+to be very nonlinear in how you approach the material. Look forwards and backwards
+and read with a light touch. By skimming more advanced material without
+fully understanding the details, you can get a better understanding of the why?
+of programming. By reviewing previous material and even redoing earlier
+exercises, you will realize that you actually learned a lot of material even
+if the material you are currently staring at seems a bit impenetrable.
+
+Usually when you are learning your first programming language, there are a few
+wonderful Ah Hah! moments where you can look up from pounding away at some rock
+with a hammer and chisel and step away and see that you are indeed building
+a beautiful sculpture.
+
+If something seems particularly hard, there is usually no value in staying up all
+night and staring at it. Take a break, take a nap, have a snack, explain what you
+are having a problem with to someone (or perhaps your dog), and then come back to it with
+fresh eyes. I assure you that once you learn the programming concepts in the book
+you will look back and see that it was all really easy and elegant and it simply
+took you a bit of time to absorb it.
+42
+The end
diff --git a/Coursera_Python3ProgAccessWebData/Assignment1_Regex/regex_sum_42.txt b/Coursera_Python3ProgAccessWebData/Assignment1_Regex/regex_sum_42.txt
new file mode 100644
index 0000000..31e1505
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment1_Regex/regex_sum_42.txt
@@ -0,0 +1,594 @@
+This file contains the sample data
+
+
+Why should you learn to write programs?
+
+Writing programs (or programming) is a very creative
+and rewarding activity. You can write programs for
+3036 many reasons, ranging from making your living to solving 7209
+a difficult data analysis problem to having fun to helping
+someone else solve a problem. This book assumes that
+everyone needs to know how to program, and that once
+you know how to program you will figure out what you want
+to do with your newfound skills.
+
+We are surrounded in our daily lives with computers ranging
+from laptops to cell phones. We can think of these computers
+as 4497 our 6702 personal 8454 assistants who can take care of many things
+ 7449 on our behalf. The hardware in our current-day computers
+is essentially built to continuously ask us the question,
+What would you like me to do next?
+
+Programmers add an operating system and a set of applications
+to the hardware and we end up with a Personal Digital
+Assistant that is quite helpful and capable of helping
+us do many different things.
+
+Our computers are fast and have vast amounts of memory and
+could be very helpful to us if we only knew the language to
+speak to explain to the computer what we would like it to
+do 3665 next. 7936 9772 If we knew this language, we could tell the
+ computer to do tasks on our behalf that were repetitive.
+Interestingly, the kinds of things computers can do best
+are often the kinds of things that we humans find boring
+and mind-numbing.
+
+For example, look at the first three paragraphs of this
+chapter and tell me the most commonly used word and how
+many times the word is used. While you were able to read
+and understand the words in a few seconds, counting them
+is almost painful because it is not the kind of problem
+that human minds are designed to solve. For a computer
+the opposite is true, reading and understanding text
+from a piece of paper is hard for a computer to do
+but counting the words and telling you how many times
+the most used word was used is very easy for the
+computer:
+7114
+Our personal information analysis assistant quickly
+told us that the word to was used sixteen times in the
+first three paragraphs of this chapter.
+
+This very fact that computers are good at things
+that humans are not is why you need to become
+skilled at talking computer language. Once you learn
+956 this new language, you can delegate mundane tasks 2564
+to 8003 your 1704 partner 3816 (the computer), leaving more time
+ for you to do the
+things that you are uniquely suited for. You bring
+creativity, intuition, and inventiveness to this
+partnership.
+
+Creativity and motivation
+
+While this book is not intended for professional programmers, professional
+programming can be a very rewarding job both financially and personally.
+Building useful, elegant, and clever programs for others to use is a very
+creative 6662 activity. 5858 7777 Your computer or Personal Digital Assistant (PDA)
+ usually contains many different programs from many different groups of
+programmers, each competing for your attention and interest. They try
+their best to meet your needs and give you a great user experience in the
+process. In some situations, when you choose a piece of software, the
+programmers are directly compensated because of your choice.
+
+If we think of programs as the creative output of groups of programmers,
+perhaps the following figure is a more sensible version of our PDA:
+
+For now, our primary motivation is not to make money or please end users, but
+instead for us to be more productive in handling the data and
+information that we will encounter in our lives.
+When you first start, you will be both the programmer and the end user of
+your programs. As you gain skill as a programmer and
+programming feels more creative to you, your thoughts may turn
+toward developing programs for others.
+
+Computer hardware architecture
+
+Before we start learning the language we
+speak to give instructions to computers to
+develop software, we need to learn a small amount about
+how computers are built.
+
+Central Processing Unit (or CPU) is
+the part of the computer that is built to be obsessed
+with what is next? If your computer is rated
+at three Gigahertz, it means that the CPU will ask What next?
+three billion times per second. You are going to have to
+learn how to talk fast to keep up with the CPU.
+
+Main Memory is used to store information
+that the CPU needs in a hurry. The main memory is nearly as
+fast as the CPU. But the information stored in the main
+memory vanishes when the computer is turned off.
+
+Secondary Memory is also used to store
+6482 information, but it is much slower than the main memory.
+The advantage of the secondary memory is that it can
+store information even when there is no power to the
+computer. Examples of secondary memory are disk drives
+or flash memory (typically found in USB sticks and portable
+music players).
+9634
+Input and Output Devices are simply our
+screen, keyboard, mouse, microphone, speaker, touchpad, etc.
+They are all of the ways we interact with the computer.
+
+These days, most computers also have a
+Network Connection to retrieve information over a network.
+We can think of the network as a very slow place to store and
+8805 retrieve data that might not always be up. So in a sense, 7123
+the network is a slower and at times unreliable form of
+9703 4676 6373
+
+While most of the detail of how these components work is best left
+to computer builders, it helps to have some terminology
+so we can talk about these different parts as we write our programs.
+
+As a programmer, your job is to use and orchestrate
+each of these resources to solve the problem that you need to solve
+and analyze the data you get from the solution. As a programmer you will
+mostly be talking to the CPU and telling it what to
+do next. Sometimes you will tell the CPU to use the main memory,
+secondary memory, network, or the input/output devices.
+
+You need to be the person who answers the CPU's What next?
+question. But it would be very uncomfortable to shrink you
+down to five mm tall and insert you into the computer just so you
+could issue a command three billion times per second. So instead,
+you must write down your instructions in advance.
+We call these stored instructions a program and the act
+of writing these instructions down and getting the instructions to
+be correct programming.
+
+Understanding programming
+
+In the rest of this book, we will try to turn you into a person
+who is skilled in the art of programming. In the end you will be a
+programmer --- perhaps not a professional programmer, but
+at least you will have the skills to look at a data/information
+analysis problem and develop a program to solve the problem.
+2834
+7221 problem solving
+
+2981 In a sense, you need two skills to be a programmer:
+
+First, you need to know the programming language (Python) -
+5415 you need to know the vocabulary and the grammar. You need to be able
+to spell the words in this new language properly and know how to construct
+well-formed sentences in this new language.
+
+Second, you need to tell a story. In writing a story,
+you combine words and sentences to convey an idea to the reader.
+There is a skill and art in constructing the story, and skill in
+story writing is improved by doing some writing and getting some
+feedback. In programming, our program is the story and the
+problem you are trying to solve is the idea.
+
+itemize
+
+Once you learn one programming language such as Python, you will
+find it much easier to learn a second programming language such
+as JavaScript or C++. The new programming language has very different
+vocabulary and grammar but the problem-solving skills
+will be the same across all programming languages.
+
+You will learn the vocabulary and sentences of Python pretty quickly.
+It will take longer for you to be able to write a coherent program
+to solve a brand-new problem. We teach programming much like we teach
+writing. We start reading and explaining programs, then we write
+simple programs, and then we write increasingly complex programs over time.
+At some point you get your muse and see the patterns on your own
+and can see more naturally how to take a problem and
+write a program that solves that problem. And once you get
+6872 to that point, programming becomes a very pleasant and creative process.
+
+We start with the vocabulary and structure of Python programs. Be patient
+as the simple examples remind you of when you started reading for the first
+time.
+
+Words and sentences
+4806
+Unlike human languages, the Python vocabulary is actually pretty small.
+We call this vocabulary the reserved words. These are words that
+5460 have very special meaning to Python. When Python sees these words in 8533
+3538 a Python program, they have one and only one meaning to Python. Later
+as you write programs you will make up your own words that have meaning to
+you called variables. You will have great latitude in choosing
+your 9663 names 8001 for 9795 your variables, but you cannot use any of Python's
+ reserved 8752 words 1117 as 5349 a name for a variable.
+
+When we train a dog, we use special words like
+sit, stay, and fetch. When you talk to a dog and
+4509 don't use any of the reserved words, they just look at you with a
+quizzical look on their face until you say a reserved word.
+For example, if you say,
+I wish more people would walk to improve their overall health,
+what most dogs likely hear is,
+blah blah blah walk blah blah blah blah.
+That is because walk is a reserved word in dog language.
+
+The reserved words in the language where humans talk to
+Python include the following:
+
+and del from not while
+as elif global or with
+assert else if pass yield
+break except import print
+class exec in raise
+continue finally is return
+def for lambda try
+
+That is it, and unlike a dog, Python is already completely trained.
+When 1004 you 9258 say 4183 try, Python will try every time you say it without
+ fail.
+
+4034 We will learn these reserved words and how they are used in good time, 3342
+but for now we will focus on the Python equivalent of speak (in
+human-to-dog language). The nice thing about telling Python to speak
+3482 is that we can even tell it what to say by giving it a message in quotes: 8567
+
+And we have even written our first syntactically correct Python sentence.
+Our sentence starts with the reserved word print followed
+by a string of text of our choosing enclosed in single quotes.
+
+Conversing with Python
+
+1052 Now that we have a word and a simple sentence that we know in Python, 8135
+we need to know how to start a conversation with Python to test
+our new language skills.
+
+Before 5561 you 517 can 1218 converse with Python, you must first install the Python
+ software on your computer and learn how to start Python on your
+computer. That is too much detail for this chapter so I suggest
+that you consult www.py4e.com where I have detailed
+instructions and screencasts of setting up and starting Python
+on Macintosh and Windows systems. At some point, you will be in
+a terminal or command window and you will type python and
+8877 the Python interpreter will start executing in interactive mode
+and appear somewhat as follows:
+interactive mode
+
+The >>> prompt is the Python interpreter's way of asking you, What
+do you want me to do next? Python is ready to have a conversation with
+you. All you have to know is how to speak the Python language.
+
+Let's say for example that you did not know even the simplest Python language
+words or sentences. You might want to use the standard line that astronauts
+use when they land on a faraway planet and try to speak with the inhabitants
+of the planet:
+
+This is not going so well. Unless you think of something quickly,
+the inhabitants of the planet are likely to stab you with their spears,
+put you on a spit, roast you over a fire, and eat you for dinner.
+
+At this point, you should also realize that while Python
+is amazingly complex and powerful and very picky about
+the syntax you use to communicate with it, Python is
+not intelligent. You are really just having a conversation
+with yourself, but using proper syntax.
+8062 1720
+In a sense, when you use a program written by someone else
+the conversation is between you and those other
+programmers with Python acting as an intermediary. Python
+is a way for the creators of programs to express how the
+conversation is supposed to proceed. And
+in just a few more chapters, you will be one of those
+programmers using Python to talk to the users of your program.
+
+279 Before we leave our first conversation with the Python
+interpreter, you should probably know the proper way
+to say good-bye when interacting with the inhabitants
+of Planet Python:
+
+2054 You will notice that the error is different for the first two 801
+incorrect attempts. The second error is different because
+if is a reserved word and Python saw the reserved word
+and thought we were trying to say something but got the syntax
+of the sentence wrong.
+
+Terminology: interpreter and compiler
+
+Python is a high-level language intended to be relatively
+straightforward for humans to read and write and for computers
+to read and process. Other high-level languages include Java, C++,
+918 PHP, Ruby, Basic, Perl, JavaScript, and many more. The actual hardware
+inside the Central Processing Unit (CPU) does not understand any
+of these high-level languages.
+
+The CPU understands a language we call machine language. Machine
+language is very simple and frankly very tiresome to write because it
+is represented all in zeros and ones.
+
+Machine language seems quite simple on the surface, given that there
+are only zeros and ones, but its syntax is even more complex
+8687 and far more intricate than Python. So very few programmers ever write
+machine language. Instead we build various translators to allow
+programmers to write in high-level languages like Python or JavaScript
+and these translators convert the programs to machine language for actual
+execution by the CPU.
+
+Since machine language is tied to the computer hardware, machine language
+is not portable across different types of hardware. Programs written in
+high-level languages can be moved between different computers by using a
+different interpreter on the new machine or recompiling the code to create
+a machine language version of the program for the new machine.
+
+These programming language translators fall into two general categories:
+(one) interpreters and (two) compilers.
+7073 1865 7084
+An interpreter reads the source code of the program as written by the
+programmer, parses the source code, and interprets the instructions on the fly.
+Python is an interpreter and when we are running Python interactively,
+we can type a line of Python (a sentence) and Python processes it immediately
+and is ready for us to type another line of Python.
+2923 63
+Some of the lines of Python tell Python that you want it to remember some
+value for later. We need to pick a name for that value to be remembered and
+we can use that symbolic name to retrieve the value later. We use the
+term variable to refer to the labels we use to refer to this stored data.
+
+In this example, we ask Python to remember the value six and use the label x
+so we can retrieve the value later. We verify that Python has actually remembered
+the value using x and multiply
+it by seven and put the newly computed value in y. Then we ask Python to print out
+8824 the value currently in y.
+1079 5801 5047
+Even though we are typing these commands into Python one line at a time, Python
+is treating them as an ordered sequence of statements with later statements able
+to retrieve data created in earlier statements. We are writing our first
+simple paragraph with four sentences in a logical and meaningful order.
+5
+It is the nature of an interpreter to be able to have an interactive conversation
+as shown above. A compiler needs to be handed the entire program in a file, and then
+it runs a process to translate the high-level source code into machine language
+2572 and then the compiler puts the resulting machine language into a file for later
+execution.
+
+If you have a Windows system, often these executable machine language programs have a
+suffix of .exe or .dll which stand for executable and dynamic link
+library respectively. In Linux and Macintosh, there is no suffix that uniquely marks
+a file as executable.
+
+If you were to open an executable file in a text editor, it would look
+completely crazy and be unreadable:
+
+It is not easy to read or write machine language, so it is nice that we have
+compilers that allow us to write in high-level
+languages like Python or C.
+
+Now at this point in our discussion of compilers and interpreters, you should
+be 5616 wondering 171 a 3062 bit about the Python interpreter itself. What language is
+ 9552 it written in? Is it written in a compiled language? When we type 7655
+python, 829 what 6096 exactly 2312 is happening?
+
+The Python interpreter is written in a high-level language called C.
+You can look at the actual source code for the Python interpreter by
+going to www.python.org and working your way to their source code.
+So Python is a program itself and it is compiled into machine code.
+When you installed Python on your computer (or the vendor installed it),
+6015 you copied a machine-code copy of the translated Python program onto your 7100
+system. In Windows, the executable machine code for Python itself is likely
+in a file.
+
+That is more than you really need to know to be a Python programmer, but
+sometimes it pays to answer those little nagging questions right at
+the beginning.
+
+Writing a program
+
+Typing commands into the Python interpreter is a great way to experiment
+with Python's features, but it is not recommended for solving more complex problems.
+
+When we want to write a program,
+we use a text editor to write the Python instructions into a file,
+which 9548 is 2727 called 1792 a script. By
+ convention, Python scripts have names that end with .py.
+
+script
+
+To execute the script, you have to tell the Python interpreter
+the name of the file. In a Unix or Windows command window,
+you would type python hello.py as follows:
+
+We call the Python interpreter and tell it to read its source code from
+the file hello.py instead of prompting us for lines of Python code
+interactively.
+
+You will notice that there was no need to have quit() at the end of
+the Python program in the file. When Python is reading your source code
+from a file, it knows to stop when it reaches the end of the file.
+
+8402 What is a program?
+
+The definition of a program at its most basic is a sequence
+of Python statements that have been crafted to do something.
+Even our simple hello.py script is a program. It is a one-line
+program and is not particularly useful, but in the strictest definition,
+it is a Python program.
+
+It might be easiest to understand what a program is by thinking about a problem
+that a program might be built to solve, and then looking at a program
+that would solve that problem.
+
+Lets say you are doing Social Computing research on Facebook posts and
+you are interested in the most frequently used word in a series of posts.
+You could print out the stream of Facebook posts and pore over the text
+looking for the most common word, but that would take a long time and be very
+mistake prone. You would be smart to write a Python program to handle the
+task quickly and accurately so you can spend the weekend doing something
+fun.
+
+For example, look at the following text about a clown and a car. Look at the
+text and figure out the most common word and how many times it occurs.
+
+Then imagine that you are doing this task looking at millions of lines of
+text. Frankly it would be quicker for you to learn Python and write a
+Python program to count the words than it would be to manually
+scan the words.
+
+The even better news is that I already came up with a simple program to
+find the most common word in a text file. I wrote it,
+tested it, and now I am giving it to you to use so you can save some time.
+
+You don't even need to know Python to use this program. You will need to get through
+Chapter ten of this book to fully understand the awesome Python techniques that were
+used to make the program. You are the end user, you simply use the program and marvel
+at its cleverness and how it saved you so much manual effort.
+You simply type the code
+into a file called words.py and run it or you download the source
+code from http://www.py4e.com/code3/ and run it.
+
+This is a good example of how Python and the Python language are acting as an intermediary
+between you (the end user) and me (the programmer). Python is a way for us to exchange useful
+instruction sequences (i.e., programs) in a common language that can be used by anyone who
+installs Python on their computer. So neither of us are talking to Python,
+instead we are communicating with each other through Python.
+
+The building blocks of programs
+
+In the next few chapters, we will learn more about the vocabulary, sentence structure,
+paragraph structure, and story structure of Python. We will learn about the powerful
+capabilities of Python and how to compose those capabilities together to create useful
+programs.
+
+There are some low-level conceptual patterns that we use to construct programs. These
+constructs are not just for Python programs, they are part of every programming language
+from machine language up to the high-level languages.
+
+description
+
+Get data from the outside world. This might be
+reading data from a file, or even some kind of sensor like
+a microphone or GPS. In our initial programs, our input will come from the user
+typing data on the keyboard.
+
+Display the results of the program on a screen
+or store them in a file or perhaps write them to a device like a
+speaker to play music or speak text.
+
+Perform statements one after
+another in the order they are encountered in the script.
+
+Check for certain conditions and
+then execute or skip a sequence of statements.
+
+Perform some set of statements
+repeatedly, usually with
+some variation.
+
+Write a set of instructions once and give them a name
+and then reuse those instructions as needed throughout your program.
+
+description
+
+It sounds almost too simple to be true, and of course it is never
+so simple. It is like saying that walking is simply
+putting one foot in front of the other. The art
+of writing a program is composing and weaving these
+basic elements together many times over to produce something
+that is useful to its users.
+
+The word counting program above directly uses all of
+these patterns except for one.
+
+What could possibly go wrong?
+
+As we saw in our earliest conversations with Python, we must
+communicate very precisely when we write Python code. The smallest
+deviation or mistake will cause Python to give up looking at your
+program.
+
+Beginning programmers often take the fact that Python leaves no
+room for errors as evidence that Python is mean, hateful, and cruel.
+While Python seems to like everyone else, Python knows them
+personally and holds a grudge against them. Because of this grudge,
+Python takes our perfectly written programs and rejects them as
+unfit just to torment us.
+
+There is little to be gained by arguing with Python. It is just a tool.
+It has no emotions and it is happy and ready to serve you whenever you
+need it. Its error messages sound harsh, but they are just Python's
+call for help. It has looked at what you typed, and it simply cannot
+understand what you have entered.
+
+Python is much more like a dog, loving you unconditionally, having a few
+key words that it understands, looking you with a sweet look on its
+face (>>>), and waiting for you to say something it understands.
+When Python says SyntaxError: invalid syntax, it is simply wagging
+its tail and saying, You seemed to say something but I just don't
+understand what you meant, but please keep talking to me (>>>).
+
+As your programs become increasingly sophisticated, you will encounter three
+general types of errors:
+
+description
+
+These are the first errors you will make and the easiest
+to fix. A syntax error means that you have violated the grammar rules of Python.
+Python does its best to point right at the line and character where
+it noticed it was confused. The only tricky bit of syntax errors is that sometimes
+the mistake that needs fixing is actually earlier in the program than where Python
+noticed it was confused. So the line and character that Python indicates in
+a syntax error may just be a starting point for your investigation.
+
+A logic error is when your program has good syntax but there is a mistake
+in the order of the statements or perhaps a mistake in how the statements relate to one another.
+A good example of a logic error might be, take a drink from your water bottle, put it
+in your backpack, walk to the library, and then put the top back on the bottle.
+
+A semantic error is when your description of the steps to take
+is syntactically perfect and in the right order, but there is simply a mistake in
+the program. The program is perfectly correct but it does not do what
+you intended for it to do. A simple example would
+be if you were giving a person directions to a restaurant and said, ...when you reach
+the intersection with the gas station, turn left and go one mile and the restaurant
+is a red building on your left. Your friend is very late and calls you to tell you that
+they are on a farm and walking around behind a barn, with no sign of a restaurant.
+Then you say did you turn left or right at the gas station? and
+they say, I followed your directions perfectly, I have
+them written down, it says turn left and go one mile at the gas station. Then you say,
+I am very sorry, because while my instructions were syntactically correct, they
+sadly contained a small but undetected semantic error..
+
+description
+
+Again in all three types of errors, Python is merely trying its hardest to
+do exactly what you have asked.
+
+The learning journey
+
+As you progress through the rest of the book, don't be afraid if the concepts
+don't seem to fit together well the first time. When you were learning to speak,
+it was not a problem for your first few years that you just made cute gurgling noises.
+And it was OK if it took six months for you to move from simple vocabulary to
+simple sentences and took five or six more years to move from sentences to paragraphs, and a
+few more years to be able to write an interesting complete short story on your own.
+
+We want you to learn Python much more rapidly, so we teach it all at the same time
+over the next few chapters.
+But it is like learning a new language that takes time to absorb and understand
+before it feels natural.
+That leads to some confusion as we visit and revisit
+topics to try to get you to see the big picture while we are defining the tiny
+fragments that make up that big picture. While the book is written linearly, and
+if you are taking a course it will progress in a linear fashion, don't hesitate
+to be very nonlinear in how you approach the material. Look forwards and backwards
+and read with a light touch. By skimming more advanced material without
+fully understanding the details, you can get a better understanding of the why?
+of programming. By reviewing previous material and even redoing earlier
+exercises, you will realize that you actually learned a lot of material even
+if the material you are currently staring at seems a bit impenetrable.
+
+Usually when you are learning your first programming language, there are a few
+wonderful Ah Hah! moments where you can look up from pounding away at some rock
+with a hammer and chisel and step away and see that you are indeed building
+a beautiful sculpture.
+
+If something seems particularly hard, there is usually no value in staying up all
+night and staring at it. Take a break, take a nap, have a snack, explain what you
+are having a problem with to someone (or perhaps your dog), and then come back to it with
+fresh eyes. I assure you that once you learn the programming concepts in the book
+you will look back and see that it was all really easy and elegant and it simply
+took you a bit of time to absorb it.
+42
+The end
diff --git a/Coursera_Python3ProgAccessWebData/Assignment2_Socket/socket1_assignment2.py b/Coursera_Python3ProgAccessWebData/Assignment2_Socket/socket1_assignment2.py
new file mode 100644
index 0000000..5ff48b5
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment2_Socket/socket1_assignment2.py
@@ -0,0 +1,30 @@
+#!/usr/bin/env python3
+
+import socket
+
+
+# Just to make a connection to data.pr4e.org on tcp/80.
+mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Connects the socket.
+mysock.connect( # Connect to a server on a tcp port.
+ ("data.pr4e.org", 80)
+)
+
+# Prepare the message to be sent using a '.encode()' method.
+cmd = "GET http://data.pr4e.org/intro-short.txt HTTP/1.0\r\n\r\n".encode()
+mysock.send(cmd) # Actually sending the message.
+
+while True:
+ data = mysock.recv(512) # The socket is set to receive data at 512 bytes and assigned to var 'data'.
+ if (len(data) < 1): # But if the length of the data values is < 1, which means nothing,
+ break # then program will stop.
+ print(data.decode()) # But if there are data values with length > 1, then use the '.decode()' method
+ # and print out the data values.
+mysock.close() # Then close the socket connection.
+
+""" The output will show on terminal the first few lines of meta data, and then followed
+by the actual data values.
+
+On the Chrome browser, click on View -> Developer -> JavaScript Console.
+Then click on the Network tab.
+Reload the URL http://data.pr4e.org/romeo.txt and click on the file romeo.txt
+and you can see the Headers information in more details. """
diff --git a/Coursera_Python3ProgAccessWebData/Assignment3_urllib_bs4/urllib_bs4_assignment3.py b/Coursera_Python3ProgAccessWebData/Assignment3_urllib_bs4/urllib_bs4_assignment3.py
new file mode 100644
index 0000000..c621cad
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment3_urllib_bs4/urllib_bs4_assignment3.py
@@ -0,0 +1,105 @@
+#!/usr/bin/env python3
+
+"""
+Assignment - Scraping Numbers from HTML using BeautifulSoup
+
+In this assignment you will write a Python program similar to http://www.py4e.com/code3/urllink2.py.
+The program will use urllib to read the HTML from the data files below, and parse the data,
+extracting numbers and compute the sum of the numbers in the file.
+
+from urllib.request import urlopen
+from bs4 import BeautifulSoup
+import ssl
+
+# Ignore SSL certificate errors
+ctx = ssl.create_default_context()
+ctx.check_hostname = False
+ctx.verify_mode = ssl.CERT_NONE
+
+url = input('Enter - ')
+html = urlopen(url, context=ctx).read()
+soup = BeautifulSoup(html, "html.parser")
+
+# Retrieve all of the anchor tags
+tags = soup('a')
+for tag in tags:
+ # Look at the parts of a tag
+ print('TAG:', tag)
+ print('URL:', tag.get('href', None))
+ print('Contents:', tag.contents[0])
+ print('Attrs:', tag.attrs)
+
+We provide two files for this assignment. One is a sample file where we give you the sum for your
+testing and the other is the actual data you need to process for the assignment.
+
+Sample data: http://py4e-data.dr-chuck.net/comments_42.html (Sum=2553)
+Actual data: http://py4e-data.dr-chuck.net/comments_1173584.html (Sum ends with ..45)
+
+You do not need to save these files to your folder since your program will read the data directly
+from the URL. Note: Each student will have a distinct data url for the assignment - so only use your
+own data url for analysis.
+
+Data Format -
+
+The file is a table of names and comment counts. You can ignore most of the data in the file except
+for lines like the following:
+
+
Modu
90
+
Kenzie
88
+
Hubert
87
+
+Tasks: "You are to find all the tags in the file and pull out the numbers from the tag and sum
+the numbers. Look at the sample code provided. It shows how to find all of a certain kind of tag,
+loop through the tags and extract the various aspects of the tags.
+
+You need to adjust this code to look for span tags and pull out the text content of the span tag,
+convert them to integers and add them up to complete the assignment."
+
+Sample Execution -
+
+$ python3 solution.py
+Enter - http://py4e-data.dr-chuck.net/comments_42.html
+Count 50
+Sum 2...
+
+Good luck!
+"""
+
+
+
+from urllib.request import urlopen
+from bs4 import BeautifulSoup
+import ssl
+
+
+# Ignore SSL certificate errors.
+ctx = ssl.create_default_context()
+ctx.check_hostname = False
+ctx.verify_mode = ssl.CERT_NONE
+
+url = input("Enter URL: ")
+html = urlopen(url, context=ctx).read()
+soup = BeautifulSoup(html, "html.parser")
+
+# Retrieve all of the span tags.
+tags = soup("span")
+print(tags)
+print("")
+
+Sum = 0
+Count = 0
+
+for tag in tags:
+ # Look at the parts of a tag.
+ #print("TA:", tag)
+ #print("Contents:", tag.contents[0])
+ print(tag.contents[0]) # Task: pull out the numbers from the tag,
+ #print("Attrs:", tag.attrs)
+ Sum = Sum + int(tag.contents[0]) # Task:convert them to integers and sum the numbers.
+ Count += 1
+
+ print("")
+
+print("Count", Count)
+print("Sum", Sum)
+print("")
diff --git a/Coursera_Python3ProgAccessWebData/Assignment4_urllib_bs4/urllib_bs4_assignment4.py b/Coursera_Python3ProgAccessWebData/Assignment4_urllib_bs4/urllib_bs4_assignment4.py
new file mode 100644
index 0000000..ebe04ec
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment4_urllib_bs4/urllib_bs4_assignment4.py
@@ -0,0 +1,107 @@
+#!/usr/bin/env python3
+
+"""
+Assignment: Following Links in HTML Using BeautifulSoup:
+
+In this assignment you will write a Python program that expands on
+http://www.py4e.com/code3/urllinks.py
+
+import urllib.request, urllib.parse, urllib.error
+from bs4 import BeautifulSoup
+import ssl
+
+# Ignore SSL certificate errors
+ctx = ssl.create_default_context()
+ctx.check_hostname = False
+ctx.verify_mode = ssl.CERT_NONE
+
+url = input('Enter - ')
+html = urllib.request.urlopen(url, context=ctx).read()
+soup = BeautifulSoup(html, 'html.parser')
+
+# Retrieve all of the anchor tags
+tags = soup('a')
+for tag in tags:
+ print(tag.get('href', None))
+
+The program will use urllib to read the HTML from the data files below, extract the href= values from
+the anchor tags, scan for a tag that is in a particular position relative to the first name in the
+list, follow that link and repeat the process a number of times and report the last name you find.
+
+We provide two files for this assignment. One is a sample file where we give you the name for your
+testing and the other is the actual data you need to process for the assignment.
+
+- Sample problem: Start at http://py4e-data.dr-chuck.net/known_by_Fikret.html
+Find the link at position 3 (the first name is 1). Follow that link. Repeat this process 4 times.
+The answer is the last name that you retrieve.
+Sequence of names: Fikret Montgomery Mhairade Butchi Anayah
+Last name in sequence: Anayah
+
+- Actual problem: Start at: http://py4e-data.dr-chuck.net/known_by_Nabeeha.html
+Find the link at position 18 (the first name is 1). Follow that link. Repeat this process 7 times.
+The answer is the last name that you retrieve.
+Hint: The first character of the name of the last page that you will load is: R
+
+Strategy:
+
+The web pages tweak the height between the links and hide the page after a few seconds to make it
+difficult for you to do the assignment without writing a Python program. But frankly with a little
+effort and patience you can overcome these attempts to make it a little harder to complete the
+assignment without writing a Python program. But that is not the point. The point is to write a
+clever Python program to solve the program.
+
+Sample execution:
+
+Here is a sample execution of a solution:
+$ python3 solution.py
+Enter URL: http://py4e-data.dr-chuck.net/known_by_Fikret.html
+Enter count: 4
+Enter position: 3
+Retrieving: http://py4e-data.dr-chuck.net/known_by_Fikret.html
+Retrieving: http://py4e-data.dr-chuck.net/known_by_Montgomery.html
+Retrieving: http://py4e-data.dr-chuck.net/known_by_Mhairade.html
+Retrieving: http://py4e-data.dr-chuck.net/known_by_Butchi.html
+Retrieving: http://py4e-data.dr-chuck.net/known_by_Anayah.html
+
+The answer to the assignment for this execution is "Anayah".
+
+Good luck!
+"""
+
+
+
+import urllib.request, urllib.parse, urllib.error
+from bs4 import BeautifulSoup
+import ssl
+
+
+# Ignore SSL certificates errors.
+ctx = ssl.create_default_context()
+ctx.check_hostname = False
+ctx.verify_mode = ssl.CERT_NONE
+
+url = input("Enter URL: ")
+position = int(input("Enter position: "))-1
+count = int(input("Enter count: "))
+html = urllib.request.urlopen(url, context=ctx).read()
+soup = BeautifulSoup(html, "html.parser")
+
+Sequence = [] # Initialise a empty Sequence list first.
+tags = soup("a")
+print(tags)
+print("")
+
+for item in range(count):
+ link = tags[position].get("href", None)
+ print("Retrieving:", link)
+ Sequence.append(tags[position].contents[0])
+ print(Sequence)
+ print("")
+ html = urllib.request.urlopen(link, context=ctx).read()
+ soup = BeautifulSoup(html, "html.parser")
+ # Retrieve the anchor tags.
+ tags = soup("a")
+ link = tags[position].get("href", None)
+
+print("The last name in sequence:", Sequence[-1])
+print("")
diff --git a/Coursera_Python3ProgAccessWebData/Assignment5_XML/ExtractingData_Assignment.py b/Coursera_Python3ProgAccessWebData/Assignment5_XML/ExtractingData_Assignment.py
new file mode 100644
index 0000000..b3accc8
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment5_XML/ExtractingData_Assignment.py
@@ -0,0 +1,57 @@
+#!/usr/bin/env python3
+
+"""
+We provide two files for this assignment. One is a sample file where we give you the sum for your testing
+and the other is the actual data you need to process for the assignment.
+
+Sample data: http://py4e-data.dr-chuck.net/comments_42.xml (Sum=2553)
+Actual data: http://py4e-data.dr-chuck.net/comments_1173586.xml (Sum ends with 10)
+
+You do not need to save these files to your folder since your program will read the data directly from the URL.
+Note: Each student will have a distinct data url for the assignment - so only use your own data url for analysis.
+
+Task: You are to look through all the tags and find the values sum the numbers.
+
+To make the code a little simpler, you can use an XPath selector string to look through the entire tree of XML
+for any tag named 'count' with the following line of code:
+
+counts = tree.findall('.//count')
+
+Take a look at the Python ElementTree documentation and look for the supported XPath syntax for details.
+You could also work from the top of the XML down to the comments node and then loop through the child nodes of
+the comments node.
+"""
+
+
+import urllib.request, urllib.parse, urllib.error
+import xml.etree.ElementTree as ET
+import ssl
+
+# Ignore SSL certificate error
+ctx = ssl.create_default_context()
+ctx.check_hostname = False
+ctx.verify_mode = ssl.CERT_NONE
+
+url = input("Enter URL to the xml file: ")
+# From the urllib.request module, use the .urlopen() method and parse in var obj url with the ctx context.
+uh = urllib.request.urlopen(url, context = ctx)
+# Read the entire 'uh' content and assign it to var 'data'.
+data = uh.read()
+print(data)
+print("")
+# From the xml elementtree, use the .fromstring() method and parse in the var obj 'data',
+# and assign the values to 'tree'.
+tree = ET.fromstring(data)
+results = tree.findall("comments/comment")
+
+count = 0
+sum = 0
+
+for item in results:
+ x = int(item.find("count").text)
+ sum = sum + x
+ count += 1
+
+print("Count: ", count)
+print("Sum: ", sum)
+print("")
diff --git a/Coursera_Python3ProgAccessWebData/Assignment5_XML/ExtractingData_Assignment_AlternateSolution.py b/Coursera_Python3ProgAccessWebData/Assignment5_XML/ExtractingData_Assignment_AlternateSolution.py
new file mode 100644
index 0000000..5d54dc2
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment5_XML/ExtractingData_Assignment_AlternateSolution.py
@@ -0,0 +1,49 @@
+#!/usr/bin/env python3
+
+"""
+Alternate solution.
+
+We provide two files for this assignment. One is a sample file where we give you the sum for your testing
+and the other is the actual data you need to process for the assignment.
+
+Sample data: http://py4e-data.dr-chuck.net/comments_42.xml (Sum=2553)
+Actual data: http://py4e-data.dr-chuck.net/comments_1173586.xml (Sum ends with 10)
+
+You do not need to save these files to your folder since your program will read the data directly from the URL.
+Note: Each student will have a distinct data url for the assignment - so only use your own data url for analysis.
+
+Task: You are to look through all the tags and find the values sum the numbers.
+
+To make the code a little simpler, you can use an XPath selector string to look through the entire tree of XML
+for any tag named 'count' with the following line of code:
+
+counts = tree.findall('.//count')
+
+Take a look at the Python ElementTree documentation and look for the supported XPath syntax for details.
+You could also work from the top of the XML down to the comments node and then loop through the child nodes of
+the comments node.
+"""
+
+
+import urllib.request as ur
+import xml.etree.ElementTree as ET
+
+url = input("Enter URL: ")
+print("Retrieving ...", url)
+xml = ur.urlopen(url).read()
+print("Retrieved", len(xml), "characters")
+
+tree = ET.fromstring(xml)
+counts = tree.findall(".//count")
+
+total_number = 0 # Initialize a counting total number accumulator to 0 first.
+sum = 0 # Initialize the sum to accumulator to 0 first.
+
+for item in counts:
+ print(type(item.text), item.text)
+ sum += int(item.text) # To add/sum up the text, needs to convert it into integer first.
+ total_number += 1
+
+print("Count: ", total_number)
+print("Sum: ", sum)
+print("")
diff --git a/Coursera_Python3ProgAccessWebData/Assignment5_XML/ExtractingData_sampleGPS.py b/Coursera_Python3ProgAccessWebData/Assignment5_XML/ExtractingData_sampleGPS.py
new file mode 100644
index 0000000..88d1fdb
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment5_XML/ExtractingData_sampleGPS.py
@@ -0,0 +1,60 @@
+#!/usr/bin/env python3
+
+"""
+Extracting Data from XML (sample program)
+
+In this assignment you will write a Python program somewhat similar to (example program)
+http://www.py4e.com/code3/geoxml.py.
+The program will prompt for a URL, read the XML data from that URL using urllib and then parse and extract
+the comment counts from the XML data, compute the sum of the numbers in the file.
+"""
+
+
+# The example program below ask input for a location and provides the (GPS) longitude and latitude of that location.
+import urllib.request, urllib.parse, urllib.error
+import xml.etree.ElementTree as ET
+import ssl
+
+api_key = False
+# If you have a Google Places API key, enter it here
+# api_key = 'AIzaSy___IDByT70'
+# https://developers.google.com/maps/documentation/geocoding/intro
+
+if api_key is False:
+ api_key = 42
+ serviceurl = 'http://py4e-data.dr-chuck.net/xml?'
+else :
+ serviceurl = 'https://maps.googleapis.com/maps/api/geocode/xml?'
+
+# Ignore SSL certificate errors
+ctx = ssl.create_default_context()
+ctx.check_hostname = False
+ctx.verify_mode = ssl.CERT_NONE
+
+while True:
+ address = input('Enter location: ')
+ if len(address) < 1:
+ break
+
+ parms = dict()
+ parms['address'] = address
+ if api_key is not False:
+ parms['key'] = api_key
+ url = serviceurl + urllib.parse.urlencode(parms)
+ print('Retrieving', url)
+ uh = urllib.request.urlopen(url, context=ctx)
+
+ data = uh.read()
+ print('Retrieved', len(data), 'characters')
+ print(data.decode())
+ tree = ET.fromstring(data)
+
+ results = tree.findall('result')
+ lat = results[0].find('geometry').find('location').find('lat').text
+ lng = results[0].find('geometry').find('location').find('lng').text
+ location = results[0].find('formatted_address').text
+
+ print('lat', lat, 'lng', lng)
+ print(location)
+
+print("")
diff --git a/Coursera_Python3ProgAccessWebData/Assignment6_JSON/ExtractDataJSON.py b/Coursera_Python3ProgAccessWebData/Assignment6_JSON/ExtractDataJSON.py
new file mode 100644
index 0000000..5a0dc11
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment6_JSON/ExtractDataJSON.py
@@ -0,0 +1,40 @@
+#!/usr/bin/env python3
+
+"""
+The program will prompt for a URL, read the JSON data from that URL using urllib
+and then parse and extract the comment count from the JSON data,
+compute the sum of the numbers in the file.
+
+We provide two files for this assignment. One is a sample file where we give you the sum for your testing
+and the other is the actual data you need to process for the assignment.
+
+Sample data: http://py4e-data.dr-chuck.net/comments_42.json (Sum=2553)
+Actual data: http://py4e-data.dr-chuck.net/comments_1173587.json (Sum ends with 67)
+
+You do not need to save these files to your folder since your program will read the data directly from the URL.
+Note: Each student will have a distinct data url for the assignment - so only use your own data url for analysis.
+"""
+
+import urllib.request, urllib.parse, urllib.error
+import json
+
+
+
+url = input("Enter JSON URL: ")
+
+print("Retrieving", url)
+uh = urllib.request.urlopen(url)
+data = uh.read().decode()
+print("Retrieved", len(data), "characters")
+
+info = json.loads(data)
+Sum = 0
+
+for item in info["comments"]:
+ print(item["count"])
+ number = int(item["count"])
+ Sum = Sum + number
+
+
+print("Sum: ", Sum)
+print("")
diff --git a/Coursera_Python3ProgAccessWebData/Assignment7_GeoJSON_API/Calling_JSON_API.py b/Coursera_Python3ProgAccessWebData/Assignment7_GeoJSON_API/Calling_JSON_API.py
new file mode 100644
index 0000000..21991d7
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment7_GeoJSON_API/Calling_JSON_API.py
@@ -0,0 +1,91 @@
+#!/usr/bin/env python3
+
+"""
+Calling a JSON API
+==================
+
+In this assignment you will write a Python program somewhat similar to http://www.py4e.com/code3/geojson.py.
+The program will prompt for a location, contact a web service and retrieve JSON for the web service and parse
+that data, and retrieve the first place_id from the JSON. A place ID is a textual identifier that uniquely
+identifies a place as within Google Maps.
+
+API End Points
+==============
+
+To complete this assignment, you should use this API endpoint that has a static subset of the Google Data:
+
+http://py4e-data.dr-chuck.net/json?
+This API uses the same parameter (address) as the Google API. This API also has no rate limit so you can test
+as often as you like. If you visit the URL with no parameters, you get "No address..." response.
+To call the API, you need to include a key= parameter and provide the address that you are requesting as the
+address= parameter that is properly URL encoded using the urllib.parse.urlencode() function as shown in
+http://www.py4e.com/code3/geojson.py
+
+Make sure to check that your code is using the API endpoint is as shown above. You will get different results
+from the geojson and json endpoints so make sure you are using the same end point as this autograder is using.
+
+Test Data / Sample Execution
+============================
+
+You can test to see if your program is working with a location of "South Federal University" which will have
+a place_id of "ChIJ1Z9sheJZkFQRDePQqQebCdg".
+
+$ python3 solution.py
+Enter location: South Federal University
+Retrieving http://...
+Retrieved 2275 characters
+Place id ChIJ1Z9sheJZkFQRDePQqQebCdg
+
+Turn In
+=======
+
+Please run your program to find the place_id for this location:
+
+University of Texas
+
+Make sure to enter the name and case exactly as above and enter the place_id and your Python code below.
+Hint: The first seven characters of the place_id are "ChIJt8- ..."
+"""
+
+import urllib.request, urllib.parse, urllib.error
+import json
+import ssl
+
+
+
+api_key = False
+
+# If you have a Google Places API key, enter it here
+# api_key = 'AIzaSy___IDByT70'
+# https://developers.google.com/maps/documentation/geocoding/intro
+
+if api_key is False:
+ api_key = 42
+ serviceurl = 'http://py4e-data.dr-chuck.net/json?'
+else:
+ serviceurl = 'https://maps.googleapis.com/maps/api/geocode/json?'
+
+# Ignore SSL certificate errors
+ctx = ssl.create_default_context()
+ctx.check_hostname = False
+ctx.verify_mode = ssl.CERT_NONE
+
+while True:
+ address = input("Enter location: ")
+
+ parms = dict()
+ parms['address'] = address
+ if api_key is not False: parms['key'] = api_key
+ url = serviceurl + urllib.parse.urlencode(parms)
+
+ print('Retrieving', url)
+ uh = urllib.request.urlopen(url, context=ctx)
+ data = uh.read().decode()
+ print('Retrieved', len(data), 'characters')
+
+ js = json.loads(data)
+ print(json.dumps(js, indent= 4))
+
+ first_id = js["results"][0]["place_id"]
+ print("PLACE ID: ", first_id)
+ print("")
diff --git a/Coursera_Python3ProgAccessWebData/Assignment8_sqlite/emaildb.py b/Coursera_Python3ProgAccessWebData/Assignment8_sqlite/emaildb.py
new file mode 100644
index 0000000..fa711cd
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment8_sqlite/emaildb.py
@@ -0,0 +1,50 @@
+#!/usr/bin/env python3
+
+import sqlite3
+import re
+
+
+conn = sqlite3.connect('orgdb.sqlite')
+cur = conn.cursor()
+cur.execute('DROP TABLE IF EXISTS Counts')
+cur.execute('''CREATE TABLE Counts (org TEXT, count INTEGER)''')
+
+fname = input('Enter file name: ')
+
+if (len(fname) < 1):
+ fname = 'mbox.txt'
+
+fh = open(fname)
+
+for line in fh:
+
+ if not line.startswith('From: '):
+ continue
+
+ pieces = line.split()[1] # This will split out the email address.
+ print(pieces)
+
+ org = pieces.split('@')[1] # This will split out only the email domain name after '@'.
+ print(org)
+ print("")
+
+ cur.execute('SELECT count FROM Counts WHERE org = ?', (org, ))
+ row = cur.fetchone()
+
+ if row is None:
+ cur.execute('''INSERT INTO Counts (org, count) VALUES (?, 1)''', (org, ))
+ else:
+ cur.execute('UPDATE Counts SET count = count + 1 WHERE org = ?', (org, ))
+
+conn.commit()
+
+# https://www.sqlite.org/lang_select.html
+sqlstr = 'SELECT org, count FROM Counts ORDER BY count DESC LIMIT 10'
+
+print("Counts:")
+for row in cur.execute(sqlstr):
+ print(str(row[0]), row[1])
+
+
+cur.close()
+print("")
diff --git a/Coursera_Python3ProgAccessWebData/Assignment8_sqlite/emaildb.sqlite b/Coursera_Python3ProgAccessWebData/Assignment8_sqlite/emaildb.sqlite
new file mode 100644
index 0000000..b4720ed
Binary files /dev/null and b/Coursera_Python3ProgAccessWebData/Assignment8_sqlite/emaildb.sqlite differ
diff --git a/Coursera_Python3ProgAccessWebData/Assignment8_sqlite/mbox.txt b/Coursera_Python3ProgAccessWebData/Assignment8_sqlite/mbox.txt
new file mode 100644
index 0000000..93388bb
--- /dev/null
+++ b/Coursera_Python3ProgAccessWebData/Assignment8_sqlite/mbox.txt
@@ -0,0 +1,132045 @@
+From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.90])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Sat, 05 Jan 2008 09:14:16 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Sat, 05 Jan 2008 09:14:16 -0500
+Received: from holes.mr.itd.umich.edu (holes.mr.itd.umich.edu [141.211.14.79])
+ by flawless.mail.umich.edu () with ESMTP id m05EEFR1013674;
+ Sat, 5 Jan 2008 09:14:15 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY holes.mr.itd.umich.edu ID 477F90B0.2DB2F.12494 ;
+ 5 Jan 2008 09:14:10 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 5F919BC2F2;
+ Sat, 5 Jan 2008 14:10:05 +0000 (GMT)
+Message-ID: <200801051412.m05ECIaH010327@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 899
+ for ;
+ Sat, 5 Jan 2008 14:09:50 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id A215243002
+ for ; Sat, 5 Jan 2008 14:13:33 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m05ECJVp010329
+ for ; Sat, 5 Jan 2008 09:12:19 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m05ECIaH010327
+ for source@collab.sakaiproject.org; Sat, 5 Jan 2008 09:12:18 -0500
+Date: Sat, 5 Jan 2008 09:12:18 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to stephen.marquard@uct.ac.za using -f
+To: source@collab.sakaiproject.org
+From: stephen.marquard@uct.ac.za
+Subject: [sakai] svn commit: r39772 - content/branches/sakai_2-5-x/content-impl/impl/src/java/org/sakaiproject/content/impl
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Sat Jan 5 09:14:16 2008
+X-DSPAM-Confidence: 0.8475
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39772
+
+Author: stephen.marquard@uct.ac.za
+Date: 2008-01-05 09:12:07 -0500 (Sat, 05 Jan 2008)
+New Revision: 39772
+
+Modified:
+content/branches/sakai_2-5-x/content-impl/impl/src/java/org/sakaiproject/content/impl/ContentServiceSqlOracle.java
+content/branches/sakai_2-5-x/content-impl/impl/src/java/org/sakaiproject/content/impl/DbContentService.java
+Log:
+SAK-12501 merge to 2-5-x: r39622, r39624:5, r39632:3 (resolve conflict from differing linebreaks for r39622)
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From louis@media.berkeley.edu Fri Jan 4 18:10:48 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.97])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Fri, 04 Jan 2008 18:10:48 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Fri, 04 Jan 2008 18:10:48 -0500
+Received: from icestorm.mr.itd.umich.edu (icestorm.mr.itd.umich.edu [141.211.93.149])
+ by sleepers.mail.umich.edu () with ESMTP id m04NAbGa029441;
+ Fri, 4 Jan 2008 18:10:37 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY icestorm.mr.itd.umich.edu ID 477EBCE3.161BB.4320 ;
+ 4 Jan 2008 18:10:31 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 07969BB706;
+ Fri, 4 Jan 2008 23:10:33 +0000 (GMT)
+Message-ID: <200801042308.m04N8v6O008125@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 710
+ for ;
+ Fri, 4 Jan 2008 23:10:10 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 4BA2F42F57
+ for ; Fri, 4 Jan 2008 23:10:10 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04N8vHG008127
+ for ; Fri, 4 Jan 2008 18:08:57 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04N8v6O008125
+ for source@collab.sakaiproject.org; Fri, 4 Jan 2008 18:08:57 -0500
+Date: Fri, 4 Jan 2008 18:08:57 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to louis@media.berkeley.edu using -f
+To: source@collab.sakaiproject.org
+From: louis@media.berkeley.edu
+Subject: [sakai] svn commit: r39771 - in bspace/site-manage/sakai_2-4-x/site-manage-tool/tool/src: bundle java/org/sakaiproject/site/tool
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Fri Jan 4 18:10:48 2008
+X-DSPAM-Confidence: 0.6178
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39771
+
+Author: louis@media.berkeley.edu
+Date: 2008-01-04 18:08:50 -0500 (Fri, 04 Jan 2008)
+New Revision: 39771
+
+Modified:
+bspace/site-manage/sakai_2-4-x/site-manage-tool/tool/src/bundle/sitesetupgeneric.properties
+bspace/site-manage/sakai_2-4-x/site-manage-tool/tool/src/java/org/sakaiproject/site/tool/SiteAction.java
+Log:
+BSP-1415 New (Guest) user Notification
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From zqian@umich.edu Fri Jan 4 16:10:39 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.25])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Fri, 04 Jan 2008 16:10:39 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Fri, 04 Jan 2008 16:10:39 -0500
+Received: from ghostbusters.mr.itd.umich.edu (ghostbusters.mr.itd.umich.edu [141.211.93.144])
+ by panther.mail.umich.edu () with ESMTP id m04LAcZw014275;
+ Fri, 4 Jan 2008 16:10:38 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY ghostbusters.mr.itd.umich.edu ID 477EA0C6.A0214.25480 ;
+ 4 Jan 2008 16:10:33 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id C48CDBB490;
+ Fri, 4 Jan 2008 21:10:31 +0000 (GMT)
+Message-ID: <200801042109.m04L92hb007923@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 906
+ for ;
+ Fri, 4 Jan 2008 21:10:18 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 7D13042F71
+ for ; Fri, 4 Jan 2008 21:10:14 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04L927E007925
+ for ; Fri, 4 Jan 2008 16:09:02 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04L92hb007923
+ for source@collab.sakaiproject.org; Fri, 4 Jan 2008 16:09:02 -0500
+Date: Fri, 4 Jan 2008 16:09:02 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: zqian@umich.edu
+Subject: [sakai] svn commit: r39770 - site-manage/branches/sakai_2-5-x/site-manage-tool/tool/src/webapp/vm/sitesetup
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Fri Jan 4 16:10:39 2008
+X-DSPAM-Confidence: 0.6961
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39770
+
+Author: zqian@umich.edu
+Date: 2008-01-04 16:09:01 -0500 (Fri, 04 Jan 2008)
+New Revision: 39770
+
+Modified:
+site-manage/branches/sakai_2-5-x/site-manage-tool/tool/src/webapp/vm/sitesetup/chef_site-siteInfo-list.vm
+Log:
+merge fix to SAK-9996 into 2-5-x branch: svn merge -r 39687:39688 https://source.sakaiproject.org/svn/site-manage/trunk/
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From rjlowe@iupui.edu Fri Jan 4 15:46:24 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.25])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Fri, 04 Jan 2008 15:46:24 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Fri, 04 Jan 2008 15:46:24 -0500
+Received: from dreamcatcher.mr.itd.umich.edu (dreamcatcher.mr.itd.umich.edu [141.211.14.43])
+ by panther.mail.umich.edu () with ESMTP id m04KkNbx032077;
+ Fri, 4 Jan 2008 15:46:23 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY dreamcatcher.mr.itd.umich.edu ID 477E9B13.2F3BC.22965 ;
+ 4 Jan 2008 15:46:13 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 4AE03BB552;
+ Fri, 4 Jan 2008 20:46:13 +0000 (GMT)
+Message-ID: <200801042044.m04Kiem3007881@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 38
+ for ;
+ Fri, 4 Jan 2008 20:45:56 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id A55D242F57
+ for ; Fri, 4 Jan 2008 20:45:52 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04KieqE007883
+ for ; Fri, 4 Jan 2008 15:44:40 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04Kiem3007881
+ for source@collab.sakaiproject.org; Fri, 4 Jan 2008 15:44:40 -0500
+Date: Fri, 4 Jan 2008 15:44:40 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to rjlowe@iupui.edu using -f
+To: source@collab.sakaiproject.org
+From: rjlowe@iupui.edu
+Subject: [sakai] svn commit: r39769 - in gradebook/trunk/app/ui/src: java/org/sakaiproject/tool/gradebook/ui/helpers/beans java/org/sakaiproject/tool/gradebook/ui/helpers/producers webapp/WEB-INF webapp/WEB-INF/bundle
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Fri Jan 4 15:46:24 2008
+X-DSPAM-Confidence: 0.7565
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39769
+
+Author: rjlowe@iupui.edu
+Date: 2008-01-04 15:44:39 -0500 (Fri, 04 Jan 2008)
+New Revision: 39769
+
+Modified:
+gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/beans/AssignmentGradeRecordBean.java
+gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/producers/GradeGradebookItemProducer.java
+gradebook/trunk/app/ui/src/webapp/WEB-INF/applicationContext.xml
+gradebook/trunk/app/ui/src/webapp/WEB-INF/bundle/messages.properties
+gradebook/trunk/app/ui/src/webapp/WEB-INF/requestContext.xml
+Log:
+SAK-12180 - Fixed errors with grading helper
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From zqian@umich.edu Fri Jan 4 15:03:18 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.46])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Fri, 04 Jan 2008 15:03:18 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Fri, 04 Jan 2008 15:03:18 -0500
+Received: from firestarter.mr.itd.umich.edu (firestarter.mr.itd.umich.edu [141.211.14.83])
+ by fan.mail.umich.edu () with ESMTP id m04K3HGF006563;
+ Fri, 4 Jan 2008 15:03:17 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY firestarter.mr.itd.umich.edu ID 477E9100.8F7F4.1590 ;
+ 4 Jan 2008 15:03:15 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 57770BB477;
+ Fri, 4 Jan 2008 20:03:09 +0000 (GMT)
+Message-ID: <200801042001.m04K1cO0007738@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 622
+ for ;
+ Fri, 4 Jan 2008 20:02:46 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id AB4D042F4D
+ for ; Fri, 4 Jan 2008 20:02:50 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04K1cXv007740
+ for ; Fri, 4 Jan 2008 15:01:38 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04K1cO0007738
+ for source@collab.sakaiproject.org; Fri, 4 Jan 2008 15:01:38 -0500
+Date: Fri, 4 Jan 2008 15:01:38 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: zqian@umich.edu
+Subject: [sakai] svn commit: r39766 - site-manage/branches/sakai_2-4-x/site-manage-tool/tool/src/java/org/sakaiproject/site/tool
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Fri Jan 4 15:03:18 2008
+X-DSPAM-Confidence: 0.7626
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39766
+
+Author: zqian@umich.edu
+Date: 2008-01-04 15:01:37 -0500 (Fri, 04 Jan 2008)
+New Revision: 39766
+
+Modified:
+site-manage/branches/sakai_2-4-x/site-manage-tool/tool/src/java/org/sakaiproject/site/tool/SiteAction.java
+Log:
+merge fix to SAK-10788 into site-manage 2.4.x branch:
+
+Sakai Source Repository #38024 Wed Nov 07 14:54:46 MST 2007 zqian@umich.edu Fix to SAK-10788: If a provided id in a couse site is fake or doesn't provide any user information, Site Info appears to be like project site with empty participant list
+
+Watch for enrollments object being null and concatenate provider ids when there are more than one.
+Files Changed
+MODIFY /site-manage/trunk/site-manage-tool/tool/src/java/org/sakaiproject/site/tool/SiteAction.java
+
+
+
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From rjlowe@iupui.edu Fri Jan 4 14:50:18 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.93])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Fri, 04 Jan 2008 14:50:18 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Fri, 04 Jan 2008 14:50:18 -0500
+Received: from eyewitness.mr.itd.umich.edu (eyewitness.mr.itd.umich.edu [141.211.93.142])
+ by mission.mail.umich.edu () with ESMTP id m04JoHJi019755;
+ Fri, 4 Jan 2008 14:50:17 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY eyewitness.mr.itd.umich.edu ID 477E8DF2.67B91.5278 ;
+ 4 Jan 2008 14:50:13 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 2D1B9BB492;
+ Fri, 4 Jan 2008 19:47:10 +0000 (GMT)
+Message-ID: <200801041948.m04JmdwO007705@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 960
+ for ;
+ Fri, 4 Jan 2008 19:46:50 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id B3E6742F4A
+ for ; Fri, 4 Jan 2008 19:49:51 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04JmeV9007707
+ for ; Fri, 4 Jan 2008 14:48:40 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04JmdwO007705
+ for source@collab.sakaiproject.org; Fri, 4 Jan 2008 14:48:39 -0500
+Date: Fri, 4 Jan 2008 14:48:39 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to rjlowe@iupui.edu using -f
+To: source@collab.sakaiproject.org
+From: rjlowe@iupui.edu
+Subject: [sakai] svn commit: r39765 - in gradebook/trunk/app: business/src/java/org/sakaiproject/tool/gradebook/business business/src/java/org/sakaiproject/tool/gradebook/business/impl ui ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/beans ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/entity ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/params ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/producers ui/src/webapp/WEB-INF ui/src/webapp/WEB-INF/bundle ui/src/webapp/content/templates
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Fri Jan 4 14:50:18 2008
+X-DSPAM-Confidence: 0.7556
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39765
+
+Author: rjlowe@iupui.edu
+Date: 2008-01-04 14:48:37 -0500 (Fri, 04 Jan 2008)
+New Revision: 39765
+
+Added:
+gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/beans/AssignmentGradeRecordBean.java
+gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/beans/AssignmentGradeRecordCreator.java
+gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/entity/GradebookEntryGradeEntityProvider.java
+gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/params/GradeGradebookItemViewParams.java
+gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/producers/GradeGradebookItemProducer.java
+gradebook/trunk/app/ui/src/webapp/content/templates/grade-gradebook-item.html
+Modified:
+gradebook/trunk/app/business/src/java/org/sakaiproject/tool/gradebook/business/GradebookManager.java
+gradebook/trunk/app/business/src/java/org/sakaiproject/tool/gradebook/business/impl/GradebookManagerHibernateImpl.java
+gradebook/trunk/app/ui/pom.xml
+gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/beans/GradebookItemBean.java
+gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/entity/GradebookEntryEntityProvider.java
+gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/helpers/producers/AddGradebookItemProducer.java
+gradebook/trunk/app/ui/src/webapp/WEB-INF/applicationContext.xml
+gradebook/trunk/app/ui/src/webapp/WEB-INF/bundle/messages.properties
+gradebook/trunk/app/ui/src/webapp/WEB-INF/requestContext.xml
+Log:
+SAK-12180 - New helper tool to grade an assignment
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From cwen@iupui.edu Fri Jan 4 11:37:30 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.46])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Fri, 04 Jan 2008 11:37:30 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Fri, 04 Jan 2008 11:37:30 -0500
+Received: from tadpole.mr.itd.umich.edu (tadpole.mr.itd.umich.edu [141.211.14.72])
+ by fan.mail.umich.edu () with ESMTP id m04GbT9x022078;
+ Fri, 4 Jan 2008 11:37:29 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY tadpole.mr.itd.umich.edu ID 477E60B2.82756.9904 ;
+ 4 Jan 2008 11:37:09 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 8D13DBB001;
+ Fri, 4 Jan 2008 16:37:07 +0000 (GMT)
+Message-ID: <200801041635.m04GZQGZ007313@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 120
+ for ;
+ Fri, 4 Jan 2008 16:36:40 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id D430B42E42
+ for ; Fri, 4 Jan 2008 16:36:37 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04GZQ7W007315
+ for ; Fri, 4 Jan 2008 11:35:26 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04GZQGZ007313
+ for source@collab.sakaiproject.org; Fri, 4 Jan 2008 11:35:26 -0500
+Date: Fri, 4 Jan 2008 11:35:26 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to cwen@iupui.edu using -f
+To: source@collab.sakaiproject.org
+From: cwen@iupui.edu
+Subject: [sakai] svn commit: r39764 - in msgcntr/trunk/messageforums-app/src/java/org/sakaiproject/tool/messageforums: . ui
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Fri Jan 4 11:37:30 2008
+X-DSPAM-Confidence: 0.7002
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39764
+
+Author: cwen@iupui.edu
+Date: 2008-01-04 11:35:25 -0500 (Fri, 04 Jan 2008)
+New Revision: 39764
+
+Modified:
+msgcntr/trunk/messageforums-app/src/java/org/sakaiproject/tool/messageforums/PrivateMessagesTool.java
+msgcntr/trunk/messageforums-app/src/java/org/sakaiproject/tool/messageforums/ui/PrivateMessageDecoratedBean.java
+Log:
+unmerge Xingtang's checkin for SAK-12488.
+
+svn merge -r39558:39557 https://source.sakaiproject.org/svn/msgcntr/trunk
+U messageforums-app/src/java/org/sakaiproject/tool/messageforums/PrivateMessagesTool.java
+U messageforums-app/src/java/org/sakaiproject/tool/messageforums/ui/PrivateMessageDecoratedBean.java
+
+svn log -r 39558
+------------------------------------------------------------------------
+r39558 | hu2@iupui.edu | 2007-12-20 15:25:38 -0500 (Thu, 20 Dec 2007) | 3 lines
+
+SAK-12488
+when send a message to yourself. click reply to all, cc row should be null.
+http://jira.sakaiproject.org/jira/browse/SAK-12488
+------------------------------------------------------------------------
+
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From cwen@iupui.edu Fri Jan 4 11:35:08 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.46])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Fri, 04 Jan 2008 11:35:08 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Fri, 04 Jan 2008 11:35:08 -0500
+Received: from it.mr.itd.umich.edu (it.mr.itd.umich.edu [141.211.93.151])
+ by fan.mail.umich.edu () with ESMTP id m04GZ6lt020480;
+ Fri, 4 Jan 2008 11:35:06 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY it.mr.itd.umich.edu ID 477E6033.6469D.21870 ;
+ 4 Jan 2008 11:35:02 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id E40FABAE5B;
+ Fri, 4 Jan 2008 16:34:38 +0000 (GMT)
+Message-ID: <200801041633.m04GX6eG007292@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 697
+ for ;
+ Fri, 4 Jan 2008 16:34:01 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 1CD0C42E42
+ for ; Fri, 4 Jan 2008 16:34:17 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04GX6Y3007294
+ for ; Fri, 4 Jan 2008 11:33:06 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04GX6eG007292
+ for source@collab.sakaiproject.org; Fri, 4 Jan 2008 11:33:06 -0500
+Date: Fri, 4 Jan 2008 11:33:06 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to cwen@iupui.edu using -f
+To: source@collab.sakaiproject.org
+From: cwen@iupui.edu
+Subject: [sakai] svn commit: r39763 - in msgcntr/trunk: messageforums-api/src/bundle/org/sakaiproject/api/app/messagecenter/bundle messageforums-app/src/java/org/sakaiproject/tool/messageforums
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Fri Jan 4 11:35:08 2008
+X-DSPAM-Confidence: 0.7615
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39763
+
+Author: cwen@iupui.edu
+Date: 2008-01-04 11:33:05 -0500 (Fri, 04 Jan 2008)
+New Revision: 39763
+
+Modified:
+msgcntr/trunk/messageforums-api/src/bundle/org/sakaiproject/api/app/messagecenter/bundle/Messages.properties
+msgcntr/trunk/messageforums-app/src/java/org/sakaiproject/tool/messageforums/PrivateMessagesTool.java
+Log:
+unmerge Xingtang's check in for SAK-12484.
+
+svn merge -r39571:39570 https://source.sakaiproject.org/svn/msgcntr/trunk
+U messageforums-api/src/bundle/org/sakaiproject/api/app/messagecenter/bundle/Messages.properties
+U messageforums-app/src/java/org/sakaiproject/tool/messageforums/PrivateMessagesTool.java
+
+svn log -r 39571
+------------------------------------------------------------------------
+r39571 | hu2@iupui.edu | 2007-12-20 21:26:28 -0500 (Thu, 20 Dec 2007) | 3 lines
+
+SAK-12484
+reply all cc list should not include the current user name.
+http://jira.sakaiproject.org/jira/browse/SAK-12484
+------------------------------------------------------------------------
+
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From gsilver@umich.edu Fri Jan 4 11:12:37 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.25])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Fri, 04 Jan 2008 11:12:37 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Fri, 04 Jan 2008 11:12:37 -0500
+Received: from holes.mr.itd.umich.edu (holes.mr.itd.umich.edu [141.211.14.79])
+ by panther.mail.umich.edu () with ESMTP id m04GCaHB030887;
+ Fri, 4 Jan 2008 11:12:36 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY holes.mr.itd.umich.edu ID 477E5AEB.E670B.28397 ;
+ 4 Jan 2008 11:12:30 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 99715BAE7D;
+ Fri, 4 Jan 2008 16:12:27 +0000 (GMT)
+Message-ID: <200801041611.m04GB1Lb007221@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 272
+ for ;
+ Fri, 4 Jan 2008 16:12:14 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 0A6ED42DFC
+ for ; Fri, 4 Jan 2008 16:12:12 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04GB1Wt007223
+ for ; Fri, 4 Jan 2008 11:11:01 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04GB1Lb007221
+ for source@collab.sakaiproject.org; Fri, 4 Jan 2008 11:11:01 -0500
+Date: Fri, 4 Jan 2008 11:11:01 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to gsilver@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: gsilver@umich.edu
+Subject: [sakai] svn commit: r39762 - web/trunk/web-tool/tool/src/bundle
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Fri Jan 4 11:12:37 2008
+X-DSPAM-Confidence: 0.7601
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39762
+
+Author: gsilver@umich.edu
+Date: 2008-01-04 11:11:00 -0500 (Fri, 04 Jan 2008)
+New Revision: 39762
+
+Modified:
+web/trunk/web-tool/tool/src/bundle/iframe.properties
+Log:
+SAK-12596
+http://bugs.sakaiproject.org/jira/browse/SAK-12596
+- left moot (unused) entries commented for now
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From gsilver@umich.edu Fri Jan 4 11:11:52 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.36])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Fri, 04 Jan 2008 11:11:52 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Fri, 04 Jan 2008 11:11:52 -0500
+Received: from creepshow.mr.itd.umich.edu (creepshow.mr.itd.umich.edu [141.211.14.84])
+ by godsend.mail.umich.edu () with ESMTP id m04GBqqv025330;
+ Fri, 4 Jan 2008 11:11:52 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY creepshow.mr.itd.umich.edu ID 477E5AB3.5CC32.30840 ;
+ 4 Jan 2008 11:11:34 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 62AA4BAE46;
+ Fri, 4 Jan 2008 16:11:31 +0000 (GMT)
+Message-ID: <200801041610.m04GA5KP007209@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 1006
+ for ;
+ Fri, 4 Jan 2008 16:11:18 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id C596A3DFA2
+ for ; Fri, 4 Jan 2008 16:11:16 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04GA5LR007211
+ for ; Fri, 4 Jan 2008 11:10:05 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04GA5KP007209
+ for source@collab.sakaiproject.org; Fri, 4 Jan 2008 11:10:05 -0500
+Date: Fri, 4 Jan 2008 11:10:05 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to gsilver@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: gsilver@umich.edu
+Subject: [sakai] svn commit: r39761 - site/trunk/site-tool/tool/src/bundle
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Fri Jan 4 11:11:52 2008
+X-DSPAM-Confidence: 0.7605
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39761
+
+Author: gsilver@umich.edu
+Date: 2008-01-04 11:10:04 -0500 (Fri, 04 Jan 2008)
+New Revision: 39761
+
+Modified:
+site/trunk/site-tool/tool/src/bundle/admin.properties
+Log:
+SAK-12595
+http://bugs.sakaiproject.org/jira/browse/SAK-12595
+- left moot (unused) entries commented for now
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From zqian@umich.edu Fri Jan 4 11:11:03 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.97])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Fri, 04 Jan 2008 11:11:03 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Fri, 04 Jan 2008 11:11:03 -0500
+Received: from carrie.mr.itd.umich.edu (carrie.mr.itd.umich.edu [141.211.93.152])
+ by sleepers.mail.umich.edu () with ESMTP id m04GB3Vg011502;
+ Fri, 4 Jan 2008 11:11:03 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY carrie.mr.itd.umich.edu ID 477E5A8D.B378F.24200 ;
+ 4 Jan 2008 11:10:56 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id C7251BAD44;
+ Fri, 4 Jan 2008 16:10:53 +0000 (GMT)
+Message-ID: <200801041609.m04G9EuX007197@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 483
+ for ;
+ Fri, 4 Jan 2008 16:10:27 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 2E7043DFA2
+ for ; Fri, 4 Jan 2008 16:10:26 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04G9Eqg007199
+ for ; Fri, 4 Jan 2008 11:09:15 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04G9EuX007197
+ for source@collab.sakaiproject.org; Fri, 4 Jan 2008 11:09:14 -0500
+Date: Fri, 4 Jan 2008 11:09:14 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: zqian@umich.edu
+Subject: [sakai] svn commit: r39760 - in site-manage/trunk/site-manage-tool/tool/src: java/org/sakaiproject/site/tool webapp/vm/sitesetup
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Fri Jan 4 11:11:03 2008
+X-DSPAM-Confidence: 0.6959
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39760
+
+Author: zqian@umich.edu
+Date: 2008-01-04 11:09:12 -0500 (Fri, 04 Jan 2008)
+New Revision: 39760
+
+Modified:
+site-manage/trunk/site-manage-tool/tool/src/java/org/sakaiproject/site/tool/SiteAction.java
+site-manage/trunk/site-manage-tool/tool/src/webapp/vm/sitesetup/chef_site-siteInfo-list.vm
+Log:
+fix to SAK-10911: Refactor use of site.upd, site.upd.site.mbrship and site.upd.grp.mbrship permissions
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From gsilver@umich.edu Fri Jan 4 11:10:22 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.39])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Fri, 04 Jan 2008 11:10:22 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Fri, 04 Jan 2008 11:10:22 -0500
+Received: from holes.mr.itd.umich.edu (holes.mr.itd.umich.edu [141.211.14.79])
+ by faithful.mail.umich.edu () with ESMTP id m04GAL9k010604;
+ Fri, 4 Jan 2008 11:10:21 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY holes.mr.itd.umich.edu ID 477E5A67.34350.23015 ;
+ 4 Jan 2008 11:10:18 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 98D04BAD43;
+ Fri, 4 Jan 2008 16:10:11 +0000 (GMT)
+Message-ID: <200801041608.m04G8d7w007184@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 966
+ for ;
+ Fri, 4 Jan 2008 16:09:51 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 9F89542DD0
+ for ; Fri, 4 Jan 2008 16:09:50 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04G8dXN007186
+ for ; Fri, 4 Jan 2008 11:08:39 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04G8d7w007184
+ for source@collab.sakaiproject.org; Fri, 4 Jan 2008 11:08:39 -0500
+Date: Fri, 4 Jan 2008 11:08:39 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to gsilver@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: gsilver@umich.edu
+Subject: [sakai] svn commit: r39759 - mailarchive/trunk/mailarchive-tool/tool/src/bundle
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Fri Jan 4 11:10:22 2008
+X-DSPAM-Confidence: 0.7606
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39759
+
+Author: gsilver@umich.edu
+Date: 2008-01-04 11:08:38 -0500 (Fri, 04 Jan 2008)
+New Revision: 39759
+
+Modified:
+mailarchive/trunk/mailarchive-tool/tool/src/bundle/email.properties
+Log:
+SAK-12592
+http://bugs.sakaiproject.org/jira/browse/SAK-12592
+- left moot (unused) entries commented for now
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From wagnermr@iupui.edu Fri Jan 4 10:38:42 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.90])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Fri, 04 Jan 2008 10:38:42 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Fri, 04 Jan 2008 10:38:42 -0500
+Received: from shining.mr.itd.umich.edu (shining.mr.itd.umich.edu [141.211.93.153])
+ by flawless.mail.umich.edu () with ESMTP id m04Fcfjm012313;
+ Fri, 4 Jan 2008 10:38:41 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY shining.mr.itd.umich.edu ID 477E52FA.E6C6E.24093 ;
+ 4 Jan 2008 10:38:37 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 6A39594CD2;
+ Fri, 4 Jan 2008 15:37:36 +0000 (GMT)
+Message-ID: <200801041537.m04Fb6Ci007092@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 690
+ for ;
+ Fri, 4 Jan 2008 15:37:21 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id CEFA037ACE
+ for ; Fri, 4 Jan 2008 15:38:17 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04Fb6nh007094
+ for ; Fri, 4 Jan 2008 10:37:06 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04Fb6Ci007092
+ for source@collab.sakaiproject.org; Fri, 4 Jan 2008 10:37:06 -0500
+Date: Fri, 4 Jan 2008 10:37:06 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to wagnermr@iupui.edu using -f
+To: source@collab.sakaiproject.org
+From: wagnermr@iupui.edu
+Subject: [sakai] svn commit: r39758 - in gradebook/trunk: app/business/src/java/org/sakaiproject/tool/gradebook/business/impl service/api/src/java/org/sakaiproject/service/gradebook/shared service/impl/src/java/org/sakaiproject/component/gradebook
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Fri Jan 4 10:38:42 2008
+X-DSPAM-Confidence: 0.7559
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39758
+
+Author: wagnermr@iupui.edu
+Date: 2008-01-04 10:37:04 -0500 (Fri, 04 Jan 2008)
+New Revision: 39758
+
+Modified:
+gradebook/trunk/app/business/src/java/org/sakaiproject/tool/gradebook/business/impl/GradebookManagerHibernateImpl.java
+gradebook/trunk/service/api/src/java/org/sakaiproject/service/gradebook/shared/GradebookService.java
+gradebook/trunk/service/impl/src/java/org/sakaiproject/component/gradebook/GradebookServiceHibernateImpl.java
+Log:
+SAK-12175
+http://bugs.sakaiproject.org/jira/browse/SAK-12175
+Create methods required for gb integration with the Assignment2 tool
+getGradeDefinitionForStudentForItem
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From zqian@umich.edu Fri Jan 4 10:17:43 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.97])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Fri, 04 Jan 2008 10:17:43 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Fri, 04 Jan 2008 10:17:42 -0500
+Received: from creepshow.mr.itd.umich.edu (creepshow.mr.itd.umich.edu [141.211.14.84])
+ by sleepers.mail.umich.edu () with ESMTP id m04FHgfs011536;
+ Fri, 4 Jan 2008 10:17:42 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY creepshow.mr.itd.umich.edu ID 477E4E0F.CCA4B.926 ;
+ 4 Jan 2008 10:17:38 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id BD02DBAC64;
+ Fri, 4 Jan 2008 15:17:34 +0000 (GMT)
+Message-ID: <200801041515.m04FFv42007050@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 25
+ for ;
+ Fri, 4 Jan 2008 15:17:11 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 5B396236B9
+ for ; Fri, 4 Jan 2008 15:17:08 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04FFv85007052
+ for ; Fri, 4 Jan 2008 10:15:57 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04FFv42007050
+ for source@collab.sakaiproject.org; Fri, 4 Jan 2008 10:15:57 -0500
+Date: Fri, 4 Jan 2008 10:15:57 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: zqian@umich.edu
+Subject: [sakai] svn commit: r39757 - in assignment/trunk: assignment-impl/impl/src/java/org/sakaiproject/assignment/impl assignment-tool/tool/src/webapp/vm/assignment
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Fri Jan 4 10:17:42 2008
+X-DSPAM-Confidence: 0.7605
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39757
+
+Author: zqian@umich.edu
+Date: 2008-01-04 10:15:54 -0500 (Fri, 04 Jan 2008)
+New Revision: 39757
+
+Modified:
+assignment/trunk/assignment-impl/impl/src/java/org/sakaiproject/assignment/impl/BaseAssignmentService.java
+assignment/trunk/assignment-tool/tool/src/webapp/vm/assignment/chef_assignments_instructor_list_submissions.vm
+Log:
+fix to SAK-12604:Don't show groups/sections filter if the site doesn't have any
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From antranig@caret.cam.ac.uk Fri Jan 4 10:04:14 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.25])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Fri, 04 Jan 2008 10:04:14 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Fri, 04 Jan 2008 10:04:14 -0500
+Received: from holes.mr.itd.umich.edu (holes.mr.itd.umich.edu [141.211.14.79])
+ by panther.mail.umich.edu () with ESMTP id m04F4Dci015108;
+ Fri, 4 Jan 2008 10:04:13 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY holes.mr.itd.umich.edu ID 477E4AE3.D7AF.31669 ;
+ 4 Jan 2008 10:04:05 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 933E3BAC17;
+ Fri, 4 Jan 2008 15:04:00 +0000 (GMT)
+Message-ID: <200801041502.m04F21Jo007031@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 32
+ for ;
+ Fri, 4 Jan 2008 15:03:15 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id AC2F6236B9
+ for ; Fri, 4 Jan 2008 15:03:12 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04F21hn007033
+ for ; Fri, 4 Jan 2008 10:02:01 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04F21Jo007031
+ for source@collab.sakaiproject.org; Fri, 4 Jan 2008 10:02:01 -0500
+Date: Fri, 4 Jan 2008 10:02:01 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to antranig@caret.cam.ac.uk using -f
+To: source@collab.sakaiproject.org
+From: antranig@caret.cam.ac.uk
+Subject: [sakai] svn commit: r39756 - in component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component: impl impl/spring/support impl/spring/support/dynamic impl/support util
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Fri Jan 4 10:04:14 2008
+X-DSPAM-Confidence: 0.6932
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39756
+
+Author: antranig@caret.cam.ac.uk
+Date: 2008-01-04 10:01:40 -0500 (Fri, 04 Jan 2008)
+New Revision: 39756
+
+Added:
+component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/impl/spring/support/dynamic/
+component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/impl/spring/support/dynamic/DynamicComponentManager.java
+component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/impl/support/
+component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/impl/support/DynamicComponentRecord.java
+component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/impl/support/DynamicJARManager.java
+component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/impl/support/JARRecord.java
+component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/util/ByteToCharBase64.java
+component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/util/FileUtil.java
+component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/util/RecordFileIO.java
+component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/util/RecordReader.java
+component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/util/RecordWriter.java
+component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/util/StreamDigestor.java
+Modified:
+component/branches/SAK-12166/component-api/component/src/java/org/sakaiproject/component/impl/spring/support/ComponentsLoaderImpl.java
+Log:
+Temporary commit of incomplete work on JAR caching
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From gopal.ramasammycook@gmail.com Fri Jan 4 09:05:31 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.90])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Fri, 04 Jan 2008 09:05:31 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Fri, 04 Jan 2008 09:05:31 -0500
+Received: from guys.mr.itd.umich.edu (guys.mr.itd.umich.edu [141.211.14.76])
+ by flawless.mail.umich.edu () with ESMTP id m04E5U3C029277;
+ Fri, 4 Jan 2008 09:05:30 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY guys.mr.itd.umich.edu ID 477E3D23.EE2E7.5237 ;
+ 4 Jan 2008 09:05:26 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 33C7856DC0;
+ Fri, 4 Jan 2008 14:05:26 +0000 (GMT)
+Message-ID: <200801041403.m04E3psW006926@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 575
+ for ;
+ Fri, 4 Jan 2008 14:05:04 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 3C0261D617
+ for ; Fri, 4 Jan 2008 14:05:03 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04E3pQS006928
+ for ; Fri, 4 Jan 2008 09:03:52 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04E3psW006926
+ for source@collab.sakaiproject.org; Fri, 4 Jan 2008 09:03:51 -0500
+Date: Fri, 4 Jan 2008 09:03:51 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to gopal.ramasammycook@gmail.com using -f
+To: source@collab.sakaiproject.org
+From: gopal.ramasammycook@gmail.com
+Subject: [sakai] svn commit: r39755 - in sam/branches/SAK-12065: samigo-api/src/java/org/sakaiproject/tool/assessment/shared/api/grading samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/evaluation samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/evaluation samigo-services/src/java/org/sakaiproject/tool/assessment/facade samigo-services/src/java/org/sakaiproject/tool/assessment/integration/helper/ifc samigo-services/src/java/org/sakaiproject/tool/assessment/integration/helper/integrated samigo-services/src/java/org/sakaiproject/tool/assessment/integration/helper/standalone samigo-services/src/java/org/sakaiproject/tool/assessment/shared/impl/grading
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Fri Jan 4 09:05:31 2008
+X-DSPAM-Confidence: 0.7558
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39755
+
+Author: gopal.ramasammycook@gmail.com
+Date: 2008-01-04 09:02:54 -0500 (Fri, 04 Jan 2008)
+New Revision: 39755
+
+Modified:
+sam/branches/SAK-12065/samigo-api/src/java/org/sakaiproject/tool/assessment/shared/api/grading/GradingSectionAwareServiceAPI.java
+sam/branches/SAK-12065/samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/evaluation/QuestionScoresBean.java
+sam/branches/SAK-12065/samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/evaluation/SubmissionStatusBean.java
+sam/branches/SAK-12065/samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/evaluation/TotalScoresBean.java
+sam/branches/SAK-12065/samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/evaluation/SubmissionStatusListener.java
+sam/branches/SAK-12065/samigo-services/src/java/org/sakaiproject/tool/assessment/facade/PublishedAssessmentFacadeQueries.java
+sam/branches/SAK-12065/samigo-services/src/java/org/sakaiproject/tool/assessment/facade/PublishedAssessmentFacadeQueriesAPI.java
+sam/branches/SAK-12065/samigo-services/src/java/org/sakaiproject/tool/assessment/integration/helper/ifc/SectionAwareServiceHelper.java
+sam/branches/SAK-12065/samigo-services/src/java/org/sakaiproject/tool/assessment/integration/helper/integrated/SectionAwareServiceHelperImpl.java
+sam/branches/SAK-12065/samigo-services/src/java/org/sakaiproject/tool/assessment/integration/helper/standalone/SectionAwareServiceHelperImpl.java
+sam/branches/SAK-12065/samigo-services/src/java/org/sakaiproject/tool/assessment/shared/impl/grading/GradingSectionAwareServiceImpl.java
+Log:
+SAK-12065 Gopal - Samigo Group Release. SubmissionStatus/TotalScores/Questions View filter.
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From david.horwitz@uct.ac.za Fri Jan 4 07:02:32 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.39])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Fri, 04 Jan 2008 07:02:32 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Fri, 04 Jan 2008 07:02:32 -0500
+Received: from guys.mr.itd.umich.edu (guys.mr.itd.umich.edu [141.211.14.76])
+ by faithful.mail.umich.edu () with ESMTP id m04C2VN7026678;
+ Fri, 4 Jan 2008 07:02:31 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY guys.mr.itd.umich.edu ID 477E2050.C2599.3263 ;
+ 4 Jan 2008 07:02:27 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 6497FBA906;
+ Fri, 4 Jan 2008 12:02:11 +0000 (GMT)
+Message-ID: <200801041200.m04C0gfK006793@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 611
+ for ;
+ Fri, 4 Jan 2008 12:01:53 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 5296342D3C
+ for ; Fri, 4 Jan 2008 12:01:53 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04C0gnm006795
+ for ; Fri, 4 Jan 2008 07:00:42 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04C0gfK006793
+ for source@collab.sakaiproject.org; Fri, 4 Jan 2008 07:00:42 -0500
+Date: Fri, 4 Jan 2008 07:00:42 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to david.horwitz@uct.ac.za using -f
+To: source@collab.sakaiproject.org
+From: david.horwitz@uct.ac.za
+Subject: [sakai] svn commit: r39754 - in polls/branches/sakai_2-5-x: . tool tool/src/java/org/sakaiproject/poll/tool tool/src/java/org/sakaiproject/poll/tool/evolvers tool/src/webapp/WEB-INF
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Fri Jan 4 07:02:32 2008
+X-DSPAM-Confidence: 0.6526
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39754
+
+Author: david.horwitz@uct.ac.za
+Date: 2008-01-04 07:00:10 -0500 (Fri, 04 Jan 2008)
+New Revision: 39754
+
+Added:
+polls/branches/sakai_2-5-x/tool/src/java/org/sakaiproject/poll/tool/evolvers/
+polls/branches/sakai_2-5-x/tool/src/java/org/sakaiproject/poll/tool/evolvers/SakaiFCKTextEvolver.java
+Removed:
+polls/branches/sakai_2-5-x/tool/src/java/org/sakaiproject/poll/tool/evolvers/SakaiFCKTextEvolver.java
+Modified:
+polls/branches/sakai_2-5-x/.classpath
+polls/branches/sakai_2-5-x/tool/pom.xml
+polls/branches/sakai_2-5-x/tool/src/webapp/WEB-INF/requestContext.xml
+Log:
+svn log -r39753 https://source.sakaiproject.org/svn/polls/trunk
+------------------------------------------------------------------------
+r39753 | david.horwitz@uct.ac.za | 2008-01-04 13:05:51 +0200 (Fri, 04 Jan 2008) | 1 line
+
+SAK-12228 implmented workaround sugested by AB - needs to be tested against a trunk build
+------------------------------------------------------------------------
+dhorwitz@david-horwitz-6:~/branchManagemnt/sakai_2-5-x> svn merge -c39753 https://source.sakaiproject.org/svn/polls/trunk polls/
+U polls/.classpath
+A polls/tool/src/java/org/sakaiproject/poll/tool/evolvers
+A polls/tool/src/java/org/sakaiproject/poll/tool/evolvers/SakaiFCKTextEvolver.java
+C polls/tool/src/webapp/WEB-INF/requestContext.xml
+U polls/tool/pom.xml
+
+dhorwitz@david-horwitz-6:~/branchManagemnt/sakai_2-5-x> svn resolved polls/tool/src/webapp/WEB-INF/requestContext.xml
+Resolved conflicted state of 'polls/tool/src/webapp/WEB-INF/requestContext.xml
+
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From david.horwitz@uct.ac.za Fri Jan 4 06:08:27 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.98])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Fri, 04 Jan 2008 06:08:27 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Fri, 04 Jan 2008 06:08:27 -0500
+Received: from firestarter.mr.itd.umich.edu (firestarter.mr.itd.umich.edu [141.211.14.83])
+ by casino.mail.umich.edu () with ESMTP id m04B8Qw9001368;
+ Fri, 4 Jan 2008 06:08:26 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY firestarter.mr.itd.umich.edu ID 477E13A5.30FC0.24054 ;
+ 4 Jan 2008 06:08:23 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 784A476D7B;
+ Fri, 4 Jan 2008 11:08:12 +0000 (GMT)
+Message-ID: <200801041106.m04B6lK3006677@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 585
+ for ;
+ Fri, 4 Jan 2008 11:07:56 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 1CACC42D0C
+ for ; Fri, 4 Jan 2008 11:07:58 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m04B6lWM006679
+ for ; Fri, 4 Jan 2008 06:06:47 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m04B6lK3006677
+ for source@collab.sakaiproject.org; Fri, 4 Jan 2008 06:06:47 -0500
+Date: Fri, 4 Jan 2008 06:06:47 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to david.horwitz@uct.ac.za using -f
+To: source@collab.sakaiproject.org
+From: david.horwitz@uct.ac.za
+Subject: [sakai] svn commit: r39753 - in polls/trunk: . tool tool/src/java/org/sakaiproject/poll/tool tool/src/java/org/sakaiproject/poll/tool/evolvers tool/src/webapp/WEB-INF
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Fri Jan 4 06:08:27 2008
+X-DSPAM-Confidence: 0.6948
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39753
+
+Author: david.horwitz@uct.ac.za
+Date: 2008-01-04 06:05:51 -0500 (Fri, 04 Jan 2008)
+New Revision: 39753
+
+Added:
+polls/trunk/tool/src/java/org/sakaiproject/poll/tool/evolvers/
+polls/trunk/tool/src/java/org/sakaiproject/poll/tool/evolvers/SakaiFCKTextEvolver.java
+Modified:
+polls/trunk/.classpath
+polls/trunk/tool/pom.xml
+polls/trunk/tool/src/webapp/WEB-INF/requestContext.xml
+Log:
+SAK-12228 implmented workaround sugested by AB - needs to be tested against a trunk build
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From david.horwitz@uct.ac.za Fri Jan 4 04:49:08 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.92])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Fri, 04 Jan 2008 04:49:08 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Fri, 04 Jan 2008 04:49:08 -0500
+Received: from galaxyquest.mr.itd.umich.edu (galaxyquest.mr.itd.umich.edu [141.211.93.145])
+ by score.mail.umich.edu () with ESMTP id m049n60G017588;
+ Fri, 4 Jan 2008 04:49:06 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY galaxyquest.mr.itd.umich.edu ID 477E010C.48C2.10259 ;
+ 4 Jan 2008 04:49:03 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 254CC8CDEE;
+ Fri, 4 Jan 2008 09:48:55 +0000 (GMT)
+Message-ID: <200801040947.m049lUxo006517@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 246
+ for ;
+ Fri, 4 Jan 2008 09:48:36 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 8C13342C92
+ for ; Fri, 4 Jan 2008 09:48:40 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m049lU3P006519
+ for ; Fri, 4 Jan 2008 04:47:30 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m049lUxo006517
+ for source@collab.sakaiproject.org; Fri, 4 Jan 2008 04:47:30 -0500
+Date: Fri, 4 Jan 2008 04:47:30 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to david.horwitz@uct.ac.za using -f
+To: source@collab.sakaiproject.org
+From: david.horwitz@uct.ac.za
+Subject: [sakai] svn commit: r39752 - in podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp: css podcasts
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Fri Jan 4 04:49:08 2008
+X-DSPAM-Confidence: 0.6528
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39752
+
+Author: david.horwitz@uct.ac.za
+Date: 2008-01-04 04:47:16 -0500 (Fri, 04 Jan 2008)
+New Revision: 39752
+
+Modified:
+podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp/css/podcaster.css
+podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp/podcasts/podMain.jsp
+Log:
+svn log -r39641 https://source.sakaiproject.org/svn/podcasts/trunk
+------------------------------------------------------------------------
+r39641 | josrodri@iupui.edu | 2007-12-28 23:44:24 +0200 (Fri, 28 Dec 2007) | 1 line
+
+SAK-9882: refactored podMain.jsp the right way (at least much closer to)
+------------------------------------------------------------------------
+
+dhorwitz@david-horwitz-6:~/branchManagemnt/sakai_2-5-x> svn merge -c39641 https://source.sakaiproject.org/svn/podcasts/trunk podcasts/
+C podcasts/podcasts-app/src/webapp/podcasts/podMain.jsp
+U podcasts/podcasts-app/src/webapp/css/podcaster.css
+
+conflict merged manualy
+
+
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From david.horwitz@uct.ac.za Fri Jan 4 04:33:44 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.46])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Fri, 04 Jan 2008 04:33:44 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Fri, 04 Jan 2008 04:33:44 -0500
+Received: from workinggirl.mr.itd.umich.edu (workinggirl.mr.itd.umich.edu [141.211.93.143])
+ by fan.mail.umich.edu () with ESMTP id m049Xge3031803;
+ Fri, 4 Jan 2008 04:33:42 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY workinggirl.mr.itd.umich.edu ID 477DFD6C.75DBE.26054 ;
+ 4 Jan 2008 04:33:35 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 6C929BA656;
+ Fri, 4 Jan 2008 09:33:27 +0000 (GMT)
+Message-ID: <200801040932.m049W2i5006493@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 153
+ for ;
+ Fri, 4 Jan 2008 09:33:10 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 6C69423767
+ for ; Fri, 4 Jan 2008 09:33:13 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m049W3fl006495
+ for ; Fri, 4 Jan 2008 04:32:03 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m049W2i5006493
+ for source@collab.sakaiproject.org; Fri, 4 Jan 2008 04:32:02 -0500
+Date: Fri, 4 Jan 2008 04:32:02 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to david.horwitz@uct.ac.za using -f
+To: source@collab.sakaiproject.org
+From: david.horwitz@uct.ac.za
+Subject: [sakai] svn commit: r39751 - in podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp: css images podcasts
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Fri Jan 4 04:33:44 2008
+X-DSPAM-Confidence: 0.7002
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39751
+
+Author: david.horwitz@uct.ac.za
+Date: 2008-01-04 04:31:35 -0500 (Fri, 04 Jan 2008)
+New Revision: 39751
+
+Removed:
+podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp/images/rss-feed-icon.png
+podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp/podcasts/podPermissions.jsp
+Modified:
+podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp/css/podcaster.css
+podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp/podcasts/podDelete.jsp
+podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp/podcasts/podMain.jsp
+podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp/podcasts/podNoResource.jsp
+podcasts/branches/sakai_2-5-x/podcasts-app/src/webapp/podcasts/podOptions.jsp
+Log:
+svn log -r39146 https://source.sakaiproject.org/svn/podcasts/trunk
+------------------------------------------------------------------------
+r39146 | josrodri@iupui.edu | 2007-12-12 21:40:33 +0200 (Wed, 12 Dec 2007) | 1 line
+
+SAK-9882: refactored the other pages as well to take advantage of proper jsp components as well as validation cleanup.
+------------------------------------------------------------------------
+dhorwitz@david-horwitz-6:~/branchManagemnt/sakai_2-5-x> svn merge -c39146 https://source.sakaiproject.org/svn/podcasts/trunk podcasts/
+D podcasts/podcasts-app/src/webapp/podcasts/podPermissions.jsp
+U podcasts/podcasts-app/src/webapp/podcasts/podDelete.jsp
+U podcasts/podcasts-app/src/webapp/podcasts/podMain.jsp
+U podcasts/podcasts-app/src/webapp/podcasts/podNoResource.jsp
+U podcasts/podcasts-app/src/webapp/podcasts/podOptions.jsp
+D podcasts/podcasts-app/src/webapp/images/rss-feed-icon.png
+U podcasts/podcasts-app/src/webapp/css/podcaster.css
+
+
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From stephen.marquard@uct.ac.za Fri Jan 4 04:07:34 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.25])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Fri, 04 Jan 2008 04:07:34 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Fri, 04 Jan 2008 04:07:34 -0500
+Received: from salemslot.mr.itd.umich.edu (salemslot.mr.itd.umich.edu [141.211.14.58])
+ by panther.mail.umich.edu () with ESMTP id m0497WAN027902;
+ Fri, 4 Jan 2008 04:07:32 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY salemslot.mr.itd.umich.edu ID 477DF74E.49493.30415 ;
+ 4 Jan 2008 04:07:29 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 88598BA5B6;
+ Fri, 4 Jan 2008 09:07:19 +0000 (GMT)
+Message-ID: <200801040905.m0495rWB006420@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 385
+ for ;
+ Fri, 4 Jan 2008 09:07:04 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 90636418A8
+ for ; Fri, 4 Jan 2008 09:07:04 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m0495sZs006422
+ for ; Fri, 4 Jan 2008 04:05:54 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m0495rWB006420
+ for source@collab.sakaiproject.org; Fri, 4 Jan 2008 04:05:53 -0500
+Date: Fri, 4 Jan 2008 04:05:53 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to stephen.marquard@uct.ac.za using -f
+To: source@collab.sakaiproject.org
+From: stephen.marquard@uct.ac.za
+Subject: [sakai] svn commit: r39750 - event/branches/SAK-6216/event-util/util/src/java/org/sakaiproject/util
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Fri Jan 4 04:07:34 2008
+X-DSPAM-Confidence: 0.7554
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39750
+
+Author: stephen.marquard@uct.ac.za
+Date: 2008-01-04 04:05:43 -0500 (Fri, 04 Jan 2008)
+New Revision: 39750
+
+Modified:
+event/branches/SAK-6216/event-util/util/src/java/org/sakaiproject/util/EmailNotification.java
+Log:
+SAK-6216 merge event change from SAK-11169 (r39033) to synchronize branch with 2-5-x (for convenience for UCT local build)
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From louis@media.berkeley.edu Thu Jan 3 19:51:21 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.91])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 19:51:21 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 19:51:21 -0500
+Received: from eyewitness.mr.itd.umich.edu (eyewitness.mr.itd.umich.edu [141.211.93.142])
+ by jacknife.mail.umich.edu () with ESMTP id m040pJHB027171;
+ Thu, 3 Jan 2008 19:51:19 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY eyewitness.mr.itd.umich.edu ID 477D8300.AC098.32562 ;
+ 3 Jan 2008 19:51:15 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id E6CC4B9F8A;
+ Fri, 4 Jan 2008 00:36:06 +0000 (GMT)
+Message-ID: <200801040023.m040NpCc005473@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 754
+ for ;
+ Fri, 4 Jan 2008 00:35:43 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 8889842C49
+ for ; Fri, 4 Jan 2008 00:25:00 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m040NpgM005475
+ for ; Thu, 3 Jan 2008 19:23:51 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m040NpCc005473
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 19:23:51 -0500
+Date: Thu, 3 Jan 2008 19:23:51 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to louis@media.berkeley.edu using -f
+To: source@collab.sakaiproject.org
+From: louis@media.berkeley.edu
+Subject: [sakai] svn commit: r39749 - in bspace/site-manage/sakai_2-4-x/site-manage-tool/tool/src: bundle webapp/vm/sitesetup
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 19:51:20 2008
+X-DSPAM-Confidence: 0.6956
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39749
+
+Author: louis@media.berkeley.edu
+Date: 2008-01-03 19:23:46 -0500 (Thu, 03 Jan 2008)
+New Revision: 39749
+
+Modified:
+bspace/site-manage/sakai_2-4-x/site-manage-tool/tool/src/bundle/sitesetupgeneric.properties
+bspace/site-manage/sakai_2-4-x/site-manage-tool/tool/src/webapp/vm/sitesetup/chef_site-importSites.vm
+Log:
+BSP-1420 Update text to clarify "Re-Use Materials..." option in WS Setup
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From louis@media.berkeley.edu Thu Jan 3 17:18:23 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.91])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 17:18:23 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 17:18:23 -0500
+Received: from salemslot.mr.itd.umich.edu (salemslot.mr.itd.umich.edu [141.211.14.58])
+ by jacknife.mail.umich.edu () with ESMTP id m03MIMXY027729;
+ Thu, 3 Jan 2008 17:18:22 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY salemslot.mr.itd.umich.edu ID 477D5F23.797F6.16348 ;
+ 3 Jan 2008 17:18:14 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id EF439B98CE;
+ Thu, 3 Jan 2008 22:18:19 +0000 (GMT)
+Message-ID: <200801032216.m03MGhDa005292@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 236
+ for ;
+ Thu, 3 Jan 2008 22:18:04 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 905D53C2FD
+ for ; Thu, 3 Jan 2008 22:17:52 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03MGhrs005294
+ for ; Thu, 3 Jan 2008 17:16:43 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03MGhDa005292
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 17:16:43 -0500
+Date: Thu, 3 Jan 2008 17:16:43 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to louis@media.berkeley.edu using -f
+To: source@collab.sakaiproject.org
+From: louis@media.berkeley.edu
+Subject: [sakai] svn commit: r39746 - in bspace/site-manage/sakai_2-4-x/site-manage-tool/tool/src: bundle webapp/vm/sitesetup
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 17:18:23 2008
+X-DSPAM-Confidence: 0.6959
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39746
+
+Author: louis@media.berkeley.edu
+Date: 2008-01-03 17:16:39 -0500 (Thu, 03 Jan 2008)
+New Revision: 39746
+
+Modified:
+bspace/site-manage/sakai_2-4-x/site-manage-tool/tool/src/bundle/sitesetupgeneric.properties
+bspace/site-manage/sakai_2-4-x/site-manage-tool/tool/src/webapp/vm/sitesetup/chef_site-siteInfo-duplicate.vm
+Log:
+BSP-1421 Add text to clarify "Duplicate Site" option in Site Info
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From ray@media.berkeley.edu Thu Jan 3 17:07:00 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.39])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 17:07:00 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 17:07:00 -0500
+Received: from anniehall.mr.itd.umich.edu (anniehall.mr.itd.umich.edu [141.211.93.141])
+ by faithful.mail.umich.edu () with ESMTP id m03M6xaq014868;
+ Thu, 3 Jan 2008 17:06:59 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY anniehall.mr.itd.umich.edu ID 477D5C7A.4FE1F.22211 ;
+ 3 Jan 2008 17:06:53 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 0BC8D7225E;
+ Thu, 3 Jan 2008 22:06:57 +0000 (GMT)
+Message-ID: <200801032205.m03M5Ea7005273@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 554
+ for ;
+ Thu, 3 Jan 2008 22:06:34 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 2AB513C2FD
+ for ; Thu, 3 Jan 2008 22:06:23 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03M5EQa005275
+ for ; Thu, 3 Jan 2008 17:05:14 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03M5Ea7005273
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 17:05:14 -0500
+Date: Thu, 3 Jan 2008 17:05:14 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to ray@media.berkeley.edu using -f
+To: source@collab.sakaiproject.org
+From: ray@media.berkeley.edu
+Subject: [sakai] svn commit: r39745 - providers/trunk/cm/cm-authz-provider/src/java/org/sakaiproject/coursemanagement/impl/provider
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 17:07:00 2008
+X-DSPAM-Confidence: 0.7556
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39745
+
+Author: ray@media.berkeley.edu
+Date: 2008-01-03 17:05:11 -0500 (Thu, 03 Jan 2008)
+New Revision: 39745
+
+Modified:
+providers/trunk/cm/cm-authz-provider/src/java/org/sakaiproject/coursemanagement/impl/provider/CourseManagementGroupProvider.java
+Log:
+SAK-12602 Fix logic when a user has multiple roles in a section
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From cwen@iupui.edu Thu Jan 3 16:34:40 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.34])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 16:34:40 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 16:34:40 -0500
+Received: from icestorm.mr.itd.umich.edu (icestorm.mr.itd.umich.edu [141.211.93.149])
+ by chaos.mail.umich.edu () with ESMTP id m03LYdY1029538;
+ Thu, 3 Jan 2008 16:34:39 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY icestorm.mr.itd.umich.edu ID 477D54EA.13F34.26602 ;
+ 3 Jan 2008 16:34:36 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id CC710ADC79;
+ Thu, 3 Jan 2008 21:34:29 +0000 (GMT)
+Message-ID: <200801032133.m03LX3gG005191@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 611
+ for ;
+ Thu, 3 Jan 2008 21:34:08 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 43C4242B55
+ for ; Thu, 3 Jan 2008 21:34:12 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03LX3Vb005193
+ for ; Thu, 3 Jan 2008 16:33:03 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03LX3gG005191
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 16:33:03 -0500
+Date: Thu, 3 Jan 2008 16:33:03 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to cwen@iupui.edu using -f
+To: source@collab.sakaiproject.org
+From: cwen@iupui.edu
+Subject: [sakai] svn commit: r39744 - oncourse/branches/oncourse_OPC_122007
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 16:34:40 2008
+X-DSPAM-Confidence: 0.9846
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39744
+
+Author: cwen@iupui.edu
+Date: 2008-01-03 16:33:02 -0500 (Thu, 03 Jan 2008)
+New Revision: 39744
+
+Modified:
+oncourse/branches/oncourse_OPC_122007/
+oncourse/branches/oncourse_OPC_122007/.externals
+Log:
+update external for GB.
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From cwen@iupui.edu Thu Jan 3 16:29:07 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.46])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 16:29:07 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 16:29:07 -0500
+Received: from galaxyquest.mr.itd.umich.edu (galaxyquest.mr.itd.umich.edu [141.211.93.145])
+ by fan.mail.umich.edu () with ESMTP id m03LT6uw027749;
+ Thu, 3 Jan 2008 16:29:06 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY galaxyquest.mr.itd.umich.edu ID 477D5397.E161D.20326 ;
+ 3 Jan 2008 16:28:58 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id DEC65ADC79;
+ Thu, 3 Jan 2008 21:28:52 +0000 (GMT)
+Message-ID: <200801032127.m03LRUqH005177@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 917
+ for ;
+ Thu, 3 Jan 2008 21:28:39 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 1FBB042B30
+ for ; Thu, 3 Jan 2008 21:28:38 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03LRUk4005179
+ for ; Thu, 3 Jan 2008 16:27:30 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03LRUqH005177
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 16:27:30 -0500
+Date: Thu, 3 Jan 2008 16:27:30 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to cwen@iupui.edu using -f
+To: source@collab.sakaiproject.org
+From: cwen@iupui.edu
+Subject: [sakai] svn commit: r39743 - gradebook/branches/oncourse_2-4-2/app/ui/src/java/org/sakaiproject/tool/gradebook/ui
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 16:29:07 2008
+X-DSPAM-Confidence: 0.8509
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39743
+
+Author: cwen@iupui.edu
+Date: 2008-01-03 16:27:29 -0500 (Thu, 03 Jan 2008)
+New Revision: 39743
+
+Modified:
+gradebook/branches/oncourse_2-4-2/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/RosterBean.java
+Log:
+svn merge -c 39403 https://source.sakaiproject.org/svn/gradebook/trunk
+U app/ui/src/java/org/sakaiproject/tool/gradebook/ui/RosterBean.java
+
+svn log -r 39403 https://source.sakaiproject.org/svn/gradebook/trunk
+------------------------------------------------------------------------
+r39403 | wagnermr@iupui.edu | 2007-12-17 17:11:08 -0500 (Mon, 17 Dec 2007) | 3 lines
+
+SAK-12504
+http://jira.sakaiproject.org/jira/browse/SAK-12504
+Viewing "All Grades" page as a TA with grader permissions causes stack trace
+------------------------------------------------------------------------
+
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From cwen@iupui.edu Thu Jan 3 16:23:48 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.91])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 16:23:48 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 16:23:48 -0500
+Received: from salemslot.mr.itd.umich.edu (salemslot.mr.itd.umich.edu [141.211.14.58])
+ by jacknife.mail.umich.edu () with ESMTP id m03LNlf0002115;
+ Thu, 3 Jan 2008 16:23:47 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY salemslot.mr.itd.umich.edu ID 477D525E.1448.30389 ;
+ 3 Jan 2008 16:23:44 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 9D005B9D06;
+ Thu, 3 Jan 2008 21:23:38 +0000 (GMT)
+Message-ID: <200801032122.m03LMFo4005148@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 6
+ for ;
+ Thu, 3 Jan 2008 21:23:24 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 3535542B69
+ for ; Thu, 3 Jan 2008 21:23:24 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03LMFtT005150
+ for ; Thu, 3 Jan 2008 16:22:15 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03LMFo4005148
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 16:22:15 -0500
+Date: Thu, 3 Jan 2008 16:22:15 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to cwen@iupui.edu using -f
+To: source@collab.sakaiproject.org
+From: cwen@iupui.edu
+Subject: [sakai] svn commit: r39742 - gradebook/branches/oncourse_2-4-2/app/ui/src/java/org/sakaiproject/tool/gradebook/ui
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 16:23:48 2008
+X-DSPAM-Confidence: 0.9907
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39742
+
+Author: cwen@iupui.edu
+Date: 2008-01-03 16:22:14 -0500 (Thu, 03 Jan 2008)
+New Revision: 39742
+
+Modified:
+gradebook/branches/oncourse_2-4-2/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/RosterBean.java
+Log:
+svn merge -c 35014 https://source.sakaiproject.org/svn/gradebook/trunk
+U app/ui/src/java/org/sakaiproject/tool/gradebook/ui/RosterBean.java
+
+svn log -r 35014 https://source.sakaiproject.org/svn/gradebook/trunk
+------------------------------------------------------------------------
+r35014 | wagnermr@iupui.edu | 2007-09-12 16:17:59 -0400 (Wed, 12 Sep 2007) | 3 lines
+
+SAK-11458
+http://bugs.sakaiproject.org/jira/browse/SAK-11458
+Course grade does not appear on "All Grades" page if no categories in gb
+------------------------------------------------------------------------
+
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From ray@media.berkeley.edu Thu Jan 3 15:56:00 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.93])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 15:56:00 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 15:56:00 -0500
+Received: from creepshow.mr.itd.umich.edu (creepshow.mr.itd.umich.edu [141.211.14.84])
+ by mission.mail.umich.edu () with ESMTP id m03Ktxn6011763;
+ Thu, 3 Jan 2008 15:55:59 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY creepshow.mr.itd.umich.edu ID 477D4BD5.49C7D.29291 ;
+ 3 Jan 2008 15:55:52 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id C1DD26DA3E;
+ Thu, 3 Jan 2008 20:55:46 +0000 (GMT)
+Message-ID: <200801032054.m03KsIIF005054@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 0
+ for ;
+ Thu, 3 Jan 2008 20:55:25 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 3721142B2D
+ for ; Thu, 3 Jan 2008 20:55:27 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03KsI2x005057
+ for ; Thu, 3 Jan 2008 15:54:18 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03KsIIF005054
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 15:54:18 -0500
+Date: Thu, 3 Jan 2008 15:54:18 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to ray@media.berkeley.edu using -f
+To: source@collab.sakaiproject.org
+From: ray@media.berkeley.edu
+Subject: [sakai] svn commit: r39741 - in component/trunk: . component-api component-api/component component-api/component/src/config/org/sakaiproject/config component-api/component/src/java/org component-api/component/src/java/org/sakaiproject/component/api component-api/component/src/java/org/sakaiproject/component/cover component-api/component/src/java/org/sakaiproject/component/impl component-api/component/src/java/org/sakaiproject/util component-impl component-impl/impl component-impl/impl/src/java/org/sakaiproject/component/impl component-impl/integration-test component-impl/integration-test/src component-impl/integration-test/src/java component-impl/integration-test/src/java/org component-impl/integration-test/src/java/org/sakaiproject component-impl/integration-test/src/java/org/sakaiproject/component component-impl/integration-test/src/java/org/sakaiproject/component/test component-impl/integration-test/src/java/org/sakaiproject/component/test/dynamic component-impl/!
+ integration-test/src/test component-impl/integration-test/src/test/java component-impl/integration-test/src/test/java/org component-impl/integration-test/src/test/java/org/sakaiproject component-impl/integration-test/src/test/java/org/sakaiproject/component component-impl/integration-test/src/test/resources component-impl/integration-test/src/test/resources/dynamic component-impl/integration-test/src/test/resources/filesystem component-impl/integration-test/src/webapp component-impl/integration-test/src/webapp/WEB-INF component-impl/integration-test/xdocs component-impl/pack/src/webapp/WEB-INF
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 15:56:00 2008
+X-DSPAM-Confidence: 0.7003
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39741
+
+Author: ray@media.berkeley.edu
+Date: 2008-01-03 15:53:29 -0500 (Thu, 03 Jan 2008)
+New Revision: 39741
+
+Added:
+component/trunk/component-api/component/src/config/org/sakaiproject/config/sakai-configuration.xml
+component/trunk/component-api/component/src/java/org/sakaiproject/component/impl/DynamicDefaultSakaiProperties.java
+component/trunk/component-api/component/src/java/org/sakaiproject/util/BeanFactoryPostProcessorCreator.java
+component/trunk/component-api/component/src/java/org/sakaiproject/util/ReversiblePropertyOverrideConfigurer.java
+component/trunk/component-api/component/src/java/org/sakaiproject/util/SakaiApplicationContext.java
+component/trunk/component-api/component/src/java/org/sakaiproject/util/SakaiProperties.java
+component/trunk/component-api/component/src/java/org/sakaiproject/util/SakaiPropertyPromoter.java
+component/trunk/component-impl/integration-test/
+component/trunk/component-impl/integration-test/pom.xml
+component/trunk/component-impl/integration-test/src/
+component/trunk/component-impl/integration-test/src/java/
+component/trunk/component-impl/integration-test/src/java/org/
+component/trunk/component-impl/integration-test/src/java/org/sakaiproject/
+component/trunk/component-impl/integration-test/src/java/org/sakaiproject/component/
+component/trunk/component-impl/integration-test/src/java/org/sakaiproject/component/test/
+component/trunk/component-impl/integration-test/src/java/org/sakaiproject/component/test/ITestComponent.java
+component/trunk/component-impl/integration-test/src/java/org/sakaiproject/component/test/ITestProvider.java
+component/trunk/component-impl/integration-test/src/java/org/sakaiproject/component/test/TestComponent.java
+component/trunk/component-impl/integration-test/src/java/org/sakaiproject/component/test/TestProvider1.java
+component/trunk/component-impl/integration-test/src/java/org/sakaiproject/component/test/TestProvider2.java
+component/trunk/component-impl/integration-test/src/java/org/sakaiproject/component/test/dynamic/
+component/trunk/component-impl/integration-test/src/java/org/sakaiproject/component/test/dynamic/DbPropertiesDao.java
+component/trunk/component-impl/integration-test/src/test/
+component/trunk/component-impl/integration-test/src/test/java/
+component/trunk/component-impl/integration-test/src/test/java/org/
+component/trunk/component-impl/integration-test/src/test/java/org/sakaiproject/
+component/trunk/component-impl/integration-test/src/test/java/org/sakaiproject/component/
+component/trunk/component-impl/integration-test/src/test/java/org/sakaiproject/component/ConfigurationLoadingTest.java
+component/trunk/component-impl/integration-test/src/test/java/org/sakaiproject/component/DynamicConfigurationTest.java
+component/trunk/component-impl/integration-test/src/test/resources/
+component/trunk/component-impl/integration-test/src/test/resources/dynamic/
+component/trunk/component-impl/integration-test/src/test/resources/dynamic/sakai-configuration.xml
+component/trunk/component-impl/integration-test/src/test/resources/dynamic/sakai.properties
+component/trunk/component-impl/integration-test/src/test/resources/filesystem/
+component/trunk/component-impl/integration-test/src/test/resources/filesystem/sakai-configuration.xml
+component/trunk/component-impl/integration-test/src/test/resources/filesystem/sakai.properties
+component/trunk/component-impl/integration-test/src/test/resources/filesystem/some-peculiar.properties
+component/trunk/component-impl/integration-test/src/test/resources/log4j.properties
+component/trunk/component-impl/integration-test/src/webapp/
+component/trunk/component-impl/integration-test/src/webapp/WEB-INF/
+component/trunk/component-impl/integration-test/src/webapp/WEB-INF/components.xml
+component/trunk/component-impl/integration-test/xdocs/
+component/trunk/component-impl/integration-test/xdocs/README.txt
+Removed:
+component/trunk/component-api/component/src/java/org/sakaiproject/component/api/ComponentsLoader.java
+component/trunk/component-api/component/src/java/org/sakaiproject/util/PropertyOverrideConfigurer.java
+component/trunk/component-api/component/src/java/org/springframework/
+component/trunk/component-impl/impl/src/java/org/sakaiproject/component/impl/ConfigurationServiceTest.java
+component/trunk/component-impl/integration-test/pom.xml
+component/trunk/component-impl/integration-test/src/
+component/trunk/component-impl/integration-test/src/java/
+component/trunk/component-impl/integration-test/src/java/org/
+component/trunk/component-impl/integration-test/src/java/org/sakaiproject/
+component/trunk/component-impl/integration-test/src/java/org/sakaiproject/component/
+component/trunk/component-impl/integration-test/src/java/org/sakaiproject/component/test/
+component/trunk/component-impl/integration-test/src/java/org/sakaiproject/component/test/ITestComponent.java
+component/trunk/component-impl/integration-test/src/java/org/sakaiproject/component/test/ITestProvider.java
+component/trunk/component-impl/integration-test/src/java/org/sakaiproject/component/test/TestComponent.java
+component/trunk/component-impl/integration-test/src/java/org/sakaiproject/component/test/TestProvider1.java
+component/trunk/component-impl/integration-test/src/java/org/sakaiproject/component/test/TestProvider2.java
+component/trunk/component-impl/integration-test/src/java/org/sakaiproject/component/test/dynamic/
+component/trunk/component-impl/integration-test/src/java/org/sakaiproject/component/test/dynamic/DbPropertiesDao.java
+component/trunk/component-impl/integration-test/src/test/
+component/trunk/component-impl/integration-test/src/test/java/
+component/trunk/component-impl/integration-test/src/test/java/org/
+component/trunk/component-impl/integration-test/src/test/java/org/sakaiproject/
+component/trunk/component-impl/integration-test/src/test/java/org/sakaiproject/component/
+component/trunk/component-impl/integration-test/src/test/java/org/sakaiproject/component/ConfigurationLoadingTest.java
+component/trunk/component-impl/integration-test/src/test/java/org/sakaiproject/component/DynamicConfigurationTest.java
+component/trunk/component-impl/integration-test/src/test/resources/
+component/trunk/component-impl/integration-test/src/test/resources/dynamic/
+component/trunk/component-impl/integration-test/src/test/resources/dynamic/sakai-configuration.xml
+component/trunk/component-impl/integration-test/src/test/resources/dynamic/sakai.properties
+component/trunk/component-impl/integration-test/src/test/resources/filesystem/
+component/trunk/component-impl/integration-test/src/test/resources/filesystem/sakai-configuration.xml
+component/trunk/component-impl/integration-test/src/test/resources/filesystem/sakai.properties
+component/trunk/component-impl/integration-test/src/test/resources/filesystem/some-peculiar.properties
+component/trunk/component-impl/integration-test/src/test/resources/log4j.properties
+component/trunk/component-impl/integration-test/src/webapp/
+component/trunk/component-impl/integration-test/src/webapp/WEB-INF/
+component/trunk/component-impl/integration-test/src/webapp/WEB-INF/components.xml
+component/trunk/component-impl/integration-test/xdocs/
+component/trunk/component-impl/integration-test/xdocs/README.txt
+Modified:
+component/trunk/
+component/trunk/component-api/.classpath
+component/trunk/component-api/component/pom.xml
+component/trunk/component-api/component/src/java/org/sakaiproject/component/api/ComponentManager.java
+component/trunk/component-api/component/src/java/org/sakaiproject/component/cover/ComponentManager.java
+component/trunk/component-api/component/src/java/org/sakaiproject/component/impl/SpringCompMgr.java
+component/trunk/component-api/component/src/java/org/sakaiproject/util/ComponentsLoader.java
+component/trunk/component-impl/.classpath
+component/trunk/component-impl/impl/pom.xml
+component/trunk/component-impl/impl/src/java/org/sakaiproject/component/impl/BasicConfigurationService.java
+component/trunk/component-impl/pack/src/webapp/WEB-INF/components.xml
+component/trunk/pom.xml
+Log:
+SAK-8315 SAK-12237 SAK-12236 Externalize component manager configuration; support lists of properties files, non-file-system properties, and complex configuration objects
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From cwen@iupui.edu Thu Jan 3 15:53:58 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.97])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 15:53:58 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 15:53:58 -0500
+Received: from dave.mr.itd.umich.edu (dave.mr.itd.umich.edu [141.211.14.70])
+ by sleepers.mail.umich.edu () with ESMTP id m03KrvIV026669;
+ Thu, 3 Jan 2008 15:53:57 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY dave.mr.itd.umich.edu ID 477D4B5E.D27F6.23416 ;
+ 3 Jan 2008 15:53:54 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 49D46B9900;
+ Thu, 3 Jan 2008 20:53:50 +0000 (GMT)
+Message-ID: <200801032052.m03KqOsp005029@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 663
+ for ;
+ Thu, 3 Jan 2008 20:53:32 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 85EF442B2D
+ for ; Thu, 3 Jan 2008 20:53:33 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03KqOxn005031
+ for ; Thu, 3 Jan 2008 15:52:25 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03KqOsp005029
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 15:52:24 -0500
+Date: Thu, 3 Jan 2008 15:52:24 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to cwen@iupui.edu using -f
+To: source@collab.sakaiproject.org
+From: cwen@iupui.edu
+Subject: [sakai] svn commit: r39740 - reference/trunk/docs/conversion
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 15:53:58 2008
+X-DSPAM-Confidence: 0.8507
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39740
+
+Author: cwen@iupui.edu
+Date: 2008-01-03 15:52:23 -0500 (Thu, 03 Jan 2008)
+New Revision: 39740
+
+Modified:
+reference/trunk/docs/conversion/sakai_2_4_0-2_5_0_mysql_conversion.sql
+reference/trunk/docs/conversion/sakai_2_4_0-2_5_0_oracle_conversion.sql
+Log:
+svn merge -r39155:39154 https://source.sakaiproject.org/svn/reference/trunk
+U docs/conversion/sakai_2_4_0-2_5_0_mysql_conversion.sql
+U docs/conversion/sakai_2_4_0-2_5_0_oracle_conversion.sql
+
+svn log -r 39155
+------------------------------------------------------------------------
+r39155 | cwen@iupui.edu | 2007-12-12 15:53:46 -0500 (Wed, 12 Dec 2007) | 1 line
+
+more conversion statements for SAK-10427.
+------------------------------------------------------------------------
+
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From zqian@umich.edu Thu Jan 3 15:27:26 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.95])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 15:27:26 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 15:27:26 -0500
+Received: from dreamcatcher.mr.itd.umich.edu (dreamcatcher.mr.itd.umich.edu [141.211.14.43])
+ by brazil.mail.umich.edu () with ESMTP id m03KRQhx016556;
+ Thu, 3 Jan 2008 15:27:26 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY dreamcatcher.mr.itd.umich.edu ID 477D4528.333B2.13071 ;
+ 3 Jan 2008 15:27:23 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id B092D78F12;
+ Thu, 3 Jan 2008 20:27:19 +0000 (GMT)
+Message-ID: <200801032025.m03KPvQi004928@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 206
+ for ;
+ Thu, 3 Jan 2008 20:27:08 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 9C59F42B2E
+ for ; Thu, 3 Jan 2008 20:27:05 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03KPvti004930
+ for ; Thu, 3 Jan 2008 15:25:57 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03KPvQi004928
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 15:25:57 -0500
+Date: Thu, 3 Jan 2008 15:25:57 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: zqian@umich.edu
+Subject: [sakai] svn commit: r39739 - assignment/tags
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 15:27:26 2008
+X-DSPAM-Confidence: 0.9895
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39739
+
+Author: zqian@umich.edu
+Date: 2008-01-03 15:25:55 -0500 (Thu, 03 Jan 2008)
+New Revision: 39739
+
+Added:
+assignment/tags/post-2-4-b/
+Log:
+create the tag post-2-4-b. The tag will serve as a starting point for post-2-4 assignment with conversion script included. Please refer to the runconversion_readme.txt for instructions.
+
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From cwen@iupui.edu Thu Jan 3 15:25:41 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.90])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 15:25:41 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 15:25:41 -0500
+Received: from it.mr.itd.umich.edu (it.mr.itd.umich.edu [141.211.93.151])
+ by flawless.mail.umich.edu () with ESMTP id m03KPeml010360;
+ Thu, 3 Jan 2008 15:25:40 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY it.mr.itd.umich.edu ID 477D44BE.43CAA.20354 ;
+ 3 Jan 2008 15:25:37 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 719B6B82DE;
+ Thu, 3 Jan 2008 20:25:34 +0000 (GMT)
+Message-ID: <200801032024.m03KOBAp004915@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 3
+ for ;
+ Thu, 3 Jan 2008 20:25:22 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id CB92242B09
+ for ; Thu, 3 Jan 2008 20:25:19 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03KOBs1004917
+ for ; Thu, 3 Jan 2008 15:24:11 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03KOBAp004915
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 15:24:11 -0500
+Date: Thu, 3 Jan 2008 15:24:11 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to cwen@iupui.edu using -f
+To: source@collab.sakaiproject.org
+From: cwen@iupui.edu
+Subject: [sakai] svn commit: r39738 - in gradebook/trunk: app/business/src/java/org/sakaiproject/tool/gradebook/business app/business/src/java/org/sakaiproject/tool/gradebook/business/impl app/business/src/sql/mysql app/business/src/sql/oracle app/sakai-tool/src/webapp/WEB-INF app/standalone-app/src/test/org/sakaiproject/tool/gradebook/test app/ui/src/bundle/org/sakaiproject/tool/gradebook/bundle app/ui/src/java/org/sakaiproject/tool/gradebook/jsf app/ui/src/java/org/sakaiproject/tool/gradebook/ui app/ui/src/webapp app/ui/src/webapp/inc service/api/src/java/org/sakaiproject/service/gradebook/shared service/hibernate/src/hibernate/org/sakaiproject/tool/gradebook service/hibernate/src/java/org/sakaiproject/tool/gradebook service/impl/src/java/org/sakaiproject/component/gradebook
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 15:25:41 2008
+X-DSPAM-Confidence: 0.9965
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39738
+
+Author: cwen@iupui.edu
+Date: 2008-01-03 15:24:05 -0500 (Thu, 03 Jan 2008)
+New Revision: 39738
+
+Removed:
+gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/jsf/NonGradedValueValidator.java
+Modified:
+gradebook/trunk/app/business/src/java/org/sakaiproject/tool/gradebook/business/GradebookManager.java
+gradebook/trunk/app/business/src/java/org/sakaiproject/tool/gradebook/business/impl/GradebookManagerHibernateImpl.java
+gradebook/trunk/app/business/src/sql/mysql/SAK-10427.sql
+gradebook/trunk/app/business/src/sql/oracle/SAK-10427.sql
+gradebook/trunk/app/sakai-tool/src/webapp/WEB-INF/faces-application.xml
+gradebook/trunk/app/standalone-app/src/test/org/sakaiproject/tool/gradebook/test/GradebookManagerOPCTest.java
+gradebook/trunk/app/ui/src/bundle/org/sakaiproject/tool/gradebook/bundle/Messages.properties
+gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/jsf/AssignmentPointsConverter.java
+gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/jsf/ClassAvgConverter.java
+gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/AssignmentBean.java
+gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/AssignmentDetailsBean.java
+gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/BulkAssignmentDecoratedBean.java
+gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/GradebookDependentBean.java
+gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/GradebookSetupBean.java
+gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/InstructorViewBean.java
+gradebook/trunk/app/ui/src/java/org/sakaiproject/tool/gradebook/ui/ViewByStudentBean.java
+gradebook/trunk/app/ui/src/webapp/assignmentDetails.jsp
+gradebook/trunk/app/ui/src/webapp/inc/assignmentEditing.jspf
+gradebook/trunk/app/ui/src/webapp/instructorView.jsp
+gradebook/trunk/service/api/src/java/org/sakaiproject/service/gradebook/shared/GradebookService.java
+gradebook/trunk/service/hibernate/src/hibernate/org/sakaiproject/tool/gradebook/GradeRecord.hbm.xml
+gradebook/trunk/service/hibernate/src/java/org/sakaiproject/tool/gradebook/AssignmentGradeRecord.java
+gradebook/trunk/service/impl/src/java/org/sakaiproject/component/gradebook/BaseHibernateManager.java
+Log:
+unmerge non-graded stuff since October. include 37479, 37506, 37669,
+38874, 39111, 39309, 39365, 39376, 39393 (michelle), 39362 (ryan)
+
+svn merge -r39376:39375 https://source.sakaiproject.org/svn/gradebook/trunk
+U app/ui/src/java/org/sakaiproject/tool/gradebook/ui/ViewByStudentBean.java
+
+svn log -r 39376
+------------------------------------------------------------------------
+r39376 | cwen@iupui.edu | 2007-12-17 12:16:42 -0500 (Mon, 17 Dec 2007) | 4 lines
+
+http://bugs.sakaiproject.org/jira/browse/SAK-12486
+=>
+include non-graded items for grade report page and
+student view page.
+------------------------------------------------------------------------
+
+svn merge -r39365:39364 https://source.sakaiproject.org/svn/gradebook/trunk
+U app/sakai-tool/src/webapp/WEB-INF/faces-application.xml
+D app/ui/src/java/org/sakaiproject/tool/gradebook/jsf/NonGradedValueValidator.java
+U app/ui/src/bundle/org/sakaiproject/tool/gradebook/bundle/Messages.properties
+U app/ui/src/webapp/assignmentDetails.jsp
+
+svn log -r 39365
+-------------------------------------------------------------------------------------------------------------------------500 (Mon,-----------------------------------------------------------------------2485
+=>
+add validation for non-graded grades.
+------------------------------------------------------------------------
+
+svn merge -r39309:39308 https://source.sakaiproject.org/svn/gradebook/trunk
+U app/ui/src/java/org/sakaiproject/tool/gradebook/ui/AssigU app/ui/src/java/org/sakaiproject/tool/gradoject/tool/gradebook/ui/BulkAssignmentDecoratedBean.java
+G app/ui/src/bundle/org/sakaiproject/tool/gradebook/bundle/Messages.properties
+C app/ui/src/webapp/inc/bulkNewItems.jspf
+U app/ui/src/webapp/inc/assignmentEditing.jspf
+
+svn revert app/ui/src/webapp/inc/bulkNewItems.jspf
+Reverted app/ui/src/webapp/inc/bulkNewItems.jspf
+
+svn log -r 39309
+------------------------------------------------------------------------
+r39309 | cwen@iupui.edu | 2007-12-15 01:11:33 -0500 (Sat, 15 Dec 2007) | 1 line
+
+http://bugs.sakaiproject.org/jira/browse/SAK-12461
+------------------------------------------------------------------------
+
+svn merge -r39111:39110 https://source.sakaiproject.org/svn/gradebook/trunk
+C app/business/src/java/org/sakaiproject/tool/gradebook/business/impl/GradebookManagerHibernateImpl.java
+
+svn resolved app/business/src/java/org/sakaiproject/tool/gradebook/business/impl/GradebookManagerHibernateImpl.java
+Resolved conflicted state of app/business/src/java/org/sakaiproject/tool/gradebook/business/impl/GradebookManagerHibernateImpl.java
+
+svn log -r 39111
+------------------------------------------------------------------------
+r39111 | cwen@iupui.edu | 2007-12-11 14:26:27 -0500 (Tue, 11 Dec 2007) | 1 line
+
+SAK-10427 & SAK-12114 => bulk creation for ungraded items.
+------------------------------------------------------------------------
+
+svn merge -r38874:38873 https://source.sakaiproject.org/svn/gradebook/trunk
+U app/ui/src/webapp/gradebookSetup.jsp
+
+svn log -r 38874
+------------------------------------------------------------------------
+r38874 | cwen@iupui.edu | 2007-11-29 14:35:46 -0500 (Thu, 29 Nov 2007) | 5 lines
+
+http://bugs.sakaiproject.org/jira/browse/SAK-12305
+SAK-12305
+=>
+get rid of "I want to enter grades
+that do not adhere to the standard grade entry type"
+------------------------------------------------------------------------------------------------------s://source.sakaiproject.org/svn/gradebo-----------------------------------------------------------------------------------------okManagerHibernateImpl.java
+U app/ui/src/java/org/sakaiproject/tool/gradebook/jsf/ClassAvgConverter.java
+G app/ui/src/java/org/sakaiproject/tool/gradebook/ui/ViewByStudentBean.java
+U app/ui/src/java/org/sakaiproject/tool/gradebook/ui/AssignmentDetailsBean.java
+U app/ui/src/java/org/sakaiproject/tool/gradebook/ui/GradebookDependentBean.java
+U app/ui/src/java/org/sakaiproject/tool/gradebook/ui/InstructorViewBean.java
+U app/ui/src/webapp/instructorView.jsp
+G app/ui/src/webapp/assignmentDetails.jsp
+
+svn resolved app/business/src/java/org/sakaiproject/tool/gradebook/business/impl/GradebookManagerHibernateImpl.java
+Resolved conflicted state of app/business/src/java/org/sakaiproject/tool/gradebook/business/impl/GradebookManagerHibernateImpl.java
+
+svn log -r 37669
+------------------------------------------------------------------------
+r37669 | cwen@iupui.edu | 2007-10-31 13:15:28 -0400 (Wed, 31 Oct 2007) | 4 lines
+
+http://128.196.219.68/jira/browse/SAK-10427
+SAK-10427
+=>
+fix some displyaing/saving issues.
+------------------------------------------------------------------------
+
+svn merge -r37506:37505 https://source.sakaiproject.org/svn/gradebook/trunk
+G app/ui/src/java/org/sakaiproject/tool/gradebook/ui/ViewByStudentBean.java
+G app/ui/src/java/org/sakaiproject/tool/gradebook/ui/AssignmentDetailsBean.java
+C app/ui/src/java/org/sakaiproject/tool/gradebook/ui/AssignmentBean.java
+
+svn resolved app/ui/src/java/org/sakaiproject/tool/gradebook/ui/AssignmentBean.java
+Resolved conflicted state of app/ui/src/java/org/sakaiproject/tool/gradebook/ui/AssignmentBean.java
+
+svn log -r 37506
+------------------------------------------------------------------------------------------------------------------------------------------------------------------128.196.219.68/jira/browse/SAK-10427
+SAK-10427
+=>
+fix some NPE.
+------------------------------------------------------------------------
+
+svn merge -r37479:37478 https://source.sakaiproject.org/svn/gradebook/trunk
+U app/standalone-app/src/test/org/sakaiproject/tool/gradebook/test/GradebookManagerOPCTest.java
+U app/business/src/sql/mysql/SAK-10427.sql
+U app/business/src/sql/oracle/SAK-10427.sql
+G app/business/src/java/org/sakaiproject/tool/gradebook/business/impl/GradebookManagerHibernateImpl.java
+U app/business/src/java/org/sakaiproject/tool/gradebook/business/GradebookManager.java
+G app/ui/src/java/org/sakaiproject/tool/gradebook/ui/ViewByStudentBean.java
+U app/ui/src/java/org/sakaiproject/tool/gradebook/ui/GradebookSetupBean.java
+G app/ui/src/java/org/sakaiproject/tool/gradebook/ui/AssignmentDetailsBean.java
+C app/ui/src/java/org/sakaiproject/tool/gradebook/ui/AssignmentBean.java
+C app/ui/src/bundle/org/sakaiproject/tool/gradebook/bundle/Messages.properties
+G app/ui/src/webapp/inc/assignmentEditing.jspf
+G app/ui/src/webapp/gradebookSetup.jsp
+G app/ui/src/webapp/assignmentDetails.jsp
+U service/hibernate/src/hibernate/org/sakaiproject/tool/gradebook/GradeRecord.hbm.xml
+U service/hibernate/src/java/org/sakaiproject/tool/gradebook/Assignment.java
+U service/hibernate/src/java/org/sakaiproject/tool/gradebook/AssignmentGradeRecord.java
+U service/hibernate/src/jaU service/hibernate/src/jaU service/hibernate/src/jaU service/hibernate/src/jaU service/hiberndebook/GradebookServiceHibernateImpl.java
+U service/impl/src/java/org/sakaiproject/component/gradebook/BaseHibernateManager.java
+U service/api/src/java/org/sakaiproject/service/gradebook/shared/GradebookService.java
+
+svn resolved app/ui/src/java/org/sakaiproject/tool/gradebook/ui/AssignmentBean.java
+Resolved conflicted state of app/ui/src/java/org/sakaiproject/tool/gradebook/ui/AssignmentBean.java
+
+svn resolved app/ui/src/bundle/org/sakaiproject/tool/gradebook/bundle/Messages.properties
+Resolved conflicted state of app/ui/src/bundle/org/sakaiproject/tool/gradebook/bundle/Messages.properties
+
+svn log -r 37479
+------------------------------------------------------------------------
+r37479 | cwen@iupui.edu | 2007-10-29 14:30:26 -0400 (Mon, 29 Oct 2007) | 5 lines
+
+http://128.196.219.68/jira/browse/SAK-10427
+SAK-10427
+=>
+allow creating non-calculated items without include those
+items for course grade calculation or stats.
+------------------------------------------------------------------------
+
+svn merge -r39393:39392 https://source.sakaiprojectsvn merge -r39393:39392 https://source.sakaiprojectsvn merge -r39393:39392 https://sousiness/impl/GradebookManagerHibernateImpl.java
+
+svn resolved app/business/src/java/org/sakaiproject/tool/gradebook/business/impl/GradebookManagerHibernateImpl.java
+Resolved conflicted state of app/business/src/java/org/sakaiproject/tool/gradebook/business/impl/GradebookManagerHibernateImpl.java
+
+svn log -r 39393
+------------------------------------------------------------------------
+r39393 | wagnermr@iupui.edu | 2007-12-17 15:20:23 -0500 (Mon, 17 Dec 2007) | 3 lines
+
+SAK-12494
+http://bugs.sakaiproject.org/jira/browse/SAK-12494
+Viewing a non-calculated gb item in a gradebook with grade entry by letter or % results in stack trace
+------------------------------------------------------------------------
+
+svn merge -r39362:39361 https://source.sakaiproject.org/svn/gradebook/trunk
+U app/ui/src/java/org/sakaiproject/tool/gradebook/jsf/AssignmentPointsConverter.java
+
+svn log -r 39362
+------------------------------------------------------------------------
+r39362 | rjlowe@iupui.edu | 2007-12-17 10:53:09 -0500 (Mon, 17 Dec 2007) | 1 line
+
+SAK-12465 - Non-Standard grades are not showing up in GB table
+------------------------------------------------------------------------
+
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From zqian@umich.edu Thu Jan 3 15:24:04 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.97])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 15:24:04 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 15:24:04 -0500
+Received: from shining.mr.itd.umich.edu (shining.mr.itd.umich.edu [141.211.93.153])
+ by sleepers.mail.umich.edu () with ESMTP id m03KO3LK008561;
+ Thu, 3 Jan 2008 15:24:03 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY shining.mr.itd.umich.edu ID 477D445B.21D7.20425 ;
+ 3 Jan 2008 15:23:57 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id D0FB7B93BE;
+ Thu, 3 Jan 2008 20:23:42 +0000 (GMT)
+Message-ID: <200801032022.m03KMFfc004903@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 222
+ for ;
+ Thu, 3 Jan 2008 20:23:25 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 3BEE842AC7
+ for ; Thu, 3 Jan 2008 20:23:24 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03KMFYH004905
+ for ; Thu, 3 Jan 2008 15:22:15 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03KMFfc004903
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 15:22:15 -0500
+Date: Thu, 3 Jan 2008 15:22:15 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: zqian@umich.edu
+Subject: [sakai] svn commit: r39737 - assignment/branches/post-2-4
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 15:24:04 2008
+X-DSPAM-Confidence: 0.9875
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39737
+
+Author: zqian@umich.edu
+Date: 2008-01-03 15:22:14 -0500 (Thu, 03 Jan 2008)
+New Revision: 39737
+
+Modified:
+assignment/branches/post-2-4/runconversion_readme.txt
+Log:
+update the runconversion_readme.txt file
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From zqian@umich.edu Thu Jan 3 14:32:46 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.91])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 14:32:46 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 14:32:46 -0500
+Received: from ghostbusters.mr.itd.umich.edu (ghostbusters.mr.itd.umich.edu [141.211.93.144])
+ by jacknife.mail.umich.edu () with ESMTP id m03JWiQk001230;
+ Thu, 3 Jan 2008 14:32:44 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY ghostbusters.mr.itd.umich.edu ID 477D383C.D9FDA.777 ;
+ 3 Jan 2008 14:32:23 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 68EFFB9850;
+ Thu, 3 Jan 2008 19:32:09 +0000 (GMT)
+Message-ID: <200801031930.m03JUkCZ004841@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 784
+ for ;
+ Thu, 3 Jan 2008 19:31:55 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 39EA942AB7
+ for ; Thu, 3 Jan 2008 19:31:55 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03JUks6004843
+ for ; Thu, 3 Jan 2008 14:30:46 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03JUkCZ004841
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 14:30:46 -0500
+Date: Thu, 3 Jan 2008 14:30:46 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: zqian@umich.edu
+Subject: [sakai] svn commit: r39736 - assignment/branches/sakai_2-3-x/assignment-tool/tool/src/webapp/vm/assignment
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 14:32:46 2008
+X-DSPAM-Confidence: 0.9867
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39736
+
+Author: zqian@umich.edu
+Date: 2008-01-03 14:30:45 -0500 (Thu, 03 Jan 2008)
+New Revision: 39736
+
+Modified:
+assignment/branches/sakai_2-3-x/assignment-tool/tool/src/webapp/vm/assignment/chef_assignments_instructor_new_edit_assignment.vm
+Log:
+fix to SAK-12599:year limit in Assignment tool 2.4.1 version
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From zqian@umich.edu Thu Jan 3 13:53:51 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.95])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 13:53:51 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 13:53:52 -0500
+Received: from holes.mr.itd.umich.edu (holes.mr.itd.umich.edu [141.211.14.79])
+ by brazil.mail.umich.edu () with ESMTP id m03IrpLa025048;
+ Thu, 3 Jan 2008 13:53:51 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY holes.mr.itd.umich.edu ID 477D2F36.8F808.4392 ;
+ 3 Jan 2008 13:53:45 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 47217B9815;
+ Thu, 3 Jan 2008 18:36:35 +0000 (GMT)
+Message-ID: <200801031849.m03InajQ004753@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 365
+ for ;
+ Thu, 3 Jan 2008 18:36:07 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 6897C42AC8
+ for ; Thu, 3 Jan 2008 18:50:45 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03InbUO004755
+ for ; Thu, 3 Jan 2008 13:49:37 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03InajQ004753
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 13:49:37 -0500
+Date: Thu, 3 Jan 2008 13:49:37 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: zqian@umich.edu
+Subject: [sakai] svn commit: r39735 - assignment/branches
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 13:53:51 2008
+X-DSPAM-Confidence: 0.9903
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39735
+
+Author: zqian@umich.edu
+Date: 2008-01-03 13:49:35 -0500 (Thu, 03 Jan 2008)
+New Revision: 39735
+
+Removed:
+assignment/branches/post-2-4-umich/
+Log:
+the post-2-4-umich branch has been merged back to post-2-4 and is no longer needed.
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From mmmay@indiana.edu Thu Jan 3 13:39:06 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.98])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 13:39:06 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 13:39:06 -0500
+Received: from ghostbusters.mr.itd.umich.edu (ghostbusters.mr.itd.umich.edu [141.211.93.144])
+ by casino.mail.umich.edu () with ESMTP id m03Id5EQ009413;
+ Thu, 3 Jan 2008 13:39:05 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY ghostbusters.mr.itd.umich.edu ID 477D2BBD.8B5A.10166 ;
+ 3 Jan 2008 13:38:55 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id C5DF9B974F;
+ Thu, 3 Jan 2008 18:29:50 +0000 (GMT)
+Message-ID: <200801031837.m03IbPY7004727@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 220
+ for ;
+ Thu, 3 Jan 2008 18:29:35 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id AE73242AB0
+ for ; Thu, 3 Jan 2008 18:38:33 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03IbPfc004729
+ for ; Thu, 3 Jan 2008 13:37:25 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03IbPY7004727
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 13:37:25 -0500
+Date: Thu, 3 Jan 2008 13:37:25 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to mmmay@indiana.edu using -f
+To: source@collab.sakaiproject.org
+From: mmmay@indiana.edu
+Subject: [sakai] svn commit: r39734 - gradebook/branches/sakai_2-5-x/service/impl/src/java/org/sakaiproject/component/gradebook
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 13:39:06 2008
+X-DSPAM-Confidence: 0.7006
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39734
+
+Author: mmmay@indiana.edu
+Date: 2008-01-03 13:37:24 -0500 (Thu, 03 Jan 2008)
+New Revision: 39734
+
+Modified:
+gradebook/branches/sakai_2-5-x/service/impl/src/java/org/sakaiproject/component/gradebook/GradebookServiceHibernateImpl.java
+Log:
+svn merge -r 39397:39398 https://source.sakaiproject.org/svn/gradebook/trunk
+U service/impl/src/java/org/sakaiproject/component/gradebook/GradebookServiceHibernateImpl.java
+in-143-196:~/java/2-5/sakai_2-5-x/gradebook mmmay$ svn log -r 39397:39398 https://source.sakaiproject.org/svn/gradebook/trunk
+------------------------------------------------------------------------
+r39398 | wagnermr@iupui.edu | 2007-12-17 16:29:35 -0500 (Mon, 17 Dec 2007) | 3 lines
+
+SAK-10606
+http://bugs.sakaiproject.org/jira/browse/SAK-10606
+GB authorization error in logs when student accesses Forums
+------------------------------------------------------------------------
+
+
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From cwen@iupui.edu Thu Jan 3 13:20:53 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.93])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 13:20:53 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 13:20:53 -0500
+Received: from jeffrey.mr.itd.umich.edu (jeffrey.mr.itd.umich.edu [141.211.14.71])
+ by mission.mail.umich.edu () with ESMTP id m03IKrTF010248;
+ Thu, 3 Jan 2008 13:20:53 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY jeffrey.mr.itd.umich.edu ID 477D2778.AE112.13062 ;
+ 3 Jan 2008 13:20:43 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 7E449B9739;
+ Thu, 3 Jan 2008 18:11:34 +0000 (GMT)
+Message-ID: <200801031819.m03IJA7j004645@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 94
+ for ;
+ Thu, 3 Jan 2008 18:11:21 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id C49AB42AB7
+ for ; Thu, 3 Jan 2008 18:20:18 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03IJAIX004647
+ for ; Thu, 3 Jan 2008 13:19:10 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03IJA7j004645
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 13:19:10 -0500
+Date: Thu, 3 Jan 2008 13:19:10 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to cwen@iupui.edu using -f
+To: source@collab.sakaiproject.org
+From: cwen@iupui.edu
+Subject: [sakai] svn commit: r39733 - gradebook/branches/SAK-10427/app/business/src/java/org/sakaiproject/tool/gradebook/business/impl
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 13:20:53 2008
+X-DSPAM-Confidence: 0.9907
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39733
+
+Author: cwen@iupui.edu
+Date: 2008-01-03 13:19:09 -0500 (Thu, 03 Jan 2008)
+New Revision: 39733
+
+Modified:
+gradebook/branches/SAK-10427/app/business/src/java/org/sakaiproject/tool/gradebook/business/impl/GradebookManagerHibernateImpl.java
+Log:
+svn merge -c 39728 https://source.sakaiproject.org/svn/gradebook/trunk
+U app/business/src/java/org/sakaiproject/tool/gradebook/business/impl/GradebookManagerHibernateImpl.java
+
+svn log -r 39728 https://source.sakaiproject.org/svn/gradebook/trunk
+------------------------------------------------------------------------
+r39728 | cwen@iupui.edu | 2008-01-03 13:06:41 -0500 (Thu, 03 Jan 2008) | 4 lines
+
+http://bugs.sakaiproject.org/jira/browse/SAK-12005
+=>
+fix GB test again and turn on maven2 unit test for
+build.
+------------------------------------------------------------------------
+
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From zqian@umich.edu Thu Jan 3 13:17:07 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.91])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 13:17:07 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 13:17:07 -0500
+Received: from icestorm.mr.itd.umich.edu (icestorm.mr.itd.umich.edu [141.211.93.149])
+ by jacknife.mail.umich.edu () with ESMTP id m03IH6km021589;
+ Thu, 3 Jan 2008 13:17:06 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY icestorm.mr.itd.umich.edu ID 477D269B.D3006.14486 ;
+ 3 Jan 2008 13:17:02 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id CB4F1B9778;
+ Thu, 3 Jan 2008 18:07:59 +0000 (GMT)
+Message-ID: <200801031815.m03IFbue004618@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 388
+ for ;
+ Thu, 3 Jan 2008 18:07:48 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 915EA42AB7
+ for ; Thu, 3 Jan 2008 18:16:45 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03IFbMM004620
+ for ; Thu, 3 Jan 2008 13:15:37 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03IFbue004618
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 13:15:37 -0500
+Date: Thu, 3 Jan 2008 13:15:37 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: zqian@umich.edu
+Subject: [sakai] svn commit: r39732 - site/branches/sakai_2-5-x/site-tool/tool/src/webapp/vm/adminsites
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 13:17:07 2008
+X-DSPAM-Confidence: 0.9886
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39732
+
+Author: zqian@umich.edu
+Date: 2008-01-03 13:15:35 -0500 (Thu, 03 Jan 2008)
+New Revision: 39732
+
+Modified:
+site/branches/sakai_2-5-x/site-tool/tool/src/webapp/vm/adminsites/chef_sites_list.vm
+Log:
+merge fix to SAK-12431 into 2-5-x branch: svn merge -r 39728:39729 https://source.sakaiproject.org/svn/site/trunk/
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From zqian@umich.edu Thu Jan 3 13:14:34 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.98])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 13:14:34 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 13:14:34 -0500
+Received: from eyewitness.mr.itd.umich.edu (eyewitness.mr.itd.umich.edu [141.211.93.142])
+ by casino.mail.umich.edu () with ESMTP id m03IEYEe025569;
+ Thu, 3 Jan 2008 13:14:34 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY eyewitness.mr.itd.umich.edu ID 477D2602.8D8BF.8789 ;
+ 3 Jan 2008 13:14:29 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 7E24AB975A;
+ Thu, 3 Jan 2008 18:06:09 +0000 (GMT)
+Message-ID: <200801031812.m03ICrFH004606@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 710
+ for ;
+ Thu, 3 Jan 2008 18:05:44 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 4098942AB7
+ for ; Thu, 3 Jan 2008 18:14:02 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03ICs7e004608
+ for ; Thu, 3 Jan 2008 13:12:54 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03ICrFH004606
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 13:12:53 -0500
+Date: Thu, 3 Jan 2008 13:12:53 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: zqian@umich.edu
+Subject: [sakai] svn commit: r39731 - site-manage/branches/sakai_2-5-x/site-manage-tool/tool/src/webapp/vm/sitebrowser
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 13:14:34 2008
+X-DSPAM-Confidence: 0.8495
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39731
+
+Author: zqian@umich.edu
+Date: 2008-01-03 13:12:52 -0500 (Thu, 03 Jan 2008)
+New Revision: 39731
+
+Modified:
+site-manage/branches/sakai_2-5-x/site-manage-tool/tool/src/webapp/vm/sitebrowser/chef_sitebrowser_list.vm
+Log:
+merge fix to SAK-12431 into 2-5-x branch: svn merge -r 39729:39730 https://source.sakaiproject.org/svn/site-manage/trunk/
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From zqian@umich.edu Thu Jan 3 13:14:30 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.92])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 13:14:30 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 13:14:30 -0500
+Received: from galaxyquest.mr.itd.umich.edu (galaxyquest.mr.itd.umich.edu [141.211.93.145])
+ by score.mail.umich.edu () with ESMTP id m03IEUkm018632;
+ Thu, 3 Jan 2008 13:14:30 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY galaxyquest.mr.itd.umich.edu ID 477D25E9.9CF47.16689 ;
+ 3 Jan 2008 13:14:06 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 22812B975D;
+ Thu, 3 Jan 2008 18:05:39 +0000 (GMT)
+Message-ID: <200801031807.m03I7eg2004582@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 43
+ for ;
+ Thu, 3 Jan 2008 18:03:03 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 763D942AB7
+ for ; Thu, 3 Jan 2008 18:08:48 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03I7ePp004584
+ for ; Thu, 3 Jan 2008 13:07:40 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03I7eg2004582
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 13:07:40 -0500
+Date: Thu, 3 Jan 2008 13:07:40 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: zqian@umich.edu
+Subject: [sakai] svn commit: r39730 - site-manage/trunk/site-manage-tool/tool/src/webapp/vm/sitebrowser
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 13:14:30 2008
+X-DSPAM-Confidence: 0.7606
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39730
+
+Author: zqian@umich.edu
+Date: 2008-01-03 13:07:38 -0500 (Thu, 03 Jan 2008)
+New Revision: 39730
+
+Modified:
+site-manage/trunk/site-manage-tool/tool/src/webapp/vm/sitebrowser/chef_sitebrowser_list.vm
+Log:
+fix to SAK-12431:When site doesn't have a creator velocity variable is outputted
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From cwen@iupui.edu Thu Jan 3 13:14:19 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.91])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 13:14:19 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 13:14:19 -0500
+Received: from holes.mr.itd.umich.edu (holes.mr.itd.umich.edu [141.211.14.79])
+ by jacknife.mail.umich.edu () with ESMTP id m03IEIbb019289;
+ Thu, 3 Jan 2008 13:14:18 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY holes.mr.itd.umich.edu ID 477D25ED.74FA0.14767 ;
+ 3 Jan 2008 13:14:09 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 5B632B975E;
+ Thu, 3 Jan 2008 18:05:40 +0000 (GMT)
+Message-ID: <200801031806.m03I6g8Y004558@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 997
+ for ;
+ Thu, 3 Jan 2008 18:02:45 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 7D80442AB7
+ for ; Thu, 3 Jan 2008 18:07:50 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03I6gww004560
+ for ; Thu, 3 Jan 2008 13:06:42 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03I6g8Y004558
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 13:06:42 -0500
+Date: Thu, 3 Jan 2008 13:06:42 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to cwen@iupui.edu using -f
+To: source@collab.sakaiproject.org
+From: cwen@iupui.edu
+Subject: [sakai] svn commit: r39728 - gradebook/trunk/app/business/src/java/org/sakaiproject/tool/gradebook/business/impl
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 13:14:19 2008
+X-DSPAM-Confidence: 0.9875
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39728
+
+Author: cwen@iupui.edu
+Date: 2008-01-03 13:06:41 -0500 (Thu, 03 Jan 2008)
+New Revision: 39728
+
+Modified:
+gradebook/trunk/app/business/src/java/org/sakaiproject/tool/gradebook/business/impl/GradebookManagerHibernateImpl.java
+Log:
+http://bugs.sakaiproject.org/jira/browse/SAK-12005
+=>
+fix GB test again and turn on maven2 unit test for
+build.
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From zqian@umich.edu Thu Jan 3 13:13:58 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.98])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 13:13:58 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 13:13:58 -0500
+Received: from dave.mr.itd.umich.edu (dave.mr.itd.umich.edu [141.211.14.70])
+ by casino.mail.umich.edu () with ESMTP id m03IDveu025155;
+ Thu, 3 Jan 2008 13:13:57 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY dave.mr.itd.umich.edu ID 477D25DD.49C16.12950 ;
+ 3 Jan 2008 13:13:52 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id A2371B9739;
+ Thu, 3 Jan 2008 18:05:29 +0000 (GMT)
+Message-ID: <200801031806.m03I6pEt004570@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 89
+ for ;
+ Thu, 3 Jan 2008 18:02:52 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 5773F42AB7
+ for ; Thu, 3 Jan 2008 18:07:59 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03I6pVt004572
+ for ; Thu, 3 Jan 2008 13:06:51 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03I6pEt004570
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 13:06:51 -0500
+Date: Thu, 3 Jan 2008 13:06:51 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: zqian@umich.edu
+Subject: [sakai] svn commit: r39729 - site/trunk/site-tool/tool/src/webapp/vm/adminsites
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 13:13:58 2008
+X-DSPAM-Confidence: 0.8489
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39729
+
+Author: zqian@umich.edu
+Date: 2008-01-03 13:06:49 -0500 (Thu, 03 Jan 2008)
+New Revision: 39729
+
+Modified:
+site/trunk/site-tool/tool/src/webapp/vm/adminsites/chef_sites_list.vm
+Log:
+fix to SAK-12431:When site doesn't have a creator velocity variable is outputted
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From cwen@iupui.edu Thu Jan 3 13:13:32 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.92])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 13:13:32 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 13:13:32 -0500
+Received: from salemslot.mr.itd.umich.edu (salemslot.mr.itd.umich.edu [141.211.14.58])
+ by score.mail.umich.edu () with ESMTP id m03IDVEW018260;
+ Thu, 3 Jan 2008 13:13:31 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY salemslot.mr.itd.umich.edu ID 477D25C5.EFCFE.9183 ;
+ 3 Jan 2008 13:13:28 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id D308EB9700;
+ Thu, 3 Jan 2008 18:04:40 +0000 (GMT)
+Message-ID: <200801031804.m03I4lVU004546@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 571
+ for ;
+ Thu, 3 Jan 2008 18:02:15 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 8638E42AB7
+ for ; Thu, 3 Jan 2008 18:05:55 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03I4lVj004548
+ for ; Thu, 3 Jan 2008 13:04:47 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03I4lVU004546
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 13:04:47 -0500
+Date: Thu, 3 Jan 2008 13:04:47 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to cwen@iupui.edu using -f
+To: source@collab.sakaiproject.org
+From: cwen@iupui.edu
+Subject: [sakai] svn commit: r39727 - gradebook/branches
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 13:13:32 2008
+X-DSPAM-Confidence: 0.9854
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39727
+
+Author: cwen@iupui.edu
+Date: 2008-01-03 13:04:46 -0500 (Thu, 03 Jan 2008)
+New Revision: 39727
+
+Added:
+gradebook/branches/SAK-10427/
+Log:
+create branch for SAK-10427. as of r39722.
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From ray@media.berkeley.edu Thu Jan 3 12:49:07 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.91])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 12:49:07 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 12:49:07 -0500
+Received: from creepshow.mr.itd.umich.edu (creepshow.mr.itd.umich.edu [141.211.14.84])
+ by jacknife.mail.umich.edu () with ESMTP id m03Hn6EJ004324;
+ Thu, 3 Jan 2008 12:49:06 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY creepshow.mr.itd.umich.edu ID 477D1FFB.C7CA6.21000 ;
+ 3 Jan 2008 12:48:46 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id AD193B9598;
+ Thu, 3 Jan 2008 17:48:37 +0000 (GMT)
+Message-ID: <200801031747.m03HlB1h004532@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 324
+ for ;
+ Thu, 3 Jan 2008 17:48:23 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 9DF5342AA1
+ for ; Thu, 3 Jan 2008 17:48:19 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03HlB9J004534
+ for ; Thu, 3 Jan 2008 12:47:11 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03HlB1h004532
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 12:47:11 -0500
+Date: Thu, 3 Jan 2008 12:47:11 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to ray@media.berkeley.edu using -f
+To: source@collab.sakaiproject.org
+From: ray@media.berkeley.edu
+Subject: [sakai] svn commit: r39726 - component/branches/SAK-8315/component-api/component/src/config/org/sakaiproject/config
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 12:49:07 2008
+X-DSPAM-Confidence: 0.7549
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39726
+
+Author: ray@media.berkeley.edu
+Date: 2008-01-03 12:47:08 -0500 (Thu, 03 Jan 2008)
+New Revision: 39726
+
+Modified:
+component/branches/SAK-8315/component-api/component/src/config/org/sakaiproject/config/sakai.properties
+Log:
+Merge -r38279:39599 from trunk
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From zqian@umich.edu Thu Jan 3 12:32:45 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.96])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 12:32:45 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 12:32:45 -0500
+Received: from holes.mr.itd.umich.edu (holes.mr.itd.umich.edu [141.211.14.79])
+ by awakenings.mail.umich.edu () with ESMTP id m03HWiim011776;
+ Thu, 3 Jan 2008 12:32:44 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY holes.mr.itd.umich.edu ID 477D1C2E.ACBA7.29737 ;
+ 3 Jan 2008 12:32:33 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 87832B96A1;
+ Thu, 3 Jan 2008 17:32:14 +0000 (GMT)
+Message-ID: <200801031730.m03HUeEg004479@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 21
+ for ;
+ Thu, 3 Jan 2008 17:31:53 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 1D56842A72
+ for ; Thu, 3 Jan 2008 17:31:48 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03HUe0M004481
+ for ; Thu, 3 Jan 2008 12:30:40 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03HUeEg004479
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 12:30:40 -0500
+Date: Thu, 3 Jan 2008 12:30:40 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: zqian@umich.edu
+Subject: [sakai] svn commit: r39725 - in assignment/branches/sakai_2-5-x: assignment-bundles assignment-tool/tool/src/java/org/sakaiproject/assignment/tool assignment-tool/tool/src/webapp/vm/assignment
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 12:32:45 2008
+X-DSPAM-Confidence: 0.9877
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39725
+
+Author: zqian@umich.edu
+Date: 2008-01-03 12:30:37 -0500 (Thu, 03 Jan 2008)
+New Revision: 39725
+
+Modified:
+assignment/branches/sakai_2-5-x/assignment-bundles/assignment.properties
+assignment/branches/sakai_2-5-x/assignment-tool/tool/src/java/org/sakaiproject/assignment/tool/AssignmentAction.java
+assignment/branches/sakai_2-5-x/assignment-tool/tool/src/webapp/vm/assignment/chef_assignments_instructor_new_edit_assignment.vm
+Log:
+merge the fix to SAK-12421 into 2-5-x branch: svn merge -r 39722:39723 https://source.sakaiproject.org/svn/assignment/trunk/
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From zqian@umich.edu Thu Jan 3 12:28:03 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.92])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 12:28:03 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 12:28:03 -0500
+Received: from jeffrey.mr.itd.umich.edu (jeffrey.mr.itd.umich.edu [141.211.14.71])
+ by score.mail.umich.edu () with ESMTP id m03HS2KJ023366;
+ Thu, 3 Jan 2008 12:28:02 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY jeffrey.mr.itd.umich.edu ID 477D1B1A.6689C.7216 ;
+ 3 Jan 2008 12:27:57 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 42C1DB964E;
+ Thu, 3 Jan 2008 17:27:54 +0000 (GMT)
+Message-ID: <200801031726.m03HQUQ6004462@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 295
+ for ;
+ Thu, 3 Jan 2008 17:27:43 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id C8CA01D62B
+ for ; Thu, 3 Jan 2008 17:27:38 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03HQU97004464
+ for ; Thu, 3 Jan 2008 12:26:30 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03HQUQ6004462
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 12:26:30 -0500
+Date: Thu, 3 Jan 2008 12:26:30 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: zqian@umich.edu
+Subject: [sakai] svn commit: r39724 - in assignment/branches/post-2-4: assignment-bundles assignment-tool/tool/src/java/org/sakaiproject/assignment/tool assignment-tool/tool/src/webapp/vm/assignment
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 12:28:03 2008
+X-DSPAM-Confidence: 0.9881
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39724
+
+Author: zqian@umich.edu
+Date: 2008-01-03 12:26:25 -0500 (Thu, 03 Jan 2008)
+New Revision: 39724
+
+Modified:
+assignment/branches/post-2-4/assignment-bundles/assignment.properties
+assignment/branches/post-2-4/assignment-tool/tool/src/java/org/sakaiproject/assignment/tool/AssignmentAction.java
+assignment/branches/post-2-4/assignment-tool/tool/src/webapp/vm/assignment/chef_assignments_instructor_new_edit_assignment.vm
+Log:
+merge the fix to SAK-12421 into post-2-4 branch: svn merge -r 39722:39723 https://source.sakaiproject.org/svn/assignment/trunk/
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From zqian@umich.edu Thu Jan 3 12:24:50 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.36])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 12:24:50 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 12:24:50 -0500
+Received: from workinggirl.mr.itd.umich.edu (workinggirl.mr.itd.umich.edu [141.211.93.143])
+ by godsend.mail.umich.edu () with ESMTP id m03HOnLx001048;
+ Thu, 3 Jan 2008 12:24:49 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY workinggirl.mr.itd.umich.edu ID 477D1A5B.85549.28589 ;
+ 3 Jan 2008 12:24:46 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 6E7B9B961F;
+ Thu, 3 Jan 2008 17:24:45 +0000 (GMT)
+Message-ID: <200801031723.m03HNIp2004441@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 859
+ for ;
+ Thu, 3 Jan 2008 17:24:30 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id E41C41D62B
+ for ; Thu, 3 Jan 2008 17:24:26 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03HNIPD004443
+ for ; Thu, 3 Jan 2008 12:23:18 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03HNIp2004441
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 12:23:18 -0500
+Date: Thu, 3 Jan 2008 12:23:18 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: zqian@umich.edu
+Subject: [sakai] svn commit: r39723 - in assignment/trunk: assignment-bundles assignment-tool/tool/src/java/org/sakaiproject/assignment/tool assignment-tool/tool/src/webapp/vm/assignment
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 12:24:50 2008
+X-DSPAM-Confidence: 0.9864
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39723
+
+Author: zqian@umich.edu
+Date: 2008-01-03 12:23:13 -0500 (Thu, 03 Jan 2008)
+New Revision: 39723
+
+Modified:
+assignment/trunk/assignment-bundles/assignment.properties
+assignment/trunk/assignment-tool/tool/src/java/org/sakaiproject/assignment/tool/AssignmentAction.java
+assignment/trunk/assignment-tool/tool/src/webapp/vm/assignment/chef_assignments_instructor_new_edit_assignment.vm
+Log:
+fix to SAK-12421: grading settings error cause assignmets to be dropped from gradebook
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From cwen@iupui.edu Thu Jan 3 11:44:41 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.46])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 11:44:41 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 11:44:41 -0500
+Received: from firestarter.mr.itd.umich.edu (firestarter.mr.itd.umich.edu [141.211.14.83])
+ by fan.mail.umich.edu () with ESMTP id m03Gie0u020858;
+ Thu, 3 Jan 2008 11:44:40 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY firestarter.mr.itd.umich.edu ID 477D10EC.6EFE6.11423 ;
+ 3 Jan 2008 11:44:36 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id B598AB9592;
+ Thu, 3 Jan 2008 16:44:31 +0000 (GMT)
+Message-ID: <200801031643.m03Gh1r2004386@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 464
+ for ;
+ Thu, 3 Jan 2008 16:44:16 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 4765438EC2
+ for ; Thu, 3 Jan 2008 16:44:10 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03Gh29d004388
+ for ; Thu, 3 Jan 2008 11:43:02 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03Gh1r2004386
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 11:43:01 -0500
+Date: Thu, 3 Jan 2008 11:43:01 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to cwen@iupui.edu using -f
+To: source@collab.sakaiproject.org
+From: cwen@iupui.edu
+Subject: [sakai] svn commit: r39722 - in gradebook/trunk/app: business/src/java/org/sakaiproject/tool/gradebook/business/impl standalone-app
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 11:44:41 2008
+X-DSPAM-Confidence: 0.9870
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39722
+
+Author: cwen@iupui.edu
+Date: 2008-01-03 11:43:00 -0500 (Thu, 03 Jan 2008)
+New Revision: 39722
+
+Modified:
+gradebook/trunk/app/business/src/java/org/sakaiproject/tool/gradebook/business/impl/GradebookManagerHibernateImpl.java
+gradebook/trunk/app/standalone-app/pom.xml
+Log:
+http://bugs.sakaiproject.org/jira/browse/SAK-12005
+=>
+fix GB test again and turn on maven2 unit test for
+build.
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From zqian@umich.edu Thu Jan 3 11:28:41 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.36])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 11:28:41 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 11:28:41 -0500
+Received: from dave.mr.itd.umich.edu (dave.mr.itd.umich.edu [141.211.14.70])
+ by godsend.mail.umich.edu () with ESMTP id m03GSfDF002740;
+ Thu, 3 Jan 2008 11:28:41 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY dave.mr.itd.umich.edu ID 477D0D31.5AE7.8943 ;
+ 3 Jan 2008 11:28:35 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 03C205ABD7;
+ Thu, 3 Jan 2008 16:28:34 +0000 (GMT)
+Message-ID: <200801031627.m03GR5UM004357@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 898
+ for ;
+ Thu, 3 Jan 2008 16:28:19 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 0DD7B42A42
+ for ; Thu, 3 Jan 2008 16:28:13 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03GR5W6004359
+ for ; Thu, 3 Jan 2008 11:27:05 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03GR5UM004357
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 11:27:05 -0500
+Date: Thu, 3 Jan 2008 11:27:05 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: zqian@umich.edu
+Subject: [sakai] svn commit: r39721 - in site-manage/trunk/site-manage-tool/tool/src: java/org/sakaiproject/site/tool webapp/vm/sitesetup
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 11:28:41 2008
+X-DSPAM-Confidence: 0.8493
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39721
+
+Author: zqian@umich.edu
+Date: 2008-01-03 11:27:03 -0500 (Thu, 03 Jan 2008)
+New Revision: 39721
+
+Modified:
+site-manage/trunk/site-manage-tool/tool/src/java/org/sakaiproject/site/tool/SiteAction.java
+site-manage/trunk/site-manage-tool/tool/src/webapp/vm/sitesetup/chef_site-type.vm
+Log:
+fix to SAK-12324:Ability to limit course creation
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From gopal.ramasammycook@gmail.com Thu Jan 3 11:12:18 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.96])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 11:12:18 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 11:12:18 -0500
+Received: from eyewitness.mr.itd.umich.edu (eyewitness.mr.itd.umich.edu [141.211.93.142])
+ by awakenings.mail.umich.edu () with ESMTP id m03GCHhZ027832;
+ Thu, 3 Jan 2008 11:12:17 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY eyewitness.mr.itd.umich.edu ID 477D095B.8A20D.22970 ;
+ 3 Jan 2008 11:12:14 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 613D7B953F;
+ Thu, 3 Jan 2008 16:11:35 +0000 (GMT)
+Message-ID: <200801031610.m03GAkl3004326@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 578
+ for ;
+ Thu, 3 Jan 2008 16:11:13 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 5B6B942A72
+ for ; Thu, 3 Jan 2008 16:11:54 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03GAkqT004328
+ for ; Thu, 3 Jan 2008 11:10:46 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03GAkl3004326
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 11:10:46 -0500
+Date: Thu, 3 Jan 2008 11:10:46 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to gopal.ramasammycook@gmail.com using -f
+To: source@collab.sakaiproject.org
+From: gopal.ramasammycook@gmail.com
+Subject: [sakai] svn commit: r39720 - in sam/branches/SAK-12065: samigo-app/src/java/org/sakaiproject/tool/assessment/bundle samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/evaluation samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/evaluation samigo-services/src/java/org/sakaiproject/tool/assessment/facade samigo-services/src/java/org/sakaiproject/tool/assessment/integration/helper/integrated samigo-services/src/java/org/sakaiproject/tool/assessment/services/assessment
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 11:12:18 2008
+X-DSPAM-Confidence: 0.9837
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39720
+
+Author: gopal.ramasammycook@gmail.com
+Date: 2008-01-03 11:10:02 -0500 (Thu, 03 Jan 2008)
+New Revision: 39720
+
+Modified:
+sam/branches/SAK-12065/samigo-app/src/java/org/sakaiproject/tool/assessment/bundle/EvaluationMessages.properties
+sam/branches/SAK-12065/samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/evaluation/QuestionScoresBean.java
+sam/branches/SAK-12065/samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/evaluation/SubmissionStatusBean.java
+sam/branches/SAK-12065/samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/evaluation/TotalScoresBean.java
+sam/branches/SAK-12065/samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/evaluation/QuestionScoreListener.java
+sam/branches/SAK-12065/samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/evaluation/TotalScoreListener.java
+sam/branches/SAK-12065/samigo-services/src/java/org/sakaiproject/tool/assessment/facade/PublishedAssessmentFacadeQueries.java
+sam/branches/SAK-12065/samigo-services/src/java/org/sakaiproject/tool/assessment/integration/helper/integrated/SectionAwareServiceHelperImpl.java
+sam/branches/SAK-12065/samigo-services/src/java/org/sakaiproject/tool/assessment/services/assessment/PublishedAssessmentService.java
+Log:
+SAK-12065 Group Release. Gopal
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From gsilver@umich.edu Thu Jan 3 10:31:13 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.93])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 10:31:13 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 10:31:13 -0500
+Received: from tadpole.mr.itd.umich.edu (tadpole.mr.itd.umich.edu [141.211.14.72])
+ by mission.mail.umich.edu () with ESMTP id m03FVDYb007589;
+ Thu, 3 Jan 2008 10:31:13 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY tadpole.mr.itd.umich.edu ID 477CFFAB.BC538.9751 ;
+ 3 Jan 2008 10:30:54 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id F2DF3B94C6;
+ Thu, 3 Jan 2008 15:28:34 +0000 (GMT)
+Message-ID: <200801031528.m03FSpXg004260@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 42
+ for ;
+ Thu, 3 Jan 2008 15:28:10 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 65FB63EA95
+ for ; Thu, 3 Jan 2008 15:29:59 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03FSpDo004262
+ for ; Thu, 3 Jan 2008 10:28:51 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03FSpXg004260
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 10:28:51 -0500
+Date: Thu, 3 Jan 2008 10:28:51 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to gsilver@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: gsilver@umich.edu
+Subject: [sakai] svn commit: r39719 - announcement/trunk/announcement-tool/tool/src/bundle
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 10:31:13 2008
+X-DSPAM-Confidence: 0.8479
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39719
+
+Author: gsilver@umich.edu
+Date: 2008-01-03 10:28:50 -0500 (Thu, 03 Jan 2008)
+New Revision: 39719
+
+Modified:
+announcement/trunk/announcement-tool/tool/src/bundle/announcement.properties
+Log:
+SAK-12590
+http://jira.sakaiproject.org/jira/browse/SAK-12590
+- left moot (unused) entries commented for now
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From gsilver@umich.edu Thu Jan 3 10:28:16 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.95])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 10:28:16 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 10:28:16 -0500
+Received: from galaxyquest.mr.itd.umich.edu (galaxyquest.mr.itd.umich.edu [141.211.93.145])
+ by brazil.mail.umich.edu () with ESMTP id m03FSGu7002980;
+ Thu, 3 Jan 2008 10:28:16 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY galaxyquest.mr.itd.umich.edu ID 477CFF09.6EFD1.11661 ;
+ 3 Jan 2008 10:28:13 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 2365FB94AD;
+ Thu, 3 Jan 2008 15:26:16 +0000 (GMT)
+Message-ID: <200801031526.m03FQhmF004248@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 39
+ for ;
+ Thu, 3 Jan 2008 15:25:58 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 60A9A3EA95
+ for ; Thu, 3 Jan 2008 15:27:51 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03FQhu3004250
+ for ; Thu, 3 Jan 2008 10:26:43 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03FQhmF004248
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 10:26:43 -0500
+Date: Thu, 3 Jan 2008 10:26:43 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to gsilver@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: gsilver@umich.edu
+Subject: [sakai] svn commit: r39718 - calendar/trunk/calendar-tool/tool/src/bundle
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 10:28:16 2008
+X-DSPAM-Confidence: 0.9852
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39718
+
+Author: gsilver@umich.edu
+Date: 2008-01-03 10:26:42 -0500 (Thu, 03 Jan 2008)
+New Revision: 39718
+
+Modified:
+calendar/trunk/calendar-tool/tool/src/bundle/calendar.properties
+Log:
+SAK-12591
+http://jira.sakaiproject.org/jira/browse/SAK-12591
+- left moot (unused) entries commented for now
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From stuart.freeman@et.gatech.edu Thu Jan 3 10:23:05 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.25])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 10:23:05 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 10:23:05 -0500
+Received: from icestorm.mr.itd.umich.edu (icestorm.mr.itd.umich.edu [141.211.93.149])
+ by panther.mail.umich.edu () with ESMTP id m03FN42d026581;
+ Thu, 3 Jan 2008 10:23:04 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY icestorm.mr.itd.umich.edu ID 477CFDCF.5338D.4507 ;
+ 3 Jan 2008 10:22:58 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id D222DB9497;
+ Thu, 3 Jan 2008 15:20:42 +0000 (GMT)
+Message-ID: <200801031521.m03FLXtP004230@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 578
+ for ;
+ Thu, 3 Jan 2008 15:20:25 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id D888042A42
+ for ; Thu, 3 Jan 2008 15:22:41 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03FLYv5004232
+ for ; Thu, 3 Jan 2008 10:21:34 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03FLXtP004230
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 10:21:33 -0500
+Date: Thu, 3 Jan 2008 10:21:33 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to stuart.freeman@et.gatech.edu using -f
+To: source@collab.sakaiproject.org
+From: stuart.freeman@et.gatech.edu
+Subject: [sakai] svn commit: r39717 - in polls/branches/sakai_2-4-x/tool: . src/bundle/org/sakaiproject/poll/bundle src/java/org/sakaiproject/poll/tool/params src/java/org/sakaiproject/poll/tool/validators src/webapp/WEB-INF src/webapp/WEB-INF/classes
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 10:23:05 2008
+X-DSPAM-Confidence: 0.9928
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39717
+
+Author: stuart.freeman@et.gatech.edu
+Date: 2008-01-03 10:21:29 -0500 (Thu, 03 Jan 2008)
+New Revision: 39717
+
+Added:
+polls/branches/sakai_2-4-x/tool/src/webapp/WEB-INF/classes/
+polls/branches/sakai_2-4-x/tool/src/webapp/WEB-INF/classes/log4j.properties
+Removed:
+polls/branches/sakai_2-4-x/tool/src/webapp/WEB-INF/classes/log4j.properties
+Modified:
+polls/branches/sakai_2-4-x/tool/pom.xml
+polls/branches/sakai_2-4-x/tool/project.xml
+polls/branches/sakai_2-4-x/tool/src/bundle/org/sakaiproject/poll/bundle/Messages.properties
+polls/branches/sakai_2-4-x/tool/src/java/org/sakaiproject/poll/tool/params/PollToolBean.java
+polls/branches/sakai_2-4-x/tool/src/java/org/sakaiproject/poll/tool/validators/OptionValidator.java
+Log:
+SAK-11704 don't allow creation of polls with empty questions
+
+--(stuart@mothra:pts/2)----------------------------------------------------------------------(/home/stuart/src/sakai_2-4-x/polls)--
+--(0933:Thu,03 Jan 08:$)-- svn merge -r35792:35793 https://source.sakaiproject.org/svn/polls/trunk .
+C tool/src/java/org/sakaiproject/poll/tool/params/PollToolBean.java
+C tool/src/bundle/org/sakaiproject/poll/bundle/Messages.properties
+Skipped missing target: 'tool/src/webapp/classes'
+A tool/src/webapp/WEB-INF/classes
+A tool/src/webapp/WEB-INF/classes/log4j.properties
+--(stuart@mothra:pts/2)----------------------------------------------------------------------(/home/stuart/src/sakai_2-4-x/polls)--
+--(0934:Thu,03 Jan 08:$)-- ^merge^log
+svn log -r35792:35793 https://source.sakaiproject.org/svn/polls/trunk .
+------------------------------------------------------------------------
+r35793 | david.horwitz@uct.ac.za | 2007-09-26 05:26:53 -0400 (Wed, 26 Sep 2007) | 2 lines
+
+SAK-11704 Validate for empty question text
+SAK-10987 correct placement of option validation + supress stack trace
+------------------------------------------------------------------------
+--(stuart@mothra:pts/2)----------------------------------------------------------------------(/home/stuart/src/sakai_2-4-x/polls)--
+--(1014:Thu,03 Jan 08:$)-- svn merge -r38152:38153 https://source.sakaiproject.org/svn/polls/trunk .
+U tool/src/java/org/sakaiproject/poll/tool/validators/OptionValidator.java
+--(stuart@mothra:pts/2)----------------------------------------------------------------------(/home/stuart/src/sakai_2-4-x/polls)--
+--(1015:Thu,03 Jan 08:$)-- ^merge^log
+svn log -r38152:38153 https://source.sakaiproject.org/svn/polls/trunk .
+------------------------------------------------------------------------
+r38153 | david.horwitz@uct.ac.za | 2007-11-14 01:53:07 -0500 (Wed, 14 Nov 2007) | 1 line
+
+SAK-11704 trim value before testing for being empty
+------------------------------------------------------------------------
+--(stuart@mothra:pts/2)----------------------------------------------------------------------(/home/stuart/src/sakai_2-4-x/polls)--
+--(1016:Thu,03 Jan 08:$)-- svn merge -r39547:39548 https://source.sakaiproject.org/svn/polls/trunk .
+G tool/src/java/org/sakaiproject/poll/tool/validators/OptionValidator.java
+C tool/pom.xml
+--(stuart@mothra:pts/2)----------------------------------------------------------------------(/home/stuart/src/sakai_2-4-x/polls)--
+--(1017:Thu,03 Jan 08:$)-- ^merge^log
+svn log -r39547:39548 https://source.sakaiproject.org/svn/polls/trunk .
+------------------------------------------------------------------------
+r39548 | david.horwitz@uct.ac.za | 2007-12-20 10:00:05 -0500 (Thu, 20 Dec 2007) | 1 line
+
+SAK-11704 now check for the empty strings from fckeditor
+------------------------------------------------------------------------
+
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From zqian@umich.edu Thu Jan 3 10:22:18 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.25])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 10:22:18 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 10:22:18 -0500
+Received: from it.mr.itd.umich.edu (it.mr.itd.umich.edu [141.211.93.151])
+ by panther.mail.umich.edu () with ESMTP id m03FMHbh026139;
+ Thu, 3 Jan 2008 10:22:17 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY it.mr.itd.umich.edu ID 477CFDA4.17A4A.7348 ;
+ 3 Jan 2008 10:22:14 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id D50FEB9487;
+ Thu, 3 Jan 2008 15:19:38 +0000 (GMT)
+Message-ID: <200801031519.m03FJsfm004218@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 557
+ for ;
+ Thu, 3 Jan 2008 15:19:12 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 9640842A42
+ for ; Thu, 3 Jan 2008 15:21:02 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03FJsAY004220
+ for ; Thu, 3 Jan 2008 10:19:54 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03FJsfm004218
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 10:19:54 -0500
+Date: Thu, 3 Jan 2008 10:19:54 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: zqian@umich.edu
+Subject: [sakai] svn commit: r39716 - site-manage/trunk/site-manage-tool/tool/src/java/org/sakaiproject/site/tool
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 10:22:18 2008
+X-DSPAM-Confidence: 0.9898
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39716
+
+Author: zqian@umich.edu
+Date: 2008-01-03 10:19:53 -0500 (Thu, 03 Jan 2008)
+New Revision: 39716
+
+Modified:
+site-manage/trunk/site-manage-tool/tool/src/java/org/sakaiproject/site/tool/SiteAction.java
+Log:
+fix to SAK-12532:Better log message when no setup.request from site setup.
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From gsilver@umich.edu Thu Jan 3 10:08:15 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.97])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 10:08:15 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 10:08:15 -0500
+Received: from cujo.mr.itd.umich.edu (cujo.mr.itd.umich.edu [141.211.93.157])
+ by sleepers.mail.umich.edu () with ESMTP id m03F8FlV014814;
+ Thu, 3 Jan 2008 10:08:15 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY cujo.mr.itd.umich.edu ID 477CFA3D.3F06F.810 ;
+ 3 Jan 2008 10:07:44 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 47CA15ABD7;
+ Thu, 3 Jan 2008 15:07:40 +0000 (GMT)
+Message-ID: <200801031506.m03F6Ctn004182@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 400
+ for ;
+ Thu, 3 Jan 2008 15:07:29 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id A8B81429D3
+ for ; Thu, 3 Jan 2008 15:07:20 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03F6CJx004184
+ for ; Thu, 3 Jan 2008 10:06:12 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03F6Ctn004182
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 10:06:12 -0500
+Date: Thu, 3 Jan 2008 10:06:12 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to gsilver@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: gsilver@umich.edu
+Subject: [sakai] svn commit: r39715 - site-manage/trunk/site-manage-tool/tool/src/bundle
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 10:08:15 2008
+X-DSPAM-Confidence: 0.9855
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39715
+
+Author: gsilver@umich.edu
+Date: 2008-01-03 10:06:11 -0500 (Thu, 03 Jan 2008)
+New Revision: 39715
+
+Modified:
+site-manage/trunk/site-manage-tool/tool/src/bundle/sitebrowser.properties
+Log:
+SAK-12594
+http://jira.sakaiproject.org/jira/browse/SAK-12594
+- left moot (unused) entries commented for now
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From gsilver@umich.edu Thu Jan 3 10:06:50 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.91])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 10:06:50 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 10:06:50 -0500
+Received: from holes.mr.itd.umich.edu (holes.mr.itd.umich.edu [141.211.14.79])
+ by jacknife.mail.umich.edu () with ESMTP id m03F6nqE012415;
+ Thu, 3 Jan 2008 10:06:49 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY holes.mr.itd.umich.edu ID 477CFA02.482EF.2284 ;
+ 3 Jan 2008 10:06:45 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 5F7EEB9464;
+ Thu, 3 Jan 2008 15:06:42 +0000 (GMT)
+Message-ID: <200801031505.m03F534R004169@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 510
+ for ;
+ Thu, 3 Jan 2008 15:06:27 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 298DE42A2F
+ for ; Thu, 3 Jan 2008 15:06:11 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03F53Q1004171
+ for ; Thu, 3 Jan 2008 10:05:03 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03F534R004169
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 10:05:03 -0500
+Date: Thu, 3 Jan 2008 10:05:03 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to gsilver@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: gsilver@umich.edu
+Subject: [sakai] svn commit: r39714 - site-manage/trunk/site-manage-tool/tool/src/bundle
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 10:06:50 2008
+X-DSPAM-Confidence: 0.8484
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39714
+
+Author: gsilver@umich.edu
+Date: 2008-01-03 10:05:02 -0500 (Thu, 03 Jan 2008)
+New Revision: 39714
+
+Modified:
+site-manage/trunk/site-manage-tool/tool/src/bundle/membership.properties
+Log:
+SAK-12593
+http://jira.sakaiproject.org/jira/browse/SAK-12593
+- left moot (unused) entries commented for now
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From gsilver@umich.edu Thu Jan 3 10:05:08 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.39])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 10:05:08 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 10:05:08 -0500
+Received: from guys.mr.itd.umich.edu (guys.mr.itd.umich.edu [141.211.14.76])
+ by faithful.mail.umich.edu () with ESMTP id m03F578A007456;
+ Thu, 3 Jan 2008 10:05:07 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY guys.mr.itd.umich.edu ID 477CF99E.75B7.2438 ;
+ 3 Jan 2008 10:05:04 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 7B30FAE3A5;
+ Thu, 3 Jan 2008 15:05:07 +0000 (GMT)
+Message-ID: <200801031503.m03F3cRt004144@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 695
+ for ;
+ Thu, 3 Jan 2008 15:04:54 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id DCFD7429D3
+ for ; Thu, 3 Jan 2008 15:04:45 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03F3c1c004146
+ for ; Thu, 3 Jan 2008 10:03:38 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03F3cRt004144
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 10:03:38 -0500
+Date: Thu, 3 Jan 2008 10:03:38 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to gsilver@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: gsilver@umich.edu
+Subject: [sakai] svn commit: r39713 - site-manage/trunk/site-manage-tool/tool/src/bundle
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 10:05:08 2008
+X-DSPAM-Confidence: 0.9856
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39713
+
+Author: gsilver@umich.edu
+Date: 2008-01-03 10:03:36 -0500 (Thu, 03 Jan 2008)
+New Revision: 39713
+
+Modified:
+site-manage/trunk/site-manage-tool/tool/src/bundle/sitesetupgeneric.properties
+Log:
+SAK-12523
+http://jira.sakaiproject.org/jira/browse/SAK-12523
+- left moot (unused) entries commented for now
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From zqian@umich.edu Thu Jan 3 10:02:34 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.96])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 10:02:34 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 10:02:34 -0500
+Received: from firestarter.mr.itd.umich.edu (firestarter.mr.itd.umich.edu [141.211.14.83])
+ by awakenings.mail.umich.edu () with ESMTP id m03F2Xgc020626;
+ Thu, 3 Jan 2008 10:02:33 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY firestarter.mr.itd.umich.edu ID 477CF903.80B22.2743 ;
+ 3 Jan 2008 10:02:30 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 9A203B9475;
+ Thu, 3 Jan 2008 15:02:32 +0000 (GMT)
+Message-ID: <200801031501.m03F11ZP004123@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 726
+ for ;
+ Thu, 3 Jan 2008 15:02:18 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 2F730429D3
+ for ; Thu, 3 Jan 2008 15:02:09 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03F117c004126
+ for ; Thu, 3 Jan 2008 10:01:01 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03F11ZP004123
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 10:01:01 -0500
+Date: Thu, 3 Jan 2008 10:01:01 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to zqian@umich.edu using -f
+To: source@collab.sakaiproject.org
+From: zqian@umich.edu
+Subject: [sakai] svn commit: r39712 - in authz/trunk/authz-tool: . tool tool/src/bundle tool/src/java/org/sakaiproject/authz/tool
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 10:02:34 2008
+X-DSPAM-Confidence: 0.9892
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39712
+
+Author: zqian@umich.edu
+Date: 2008-01-03 10:00:58 -0500 (Thu, 03 Jan 2008)
+New Revision: 39712
+
+Modified:
+authz/trunk/authz-tool/.classpath
+authz/trunk/authz-tool/tool/pom.xml
+authz/trunk/authz-tool/tool/src/bundle/authz-tool.properties
+authz/trunk/authz-tool/tool/src/java/org/sakaiproject/authz/tool/RealmsAction.java
+Log:
+fix to SAK-9996:Cannot save realm and no warning to user if invalid provider id is entered: now show the alert message in UI and prevent from saving when the entered provider id is not valid.
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From wagnermr@iupui.edu Thu Jan 3 09:31:30 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.36])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 09:31:30 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 09:31:30 -0500
+Received: from cujo.mr.itd.umich.edu (cujo.mr.itd.umich.edu [141.211.93.157])
+ by godsend.mail.umich.edu () with ESMTP id m03EVTiv001667;
+ Thu, 3 Jan 2008 09:31:29 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY cujo.mr.itd.umich.edu ID 477CF1BA.DF8C2.8558 ;
+ 3 Jan 2008 09:31:25 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 590D86144A;
+ Thu, 3 Jan 2008 14:31:21 +0000 (GMT)
+Message-ID: <200801031429.m03ETqAT004022@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 847
+ for ;
+ Thu, 3 Jan 2008 14:31:08 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 033EA3FAD8
+ for ; Thu, 3 Jan 2008 14:30:59 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03ETqm6004024
+ for ; Thu, 3 Jan 2008 09:29:52 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03ETqAT004022
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 09:29:52 -0500
+Date: Thu, 3 Jan 2008 09:29:52 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to wagnermr@iupui.edu using -f
+To: source@collab.sakaiproject.org
+From: wagnermr@iupui.edu
+Subject: [sakai] svn commit: r39711 - in gradebook/trunk/service: api/src/java/org/sakaiproject/service/gradebook/shared impl/src/java/org/sakaiproject/component/gradebook
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 09:31:30 2008
+X-DSPAM-Confidence: 0.8484
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39711
+
+Author: wagnermr@iupui.edu
+Date: 2008-01-03 09:29:50 -0500 (Thu, 03 Jan 2008)
+New Revision: 39711
+
+Modified:
+gradebook/trunk/service/api/src/java/org/sakaiproject/service/gradebook/shared/GradebookService.java
+gradebook/trunk/service/impl/src/java/org/sakaiproject/component/gradebook/GradebookServiceHibernateImpl.java
+Log:
+SAK-12175
+http://bugs.sakaiproject.org/jira/browse/SAK-12175
+Create methods required for gb integration with the Assignment2 tool
+remove previously added getAllGradebookItems because unnecessary
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From stuart.freeman@et.gatech.edu Thu Jan 3 09:25:07 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.93])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 09:25:07 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 09:25:07 -0500
+Received: from shining.mr.itd.umich.edu (shining.mr.itd.umich.edu [141.211.93.153])
+ by mission.mail.umich.edu () with ESMTP id m03EP72M031643;
+ Thu, 3 Jan 2008 09:25:07 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY shining.mr.itd.umich.edu ID 477CF03C.1B18C.30257 ;
+ 3 Jan 2008 09:25:03 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 361DD6AA2F;
+ Thu, 3 Jan 2008 14:25:05 +0000 (GMT)
+Message-ID: <200801031423.m03ENc58004008@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 701
+ for ;
+ Thu, 3 Jan 2008 14:24:54 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id CC2C03FAD8
+ for ; Thu, 3 Jan 2008 14:24:45 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03ENcqf004010
+ for ; Thu, 3 Jan 2008 09:23:38 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03ENc58004008
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 09:23:38 -0500
+Date: Thu, 3 Jan 2008 09:23:38 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to stuart.freeman@et.gatech.edu using -f
+To: source@collab.sakaiproject.org
+From: stuart.freeman@et.gatech.edu
+Subject: [sakai] svn commit: r39710 - reference/branches/sakai_2-4-x/docs/conversion
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 09:25:07 2008
+X-DSPAM-Confidence: 0.8518
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39710
+
+Author: stuart.freeman@et.gatech.edu
+Date: 2008-01-03 09:23:36 -0500 (Thu, 03 Jan 2008)
+New Revision: 39710
+
+Added:
+reference/branches/sakai_2-4-x/docs/conversion/sakai_2_4_0-2_4_x_mysql_conversion_005.sql
+reference/branches/sakai_2-4-x/docs/conversion/sakai_2_4_0-2_4_x_oracle_conversion_005.sql
+Log:
+SAK-12429 gradebook performance issue
+
+--(0920:Thu,03 Jan 08:$)-- vi sakai_2_4_0-2_4_x_mysql_conversion_005.sql
+--(stuart@mothra:pts/2)--------------------------------------------------(/home/stuart/src/sakai_2-4-x/reference/docs/conversion)--
+--(0921:Thu,03 Jan 08:$)-- vi sakai_2_4_0-2_4_x_oracle_conversion_005.sql
+--(stuart@mothra:pts/2)--------------------------------------------------(/home/stuart/src/sakai_2-4-x/reference/docs/conversion)--
+--(0922:Thu,03 Jan 08:$)-- svn add !$
+svn add sakai_2_4_0-2_4_x_oracle_conversion_005.sql
+A sakai_2_4_0-2_4_x_oracle_conversion_005.sql
+--(stuart@mothra:pts/2)--------------------------------------------------(/home/stuart/src/sakai_2-4-x/reference/docs/conversion)--
+--(0923:Thu,03 Jan 08:$)-- ^oracle^mysql
+svn add sakai_2_4_0-2_4_x_mysql_conversion_005.sql
+A sakai_2_4_0-2_4_x_mysql_conversion_005.sql
+--(stuart@mothra:pts/2)--------------------------------------------------(/home/stuart/src/sakai_2-4-x/reference/docs/conversion)--
+--(0923:Thu,03 Jan 08:$)-- svn log -r39153 https://source.sakaiproject.org/svn/reference/trunk
+------------------------------------------------------------------------
+r39153 | cwen@iupui.edu | 2007-12-12 15:45:36 -0500 (Wed, 12 Dec 2007) | 1 line
+
+SAK-12429 => add index for gradebook.
+------------------------------------------------------------------------
+
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From tnguyen@iupui.edu Thu Jan 3 09:22:37 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.91])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 09:22:37 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 09:22:37 -0500
+Received: from ghostbusters.mr.itd.umich.edu (ghostbusters.mr.itd.umich.edu [141.211.93.144])
+ by jacknife.mail.umich.edu () with ESMTP id m03EMbM0021928;
+ Thu, 3 Jan 2008 09:22:37 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY ghostbusters.mr.itd.umich.edu ID 477CEFA7.4BD76.20123 ;
+ 3 Jan 2008 09:22:34 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 34DBBB93FC;
+ Thu, 3 Jan 2008 14:22:34 +0000 (GMT)
+Message-ID: <200801031420.m03EKxOB003996@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 137
+ for ;
+ Thu, 3 Jan 2008 14:22:15 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 35CFB3875D
+ for ; Thu, 3 Jan 2008 14:22:07 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03EKxoR003998
+ for ; Thu, 3 Jan 2008 09:20:59 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03EKxOB003996
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 09:20:59 -0500
+Date: Thu, 3 Jan 2008 09:20:59 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to tnguyen@iupui.edu using -f
+To: source@collab.sakaiproject.org
+From: tnguyen@iupui.edu
+Subject: [sakai] svn commit: r39709 - oncourse/trunk/src/siterequest/src/java/edu/iu/oncourse/siterequest
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 09:22:37 2008
+X-DSPAM-Confidence: 0.8483
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39709
+
+Author: tnguyen@iupui.edu
+Date: 2008-01-03 09:20:58 -0500 (Thu, 03 Jan 2008)
+New Revision: 39709
+
+Modified:
+oncourse/trunk/src/siterequest/src/java/edu/iu/oncourse/siterequest/SiteRequestManager.java
+Log:
+ONC-244 - Site Request Form / Add department CTL to the department list dropdown.
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From stuart.freeman@et.gatech.edu Thu Jan 3 09:15:57 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.25])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 09:15:57 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 09:15:57 -0500
+Received: from creepshow.mr.itd.umich.edu (creepshow.mr.itd.umich.edu [141.211.14.84])
+ by panther.mail.umich.edu () with ESMTP id m03EFv2W020903;
+ Thu, 3 Jan 2008 09:15:57 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY creepshow.mr.itd.umich.edu ID 477CEE17.CE69E.15998 ;
+ 3 Jan 2008 09:15:54 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 87E27B93DC;
+ Thu, 3 Jan 2008 14:15:50 +0000 (GMT)
+Message-ID: <200801031414.m03EEOKY003968@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 292
+ for ;
+ Thu, 3 Jan 2008 14:15:33 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 97A6242A16
+ for ; Thu, 3 Jan 2008 14:15:32 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03EEO8f003970
+ for ; Thu, 3 Jan 2008 09:14:24 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03EEOKY003968
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 09:14:24 -0500
+Date: Thu, 3 Jan 2008 09:14:24 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to stuart.freeman@et.gatech.edu using -f
+To: source@collab.sakaiproject.org
+From: stuart.freeman@et.gatech.edu
+Subject: [sakai] svn commit: r39708 - in gradebook/branches/sakai_2-4-x: app/business/src/sql/mysql app/business/src/sql/oracle service/hibernate/src/hibernate/org/sakaiproject/tool/gradebook
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 09:15:57 2008
+X-DSPAM-Confidence: 0.8524
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39708
+
+Author: stuart.freeman@et.gatech.edu
+Date: 2008-01-03 09:14:20 -0500 (Thu, 03 Jan 2008)
+New Revision: 39708
+
+Added:
+gradebook/branches/sakai_2-4-x/app/business/src/sql/mysql/SAK-12429.sql
+gradebook/branches/sakai_2-4-x/app/business/src/sql/oracle/SAK-12429.sql
+Modified:
+gradebook/branches/sakai_2-4-x/service/hibernate/src/hibernate/org/sakaiproject/tool/gradebook/GradingEvent.hbm.xml
+Log:
+SAK-12429 gradebook performance issue
+
+--(stuart@mothra:pts/2)------------------------------------------------------------------(/home/stuart/src/sakai_2-4-x/gradebook)--
+--(0859:Thu,03 Jan 08:$)-- svn merge -r 39136:39137 https://source.sakaiproject.org/svn/gradebook/trunk .
+A app/business/src/sql/mysql/SAK-12429.sql
+A app/business/src/sql/oracle/SAK-12429.sql
+--(stuart@mothra:pts/2)------------------------------------------------------------------(/home/stuart/src/sakai_2-4-x/gradebook)--
+--(0859:Thu,03 Jan 08:$)-- ^merge^log
+svn log -r 39136:39137 https://source.sakaiproject.org/svn/gradebook/trunk .
+------------------------------------------------------------------------
+r39137 | cwen@iupui.edu | 2007-12-12 10:05:59 -0500 (Wed, 12 Dec 2007) | 1 line
+
+SAK-12429 => add index for improving performance.
+------------------------------------------------------------------------
+--(stuart@mothra:pts/2)------------------------------------------------------------------(/home/stuart/src/sakai_2-4-x/gradebook)--
+--(0859:Thu,03 Jan 08:$)-- svn merge -r 39138:39139 https://source.sakaiproject.org/svn/gradebook/trunk .
+U service/hibernate/src/hibernate/org/sakaiproject/tool/gradebook/GradingEvent.hbm.xml
+--(stuart@mothra:pts/2)------------------------------------------------------------------(/home/stuart/src/sakai_2-4-x/gradebook)--
+--(0900:Thu,03 Jan 08:$)-- ^merge^log
+svn log -r 39138:39139 https://source.sakaiproject.org/svn/gradebook/trunk .
+------------------------------------------------------------------------
+r39138 | wagnermr@iupui.edu | 2007-12-12 10:10:30 -0500 (Wed, 12 Dec 2007) | 3 lines
+
+SAK-12432
+http://bugs.sakaiproject.org/jira/browse/SAK-12432
+Circular dependency between GradebookService and facade Authz
+------------------------------------------------------------------------
+r39139 | cwen@iupui.edu | 2007-12-12 10:41:58 -0500 (Wed, 12 Dec 2007) | 2 lines
+
+SAK-12429 =>
+add index to hibernate mapping.
+------------------------------------------------------------------------
+
+
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From wagnermr@iupui.edu Thu Jan 3 09:13:52 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.93])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 09:13:52 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 09:13:52 -0500
+Received: from dave.mr.itd.umich.edu (dave.mr.itd.umich.edu [141.211.14.70])
+ by mission.mail.umich.edu () with ESMTP id m03EDpvG027055;
+ Thu, 3 Jan 2008 09:13:51 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY dave.mr.itd.umich.edu ID 477CED96.34B62.9184 ;
+ 3 Jan 2008 09:13:45 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id B6E20B93C0;
+ Thu, 3 Jan 2008 14:13:43 +0000 (GMT)
+Message-ID: <200801031412.m03ECEFD003956@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 679
+ for ;
+ Thu, 3 Jan 2008 14:13:20 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 3D4E142A14
+ for ; Thu, 3 Jan 2008 14:13:22 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (localhost [127.0.0.1])
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11) with ESMTP id m03ECEs6003958
+ for ; Thu, 3 Jan 2008 09:12:14 -0500
+Received: (from apache@localhost)
+ by nakamura.uits.iupui.edu (8.12.11.20060308/8.12.11/Submit) id m03ECEFD003956
+ for source@collab.sakaiproject.org; Thu, 3 Jan 2008 09:12:14 -0500
+Date: Thu, 3 Jan 2008 09:12:14 -0500
+X-Authentication-Warning: nakamura.uits.iupui.edu: apache set sender to wagnermr@iupui.edu using -f
+To: source@collab.sakaiproject.org
+From: wagnermr@iupui.edu
+Subject: [sakai] svn commit: r39707 - msgcntr/trunk/messageforums-app/src/java/org/sakaiproject/tool/messageforums
+X-Content-Type-Outer-Envelope: text/plain; charset=UTF-8
+X-Content-Type-Message-Body: text/plain; charset=UTF-8
+Content-Type: text/plain; charset=UTF-8
+X-DSPAM-Result: Innocent
+X-DSPAM-Processed: Thu Jan 3 09:13:52 2008
+X-DSPAM-Confidence: 0.9879
+X-DSPAM-Probability: 0.0000
+
+Details: http://source.sakaiproject.org/viewsvn/?view=rev&rev=39707
+
+Author: wagnermr@iupui.edu
+Date: 2008-01-03 09:12:13 -0500 (Thu, 03 Jan 2008)
+New Revision: 39707
+
+Modified:
+msgcntr/trunk/messageforums-app/src/java/org/sakaiproject/tool/messageforums/DiscussionForumTool.java
+Log:
+SAK-10606
+http://jira.sakaiproject.org/jira/browse/SAK-10606
+GB authorization error in logs when student accesses Forums
+Backing out logic changes in forums to resolve separately
+
+----------------------
+This automatic notification message was sent by Sakai Collab (https://collab.sakaiproject.org/portal) from the Source site.
+You can modify how you receive notifications at My Workspace > Preferences.
+
+
+
+From gopal.ramasammycook@gmail.com Thu Jan 3 08:44:20 2008
+Return-Path:
+Received: from murder (mail.umich.edu [141.211.14.92])
+ by frankenstein.mail.umich.edu (Cyrus v2.3.8) with LMTPA;
+ Thu, 03 Jan 2008 08:44:20 -0500
+X-Sieve: CMU Sieve 2.3
+Received: from murder ([unix socket])
+ by mail.umich.edu (Cyrus v2.2.12) with LMTPA;
+ Thu, 03 Jan 2008 08:44:20 -0500
+Received: from tadpole.mr.itd.umich.edu (tadpole.mr.itd.umich.edu [141.211.14.72])
+ by score.mail.umich.edu () with ESMTP id m03DiJZw029706;
+ Thu, 3 Jan 2008 08:44:19 -0500
+Received: FROM paploo.uhi.ac.uk (app1.prod.collab.uhi.ac.uk [194.35.219.184])
+ BY tadpole.mr.itd.umich.edu ID 477CE6AD.1ED85.19312 ;
+ 3 Jan 2008 08:44:16 -0500
+Received: from paploo.uhi.ac.uk (localhost [127.0.0.1])
+ by paploo.uhi.ac.uk (Postfix) with ESMTP id 59A62B937F;
+ Thu, 3 Jan 2008 13:41:28 +0000 (GMT)
+Message-ID: <200801031342.m03DgeVK003283@nakamura.uits.iupui.edu>
+Mime-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Received: from prod.collab.uhi.ac.uk ([194.35.219.182])
+ by paploo.uhi.ac.uk (JAMES SMTP Server 2.1.3) with SMTP ID 829
+ for ;
+ Thu, 3 Jan 2008 13:41:06 +0000 (GMT)
+Received: from nakamura.uits.iupui.edu (nakamura.uits.iupui.edu [134.68.220.122])
+ by shmi.uhi.ac.uk (Postfix) with ESMTP id 2C9FA42A02
+ for