text: Python Programming: An Introduction to Computer Science Chapter 13 Algorithm Design and Recursion Python Programming, 1/e 1 Objectives To understand the basic techniques for analyzing the efficiency of algorithms. To know what searching is and understand the algorithms for linear and binary search. To understand the basic principles of recursive definitions and functions and be able to write simple recursive functions. Python Programming, 1/e 2 Objectives To understand sorting in depth and know the algorithms for selection sort and merge sort. To appreciate how the analysis of algorithms can demonstrate that some problems are intractable and others are unsolvable. Python Programming, 1/e 3 Searching Searching is the process of looking for a particular value in a collection. For example, a program that maintains a membership list for a club might need to look up information for a particular member – this involves some sort of search process. Python Programming, 1/e 4 A simple Searching Problem Here is the specification of a simple searching function: def search(x, nums): # nums is a list of numbers and x is a number # Returns the position in the list where x occurs # or -1 if x is not in the list. Here are some sample interactions: >>> search(4, [3, 1, 4, 2, 5]) 2 >>> search(7, [3, 1, 4, 2, 5]) -1 Python Programming, 1/e 5 A Simple Searching Problem In the first example, the function returns the index where 4 appears in the list. In the second example, the return value -1 indicates that 7 is not in the list. Python includes a number of built-in search-related methods! Python Programming, 1/e 6 A Simple Searching Problem We can test to see if a value appears in a sequence using in. if x in nums: # do something If we want to know the position of x in a list, the index method can be used. >>> nums = [3, 1, 4, 2, 5] >>> nums.index(4) 2 Python Programming, 1/e 7 A Simple Searching Problem The only difference between our search function and index is that index raises an exception if the target value does not appear in the list. We could implement search using index by simply catching the exception and returning -1 for that case. Python Programming, 1/e 8 A Simple Searching Problem def search(x, nums): try: return nums.index(x) except: return -1 Sure, this will work, but we are really interested in the algorithm used to actually search the list in Python! Python Programming, 1/e 9 Strategy 1: Linear Search Pretend you're the computer, and you were given a page full of randomly ordered numbers and were asked whether 13 was in the list. How would you do it? Would you start at the top of the list, scanning downward, comparing each number to 13? If you saw it, you could tell me it was in the list. If you had scanned the whole list and not seen it, you could tell me it wasn't there. Python Programming, 1/e 10 Strategy 1: Linear Search This strategy is called a linear search, where you search through the list of items one by one until the target value is found. def search(x, nums): for i in range(len(nums)): if nums[i] == x: # item found, return the index value return i return -1 # loop finished, item was not in list This algorithm wasn't hard to develop, and works well for modest-sized lists. Python Programming, 1/e 11 Strategy 1: Linear Search The Python in and index operations both implement linear searching algorithms. If the collection of data is very large, it makes sense to organize the data somehow so that each data value doesn't need to be examined. Python Programming, 1/e 12 Strategy 1: Linear Search If the data is sorted in ascending order (lowest to highest), we can skip checking some of the data. As soon as a value is encountered that is greater than the target value, the linear search can be stopped without looking at the rest of the data. On average, this will save us about half the work. Python Programming, 1/e 13 Strategy 2: Binary Search If the data is sorted, there is an even better searching strategy – one you probably already know! Have you ever played the number guessing game, where I pick a number between 1 and 100 and you try to guess it? Each time you guess, I'll tell you whether your guess is correct, too high, or too low. What strategy do you use? Python Programming, 1/e 14 Strategy 2: Binary Search Young children might simply guess numbers at random. Older children may be more systematic, using a linear search of 1, 2, 3, 4, … until the value is found. Most adults will first guess 50. If told the value is higher, it is in the range 51100. The next logical guess is 75. Python Programming, 1/e 15 Strategy 2: Binary Search Each time we guess the middle of the remaining numbers to try to narrow down the range. This strategy is called binary search. Binary means two, and at each step we are diving the remaining group of numbers into two parts. Python Programming, 1/e 16 Strategy 2: Binary Search We can use the same approach in our binary search algorithm! We can use two variables to keep track of the endpoints of the range in the sorted list where the number could be. Since the target could be anywhere in the list, initially low is set to the first location in the list, and high is set to the last. Python Programming, 1/e 17 Strategy 2: Binary Search The heart of the algorithm is a loop that looks at the middle element of the range, comparing it to the value x. If x is smaller than the middle item, high is moved so that the search is confined to the lower half. If x is larger than the middle item, low is moved to narrow the search to the upper half. Python Programming, 1/e 18 Strategy 2: Binary Search The loop terminates when either x is found There are no more places to look (low > high) Python Programming, 1/e 19 Strategy 2: Binary Search def search(x, nums): low = 0 high = len(nums) - 1 while low <= high: mid = (low + high)/2 item = nums[mid] if x == item: return mid elif x < item: high = mid - 1 else: low = mid + 1 return -1 # There is still a range to search # Position of middle item # Found it! Return the index # # # # # # x is in lower half of range move top marker down x is in upper half of range move bottom marker up No range left to search, x is not there Python Programming, 1/e 20 Comparing Algorithms Which search algorithm is better, linear or binary? The linear search is easier to understand and implement The binary search is more efficient since it doesn't need to look at each element in the list Intuitively, we might expect the linear search to work better for small lists, and binary search for longer lists. But how can we be sure? Python Programming, 1/e 21 Comparing Algorithms One way to conduct the test would be to code up the algorithms and try them on varying sized lists, noting the runtime. Linear search is generally faster for lists of length 10 or less There was little difference for lists of 10-1000 Binary search is best for 1000+ (for one million list elements, binary search averaged .0003 seconds while linear search averaged 2.5 second) Python Programming, 1/e 22 Comparing Algorithms While interesting, can we guarantee that these empirical results are not dependent on the type of computer they were conducted on, the amount of memory in the computer, the speed of the computer, etc.? We could abstractly reason about the algorithms to determine how efficient they are. We can assume that the algorithm with the fewest number of "steps" is more efficient. Python Programming, 1/e 23 Comparing Algorithms How do we count the number of "steps"? Computer scientists attack these problems by analyzing the number of steps that an algorithm will take relative to the size or difficulty of the specific problem instance being solved. Python Programming, 1/e 24 Comparing Algorithms For searching, the difficulty is determined by the size of the collection – it takes more steps to find a number in a collection of a million numbers than it does in a collection of 10 numbers. How many steps are needed to find a value in a list of size n? In particular, what happens as n gets very large? Python Programming, 1/e 25 Comparing Algorithms Let's consider linear search. For a list of 10 items, the most work we might have to do is to look at each item in turn – looping at most 10 times. For a list twice as large, we would loop at most 20 times. For a list three times as large, we would loop at most 30 times! The amount of time required is linearly related to the size of the list, n. This is what computer scientists call a linear time algorithm. Python Programming, 1/e 26 Comparing Algorithms Now, let's consider binary search. Suppose the list has 16 items. Each time through the loop, half the items are removed. After one loop, 8 items remain. After two loops, 4 items remain. After three loops, 2 items remain After four loops, 1 item remains. If a binary search loops i times, it can find a single value in a list of size 2i. Python Programming, 1/e 27 Comparing Algorithms To determine how many items are examined in a list of size n, we need to i n 2 solve for i, or i log 2 n . Binary search is an example of a log time algorithm – the amount of time it takes to solve one of these problems grows as the log of the problem size. Python Programming, 1/e 28 Comparing Algorithms This logarithmic property can be very powerful! Suppose you have the New York City phone book with 12 million names. You could walk up to a New Yorker and, assuming they are listed in the phone book, make them this proposition: "I'm going to try guessing your name. Each time I guess a name, you tell me if your name comes alphabetically before or after the name I guess." How many guesses will you need? Python Programming, 1/e 29 Comparing Algorithms Our analysis shows us the answer to this question is log 2 12000000 . We can guess the name of the New Yorker in 24 guesses! By comparison, using the linear search we would need to make, on average, 6,000,000 guesses! Python Programming, 1/e 30 Comparing Algorithms Earlier, we mentioned that Python uses linear search in its built-in searching methods. We doesn't it use binary search? Binary search requires the data to be sorted If the data is unsorted, it must be sorted first! Python Programming, 1/e 31 Recursive Problem-Solving The basic idea between the binary search algorithm was to successfully divide the problem in half. This technique is known as a divide and conquer approach. Divide and conquer divides the original problem into subproblems that are smaller versions of the original problem. Python Programming, 1/e 32 Recursive Problem-Solving In the binary search, the initial range is the entire list. We look at the middle element… if it is the target, we're done. Otherwise, we continue by performing a binary search on either the top half or bottom half of the list. Python Programming, 1/e 33 Recursive Problem-Solving Algorithm: binarySearch – search for x in nums[low]…nums[high] mid = (low + high) /2 if low > high x is not in nums elsif x < nums[mid] perform binary search for x in nums[low]…nums[mid-1] else perform binary search for x in nums[mid+1]…nums[high] This version has no loop, and seems to refer to itself! What's going on?? Python Programming, 1/e 34 Recursive Definitions A description of something that refers to itself is called a recursive definition. In the last example, the binary search algorithm uses its own description – a "call" to binary search "recurs" inside of the definition – hence the label "recursive definition." Python Programming, 1/e 35 Recursive Definitions Have you had a teacher tell you that you can't use a word in its own definition? This is a circular definition. In mathematics, recursion is frequently used. The most common example is the factorial: n ! n ( n 1)( n 2)...(1) For example, 5! = 5(4)(3)(2)(1), or 5! = 5(4!) Python Programming, 1/e 36 Recursive Definitions In other words, n ! n ( n 1)! 1 if n 0 Or n ! n ( n 1)! otherw ise This definition says that 0! is 1, while the factorial of any other number is that number times the factorial of one less than that number. Python Programming, 1/e 37 Recursive Definitions Our definition is recursive, but definitely not circular. Consider 4! 4! = 4(4-1)! = 4(3!) What is 3!? We apply the definition again 4! = 4(3!) = 4[3(3-1)!] = 4(3)(2!) And so on… 4! = 4(3!) = 4(3)(2!) = 4(3)(2)(1!) = 4(3)(2)(1)(0!) = 4(3)(2)(1)(1) = 24 Python Programming, 1/e 38 Recursive Definitions Factorial is not circular because we eventually get to 0!, whose definition does not rely on the definition of factorial and is just 1. This is called a base case for the recursion. When the base case is encountered, we get a closed expression that can be directly computed. Python Programming, 1/e 39 Recursive Definitions All good recursive definitions have these two key characteristics: There are one or more base cases for which no recursion is applied. All chains of recursion eventually end up at one of the base cases. The simplest way for these two conditions to occur is for each recursion to act on a smaller version of the original problem. A very small version of the original problem that can be solved without recursion becomes the base case. Python Programming, 1/e 40 Recursive Functions We've seen previously that factorial can be calculated using a loop accumulator. If factorial is written as a separate function: def fact(n): if n == 0: return 1 else: return n * fact(n-1) Python Programming, 1/e 41 Recursive Functions We've written a function that calls itself, a recursive function. The function first checks to see if we're at the base case (n==0). If so, return 1. Otherwise, return the result of multiplying n by the factorial of n-1, fact(n-1). Python Programming, 1/e 42 Recursive Functions >>> fact(4) 24 >>> fact(10) 3628800 >>> fact(100) 93326215443944152681699238856266700490715968264381621468592963 89521759999322991560894146397615651828625369792082722375825 1185210916864000000000000000000000000L >>> Remember that each call to a function starts that function anew, with its own copies of local variables and parameters. Python Programming, 1/e 43 Recursive Functions Python Programming, 1/e 44 Example: String Reversal Python lists have a built-in method that can be used to reverse the list. What if you wanted to reverse a string? If you wanted to program this yourself, one way to do it would be to convert the string into a list of characters, reverse the list, and then convert it back into a string. Python Programming, 1/e 45 Example: String Reversal Using recursion, we can calculate the reverse of a string without the intermediate list step. Think of a string as a recursive object: Divide it up into a first character and "all the rest" Reverse the "rest" and append the first character to the end of it Python Programming, 1/e 46 Example: String Reversal def reverse(s): return reverse(s[1:]) + s[0] The slice s[1:] returns all but the first character of the string. We reverse this slice and then concatenate the first character (s[0]) onto the end. Python Programming, 1/e 47 Example: String Reversal >>> reverse("Hello") Traceback (most recent call last): File "<pyshell#6>", line 1, in -toplevelreverse("Hello") File "C:/Program Files/Python 2.3.3/z.py", line 8, in reverse return reverse(s[1:]) + s[0] File "C:/Program Files/Python 2.3.3/z.py", line 8, in reverse return reverse(s[1:]) + s[0] … File "C:/Program Files/Python 2.3.3/z.py", line 8, in reverse return reverse(s[1:]) + s[0] RuntimeError: maximum recursion depth exceeded What happened? There were 1000 lines of errors! Python Programming, 1/e 48 Example: String Reversal Remember: To build a correct recursive function, we need a base case that doesn't use recursion. We forgot to include a base case, so our program is an infinite recursion. Each call to reverse contains another call to reverse, so none of them return. Python Programming, 1/e 49 Example: String Reversal Each time a function is called it takes some memory. Python stops it at 1000 calls, the default "maximum recursion depth." What should we use for our base case? Following our algorithm, we know we will eventually try to reverse the empty string. Since the empty string is its own reverse, we can use it as the base case. Python Programming, 1/e 50 Example: String Reversal def reverse(s): if s == "": return s else: return reverse(s[1:]) + s[0] >>> reverse("Hello") 'olleH' Python Programming, 1/e 51 Example: Anagrams An anagram is formed by rearranging the letters of a word. Anagram formation is a special case of generating all permutations (rearrangements) of a sequence, a problem that is seen frequently in mathematics and computer science. Python Programming, 1/e 52 Example: Anagrams Let's apply the same approach from the previous example. Slice the first character off the string. Place the first character in all possible locations within the anagrams formed from the "rest" of the original string. Python Programming, 1/e 53 Example: Anagrams Suppose the original string is "abc". Stripping off the "a" leaves us with "bc". Generating all anagrams of "bc" gives us "bc" and "cb". To form the anagram of the original string, we place "a" in all possible locations within these two smaller anagrams: ["abc", "bac", "bca", "acb", "cab", "cba"] Python Programming, 1/e 54 Example: Anagrams As in the previous example, we can use the empty string as our base case. def anagrams(s): if s == "": return [s] else: ans = [] for w in anagrams(s[1:]): for pos in range(len(w)+1): ans.append(w[:pos]+s[0]+w[pos:]) return ans Python Programming, 1/e 55 Example: Anagrams A list is used to accumulate results. The outer for loop iterates through each anagram of the tail of s. The inner loop goes through each position in the anagram and creates a new string with the original first character inserted into that position. The inner loop goes up to len(w)+1 so the new character can be added at the end of the anagram. Python Programming, 1/e 56 Example: Anagrams w[:pos]+s[0]+w[pos:] w[:pos] gives the part of w up to, but not including, pos. w[pos:] gives everything from pos to the end. Inserting s[0] between them effectively inserts it into w at pos. Python Programming, 1/e 57 Example: Anagrams The number of anagrams of a word is the factorial of the length of the word. >>> anagrams("abc") ['abc', 'bac', 'bca', 'acb', 'cab', 'cba'] Python Programming, 1/e 58 Example: Fast Exponentiation One way to compute an for an integer n is to multiply a by itself n times. This can be done with a simple accumulator loop: def loopPower(a, n): ans = 1 for i in range(n): ans = ans * a return ans Python Programming, 1/e 59 Example: Fast Exponentiation We can also solve this problem using divide and conquer. Using the laws of exponents, we know that 28 = 24(24). If we know 24, we can calculate 28 using one multiplication. What's 24? 24 = 22(22), and 22 = 2(2). 2(2) = 4, 4(4) = 16, 16(16) = 256 = 28 We've calculated 28 using only three multiplications! Python Programming, 1/e 60 Example: Fast Exponentiation We can take advantage of the fact that an = an/2(an/2) This algorithm only works when n is even. How can we extend it to work when n is odd? 29 = 24(24)(21) n/2 n/2 a ( a ) if n is even n a n/2 n/2 a ( a )( a ) if n is odd Python Programming, 1/e 61 Example: Fast Exponentiation This method relies on integer division (if n is 9, then n/2 = 4). To express this algorithm recursively, we need a suitable base case. If we keep using smaller and smaller values for n, n will eventually be equal to 0 (1/2 = 0 in integer division), and a0 = 1 for any value except a = 0. Python Programming, 1/e 62 Example: Fast Exponentiation def recPower(a, n): # raises a to the int power n if n == 0: return 1 else: factor = recPower(a, n/2) if n%2 == 0: # n is even return factor * factor else: # n is odd return factor * factor * a Here, a temporary variable called factor is introduced so that we don't need to calculate an/2 more than once, simply for efficiency. Python Programming, 1/e 63 Example: Binary Search Now that you've seen some recursion examples, you're ready to look at doing binary searches recursively. Remember: we look at the middle value first, then we either search the lower half or upper half of the array. The base cases are when we can stop searching,namely, when the target is found or when we've run out of places to look. Python Programming, 1/e 64 Example: Binary Search The recursive calls will cut the search in half each time by specifying the range of locations that are "still in play", i.e. have not been searched and may contain the target value. Each invocation of the search routine will search the list between the given low and high parameters. Python Programming, 1/e 65 Example: Binary Search def recBinSearch(x, nums, low, if low > high: # return -1 mid = (low + high)/2 item = nums[mid] if item == x: return mid elif x < item: # return recBinSearch(x, else: # return recBinSearch(x, high): No place left to look, return -1 Look in lower half nums, low, mid-1) Look in upper half nums, mid+1, high) We can then call the binary search with a generic search wrapping function: def search(x, nums): return recBinSearch(x, nums, 0, len(nums)-1) Python Programming, 1/e 66 Recursion vs. Iteration There are similarities between iteration (looping) and recursion. In fact, anything that can be done with a loop can be done with a simple recursive function! Some programming languages use recursion exclusively. Some problems that are simple to solve with recursion are quite difficult to solve with loops. Python Programming, 1/e 67 Recursion vs. Iteration In the factorial and binary search problems, the looping and recursive solutions use roughly the same algorithms, and their efficiency is nearly the same. In the exponentiation problem, two different algorithms are used. The looping version takes linear time to complete, while the recursive version executes in log time. The difference between them is like the difference between a linear and binary search. Python Programming, 1/e 68 Recursion vs. Iteration So… will recursive solutions always be as efficient or more efficient than their iterative counterpart? The Fibonacci sequence is the sequence of numbers 1,1,2,3,5,8,… The sequence starts with two 1's Successive numbers are calculated by finding the sum of the previous two Python Programming, 1/e 69 Recursion vs. Iteration Loop version: Let's use two variables, curr and prev, to calculate the next number in the sequence. Once this is done, we set prev equal to curr, and set curr equal to the justcalculated number. All we need to do is to put this into a loop to execute the right number of times! Python Programming, 1/e 70 Recursion vs. Iteration def loopfib(n): # returns the nth Fibonacci number curr = 1 prev = 1 for i in range(n-2): curr, prev = curr+prev, curr return curr Note the use of simultaneous assignment to calculate the new values of curr and prev. The loop executes only n-2 since the first two values have already been "determined". Python Programming, 1/e 71 Recursion vs. Iteration The Fibonacci sequence also has a recursive definition: if n 3 1 fib ( n ) fib ( n 1) fib ( n 2) otherw ise This recursive definition can be directly turned into a recursive function! def fib(n): if n < 3: return 1 else: return fib(n-1)+fib(n-2) Python Programming, 1/e 72 Recursion vs. Iteration This function obeys the rules that we've set out. The recursion is always based on smaller values. There is a non-recursive base case. So, this function will work great, won't it? – Sort of… Python Programming, 1/e 73 Recursion vs. Iteration The recursive solution is extremely inefficient, since it performs many duplicate calculations! Python Programming, 1/e 74 Recursion vs. Iteration To calculate fib(6), fib(4)is calculated twice, fib(3)is calculated three times, fib(2)is calculated four times… For large numbers, this adds up! Python Programming, 1/e 75 Recursion vs. Iteration Recursion is another tool in your problemsolving toolbox. Sometimes recursion provides a good solution because it is more elegant or efficient than a looping version. At other times, when both algorithms are quite similar, the edge goes to the looping solution on the basis of speed. Avoid the recursive solution if it is terribly inefficient, unless you can't come up with an iterative solution (which sometimes happens!) Python Programming, 1/e 76 Sorting Algorithms The basic sorting problem is to take a list and rearrange it so that the values are in increasing (or nondecreasing) order. Python Programming, 1/e 77 Naive Sorting: Selection Sort To start out, pretend you're the computer, and you're given a shuffled stack of index cards, each with a number. How would you put the cards back in order? Python Programming, 1/e 78 Naive Sorting: Selection Sort One simple method is to look through the deck to find the smallest value and place that value at the front of the stack. Then go through, find the next smallest number in the remaining cards, place it behind the smallest card at the front. Rinse, lather, repeat, until the stack is in sorted order! Python Programming, 1/e 79 Naive Sorting: Selection Sort We already have an algorithm to find the smallest item in a list (Chapter 7). As you go through the list, keep track of the smallest one seen so far, updating it when you find a smaller one. This sorting algorithm is known as a selection sort. Python Programming, 1/e 80 Naive Sorting: Selection Sort The algorithm has a loop, and each time through the loop the smallest remaining element is selected and moved into its proper position. For n elements, we find the smallest value and put it in the 0th position. Then we find the smallest remaining value from position 1 – (n-1) and put it into position 1. The smallest value from position 2 – (n-1) goes in position 2. Etc. Python Programming, 1/e 81 Naive Sorting: Selection Sort When we place a value into its proper position, we need to be sure we don't accidentally lose the value originally stored in that position. If the smallest item is in position 10, moving it into position 0 involves the assignment: nums[0] = nums[10] This wipes out the original value in nums[0]! Python Programming, 1/e 82 Naive Sorting: Selection Sort We can use simultaneous assignment to swap the values between nums[0] and nums[10]: nums[0],nums[10] = nums[10],nums[0] Using these ideas, we can implement our algorithm, using variable bottom for the currently filled position, and mp is the location of the smallest remaining value. Python Programming, 1/e 83 Naive Sorting: Selection Sort def selSort(nums): # sort nums into ascending order n = len(nums) # For each position in the list (except the very last) for bottom in range(n-1): # find the smallest item in nums[bottom]..nums[n-1] mp = bottom # bottom is smallest initially for i in range(bottom+1, n): # look at each position if nums[i] < nums[mp]: # this one is smaller mp = i # remember its index # swap smallest item to the bottom nums[bottom], nums[mp] = nums[mp], nums[bottom] Python Programming, 1/e 84 Naive Sorting: Selection Sort Rather than remembering the minimum value scanned so far, we store its position in the list in the variable mp. New values are tested by comparing the item in position i with the item in position mp. bottom stops at the second to last item in the list. Why? Once all items up to the last are in order, the last item must be the largest! Python Programming, 1/e 85 Naive Sorting: Selection Sort The selection sort is easy to write and works well for moderate-sized lists, but is not terribly efficient. We'll analyze this algorithm in a little bit. Python Programming, 1/e 86 Divide and Conquer: Merge Sort We've seen how divide and conquer works in other types of problems. How could we apply it to sorting? Say you and your friend have a deck of shuffled cards you'd like to sort. Each of you could take half the cards and sort them. Then all you'd need is a way to recombine the two sorted stacks! Python Programming, 1/e 87 Divide and Conquer: Merge Sort This process of combining two sorted lists into a single sorted list is called merging. Our merge sort algorithm looks like: split nums into two halves sort the first half sort the second half merge the two sorted halves back into nums Python Programming, 1/e 88 Divide and Conquer: Merge Sort Step 1: split nums into two halves Simple! Just use list slicing! Step 4: merge the two sorted halves back into nums This is simple if you think of how you'd do it yourself… You have two sorted stacks, each with the smallest value on top. Whichever of these two is smaller will be the first item in the list. Python Programming, 1/e 89 Divide and Conquer: Merge Sort Once the smaller value is removed, examine both top cards. Whichever is smaller will be the next item in the list. Continue this process of placing the smaller of the top two cards until one of the stacks runs out, in which case the list is finished with the cards from the remaining stack. In the following code, lst1 and lst2 are the smaller lists and lst3 is the larger list for the results. The length of lst3 must be equal to the sum of the lengths of lst1 and lst2. Python Programming, 1/e 90 Divide and Conquer: Merge Sort def merge(lst1, lst2, lst3): # merge sorted lists lst1 and lst2 into lst3 # these indexes keep track of current position in each list i1, i2, i3 = 0, 0, 0 # all start at the front n1, n2 = len(lst1), len(lst2) # Loop while both lst1 and lst2 have more items while i1 < n1 and i2 < n2: if lst1[i1] < lst2[i2]: lst3[i3] = lst1[i1] i1 = i1 + 1 else: lst3[i3] = lst2[i2] i2 = i2 + 1 i3 = i3 + 1 # top of lst1 is smaller # copy it into current spot in lst3 # top of lst2 is smaller # copy itinto current spot in lst3 # item added to lst3, update position Python Programming, 1/e 91 Divide and Conquer: Merge Sort # Here either lst1 or lst2 is done. One of the following loops # will execute to finish up the merge. # Copy remaining items (if any) from lst1 while i1 < n1: lst3[i3] = lst1[i1] i1 = i1 + 1 i3 = i3 + 1 # Copy remaining items (if any) from lst2 while i2 < n2: lst3[i3] = lst2[i2] i2 = i2 + 1 i3 = i3 + 1 Python Programming, 1/e 92 Divide and Conquer: Merge Sort We can slice a list in two, and we can merge these new sorted lists back into a single list. How are we going to sort the smaller lists? We are trying to sort a list, and the algorithm requires two smaller sorted lists… this sounds like a job for recursion! Python Programming, 1/e 93 Divide and Conquer: Merge Sort We need to find at least one base case that does not require a recursive call, and we also need to ensure that recursive calls are always made on smaller versions of the original problem. For the latter, we know this is true since each time we are working on halves of the previous list. Python Programming, 1/e 94 Divide and Conquer: Merge Sort Eventually, the lists will be halved into lists with a single element each. What do we know about a list with a single item? It's already sorted!! We have our base case! When the length of the list is less than 2, we do nothing. We update the mergeSort algorithm to make it properly recursive… Python Programming, 1/e 95 Divide and Conquer: Merge Sort if len(nums) > 1: split nums into two halves mergeSort the first half mergeSort the seoncd half mergeSort the second half merge the two sorted halves back into nums Python Programming, 1/e 96 Divide and Conquer: Merge Sort def mergeSort(nums): # Put items of nums into ascending order n = len(nums) # Do nothing if nums contains 0 or 1 items if n > 1: # split the two sublists m = n/2 nums1, nums2 = nums[:m], nums[m:] # recursively sort each piece mergeSort(nums1) mergeSort(nums2) # merge the sorted pieces back into original list merge(nums1, nums2, nums) Python Programming, 1/e 97 Divide and Conquer: Merge Sort Recursion is closely related to the idea of mathematical induction, and it requires practice before it becomes comfortable. Follow the rules and make sure the recursive chain of calls reaches a base case, and your algorithms will work! Python Programming, 1/e 98 Comparing Sorts We now have two sorting algorithms. Which one should we use? The difficulty of sorting a list depends on the size of the list. We need to figure out how many steps each of our sorting algorithms requires as a function of the size of the list to be sorted. Python Programming, 1/e 99 Comparing Sorts Let's start with selection sort. In this algorithm we start by finding the smallest item, then finding the smallest of the remaining items, and so on. Suppose we start with a list of size n. To find the smallest element, the algorithm inspects all n items. The next time through the loop, it inspects the remaining n-1 items. The total number of iterations is: n + (n-1) + (n-2) + (n-3) + … + 1 Python Programming, 1/e 100 Comparing Sorts The time required by selection sort to sort a list of n items is proportional to the sum of the first n whole numbers, or . This formula contains an n2 term, meaning that the number of steps in the algorithm is proportional to the square of the size of the list. n n 1 2 Python Programming, 1/e 101 Comparing Sorts If the size of a list doubles, it will take four times as long to sort. Tripling the size will take nine times longer to sort! Computer scientists call this a quadratic or n2 algorithm. Python Programming, 1/e 102 Comparing Sorts In the case of the merge sort, a list is divided into two pieces and each piece is sorted before merging them back together. The real place where the sorting occurs is in the merge function. Python Programming, 1/e 103 Comparing Sorts This diagram shows how [3,1,4,1,5,9,2,6] is sorted. Starting at the bottom, we have to copy the n values into the second level. Python Programming, 1/e 104 Comparing Sorts From the second to third levels the n values need to be copied again. Each level of merging involves copying n values. The only remaining question is how many levels are there? Python Programming, 1/e 105 Comparing Sorts We know from the analysis of binary search that this is just log2n. Therefore, the total work required to sort n items is nlog2n. Computer scientists call this an n log n algorithm. Python Programming, 1/e 106 Comparing Sorts So, which is going to be better, the n2 selection sort, or the n logn merge sort? If the input size is small, the selection sort might be a little faster because the code is simpler and there is less overhead. What happens as n gets large? We saw in our discussion of binary search that the log function grows very slowly, so nlogn will grow much slower than n2. Python Programming, 1/e 107 Comparing Sorts Python Programming, 1/e 108 Hard Problems Using divide-and-conquer we could design efficient algorithms for searching and sorting problems. Divide and conquer and recursion are very powerful techniques for algorithm design. Not all problems have efficient solutions! Python Programming, 1/e 109 Towers of Hanoi One elegant application of recursion is to the Towers of Hanoi or Towers of Brahma puzzle attributed to Édouard Lucas. There are three posts and sixty-four concentric disks shaped like a pyramid. The goal is to move the disks from one post to another, following these three rules: Python Programming, 1/e 110 Towers of Hanoi Only one disk may be moved at a time. A disk may not be "set aside". It may only be stacked on one of the three posts. A larger disk may never be placed on top of a smaller one. Python Programming, 1/e 111 Towers of Hanoi If we label the posts as A, B, and C, we could express an algorithm to move a pile of disks from A to C, using B as temporary storage, as: Move disk from A to C Move disk from A to B Move disk from C to B Python Programming, 1/e 112 Towers of Hanoi Let's consider some easy cases – 1 disk Move disk 2 disks Move disk Move disk Move disk from A to C from A to B from A to C from B to C Python Programming, 1/e 113 Towers of Hanoi 3 disks To move the largest disk to C, we first need to move the two smaller disks out of the way. These two smaller disks form a pyramid of size 2, which we know how to solve. Move a tower of two from A to B Move one disk from A to C Move a tower of two from B to C Python Programming, 1/e 114 Towers of Hanoi Algorithm: move n-disk tower from source to destination via resting place move n-1 disk tower from source to resting place move 1 disk tower from source to destination move n-1 disk tower from resting place to destination What should the base case be? Eventually we will be moving a tower of size 1, which can be moved directly without needing a recursive call. Python Programming, 1/e 115 Towers of Hanoi In moveTower, n is the size of the tower (integer), and source, dest, and temp are the three posts, represented by "A", "B", and "C". def moveTower(n, source, dest, temp): if n == 1: print "Move disk from", source, "to", dest+"." else: moveTower(n-1, source, temp, dest) moveTower(1, source, dest, temp) moveTower(n-1, temp, dest, source) Python Programming, 1/e 116 Towers of Hanoi To get things started, we need to supply parameters for the four parameters: def hanoi(n): moveTower(n, "A", "C", "B") >>> hanoi(3) Move disk from Move disk from Move disk from Move disk from Move disk from Move disk from Move disk from A A C A B B A to to to to to to to C. B. B. C. A. C. C. Python Programming, 1/e 117 Towers of Hanoi Why is this a "hard problem"? How many steps in our program are required to move a tower of size n? Number of Disks 1 Steps in Solution 1 2 3 3 7 4 15 5 31 Python Programming, 1/e 118 Towers of Hanoi To solve a puzzle of size n will require 2n-1 steps. Computer scientists refer to this as an exponential time algorithm. Exponential algorithms grow very fast. For 64 disks, moving one a second, round the clock, would require 580 billion years to complete. The current age of the universe is estimated to be about 15 billion years. Python Programming, 1/e 119 Towers of Hanoi Even though the algorithm for Towers of Hanoi is easy to express, it belongs to a class of problems known as intractable problems – those that require too many computing resources (either time or memory) to be solved except for the simplest of cases. There are problems that are even harder than the class of intractable problems. Python Programming, 1/e 120 The Halting Problem Let's say you want to write a program that looks at other programs to determine whether they have an infinite loop or not. We'll assume that we need to also know the input to be given to the program in order to make sure it's not some combination of input and the program itself that causes it to infinitely loop. Python Programming, 1/e 121 The Halting Problem Program Specification: Program: Halting Analyzer Inputs: A Python program file. The input for the program. Outputs: "OK" if the program will eventually stop. "FAULTY" if the program has an infinite loop. You've seen programs that look at programs before – like the Python interpreter! The program and its inputs can both be represented by strings. Python Programming, 1/e 122 The Halting Problem There is no possible algorithm that can meet this specification! This is different than saying no one's been able to write such a program… we can prove that this is the case using a mathematical technique known as proof by contradiction. Python Programming, 1/e 123 The Halting Problem To do a proof by contradiction, we assume the opposite of what we're trying to prove, and show this leads to a contradiction. First, let's assume there is an algorithm that can determine if a program terminates for a particular set of inputs. If it does, we could put it in a function: Python Programming, 1/e 124 The Halting Problem def terminates(program, inputData): # program and inputData are both strings # Returns true if program would halt when run # with inputData as its input If we had a function like this, we could write the following program: # turing.py import string def terminates(program, inputData): # program and inputData are both strings # Returns true if program would halt when run # with inputData as its input Python Programming, 1/e 125 The Halting Problem def main(): # Read a program from standard input lines = [] print "Type in a program (type 'done' to quit)." line = raw_input("") while line != "done": lines.append(line) line = raw_input("") testProg = string.join(lines, "\n") # If program halts on itself as input, go into # an inifinite loop if terminates(testProg, testProg): while True: pass # a pass statement does nothing Python Programming, 1/e 126 The Halting Problem The program is called "turing.py" in honor of Alan Turing, the British mathematician who is considered to be the "father of Computer Science". Let's look at the program step-by-step to see what it does… Python Programming, 1/e 127 The Halting Problem turing.py first reads in a program typed by the user, using a sentinel loop. The string.join function then concatenates the accumulated lines together, putting a newline (\n) character between them. This creates a multi-line string representing the program that was entered. Python Programming, 1/e 128 The Halting Problem turing.py next uses this program as not only the program to test, but also as the input to test. In other words, we're seeing if the program you typed in terminates when given itself as input. If the input program terminates, the turing program will go into an infinite loop. Python Programming, 1/e 129 The Halting Problem This was all just a set-up for the big question: What happens when we run turing.py, and use turing.py as the input? Does turing.py halt when given itself as input? Python Programming, 1/e 130 The Halting Problem In the terminates function, turing.py will be evaluated to see if it halts or not. We have two possible cases: turing.py halts when given itself as input Terminates returns true So, turing.py goes into an infinite loop Therefore turing.py doesn't halt, a contradiction Python Programming, 1/e 131 The Halting Problem Turing.py does not halt terminates returns false When terminates returns false, the program quits When the program quits, it has halted, a contradiction The existence of the function terminates would lead to a logical impossibility, so we can conclude that no such function exists. Python Programming, 1/e 132 Conclusion Computer Science is more than programming! The most important computer for any computing professional is between their ears. Python Programming, 1/e 133


text:
$2,897 Studio 17 Stanton St, New York NY, 10002
$2,897 Studio
17 Stanton St, Bowery, New York, 10002
Commute to Downtown New York
17 Stanton St is a three minute walk from the F Queens Blvd Express/ 6 Av Local at the 2 Av stop.
This apartment is in the Bowery neighborhood in New York. Nearby parks include Liz Christy Garden, First Park and Sara D Roosevelt Park.
17 Stanton St has a Walk Score of 100 out of 100. This location is a Walker's Paradise so daily errands do not require a car.
Pets allowed:
Owner/manager tools | Report bad listing | From zumper.com
Daily errands do not require a car.
World-class public transportation.
Flat as a pancake, excellent bike lanes.
About your score
Explore how far you can travel by car, bus, bike and foot from 17 Stanton St.
17 Stanton St is a Rider's Paradise which means world-class public transportation. Car sharing is available from Zipcar, Hertz On Demand, RelayRides and Enterprise CarShare.
Rail lines:
F Queens Blvd Express/ 6 Av Local
0.1 mi
J Nassau St Local
0.2 mi
4 Lexington Avenue Express
0.3 mi
6 Lexington Avenue Local
0.3 mi
B 6 Avenue Express
0.3 mi
D 6 Avenue Express
0.3 mi
M QNS BLVD-6th AVE/ Myrtle Local
0.3 mi
N Broadway Express
0.3 mi
R Broadway Local
0.3 mi
Q Broadway Express
0.5 mi
Bus lines:
M103 East Harlem - City Hall
0.1 mi
M21 Lower East Side - West Village LTD
0.1 mi
M15 East Harlem - South Ferry
0.1 mi
M15-SBS East Harlem - South Ferry
0.2 mi
Car shares:
Bike shares:
View all Bowery apartments on a map.
Popular apartment searches include fitness, top floor and furnished.
17 Stanton St is in the Bowery neighborhood. Bowery is the 5th most walkable neighborhood in New York with a neighborhood Walk Score of 100.
Moving to New York from another city? View our moving to New York guide.

subset: commoncrawl


text: I'm a fairly regular customer at Dominos Kiama but today's experience has changed my mind and I don't think I'll be going back. All I wanted was a simple cheese/margarita pizza and what I received was absolutely inedible! How hard it is to make a pizza with a tomato sauce base topped with cheese I ask you? Instead it was... More


text:
Annesley Malewana
|Annesley Malawana
|Background information
|Ratnapura, Sri Lanka
|Sri Lankan music
|Years active
|1965 to present
|Associated acts
|Moonstones, Super Golden Chimes, Super Chimes
Annesley Malawana or Malewana (Sinhala pronunciation [ˈænəsli ˈmaːləvənə]) (Sinhala: ඇනස්ලි මාලේවන) started his musical journey from Ratnapura ( his hometown ) with Clarence Wijewardene in 1966,they formed a group called. Annesley Malawana is an influential Sri Lankan musician.
Life and career[edit]
Malewana was born in Ratnapura (a city in south-central Sri Lanka), and attended St. Joseph's College in the capital city of Colombo. Upon leaving school, he met Clarence Wijewardena, who (with Malewana) formed the group Moonstones. In the early 1960s, the Moonstones began performing songs composed by Wijewardena and sung by Malewana (their first hit was Mango Nanda - a song written about the maid who once worked at the home of Clarence's wife in the early days of their relationship).
Primarily due to Wijewardena's unique compositions, the Moonstones continued to dominate popular Sri Lankan music for nearly a decade before ultimately breaking up in the late 1960s. The Moonstones were managed by the advertising man Sri Sangabo Corea and were mentored by the legendary Radio Ceylon broadcaster Vernon Corea and his cousin Vijaya Corea.[1] Their music was featured for the very first time on the English Services of Radio Ceylon and subsequently the Sri Lanka Broadcasting Corporation. They became household names as a result of the airplay on Radio Ceylon throughout the 1960s. Annesley Malewana was well known for being a master of contemporary baila.
During the 1960s, 1970s, and 1980s, the songs of the 'Moonstones' and the 'Super Golden Chimes' were on the lips of so many music lovers in Sri Lanka - the musicians were at their peak and Annesley had reached the heights of popularity in the world of music on the island.
Super Golden Chimes[edit]
Malewana and Wijewardena remained friends and reunited in the 1970s to form a group dubbed the Super Golden Chimes - this group would, similarly, produce a string of popular songs that included Udarata Niliya (Up-Country Dancer), Sihina Pathum (In Dreams), Wana Bambaro (Jungle/Wild Bee), and Sathuta Senasuma (Happy Feelings).
The Super Golden Chimes performed for another eight years until, in 1978, Malewana married, and announced his retirement from music.Despite his retirement, Malewana returned in 1988 as a solo artist, and continued to record songs particularly for CDs released in Sri Lanka.
Super Chimes[edit]
Malewana came out of retirement to get back into the music world, in 2005 he formed the band Annesley & The Super Chimes.
According to Malewana: "It was a long felt need in the music scene especially after the Super Golden Chimes Reunion Concert which was held last year. I was under tremendous pressure from my fans and well-wishers to continue with the Super Golden Chimes, but since some of the members are abroad and some others are playing in different groups, I did not want to use the name Super Golden Chimes."
The songs performed by Malewana and Clarence over their three decade careers have recently been credited, by the group Pahan Silu, as having served to influence them in crafting their unique musical style. Annesley Malewana has reached the pinnacle of fame as a highly respected recording artiste and as an accomplished musician. Together with his close friend, the late Clarence Wijewardena, they were at the very top of music world in South Asia. Wijeywardena and Malewana were two of the most sought after musicians in Sri Lanka.
Their songs topped the charts on both the English Service and the Sinhala Service on Radio Ceylon/Sri Lanka Broadcasting Corporation for decades. Annesley Malewana has also made countless appearances on television.
His voice has been heard by Londoners over BBC Radio London 206 on the 'London Sounds Eastern' radio programme and on community radio in the United States and in Australia.
Listen to Annesley Malewana on YouTube:
- Annesley Malewana at the Super Golden Chimes Reunion Concert at the BMICH in Colombo
- Annesley Malewana - Super Golden Chimes Reunion Concert
- Annesley Malewana on Sri Lankan Television
- Annesley Malewana and the hit song 'Gon Wassa'
- Annesley Malewana performs 'Ma Sihina Pathum' in Canberra,Australia in 2008
- 'Kiyanna Sulange' - Annesley Malewana with Lilanthi Karunanayake
- Annesley Malewana sings Clarence Wijewardena's hit - "Piyaneni"
See also[edit]
- ^ "Reference to Annesley Malewana and the Moonstones on World Music Central". Retrieved 2009-08-22.


text:
I have had this twice in a week with student projects. We are using 10.6.8 and Keynote 9 (5.1.1). Students save their work on a server (over 110 students doing this with no problem). When opening the project the next day I had 2 students get the message "Unable to open "project name" because it isn't a valid Keynote document". Is there a way to recover.
1 Reply
· · ·
Apr 16, 2012 at 8:22 UTC
Is there a file extension visible in the name? (should be .key)


text:
So far so good
someone going on holiday catching a plane and something happens
"I thought that I should give people a little opening on what the story is about it is a true story and has happened over and over again throughout the past 8 years for every time we go it is such a magical feeling ..."
When you go to bed the night before you go to Jersey you are filled with excitement and you wish tomorrow would come early.
And finally when that tomorrow comes you wake up at the crack of dawn and you are filled with excitement and you feel like it will take forever to get there but it's only a matter of something like 5 hours and then your there.
So you go off in your car driven by Tommy or Martin and you have that thrill in your body whilst watching a DVD and you pass lorries and cars and your car is packed with clothes and you feel like a celebrity who is going on her privet jet to somewhere and then you see that sign the one that says "Birmingham airport" and you head for it and you see that sign again that says " welcome to Birmingham airport" and then you see another sign saying " Arrivals" and you get a trolley and then you say good bye and that's when your story begins
Chapter One – Arrivals
When you get the trolley from the trolley park you often think why you have to pay a pound and then you realise that actually they are trying to make a living and that's when you realise that actually you are going on holiday today and that this is real, you look around and think I'm going on holiday, without taking a blink you feel like you're in a whole different world with people speaking different languages from Polish to Indian, and then if you don't do quick check in when you are at home you can be in great trouble because there you are waiting in a line until you here your "Next" and then you go check in realise that your bag is just under the weight and then you go into dreaded customs...


text:
Brad Wing said he has turned his life around after the birth of his child and after looking at the end of his professional career while sitting out what would've been his rookie season last year.
A "rock star" personality isn't normally associated with punters, but that was Wing at LSU, where he set records and was a major factor in a 9-6 overtime win over Alabama in 2011. But he was kicked out of school after brushes with the law, failed drug tests and a bowl-game suspension. And then he wasn't drafted before the Philadelphia Eagles signed him and cut him.
Wing was down to his last chance to make a living as a punter when Steelers GM Kevin Colbert signed him this past winter. Colbert said he really didn't do a character assessment of Wing, either.
"No. Brad got married recently. He has a child," Colbert said at the combine in February. "Players mature as the years go on. If we weren't comfortable with his character we wouldn't have signed him."
"Kevin Colbert knows my dad," Wing explained last month with a mischievous grin. "He cut him when he was in Detroit actually. So maybe our family history had something to do with it."
Colbert chuckled at the memory from 1990. He was in his first year as the Lions' pro scouting director and the team had signed punter David Wing at the urging of its special-teams coach, the late Frank Gansz.
"Gansz was way ahead of the curve with the wave of Australian punters," Colbert said.
But David Wing didn't make the team and went back to Australia to play American football. He also spent the 1998 season with the Scottish Claymores of the World League.
His son, Brad, played Australian Rules Football in high school in Melbourne, but was cut from the program in 2008. With one year of high school remaining, Brad went with his father on a tour of American cities, which included a stop in Baton Rouge to visit one of dad's friends. While there, Brad attended a New Orleans Saints game and thought he could do well as a punter. So he moved to the states to finish high school.
At a Parkview Baptist High School game, he was spotted by the wife of LSU coach Les Miles. Miles followed up on Wing at a kicking camp and offered him a place with the Tigers.
At LSU, Wing became known for both good and bad, as illustrated by his 52-yard touchdown run off a fake punt against Florida that was called back because Wing turned to taunt the Florida defense while going into the end zone. His game three weeks later against Alabama became his milestone, but his "rock star" personality eventually became the millstone around his neck.
Signed by the Eagles after being booted out of college, Wing was cut last August and sat out the season before the Steelers signed him last Jan. 3.
"I'm just fortunate they gave me the opportunity because a lot of that stuff IS behind me," Wing said last month during OTAs. "Now all I want to do is be the best punter for this team possible and help them win games."
Wing will be challenged by April signee Adam Podlesh, an eighth-year veteran whom the Steelers liked in the 2007 draft. After Podlesh was drafted early in the fourth round, the Steelers traded up to draft the only other punter on their draft board, Daniel Sepulveda.
Even though the Steelers have signed a veteran, Wing believes he'll win the job. And he even asked this reporter in the middle of one practice about the team's net punting record. A week later during an interview, Wing tried to be more modest.
"First thing is to make the final roster, that's the number one goal," said the 23 year-old with an Aussie accent. "But if I'm here, why not try to break the net punting record? I know that's a good team stat. It's not just the punter doing the work, it's the guys around you also. So it's definitely something we'd like to break."
Does he feel that confident about making the team?
"I do," he said. "I've got good competition in Adam Podlesh. We come out here and we get after it every day. I really enjoy Danny Smith. I respond well with him. Um, I think I'm in a good spot, a better spot than I was last year in Philly."
Smith, the Steelers' special-teams coach who oversaw a 35.7 net punting average, the team's lowest since 2008, was asked if he had any apprehensions about Wing's reputation.
"I don't have any expectations when he comes in and I don't form any opinions, to be honest with you," said Smith. "I deal with the players as they deal with me when we get them here. And everything has been super. I mean he's a great kid, he's got great work habits, he's got a good work ethic. I've enjoyed working with him. I really have. And that's what I go by."
Could Wing help the Steelers set the team record?
"Oh I don't make any of those predictions," Smith said. "We've got to be better, I can tell you that. And we will."
Wing said that after he was cut last year he continued to work out ever week, and, "I'm more comfortable," he said. "This is my second camp so I sort of know what's going on a little bit more than I did last year. I just feel more comfortable."
Wing doesn't look like the typical football bad boy. In fact, he looks more like Justin Bieber without the tattoos.
"You can't always believe everything you read," Wing said. "But, you know, all of that stuff, that was probably two or three or four years ago when I was a younger kid in college. I probably made some poor decisions back then. But I'm really focused now. I've got a clear vision on what I want to do and where I want to be. Um, I tell you what, I'd love to be in Pittsburgh for an extended period of time."
Wing agreed that seeing the end of his career flash before him made him grow up in a hurry.
"I think that had a big part to do with it. I sort of had worst-case scenario last year in getting cut and not playing the whole year. And also, I've got a young son, a 14-month-old, so like you said, it forces maturity. You don't really have any other option than to get your head down and go to work. So that's what I'm doing now. And it's good, man. I'm really happy that I still have the opportunity in front of me."
Did he ever find the statistic for which he was searching?
"The record's 39 yards," Wing said. "So we're trying to break 40. That's what we're going after."


text:
About TD Bank Group
The Toronto-Dominion Bank and its subsidiaries are collectively known as TD Bank Group ("TD" or the "Bank"). TD is the sixth largest bank in North America by branches and serves more than 23 million customers in three key businesses operating in a number of locations in financial centres around the globe: Canadian Retail, including TD Canada Trust, TD Auto Finance Canada, TD Wealth (Canada), TD Direct Investing, and TD Insurance; U.S. Retail, including TD Bank, America's Most Convenient Bank, TD Auto Finance U.S., TD Wealth (U.S.), and an investment in TD Ameritrade; and Wholesale Banking, including TD Securities. TD also ranks among the world's leading online financial services firms, with approximately 9.4 million active online and mobile customers. TD had CDN$945 billion in assets on October 31, 2014. The Toronto-Dominion Bank trades under the symbol "TD" on the Toronto and New York Stock Exchanges.
"The APT platform enables us to better leverage the wealth of data in the call center to greatly improve customer satisfaction and operational efficiency. From strategic questions surrounding outsourcing, to more tactical questions about how frequently we should reach out to customers during a campaign, the APT Suite is helping us improve upon our business."


text:
The Most Reverend Desmond M. Tutu is a South African cleric and activist who rose to worldwide fame during the 1980s as an opponent of apartheid. In 1984, Tutu became the second South African awarded the Nobel Peace Prize. Tutu was elected and ordained the first black South African Anglican Archbishop of Cape Town, South Africa. He chaired the Truth and Reconciliation Commission in South Africa and is currently the chairman of The Elders. Tutu is vocal in his defense of human rights and campaigns for the oppressed in such countries as Burma, Sudan, and Zimbabwe. He also works to fight AIDS, poverty, and racism.
Mohamed Nasheed is an activist, journalist, and politician whose outspoken criticism of the Maldivian government resulted in his repeated arrest, imprisonment, and torture. In 2008, he become the first democratically-elected president of the Maldives. Sadly, President Nasheed's term in office was cut short in 2012 by a coup, and he was later arrested on false charges. Freedom Now worked to secure President Nasheed's release from prison and he currently resides in the UK where he continues to work on issues such as human rights, climate change, and combating radical Islam.
Jeremy is the Chair of Freedom Now and a partner in the international trade group of Dechert LLP in Washington, D.C. Prior to joining Dechert, Jeremy as was partner in the international trade group of Hogan Lovells. Jeremy also served as a law clerk at the International Court of Justice in The Hague, The Netherlands. Jeremy holds a B.A. in ethics, politics, and economics from Yale University, a Master in Public Policy from the John F. Kennedy School of Government at Harvard University, and a J.D. magna cum laude from New York University Law School, where he was editor-in-chief of the NYU Journal of International Law and Politics and a Fellow of the Center for International Studies.
Jared Genser is the Founder of Freedom Now and Managing Director of Perseus Strategies, LLC. Previously, Jared was a partner in the government affairs group of DLA Piper LLP and a management consultant with McKinsey & Company, the global strategy consulting firm. He was named by the National Law Journal as one of "40 Under 40: Washington's Rising Stars." Jared has taught semester-long seminars about the UN Security Council at Georgetown University Law Center and the University of Michigan and University of Pennsylvania law schools. He was a 2006-2007 Visiting Fellow with the National Endowment for Democracy. His human-rights clients have included former Czech Republic President Václav Havel and Nobel Peace Prize Laureates Aung San Suu Kyi, Liu Xiaobo, Desmond Tutu, and Elie Wiesel. He holds a B.S. from Cornell University, a Master in Public Policy from the John F. Kennedy School of Government at Harvard University, where he was an Alumni Public Service Fellow, and a J.D. cum laude from the University of Michigan Law School. Jared is author of The UN Working Group on Arbitrary Detention: Commentary and Guide to Practice (Cambridge University Press, Forthcoming 2013). He is co-editor of The Responsibility to Protect: The Promise of Stopping Mass Atrocities in Our Times (Oxford University Press 2012) with former Canadian Minister of Justice Irwin Cotler.
Peter Magyar is a member of the Board of Directors of Freedom Now and founder of Magyar & Co, a boutique international law firm. Previously he was Senior Partner and General Counsel of an international investment group with over $6 billion of assets and a Partner of Baker & McKenzie, where he headed the firm's European securities practice and was a member of the London office's Management Committee and the Managing Partner of its Budapest office. Peter is the recipient of various awards and citations in the legal press recognizing his work in the fields of privatization and international capital markets. He holds degrees from The London School of Economics and Oxford University. He will be helping lead Freedom Now's expansion into Europe.
Joseph J. McCarthy is a member of the Board of Directors of Freedom Now. He retired as Senior Associate Dean and Director of Degree Programs at Harvard's Kennedy School of Government. His career in education spans several decades, and he served at Harvard University for over twenty-five years. Joe earned B.A. and M.A. degrees in English from Boston College and a doctorate from Harvard's Graduate School of Education. He currently advises and/or serves on a number of non-profit boards in the Washington, D.C. area and in Cambridge, Massachusetts and is a consultant on education both domestically and internationally. He is a resident of Bethesda, Maryland and Cambridge, Massachusetts.
Thomas Dohrmann is a member of the Board of Directors of Freedom Now and a director of Public Sector Practice in the Americas at McKinsey & Company, a global management consulting firm. He works in McKinsey's Public Sector leading the firm's work with tax authorities and public-finance agencies and its research on public-sector productivity and fiscal management. Tom joined McKinsey in 1996 and is based in Washington, DC. In 2008-2009, Tom took a leave of absence from McKinsey and worked on President Barack Obama's transition team providing work on financial regulation and reform. He holds a B.A. in political science from Macalester College and an MPA from Princeton University.
Gregory K. McGillivary is a name partner in the Washington, D.C. law firm of Woodley & McGillivary, which represents unions and employees nationwide in all areas of labor law, including wage and hour violations, First Amendment rights, collective bargaining, grievance/arbitration, and human rights related to labor advocacy. Greg served for six years as the Union Chair of the American Bar Association's Federal Labor Standards Committee. He is the editor-in-chief of the treatise State Wage and Hour Laws and a senior editor of the treatise The Fair Labor Standards Act. He is a graduate of the University of Oregon Law School, where he was articles editor of the Oregon Law Review, and received his B.A. from Northwestern University.
Joshua Newcomer is a member of the Board of Directors of Freedom Now and an attorney in the Houston, Texas office of the law firm McKool Smith P.C. Prior to joining McKool Smith, Joshua was an attorney at the international law firm Hogan Lovells LLP. Joshua served as a law clerk to Judge Carolyn King on the United States Court of Appeals for the Fifth Circuit and Judge William Yohn Jr. on the United States District Court for the Eastern District of Pennsylvania. Joshua earned a B.A., cum laude, majoring in history and political communications from the University of Pennsylvania and a J.D., magna cum laude, from the James E. Beasley School of Law at Temple University, where he was articles editor of the Temple Law Review.
Peter Choharis is the founder of Choharis Global Solutions, an international law and consulting firm. He has more than twenty years of experience as a U.S. litigator and international dispute specialist and has appeared in trial and appellate courts at the federal and state level throughout the United States. He is also an Adjunct Fellow at the American Security Project, and prior to that was a Visiting Fellow at the Center for Strategic and International Studies. More than two dozen of his articles on foreign affairs and international law have appeared in The New York Times (Global), International Herald Tribune, Forbes, The Atlantic, The Washington Post, The Wall Street Journal, The Los Angeles Times, The Boston Globe, and many other publications. Peter graduated from Yale Law School and Harvard College, where he was awarded the Sheldon Traveling Fellowship and numerous other prizes.
For more than two decades AnnMaura has worked to expand opportunities for young people to serve across the United States and around the world. As the Chief Strategy Officer and Executive Vice President of City Year, AnnMaura directs City Year's international work, and oversees public policy and public affairs. In addition, AnnMaura serves as President of Voices for National Service, a coalition of hundreds of service organizations that work together to advance citizen service policy. After college, AnnMaura served in the Jesuit Volunteer Corps in Southern California where she helped to create and lead a counseling program for refugees. After returning to Washington D.C., she directed a national grants program at Very Special Arts, an international organization dedicated to increasing opportunities in the arts for people with disabilities. In 1989, AnnMaura joined Youth Service America, where she organized the first National Youth Service Day, launched the New Generation Training Program and led a policy working group of leaders from the national service field to draft a set of recommendations that informed the design of AmeriCorps. In 1995, AnnMaura joined the newly created Corporation for National and Community Service as Deputy Director, Independent Sector and served as liaison to the foundation and national nonprofit community. After leaving CNCS, AnnMaura served as director of the AmeriCorps Anniversary Committee and as a policy consultant to the Grantmaker Forum on Community and National Service. AnnMaura holds a B.A. in political science from the College of the Holy Cross. In January 2015, AnnMaura was selected for the first class of the Presidential Leadership Scholars Program, a joint initiative of the Bush, Clinton, Bush and Johnson Presidential Libraries.


text: ok so normally i just used popcorn hour to stream 1080p mkv rips of movies but im trying to use only one device and i would like to just use appletv. im using handbrake to convert them to 1280x720 mp4 files using 5000 bit rate .. for fps i just selected same as source ( or should i pick something else ?) for anamorphic it says 1279x720 loose ? what does that mean ? and last question .. how do i stream it to the appletv without it copying to the Apple TV ?


text:
Free personalized radio that
plays the music you love
Borger released Filthiest Hits...So Far on Sumerian Records in 2011, and mixed the first disc of Ministry of Sound's Sound of Dubstep compilation that year. Another mix album, Borgore's Misadventures in Dubstep, followed on Buygore in 2012. Several EPs/singles appeared on the label that year as well, including "Decisions," which featured guest vocalist Miley Cyrus. He continued to churn out releases and remixes during 2013 and 2014, including many singles and EPs for Spinnin' Records and Dim Mak. He collaborated with Waka Flocka Flame on the 2013 single "Wild Out," as his style was increasingly becoming more influenced by trap. Borgore's debut production album, #NEWGOREORDER, appeared on Dim Mak in July 2014. The Buygore Album followed early in 2015, and the year found Borgore collaborating with Addison ("School Daze") and G-Eazy ("Forbes"), in addition to releasing the Keep It Sexy EP. Continued remix commissions, as well as a batch of singles that included the Barrington Levy collaboration "Blast Ya," were scattered across 2016. ~ Andy Kellman
Selected Discography
Track List: Keep It Sexy EP
Track List: Wild Out (Feat. Waka Flocka Flame & Paige) Remixes
Track List: Delicious EP
Track List: Decisions
Track List: Flex - EP
Track List: Borgore Ruined Dubstep, Pt. 1 - EP
Track List: Flex
Track List: Legend
Track List: Love (Gagging Vip Mix) - Shift Recordings (Dubstep) (Explicit)
Track List: Turn Up
Track List: Wild Out (Grandtheft + Torro Torro Remix) (Single)
Similar Artists
Don't have a Pandora account? Sign up
Already have a Pandora account? Log In


text:
Mercure Paris Le Bourget HotelMid-scale hotel for business trips or leisure
Stopover or business trip? The Mercure Paris Le Bourget hotel offers you 4-star well-being 5 miles (8 km) from Paris and close to the Roissy CDG and Le Bourget Airports. We can also assist you with your seminars for up to 250 people.Laetitia NIVET, Hotel Manager
Located close to the Bourget and Villepeinte Parcs des Expositions, the Musée de l'air et de l'espace, Parc Astérix and the Stade de France, the Mercure Paris Le Bourget hotel has stylish rooms. Easy to access from the highway networks (A1, A3 and A104) and 15 min from the Roissy Charles de Gaulle Airport. After a day of work in one of our meeting rooms, relax in the restaurant, on the pool-side terrace or by savoring a glass of wine at the hotel bar.
Located between Paris and Roissy Charles de Gaulle airport, visit the Le Bourget Museum of Air and Space, located only 5 minutes from the hotel, with the Stade de France nearby. Get to the Villepinte and Le Bourget exhibition centers within no time. Our proximity to the A1, A3 and A104 highways allows easy access to Disneyland Paris and Parc Astérix. Got a meeting or seminar to organize? Contact us!
- A green setting
- Easily accessible from the highways
- Spacious meeting areas
- Outdoor swimming pool and terrace
- The "Les Aviateurs" restaurant serves homemade cuisine
This hotel participates to Planet 21 and is acting in favour of Positive Hospitality.
Services in the hotel and nearby
Online check-in
Online check-in: Your arrival will be carefully prepared by our team
Fast check-out: Simply return your key
WIFI/Internet Access
- WIFI at the hotel
- High-speed Internet
- WIFI in the communal areas
- WIFI in your room
- Private indoor parking
- Private outdoor parking
- Private enclosed outdoor parking
- Bus/coach parking area
Accessibility for people with reduced mobility
- Reduced mobility rooms
- Wheelchair access
- Reduced mobility facilities
- Accessible bathroom
- Pet allowed 10 EUR
- Outdoor unheated pool
Services and practical information
Online check-in
Online check-in: Your arrival will be carefully prepared by our team
Fast check-out: Simply return your key
WIFI/Internet Access
- WIFI at the hotel
- High-speed Internet
- WIFI in the communal areas
- WIFI in your room
- Private indoor parking
- Private outdoor parking
- Private enclosed outdoor parking
- Bus/coach parking area
Accessibility for people with reduced mobility
- Reduced mobility rooms
- Wheelchair access
- Reduced mobility facilities
- Accessible bathroom
- Pet allowed 10 EUR
- 100% non-smoking hotel
Languages spoken at the hotel
- German
- French
- Italian
- Reception open 24 hours a day
- Dry cleaning / Ironing (Nearby)
Leisure and activities
- Outdoor unheated pool
- Fitness centre
Golf (Nearby)
- Golf (Paying, Nearby)
- Golf lessons (Paying, Nearby)
- 1 restaurant(s)
- 1 bar(s)
Room service
- Hot meals
- Cold snacks
- Opening hours : Week 06:30-22:30
- Opening hours : Week-end 06:30-22:30
Business services
- 5 meeting room(s)
- Copy/print service available
Hotel location
2 Rue Jean Perrin
Tel: (+33)1/48674888
Fax: (+33)1/45910827
- LE BOURGET AIRPORT At 1km / 0.63 miles
- PARIS ROISSY CDG At 15km / 9.32 miles
- PARIS ROISSY CHARLES DE GAULLE At 25km / 15.53 miles
- CALAIS At 280km / 175 miles
- LE BOURGET At 1km / 0.62 miles
- A1 At 2km / 1.25 miles
- A3 At 6km / 3.75 miles
- LE BOURGET At 8km / 5 miles
- RER B At 3.5km / 2.17 miles
- ROISSY At 15km / 9.38 miles
Our rooms
Our range of fully air-conditioned rooms with free WIFI will ensure that you have a relaxing stay that meets all your expectations. Choose a Standard, Superior or Privilege Room.All Privilege Rooms have a view of the pool and are equipped with an iPhone/iPod docking station, Nespresso machine as well as upscale bedding and other details to create an unforgettable stay.
Standard Room with 1 double bed
Room with double bed with duvet, flat-screen TV with international channels, free WIFI and tea and coffee making facilities. Bathroom with shower, hairdryer and separate toilet.
Standard Room with Twin Beds
Room with twin beds and duvets, equipped with flat-screen television and international channels, free WiFi and tea and coffee making facilities. Bathroom with shower or bath tub, hair dryer.
Standard Family Room with sofa bed
Standard room with double bed and sofa bed, equipped with: flat-screen television with international channels, free WIFI, safe, and tea & coffee making facilities. Bathroom with shower, hairdryer, and separate toilet.
Privilege Room with 1 double bed
Experience the indulgence of our luxury room and enjoy the finest bed linen exclusive to Mercure, iPhone/iPad docking station, Nespresso machine and many other subtle touches designed to ensure the perfect stay, whether it's for business or leisure.
- 145 rooms
- 100% non-smoking hotel
- 4 rooms for people with reduced mobility
- 62 family rooms
- Pulse air
- Emergency exit map
- Bouquet with TV Canal+ and Canalsat
- Telephone
- Radio in room
- Opening windows
- WIFI in your room
- Remote control TV
- Work desk in all rooms
- Satellite/cable colour TV
- Hair dryer in bathroom
- Keycard-operated door locks
- Audible smoke alarms in rooms
- Emergency info in rooms
- Alarm clock
- Operator wake up call
- Automatic wake up call
Our restaurants and bars
- Mon
- Tue
- Wed
- Thu
- Fri
- Sat
- Sun
- Mon
- Tue
- Wed
- Thu
- Fri
- Sat
- Sun
LES AVIATEURSType of cuisine: French
Our terrace was given a whole new look for 2016: make the most of it in warm weather. Enjoy delicious seasonal dishes prepared by our new chef. New spring menu as of April 20, 2016.
- Mon
- Tue
- Wed
- Thu
- Fri
- Sat
- Sun
- Mon
- Tue
- Wed
- Thu
- Fri
- Sat
- Sun
An open-plan space that is ideal for relaxing in a warm and friendly environment. For a business meeting or a drink with friends, everything comes together in a perfect moment. Enjoy your break...
Your meetings and events
Our meeting rooms
- Number of meeting rooms: 5
- Maximum size: 240 m²
- Maximum capacity: 240
- Maximum banquet capacity: 180
Our customer reviews for Mercure Paris Le Bourget Hotel
Reviews collected from customers who booked on AccorHotels.com
Location was good for exhibition and had shutte bus and restaurant was good but a little pricy, no other restauarants round hotel. NO AIR CON on my stay and it was really hot, last night worked but still not enough, if you want cool room and its summer then you may not want to pick hotel, did provide a fan for room.
Dear Guest, We very much appreciate your comments regarding your stay at the hotel Mercure Paris Le Bourget. It is always a pleasure to receive positive feedback about our services . But you also inform us about the problem that we have with our air refresh system : we try to resolve it as soon as possible for this summer period ! Thank you again for sharing your experience, and we hope your next visit will be better than the previous one. Sincerely,
Hotel was nice, but during the breakfast hot stuff was missing and the servers were not able to anticipate and refill it on-time. Additionally in reception I wanted to pay, but I received information that it will be taken from my credit card as I was making the reservation using it. No money were taken and now I have to waste my time to make it.
Dear Mr Jakub, Thank you for taking the time to tell us about your experience in our hotel Mercure Paris le Bourget . I'am sorry that your experience did not meet your expectations. Please allow me to express my sincerest apologies. Please rest assured that we are taking the appropriate measures to address the problem and prevent future occurrence. We appreciate you sharing your concerns, and it is our hope that you will give us the opportunity to better serve you in the near future. Sincerely,
poor customer service / accounting skills as overcharged on 2 occasions. Receptionists polite and courteous no/tardy response from hotel when I informed them of error hotel renovated to good standard laklustre selection of food at weekend
Nous vous remercions d'avoir laissé un avis sur TripAdvisor. Nous formons continuellement nos équipes pour être le plus réactif possible en cas de problème. Nous espérons sincèrement vous revoir parmi nous lors d'un prochain séjour. Pierre ERIDIA Directeur
When making a booking at this hotel:
- I earn Status & Rewards points
- I do not earn points
- I can easily convert my HuaZhu Rewards points into Le Club AccorHotels points (and vice versa)
- I can use my Rewards points
- I cannot use my points
- I benefit from {{fidelityCard}} advantages
- I benefit from advantages
- I do not benefit from advantages
- I can take advantage of the Members' rate
- I cannot take advantage of the Members' rate


text:
Rhythm is a dancer :: Eurodance of the 90s
7 May 2009, 11:14 de hdsander
Stoopid Shuffle Survey
7 Ago 2006, 18:31 de momosupermoHow does the world see me?
New Pink Floyd
Comment: God, I hope not
Will I have a happy life?
When Somebody Thinks
Comment: Jeez that's obscure
What do my friends really think of me?
Shouldn't Have Done That
Comment: Very definitely. Tho not so much nowadays!
How can I make myself happy?
Katse Kala (Behave Yourself)
Comment: Good advice, thanks Elena
What should I do with my life?
Mother London
Comment: No thanks, I'd rather sit in a bucket of poo
Why is life full of so much pain?
Bout The Bass
Comment: Great. All the pain in the world is attributed to bass players, thanks very much...
Will I ever have children?
Comment: And what about Playboy as well - I have 2 kids!
What is some good advice for me?
Comment: "David" is good advice?
What is happiness?
The Key, The Secret
Comment: Well, that's true... but not much use as a description
What is my favorite fetish?
What Katy Did Next


text:
Breather Valves
Protect sealed containers from pressure, moisture, and other adverse conditions.
Humidity Indicators
External monitoring of humidity levels inside enclosures.
Container Access Products
Provide access to enclosure contents without opening the enclosure.
Shock Indicators & Recorders
Provide detection and recording of shock and vibration during transport.
Protect contents of sealed containers from moisture or oxygen.
Tie-Downs & Kevlok Shelving
Military-grade equipment for securing items for storage and transport.
Contains desiccant in a housing that provides moisture protection for many applications.
Nitrogen Purging Systems (NEPS)
Purge moisture from a sealed enclosure using nitrogen.
Vapor Phase Corrosion Inhibitors (VpCI)
Packaging, coating, and sealing to prevent rust and corrosion.
Aerospace & Defense
Home Use & Storage
Power Transmission & Utilities
Container & Transit Case Manufacturers
Food & Pharmaceuticals
Transportation, Packaging, & Logistics
The TA248-1 Immersion Proof Breather will withstand immersion in water to a depth of 1 meter for 30 minutes without any water ingress. The maximum temperature difference between the water and breather is 15°C.
Aluminum alloy, black anodize.
Weight: 3.2 grams
The TA248-1 is appropriate for use on NEMA 1, 2, 3, 3R, 3S, 4, 5, 6, 12, 12K, and 13 enclosures, as well as IP65/IP67 enclosures. This item may also be appropriate for use on other NEMA or IP enclosures, depending upon the application. Contact AGM's Engineering department for more information.
Dealer NSN Quotes
Foreign Distributors
Customer Ratings
Capabilities & Facilities
© 2017 AGM Container Controls, Inc. All Rights Reserved.
3526 East Fort Lowell Road, Tucson, AZ 85716


text:
It only takes a minute to get started. Fill out our simple sign up form and login to the site.
This step is up to you but will greatly raise your chances of your profile being viewed by interested members. Write a few sentences about yourself, your pasttimes and upload some good photos of yourself.
Use our website's sophisticated search to find members who satisfy your requirements. Or just flip through listings and find people that attract you.
Discovered someone who interests you? Send a letter to them or just a wink and see if anything develops. With a little luck you'll be on your way to locating your suitable date.
It'll only take 30 seconds


text: Divxturka.net is using Redbunker! Because Redbunker is better than Hotfile, Netload and Rapidshare ! Click here and buy REDBUNKER premium account! Plot: In 1949, when gangster Mickey Cohen seems to have an iron grip of Los Angeles. And no one is willing or alive to testify against him. So Police Chief Parker decides to form a special unit whose mission is to take down Cohen. He chooses Sgt. O'Mara, a World War 2, vet to lead the unit. O'Mara chooses 4 cops and asks another cop and WW2 vet, Jerry Wooters to join him but Wooters is not interested. But when he witnesses the murder of a young boy by Cohen's people, he joins them, and they decide to take apart Cohen's organization. Cohen wonders a rival is going after him, but eventually he realizes it's the cops. Genre: Action | Crime | Drama | Thriller IMDB rating: 7,0/10 from 37.929 users Directed by: Ruben Fleischer Starring: Sean Penn, Ryan Gosling and Emma Stone Release Name: Gangster.Squad.2013.INTERNAL.DVDRip.XViD-iND Size: 700 MiB Video: AVi | 640×272 | 825 Kbps Audio: English | MP3 | 128 kbps Runtime: 1h 53mn Information: Code: http://www.imdb.com/title/tt1321870/ Download: Code: Single Link No Extraction http://www.redbunker.net/dln1lr10p7iy/ind-gsquad.avi.html Screens:


text:
Americans are encouraged to take a moment today to remember the attack of Pearl Harbor that occurred seventy years ago to the day.
The attack by the Imperial forces of Japan targeted the largest naval installation of the U.S.: Pearl Harbor in Honolulu, Hawaii.
The next day President Franklin D. Roosevelt, addressing a joint session of Congress, said a state of war existed between the United States of America and Japan. He called December 7, 1941, "a day which will live in infamy."
Special services will be held at Knox V.F.W. Post 748 this afternoon at 2 p.m. The public is cordially invited to attend.


text:
You have no items in your shopping cart.
You have no items in your shopping cart.
Fast chills in minutes one glass at a time Why wait? The skybar Wine Chill Drop cools a single glass of wine to the ideal serving temperature up to 20 times faster than your refrigerator can chill a full bottle.
Now when you get home from the wine shop, you don't have to wait hours for that special bottle of wine to chill in the fridge. Enjoy a glass right away!


text:
Posted by anonymous
I love this office, they make you feel at home and don't treat me like I'm just a number or judged. Sarah and Shelly are so sweet and I can talk to them easily, no being uncomfortable. I'll definitely be referring Sarah and using her from now on!


text:
Log In to abcteach
Free Account (Settings)
Six page summer writing journal, with space to color and draw pictures.
Six creative prompts for writing "just so" stories. CCSS.ELA-LITERACY.W.5.3
Imagine you are a professional chef. Write what you would like to have for breakfast, lunch, and dinner. Include the ingredients and draw a picture of each dish.
Write an opinion paper on the importance of freedom of speech. Do you think this is an important right? Why? CCSS.ELA-LITERACY.W.5.1
Students draw and write what they know about fall. It is aligned with the Common Core standards. CC: ELA: W.2.K
A winter-themed booklet, including four pages for students to color and write a few sentences describing each picture.
This is a writing activity for the first day of first grade.


text:
|Home Software category Just in softwares Submit a program Contact us Link to us
Home > Web Development::Flash Tools > Obright XML Template 1.0
Obright XML Template 1.0
Obright is an Flash XML Template with deeplink,2 level menu.Company: ActiveToFocus.com
Platform: Win98,Win2000,WinServer,WinXP,WinVista,WinVista x64,Win7 x32,Win7 x64,WinMobile,
Size: 73 KB
Price: USD $20.00
Release Date: 2011-06-13
Screenshot URL: http://activetofocus.com/upload/products/product_67.jpg
Category: Web Development::Flash Tools
Obright is an Flash XML Template with deeplink,2 level menu.Supports fullscreen background with 15 effect,slides with 13 effect,musicplayer, social button,about,news,services and support image/video gallery,php contact. You also can set logo/menu layout and site information/social layout.You can add any module into the template just through the xml file. It can also be used alone with the site's framework.
Related keywords:
obright flash template v1 video image gallery site website fullscreen deeplink two level menu 15 effect background social logo m
Obright XML Template Related Titles:ThunderSoft GIF to SWF Converter 1.6.3 - Batch convert gif files to swf files and extract gif image serial.
ThunderSoft Flash to Video Converter 2.4.7 - A professional Flash converter for Flash SWF to video conversion.
ThunderSoft Flash to HTML5 Converter 2.4.7 - A professional Flash converter for SWF files to html5 video conversion.
ThunderSoft SWF to GIF Converter 2.4.7 - A professional converter for SWF file to animated gif conversion.
Free SWF to Video Converter 2.4.7 - A professional Flash converter for Flash SWF to video conversion.
Snosh 2.3 - Convert video, audio and images into Flash
*Spherical Panorama Flash Internet Publisher 045 - Spherical Panorama Flash Internet Publisher, for 360 degree video
*Spherical Panorama Hot Spot Flash Internet Publis 010 - Spherical Panorama Hot Spot Flash Publisher, for 360 degree video
Spherical Panorama Html5 360 Video Publisher 005 - Spherical Panorama Html5 Internet Publisher, for 360 degree video
Print2Flash Free Edition 4.0 - Converts any printable document to Adobe Flash (SWF) file, HTML page or SVG file
SP Flash Tool 5.15 5.1524 - Smartphone Flash Tool help to upgarade or downgrade android ROMs
KoolMoves 9.3.0 - Easy to use Flash and Html5 animation software
Audio & Multimedia Business Communications Desktop Development Education Dwg Converter Games & Entertainment Graphic Apps Home & Hobby Network & Internet News Security & Privacy Servers System Utilities Web Development Others
Copyright © 2000 - 2017 FreeSharewareCenter.com - Freeware and Shareware Download Center.
All Rights Reserved.


text:
Sun Tracker
Picking A Trolling Motor For A Sun Tracker
- Electric steer motors offer lots of features and are a great choice
- Consider a motor with i-Pilot - it opens up an entirely new set of features and on-the-water experiences.
- Purchase and install a quick release bracket - it will make life a lot easier for storage, service, trailering and boat covers.
Sun Tracker Thrust Selection
Please remember that boat weight is the most important criteria to use when selecting an appropriate motor size. Boat length is provided as a helpful guideline but should not be used as a primary determinant of motor size. If you're unsure how much your boat weighs, you can look it up in the NADA boat directory. Learn more in our detailed Thrust Guide.
Tell us about your boat and we'll filter the results to motors with ideal thrust.


text: PARIS, January 30, 2013 /PRNewswire/ -- Gameloft®, a leading global publisher of digital and social games, today announced its partnership with the Tencent Mobile QQ Game Platform, the most popular Chinese mini casual game open platform, for the exclusive publishing of the Android version of Gameloft's most successful social game, Ice Age Village, in Mainland China. Tencent has grown into one of China's largest and most used Internet service portals. Today the Tencent Mobile QQ Game Platform has over 350 million registered user accounts, making it one of the biggest online game communities worldwide. Ice Age Village is a social simulation game resulting from an exclusive agreement between Gameloft and Fox Digital Entertainment. Since launching worldwide last April on the App Store and Google Play, the game has been downloaded over 40 million times (over 10% of downloads originating from the Chinese App Store). The game has been #1 in the Top Free Games category on the Chinese App Store with a substantial number of 5-star consumer ratings. Ice Age Village offers players the ability to immerse themselves in the unique world of Twentieth Century Fox's Ice Age, one of the most successful franchises in animation history. Players interact with beloved heroes such as Sid, Manny and Diego, while simultaneously playing through a series of quests and mini-games featuring everyone's favorite saber-toothed squirrel, Scrat. " We ar e thrilled to be partner ing with Tencent for local distribution of the Android version of Ice Age Village ," said Gonzague de Vallois, Gameloft's Senior Vice President of Publishing. " It is one of Gameloft ' s major initiatives for our Android publishing strategy in China . By leveraging Tencent ' s huge user base , we are truly able to provide the best gaming experience to more Chinese gam ers. " Simon Li, the Vice President of Tencent Mobile Product Department, said: " We are excited to cooperate with Gameloft on this exclusive title. As the biggest game publishing platform in China , our aim is to bring the best quality games to our users. We are delighted that Gameloft shares the same vision with us and we look forward to the success of this great title on our platform. " Chinese players can experience the game for free via the QQ Game platform now.


text:
When I was first making the transition from Conservative to Orthodox, an observant Conservative family I knew invited me over for Shabbos essentially to have an "intervention." "Look," they told me, "you can be kosher and shomer Shabbos without becoming one of THEM. If you become Orthodox – you'll become a rock-thrower."
Where did an intelligent, observant, well-meaning family get such an idea? From the headlines, of course. Rock throwing, spitting on girls, refusing to sit next to women on planes and subsequently inconveniencing the rest of the passengers – I don't know how many there are out there who do these things while wearing the "Orthodox garb," but these actions go against the very roots of being a religious Jew. And the trouble is that our entire community gets judged by it.
"Derech eretz kadma l'Torah" (Common decency is a precursor to Torah) states the Talmud. "V'ahavta l'reyecha k'mocha" (Love your neighbor as yourself) the Torah commands us. And as the great rabbi Hillel explained the entire Torah on one foot: "What is hurtful to you do not do to your fellow. The rest is commentary."
As I read these headlines of people doing awful things in the name of Orthodox Judaism I cringe, then cringe some more. So I decided to be proactive. The papers write stories about all the people who don't seem to follow these Torah principles about common decency, so we will come together on social media and collect many of the Orthodox Jews who do. We can't stop extremists from being extreme, but we can create a record of many of the people who are trying to do the right thing.
Please comment below to indicate that you're an Orthodox Jew who strives to live by these aforementioned Torah principles and share it with as many people as you can who will do the same.
Thank you.


text:
Need a Dairy Allergy Test in Marshfield, WI? Simply order online 24/7 and get a fast, affordable Dairy Allergy Test at a lab near you (Find More Locations):
Why would I get a Dairy Allergy Test?
A Dairy Allergy Test checks the blood for antibodies related to a dairy allergy. People in Marshfield, WI order the Dairy Allergy Test for general screening or to guide therapy.
How much does a Dairy Allergy Test cost?
Our Dairy Allergy Test prices include the doctor's order that you need to get tested in Marshfield, WI, all lab fees and taxes, and a pdf copy of your results. For current prices, please CLICK HERE.
We are pleased to offer an Dairy Allergy Test in Marshfield, WI.
Dairy Allergy Test in other cities near Marshfield, WI:Arpin | Auburndale | Babcock | Blenker | Chili | Hewitt | Junction City | Milladore | Nekoosa | Pittsville | Port Edwards | Rudolph | Stratford | Vesper | Wisconsin Rapids


text:
Click on the "Convert & Download Video + MP3" button to start the video conversion. After the video conversion is finished, you can download the converted video in the formats MP4 or 3GP (for mobile phones) or you can download the converted audio as a MP3 music file. This online service is completely for free.
please like and comment this video and also ssubcrine
DMCA: Are you the owner of this convertable material and do you want to disable the conversion of your media on clip.dj? Then you can request a conversion block for this video.609
Hagemaru episode 19 in hindi part 2.
Watch All Episodes of Hagemaru In Hindi Urdu ...
Hagemaru Cartoon hagemaru in hindi hagemaru in hindi pogo tv hagemaru in hindi full episodes hagemaru in hindi pogo tv full ...
there is previous parts 2,3 check my channel and watch Subscribe and like this video.
hagemaru cartoon in hindi part 5,hagemaru in hindi pogo tv,hagemaru in hindi full episodes,hagemaru in hindi.
hagemaru in hindi Part 4.
Watch All Episodes of Hagemaru In Hindi Urdu ...


text:
3 left side speakers not working
View Single Post
Registered User
Join Date: Aug 2006
Location: NJ
Posts: 23,702
My Ride: '99 328i 300K miles
View My Garage
Originally Posted by
The amp itself, as the source, could suffer an intermittent output problem. When near ground or high resistance is detected, they go into protection and snuff the output. I'd open the common (channel) connection points and use temporary by-pass jumpers for testing to see if you can restore certain speakers while others are disabled. May at least tell you where the problem is. Tweeters, mid-bass and shelf speakers have dedicated amp cross-over outputs from the amp. The amp therefore is multi-channel. I can't see why front door and the rear shelf combo fail as separate amps unless the entire channel source (preamp signal) is dying? Are there any left-side speakers that remain working?
Yea, both left doors have a speaker working.
I don't know what 'open common connection points' means, though I can certainly jump from a working speaker into a non-working one...but I don't think it's the speaker and I know it's not the entire channel.
Hmmm? So a wire hitting ground could coz the amp to shut off that one speaker?
Once again, why I'm glad I'm deaf in one ear and don't listen to the radio!
See me in June!
Ha! Ridgehill, Yonkers, June 8, 8 p.m. & Broadway Comedy Club, Sat., June 10, 6 p.m., hosting at the Comedy Cove, Springfield, NJ, June 16 & 17 for Joe DeVito, 9 p.m.
See Facebook for other shows and PM me if you can make one.
Please view this vid so it looks like I'm popular. Please!
dmax on Facebook
Mangofy your E46!
View Public Profile
Find more threads by dmax
Find More Posts by dmax
Leave feedback for dmax (0)


text:
How miley cyrus become famous?
1,075,059questions onAdd New Page
Miley Cyrus was first a cheerleader she had no friends and wanted to get herself busy so she tried out... middle school came and she had a tough time with bullies... then She became famous because she is the daughter of Billie Ray Cyrus.
When daddy got money, daughter can do what she wants.


text:
The way I see.
This is how I saw them. This is how everyone saw them but refused to admit that it was what they were seeing. Difference in people turns into hatred and disgust. People never talked to them because they weren't like everything else in their lives, they were the two realest people in our world and people couldn't take it.
The two people in my life who were always there no matter what. We were like the three musketeers although that's not how it worked in reality. There wasn't the three of us.
There was Bob, Janet and me. We were best friends, although Bobs best friend was really Kenny, forever will be Kenny and Janet's best friend is Bob. Kenny's best friend is also Bob. My best friend, no points for guessing Bob.


text:
Carhartt Anglistic Sweater Navy Heather
The Carhartt Anglistic Sweater in Navy Heather is another staple piece from Carhartt you just can't fault. It's construction being 78% wool, 19% cotton and 3% Acrylic. It features a raglan sleeve with ribbed cuffs, ribbed neckline and ribbed waistband. Carhartt have kept this knit clean and simple with minimal branding located at the bottom left of the jumper above the hem.
You know what else you should get: