OUTBREAK A Film Review Copyright Dragan Antulov 2000
When people think about the eradication of human race, they usually envision nuclear holocaust, sudden change of climate, asteroids falling from the sky or similar spectacular events. But history teaches us that the equally deadly potential lies in tiny microscopic organisms - viruses and bacteria able to practically wipe out entire nations. Invention of antibiotics and progress of medical science in the last century or so created illusion that the infectious diseases are the thing of the past. That illusion was shattered with the epidemic of AIDS in 1980s, and people are now more willing to pay attention when media starts reporting about various exotic ailments that happen to be contagious, deadly and untreatable. Few of those ailments are as scary as various forms of haemorrhagic fever - extremely contagious viral infection that causes one of the most unpleasant deaths imaginable. Probably the most notorious among them is Ebola, disease which killed hundreds of people in central regions of Africa five years ago. By the unusual yet chilling coincidence, these events happened roughly in the same time as the premiere of OUTBREAK, major Hollywood feature film that dealt the effects of Ebola-like outbreak on modern society.
The "protagonist" of this film is Motaba virus, strain from Central Africa which is able to kill infected human in less than 48 hours upon contagion. Despite not being airborne and thus having limited contagion potentials, the strain is so deadly that the two US Army experts in late 1960s would rather firebomb the infected camp in Central African jungle than allow infection to spread further. Some thirty years later, Motaba again strikes Central Africa, but, as usual in such circumstances, isolated villagers are dead before they can spread the infection further. Unfortunately, monkeys can carry the virus and one of them is caught and smuggled into USA. Soon, the population of Cedar Creek, small town in California, starts getting sick and dying like flies. Colonel Sam Daniels (played by Dustin Hoffman), U.S. Army top expert for infectious diseases disobeys the orders of his superiors - General Billy Ford (played by Morgan Freeman) and General Donald McClintock (played by Donald Sutherland) - and flies to now quarantined Cedar Creek in order to investigate the origin of mysterious plague. There he meets his estranged wife Robby Keough (played by Rene Russo) who investigates disease as the head of CDC team. They start working together while the crisis escalates, because the strain mutated into airborne form. While Daniels and Keough struggle to find possible cure and thus stop the epidemic from spreading to the rest of the nation, McClintock offers simple but grim alternative - firebombing the town and incinerating the virus together with all the inhabitants.
OUTBREAK was directed by Wolfgang Petersen, German filmmaker who enjoys reputation of one of the best craftsmen in modern Hollywood. His talent is at display in this film, especially in the way he paces film and turns screenplay by Laurence Dworet and Robert Roy Pool into thought-provoking yet exciting story. The same feeling of doom and helplessness that marked DAS BOOT, Petersen's best known film, could be sensed here too, but Petersen creates it through entirely different methods. Events in the film happen at the rapid pace, and the viewer could empathise with the protagonists who see world literally falling apart before their eyes, in the same way microscopic bug destroys the bodies of their victims. Petersen is uncompromising in the portrayal of the destructive effects of haemorrhagic fever - nobody is immune from its devastating effect, people get infected and die regardless of their race, religion, gender, age or whether they are nice people or not (all illustrated with almost comedic but chilling shots of virus travelling from one unsuspecting host to another). What is even more chilling in this film is the way epidemic destroys society indirectly - human relations, even most basic must be severed, kindness and compassion equals suicide, people must leave their loved ones in order to survive and the only way to stop the apocalypse is to use even less considerations and more genocidal potential than the illness itself. Because of the chillingly realistic and believable depiction of the apocalypse that might wait around the corner turned OUTBREAK was supposed to be one of the best disaster films ever made in Hollywood.
Unfortunately, that didn't happen. Although Petersen managed to overcome some unnecessary plot distractions in the screenplay (marital problems of the protagonists), he couldn't overcome certain realities of 1990s Hollywood. And one of such realities is the unwritten rule that any film with a budget over 50 million US$ must have obligatory happy ending in order to satisfy the audience. So, in the last third, film suddenly changes genre and general mood - what was supposed to be dark, disturbing drama about conflict between Humanity and Nature is suddenly turning into light-hearted actionfest that feature conflict between Good Guy (Dustin Hoffman not very comfortable and even less believable as action hero) and Bad Guy (in the form of Donald Sutherland who repeats his evil bureaucrat/officer routine for the umpteenth time). Naturally, all notions of credibility go down the toilet and the viewers' intelligence is repeatedly insulted with the series of implausibilities - while average R&D in real life pharmaceutical industry takes years to create drugs, our hero manages to extract the medicine in the matter of minutes, just to save his wife in time; bomber crews, which are trained to exterminate millions of innocent civillians without any remorse, are simply talked into disobeying the direct order). That last segment of OUTBREAK - flooded with cliches and cheap sentimentality - is probably the one of the most disappointing pieces of celluloid ever made in 1990s Hollywood and it could serve as the perfect illustration of the sad state of American film industry.
To be fair, even in this segment, Petersen handles the action very well, and OUTBREAK in general looks like a well-acted and well-crafted film. But, among the many missed opportunities of 1990s Hollywood, this one is probably the most bitter.
RATING: 4/10 (+)
Review written on October 24th 2000
Dragan Antulov a.k.a. Drax Fido: 2:381/100 E-mail<EMAIL_ADDRESS>E-mail<EMAIL_ADDRESS>E-mail<EMAIL_ADDRESS>Filmske recenzije na hrvatskom/Movie Reviews in Croatian http://film.purger.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


| 1 | package nl.tudelft.jpacman.level; | |
| 2 | ||
| 3 | import java.util.Map; | |
| 4 | ||
| 5 | import nl.tudelft.jpacman.board.Direction; | |
| 6 | import nl.tudelft.jpacman.board.Unit; | |
| 7 | import nl.tudelft.jpacman.sprite.AnimatedSprite; | |
| 8 | import nl.tudelft.jpacman.sprite.Sprite; | |
| 9 | ||
| 10 | /** | |
| 11 | * A player operated unit in our game. | |
| 12 | * | |
| 13 | * @author Jeroen Roosen | |
| 14 | */ | |
| 15 | public class Player extends Unit { | |
| 16 | ||
| 17 | /** | |
| 18 | * The amount of points accumulated by this player. | |
| 19 | */ | |
| 20 | private int score; | |
| 21 | ||
| 22 | /** | |
| 23 | * The animations for every direction. | |
| 24 | */ | |
| 25 | private final Map<Direction, Sprite> sprites; | |
| 26 | ||
| 27 | /** | |
| 28 | * The animation that is to be played when Pac-Man dies. | |
| 29 | */ | |
| 30 | private final AnimatedSprite deathSprite; | |
| 31 | ||
| 32 | /** | |
| 33 | * true iff this player is alive. | |
| 34 | */ | |
| 35 | private boolean alive; | |
| 36 | ||
| 37 | /** | |
| 38 | * Creates a new player with a score of 0 points. | |
| 39 | * | |
| 40 | * @param spriteMap | |
| 41 | * A map containing a sprite for this player for every direction. | |
| 42 | * @param deathAnimation | |
| 43 | * The sprite to be shown when this player dies. | |
| 44 | */ | |
| 45 | protected Player(Map<Direction, Sprite> spriteMap, AnimatedSprite deathAnimation) { | |
| 46 | this.score = 0; | |
| 47 | this.alive = true; | |
| 48 | this.sprites = spriteMap; | |
| 49 | this.deathSprite = deathAnimation; | |
| 50 | deathSprite.setAnimating(false); | |
| 51 | } | |
| 52 | ||
| 53 | /** | |
| 54 | * Returns whether this player is alive or not. | |
| 55 | * | |
| 56 | * @return true iff the player is alive. | |
| 57 | */ | |
| 58 | public boolean isAlive() { | |
| 59 | return alive; | |
| 60 | } | |
| 61 | ||
| 62 | /** | |
| 63 | * Sets whether this player is alive or not. | |
| 64 | * | |
| 65 | * @param isAlive | |
| 66 | * true iff this player is alive. | |
| 67 | */ | |
| 68 | public void setAlive(boolean isAlive) { | |
| 69 | if (isAlive) { | |
| 70 | deathSprite.setAnimating(false); | |
| 71 | } | |
| 72 | if (!isAlive) { | |
| 73 | deathSprite.restart(); | |
| 74 | } | |
| 75 | this.alive = isAlive; | |
| 76 | } | |
| 77 | ||
| 78 | /** | |
| 79 | * Returns the amount of points accumulated by this player. | |
| 80 | * | |
| 81 | * @return The amount of points accumulated by this player. | |
| 82 | */ | |
| 83 | public int getScore() { | |
| 84 | return score; | |
| 85 | } | |
| 86 | ||
| 87 | @Override | |
| 88 | public Sprite getSprite() { | |
| 89 | if (isAlive()) { | |
| 90 | return sprites.get(getDirection()); | |
| 91 | } | |
| 92 | return deathSprite; | |
| 93 | } | |
| 94 | ||
| 95 | /** | |
| 96 | * Adds points to the score of this player. | |
| 97 | * | |
| 98 | * @param points | |
| 99 | * The amount of points to add to the points this player already | |
| 100 | * has. | |
| 101 | */ | |
| 102 | public void addPoints(int points) { | |
| 103 |
1
1. addPoints : Replaced integer addition with subtraction → KILLED |
score += points; |
| 104 | } | |
| 105 | } | |
Mutations | ||
| 103 |
1.1 |


By Commercial Segment
- Basic of Mob Programming by Tarandeep Singh - Empowered Teams by Emily Bache - 100% Refactored Code by Llewellyn Falco - Others on medium


--- author: Shazron categories: app date: '2009-11-24 19:01:05' link: http://blogs.nitobi.com/shazron/2009/11/24/phonegap-mobile-spec-tests-on-iphone/ permalink: /2009/11/24/phonegap-mobile-spec-tests-on-iphone/ slug: phonegap-mobile-spec-tests-on-iphone status: publish title: PhoneGap Mobile Spec tests on iPhone type: post format: html ---
Could not use HTML 5 or Flash for playback. You can download the file as MPEG4/H.264 or Ogg Theora file.
Fil who has been working on the Mobile Spec came over and we tested the mobile spec on the current (EDGE) version of iPhone PhoneGap, and the tests look pretty sweet (see video).
It was pretty easy, I created a new Phonegap-based Application from the Xcode template, plopped in the contents of the Mobile Spec, and just ran the app in the iPhone Simulator. In this session, we see that iPhone PhoneGap passes 51 out of 64 tests, for a 79% pass rate.


[PyConID Talk] Introduction to Functional Programming in Python
What is Functional Programming?
Programming paradigm
The programming paradigms can be roughly divided into four categories, namely the imperative programming, where you specify do this, do that, then do this. Python is an imperative language. The second category is object oriented programming, where you model your data in the form of classes, objects and methods. Java, C++ and even Python support OOP. The third category is the logic programming paradigm, where you define some facts and relations and then query data on the basis of them. Prolog and Lisp is an example of this. The fourth category is our functional programming paradigm, where ‘function’ is the keyword to remember. Everything is done using functions.
Way of approaching problems
It is a way of approaching problems, a different way of thinking of the tasks at hand. If you have always programmed in Java, C#, Python etc., you might find it hard to write programs initially using functional programming. This is what at least happened with me!
Functions, Functions everywhere
Everything is expressed in the form of ‘functions’. Function is anything that takes an input, performs a specific task and gives out output and nothing else!!
Let’s see a simple example of “hello world”:
1
2
3
str1 = 'hello'
str2 = 'world'
print str1+' '+str2
1
2
def hello():
return 'hello world'
The first code snippet just concatenates and prints two strings, but the second code snippet returns the string from a function. Hence, the second one is clearly functional programming whereas first one is not.
Features of functional Programming
Pure Functions
Pure functions are functions without ‘side effects’. It takes an input and only input and computes the output. Side effect is anything other than just taking an input, processing it and returning an output, which includes any interaction with the outside world. In brief, it means taking something from the outside world and involving it in someway with what the function does.
Example- A function might take a global variable which means that it does not depends on only the input of the function. Printing something on the terminal or reading data from keyboard, mouse etc., where mouse and keyboard are the objects of outside world is also a side effect.
So, you want your function to take an input and only input and compute the output and return that. That’s it!
One of the key parts of functional programming is thinking as ‘purely’ as possible.
Immutability
Avoid mutability, i.e. never change the data.
Consider the example below,
In this destructive update example, we can see that in imperative languages, the natural way to insert a value into a table is to modify the table in place, ‘which is a side effect’, because it is modifying the input. But in functional languages, you create a new version of the table while the old version is still there, which can be used for purposes of comparisons or implementing undo.
If you update the data in place and suppose you have the same data at other places as well, i.e. somewhere in other functions, this will produce the much dreaded BUGS! Oh no!
So the advantage of immutability is parallel programming, since the data remains the same always, people in teams at different geographical locations can access the data without worrying about ‘Oh, this might be changed now, i need to get the latest commit of the project!’.
Some people even think programming with dozen of cores that the CPU’s will have in future is the killer application of functional programming!
Recursion
Use recursion instead of loops and iterations since pure functional programming languages have NO LOOPS! Yes, no for loop, no while loop. But why?
Pure functional programming means programming without side effects. Which means if you write a loop, the body of the loop can’t produce side effects. Thus, if you want your loop to do something, it has to reuse the result of the previous iteration and produce something for the next iteration. This does not have a huge advantage over directly writing a recursive function for the loop.
Tail Recursion Optimization
You must have a question, if the recursion is done a large number of times, it will exhaust the space. The functional programming languages optimise recursion using TRO.
Consider this example,
There’s this function a(), which is returning b(). However, b() is just calling c() and will return the value of c() to a(). So technically, b() is just doing the work of a mediator between a() and c(). So the stack frames for a() and c() will be made which will hold the local variables and address parameters for both the functions, but no stack frame will be made for b() because it is just calling c() and returning the value to a(). This is called last call optimisation. Tail call optimisation/ Tail recursion optimisation is a special case of last call optimisation, where the function calls itself repeatedly, therefore replacing its stack frame and not creating new ones. So even if you call a function million number of times, it will never exhaust the stack space, since it is ‘replacing’ itself each time the function is called.
So, the useful part is, because only the final result of each recursive call is needed, earlier calls don’t need to be kept on the stack. Instead of “calling itself” the function does something closer to “replacing” itself, which ends up pretty much looking like an iterative loop. This is a pretty straightforward optimization that almost all functional programming compilers generally provide.
Lazy Evaluation
Imperative programming languages follow eager evaluation, i.e. expression is evaluated as soon as it is bound to a variable. It forces the evaluation of expressions that might not be needed at run time.
But lazy evaluation means that expressions are not evaluated when they are bound to variables, but their evaluation is deferred until their results are needed by other computations. In consequence, arguments are not evaluated before they are passed to a function, but only when their values are actually used.
Fo example, consider this Haskell code snippet which computes the length of the list
1
2
len [] = 0 -- Length of empty list is 0
len (x:xs) = 1 + len xs -- Recursively call len function
x and xs both are variable where x is the head of the list and xs is the tail of the list. You can see that we have neither given any value of x nor using it anywhere in the logic, but the program will merely give the warning but compile as expected, because Haskell is a lazily evaluated language and it will not evaluate the value of x until it really needs it.
Partial application
Partial application meand freezing some of the arguments of a function
Consider this Haskell code snippet,
1
2
3
4
add :: Int -> Int -> Int
add x y = x + y
addOne = add 1
We are defining addOne with already prefixed argument of add as 1.
So if we need to compute the sum of 3+1, we would just do
1
addOne 3
We can consider this as:
1
2
> addOne 3
> (add 1) 3
Functions as ‘first class citizens’
We can assign the functions to variables, store them in data structures, pass them as arguments to other functions, and even return them as values from other functions.
How is functional programming done in Python?
Immutable Data types (String/NamedTuples/Frozenset)
Namedtuples
Tuple uses numerical indices to access its members, whereas namedtuple assigns name as well as numerical index to its members, hence preventing the errors caused by explicitly remembering the index as in tuples. Each namedtuple is represented by its own class. The arguments passed are name of the class and a string containing its elements.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from collections import namedtuple
# Arguments are name of the class and a string containing the names of the elements
Person = namedtuple('Person', 'name gender')
alisha = Person(name = 'alisha', gender = 'f')
# Fields by name
print ("Fields accessed by name are:")
print ("Name is %s and gender is %s."%(alisha.name, alisha.gender))
# Fields by index
print ("Fields accessed by index are:")
print ("Name is %s and gender is %s."%(alisha[0], alisha[1]))
# Try mutating the elements (will get error)
alisha.name = "somerandomname"
Frozenset
frozenset is an immutable version of the Python set. Once created, it cannot be modified. Due to this reason, they are used as dictionary keys as well. It can be empty or can take a single parameter which is an iterable (lists, tuples, dictionary etc.)
1
2
3
4
5
6
7
8
9
10
11
12
food = ['cake', 'burger', 'pizza']
fSet = frozenset(food)
print (fSet)
# Empty frozenset
print (frozenset())
# Try adding a new element: error
fSet.add('chocolate')
# Try removing a new element: error
fSet.remove('cake')
Functions as ‘First Class Objects’
Python’s functions are first-class objects.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
def multiply2(a):
return a*2
# Function assigned to variable
var_multiply = multiply2
print (var_multiply(2))
# Function store in data structure (list here)
test_list = [multiply2, 7, 8]
print (test_list[0](3))
# Loop over list as with normal variables
for i in test_list:
print (i)
# Function passed as argument to other functions
def add(multiply2, b):
a = multiply2(3)
return (a+b)
add(multiply2, 3)
# Return a function from another function
def greater(a, b):
def yes_greater():
return ("Oh yeah I am the bigger one! :)")
def no_greater():
return ("Oh no I am the smaller one! :(")
if a > b:
return yes_greater
else:
return no_greater
greater(5, 2)()
Higher Order Functions
Higher order functions take in other functions as the argument or can also return a function. map, filter and reduce are perhaps the most common higher order functions found in almost all programming languages.
map()
Map takes a function and a collection of items. It makes a new, empty collection, runs the function on each item in the original collection and inserts each return value into the new collection. It returns the new collection.
1
2
3
4
5
6
7
def multiply2(a):
return (a*2)
test_list = [3,5,6,7,8,9,11,12]
# Multiply every element of list by 2
return_list = list(map(multiply2, test_list))
filter()
Filter takes a function and a collection of items. It filters out all the elements of the collection for which the function returns true.
1
2
3
4
5
6
7
8
def greater_elem(a):
if a > 10:
return True
else:
return False
# Filter if elements are greater than 10
return_list = list(filter(greater_elem, test_list))
In this example we call the greater_elem() function on every element of the list and return the elements which are True for the function.
reduce()
Reduce takes a function and a sequence and applies the function continually on the sequence and returns a single value.
1
reduce(lambda x,y: x*y, [47,11,42,13])
In this example, we are calculating the product of all elements in the list. So the evaluation order works like:
1
(((47 * 11) * 42) * 13)
P.S. reduce() is a part of functools module, so call it as functools.reduce() or import reduce from functools first.
Lambda construct
The lambda helps define the functions in a one-line fashion. In fact, the lambda keyword is pretty prominent in functional programming (and not just Python), and has its roots in Lambda Calculus – one of the ‘ancestors’ of functional programming. Functions initialized with lambda can also be called anonymous functions. We aren’t really giving it a name, just defining it on-the-go and passing it as an argument.
1
2
3
4
test_list = [3,5,6,7,8,9,0]
# Multiply every element of list by 2
return_list = list(map(lambda x: x*2, test_list)) # Define the multiply by 2 function using lambda
List Comprehensions
They are faster than map. A list comprehension can be interpreted as a simple binding because there are no more mutations or reassignments. List comprehensions are directly inspired by Haskell list comprehensions. They are not lazily evaluated though.
1
[x * 2 for x in test_list]
The same function of multiplying an element by 2, we are defining using list comprehensions instead of lambda as in previous section.
Iterators and Generators
Iterators
- Iterators represent a stream of data which returns one element at a time (thus following lazy evaluation).
- It must support a next() method, which returns the next element of the stream and return StopIteration exception if there is no next element.
- Lists and dictionaries both support iteration.
- Iteratora can be materialized it using list and tuple.
- Sequence unpacking can be done if number of elements is known.
- Files also support iteration by calling the readline() method until there are no more lines in the file. readLine() is lazily evaluated.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
list1 = [2,4,7]
# iter() takes an iterable and gives one element at a time
a = iter(list1)
print (a.__next__())
print (a.__next__())
print (a.__next__())
# print (a.__next__()) -will give StopIteration exception
# Materialize the iterator using lists and tuples
list2 = [3,7,8,3,8]
l = list(list2)
t = tuple(list2)
print (t)
print (l)
# Unpacking the iterator
list3 = [7,8,4]
x = iter(list3)
(a,b,c) = x
print (a,b,c)
Generators
- Generators returns iterator that returns a stream of values.
- Normal functions vs generators: When a function reaches the return statement, local variables are destroyed and the value is returned to the caller. A later call to the same function creates a new private namespace and a fresh set of local variables, whereas in a generator function, the local variables aren’t thrown away on exiting a function and we can later resume the function where it was left off. Hence, they can be thought of as ‘resumable functions’.
- Any function containing a yield keyword is a generator function.
- When we call a generator function, it doesn’t return a single value; instead it returns a generator object that supports the iterator protocol.
- On executing the yield expression, the generator outputs the value of i (see in the snippet below), similar to a return statement. On reaching a yield the generator’s state of execution is suspended and local variables are preserved. On the next call to the generator’s next() method, the function will resume executing.¶
1
2
3
4
5
6
7
8
9
10
11
12
test_list = [2,3,5,8,8]
def yield_elems(test_list):
for i in test_list:
yield i
# Return a generator
a = yield_elems(test_list)
print (type(a)) # Generator object
print(a.__next__()) # 2
print(a.__next__()) # 3
Generator Expressions
Generator expressions return an iterator and are lazily evaluated unlike list comprehensions which return a list and are eagerly evaluated. Generator Expressions are written in ‘()’ round brackets whereas list comprehensions are written in ‘[]’ brackets.
1
2
3
4
5
a = (x for x in [1,2,3,4,5] if x>2)
a.__next__() # 3
a.__next__() # 4
a.__next__() # 5
Module ‘itertools’
When we are discussing about iterators in such great depth, we definitely need functions to manipulate the iterators. Itertools has number of iterators and functions to combine several iterators.
‘itertools’ has:
- Functions that create a new iterator based on an existing iterator
- Functions for treating an iterator’s elements as function arguments
- Functions for selecting portions of an iterator’s output
- Functions for grouping an iterator’s output.
I recommend running these examples in the Python notebook here
1
2
3
4
5
6
from itertools import *
# takes an arbitrary number of iterables as input, and returns all the elements of the first iterator,
# then all the elements of the second, and so on, until all of the iterables have been exhausted.
list(chain([1,3,4,5], ['a','b','c']))
1
2
3
4
# cycle() repeats the elements infintely, creates new iterators, will have to break out of loop.
for i in cycle([2,3,4,7,7]):
print (i)
1
2
3
4
# islice() returns a stream that’s a slice of the iterator. With a single stop argument,
# it will return the first stop elements.
list(islice([4,6,7,3], 1, 3, 2))
1
2
3
4
5
list(combinations([1, 2, 3, 4, 5], 2)) # gives combination of 2 elements in a tuple
list(combinations([1, 2, 3, 4, 5], 3)) # gives combination of 3 elements in a tuple
list(permutations([1, 2, 3, 4, 5], 2)) # gives permutation of 2 elements in a tuple
list(takewhile(lambda x: x<5, [1,4,6,4,1]))
list(dropwhile(lambda x: x < 10, [1, 4, 6, 7, 11, 34, 66, 100, 1]))
The official documentation is pretty good: itertools. I recommend checking this out.
Partial Application
Partial Application is not automatically done in Python. However, the functools module provides the function partial() for the same.
1
2
3
4
5
def sweet(choice1, choice2, choice3):
print("The food I like is %s, %s, %s"%(choice1, choice2, choice3))
order_sweet = partial(sweet, choice3='ice cream')
order_sweet('muffin', 'pancake')
In this example, if I am gonna eat a sweet dish I am always selecting an ice cream no matter what, so I freeze the argument ‘ice cream’ and store the function sweet() to order_sweet with the argument choice3 as ‘ice cream’.
Recursion
We know how to do recursion in Python. Isn’t? However be careful, you cannot do recursion for a large number as Python is not tail recursive optimized.
What are the disadvantages of Functional Programming in Python?
- No tail recursion optimization
- It’s impossible to create immutable variables everytime.
- It is impossible to seperate pure and non-pure functions.
- No pattern matching.
- No automatic partial application.
Inspite of these disadvantages, it is important for a programmer to make clever use of different programming paradigms according to the use case and it is good to know various features.
Interested in learning more about functional language Haskell?? Check out this: Learn You A Haskell
This is the Python notebook link for these examples: Examples.
These are the slides: presentation.
If you have any doubts regarding this, ping me on Twitter, LinkedIn or comment below in this post. I will get back to you asap!
Thanks for reading :)


We developed a mobile app that inspires, recommends, and teaches you about the enviorment--like a close friend! Its primary function is a chatbot named Pudding, whose algorthim responds to any questions you ask and details tips on how to be enviromentally friendly for the day. It is perfect for people who don’t know where to begin in their sustainble journey, as Pudding is at your pocket when you need it. Our app allows users to scan their product and Pudding will output whether or not it is compostable. Moreover, it provides a map of recycling places and an inspiration board!


andile.photography
Instagram
svmyvngfvck
01
Cotton Fest,February
2020
02
@umagezangobisi
February 2021
03
Cotton Fest,February
2020
04
Cotton Fest,February
2020
05
Cotton Fest,February
2020
next


Release Notes
3.2.2
- YEL-947: Native video layer
- YEL-1003: Wrong User Agent in maip
- YEL-1032: No User Agent sent in click-pixels
- YEL-859: Crash due to dealloc not in main thread
3.2.1
Improvements
- YEL-939: Replaced UDID by SecureUDID
- YEL-905: Changed custom user agent for the mobile Safari user agent
3.2
New features
- YEL-894: Improved the documentation and the sample codes
- YEL-892: You can now use SASBannerView and SASInterstitialView classes to create an ad instead of the SmartAdServerView class
- YEL-819: The close button size can be different from the original
- YEL-804: Added prefetch mode for both online and offline mode, only for the app’s startup interstitial
Bug fix
- Fixed typo in french translation (ouvir instead of ouvrir)
- Fixed bug when hiding the status bar and the delegate is not a UIViewController
- YEL-670: In the documentation, added a workaround to avoid a conflict between the UIWebView video player and the native video player


HTML - CSS - JavaScript - JQuery - AJAX - React
Bootstrap - Mustard UI
Node.js - Npm - Express.js - My SQL - Sequelize - MongoDB - Mongoose - Babel
Graduated with a Bachelor's Degree in Business Administration
Received a certification in Web Design
Seën Ventures LLC, a CMS and Web Accessibility tech start up.
Seën Ventures LLCGeorgia Tech Web Development Bootcamp
Click the social media icon to follow, friend and link up with me.


A great introduction to training, full of brilliant advice for prospective/puppy guardians. Highly recommended.
Dr. Marc Bekoff has spent a lifetime studying dogs. Canine Confidential provides a fascinating insight into why dogs do what they do.
A dog’s first language is body language. This beautifully illustrated book can help you speak and understand ‘Dog’. Essential reading for every dog guardian.
High quality, UK made harnesses. Perfect Fit’s unique modular design means that the harness does not need to be placed over the dog’s head when fitted.
Ruffwear offer a big range of harnesses. This includes their ‘Webmaster’ design that prevents the dog backing out of their harness, and the ‘Hi and Light’, a very light and flexible harness. Our dogs wear these.
Handmade to order at our home workshop, our premium BioThane long lines are strong, durable, vegan, waterproof and easy to clean.
We also craft a range of high-quality leather and BioThane dog leads. Using the finest materials, our leads are stylish, yet functional.
Both these companies sell a wonderful range of natural, healthy treats and chews. Diced JR Pate is our go to training treat. The dogs love it!
Make mealtimes fun and enriching for your dogs. We highly recommend the use of stuff-able toys, Licki and Snuffle mats.
High quality beds, handmade in Scotland. Available in a range of styles. Very durable and easy to clean.
We can’t recommend these highly enough. Great for supercharging your dog’s recall. Small family run business from Devon.
Great quality pouches with plenty of room for keys, phone and poo bags. UK based; small family run business.
Another super dog coat. Great value, Hi-Viz and waterproof.
Super coats. Warm, waterproof and easy to clean. Made in the UK. Choose the ‘Dog Coat’ version that can be clipped front and beneath.
Not a product, but a highly recommend website - www.allaboutdogfood.co.uk is an excellent independent website site that reviews all dog foods available for sale within the UK.


CUTTHROAT ISLAND A film review by James Berardinelli Copyright 1995 James Berardinelli
RATING (0 TO 10): 5.6
United States, 1995 U.S. Availability: 12/22/95 (wide) Running Length: 2:04 MPAA Classification: PG-13 (Violence, sexual situations, language) Theatrical Aspect Ratio: 2.35:1
Cast: Geena Davis, Matthew Modine, Frank Langella, Maury Chaykin, Patrick Malahide Director: Renny Harlin Producers: Joel B. Michaels, Laurence Mark, James Gorman, and Renny Harlin Screenplay: Robert King and Marc Norman Cinematography: Peter Levy Music: John Debney U.S. Distributor: United Artists Pictures
Renny Harlin, whose previous directorial efforts include DIE HARD 2 and CLIFFHANGER, seems fond of big, explosive action pictures. Unfortunately, excepting his debut (the middle film in the DIE HARD trilogy), plot coherency hasn't been a particularly important attribute of his movies. CLIFFHANGER was little more than a series of spectacular stunts linked together by a paper-thin story. If anything, the strands of logic in CUTTHROAT ISLAND are even thinner. Fortunately, as a spectacle for the eye and ear, this high seas adventure is more than capable of capturing its audience's attention. Holding it for more than two hours is a different matter altogether...
By his own admission, Harlin patterned CUTTHROAT ISLAND loosely after CAPTAIN BLOOD and THE SEA HAWK, with his real-life wife, Geena Davis, taking the Errol Flynn role. However, while the special effects and explosions here far outstrip Hollywood's early pirate movies, storyline, characterization, and acting are vastly inferior. Thus, while CUTTHROAT ISLAND may have cost $70 million to produce, it's still a pale shadow of its predecessors.
The "twist" here, as already mentioned, is that the hero is a female. Davis doesn't plumb her acting skills deeply in this shallow portrayal of Morgan Adams, the captain of a pirate ship called the "Morning Star." It's 1668 in the Caribbean, and she's on a treasure hunt. Millions of pounds of gold are reportedly buried somewhere on Cutthroat Island, but the map to the treasure location is in three separate pieces, and Morgan possesses only one. Each of the other sections is held by her uncles. While Morgan is willing to make deals and share the wealth to put the maps together, her Uncle Dawg (Frank Langella) would rather take the more expedient route of killing everyone who gets in his way -- including his niece.
The love interest, Shaw (the male Olivia DeHavilland?), is played in typically lackluster fashion by Matthew Modine (replacing Michael Douglas, who bowed out at the last moment). Modine has absolutely no chemistry with co-star Davis, and watching these two together is about as exciting as sitting through those dumb slideshow commercials that precede movies in many theaters. Frank Langella, who has apparently joined Dennis Hopper and James Woods as good foaming-at-the-mouth stock villains, does his usual shtick, although he's somehow not all that menacing here.
CUTTHROAT ISLAND is more entertaining for its dumb storyline and overt silliness than for its nearly nonstop action. Technology plays its part in what the film has to offer, as well. Some of the visuals are breathtaking (especially a scene where a pirate ship explodes). Sound editing is excellent and the score (written by John Debney and performed by the London Symphony Orchestra) is suitably rousing. CUTTHROAT ISLAND is a mindless diversion.
- James Berardinelli<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


A Mini canvas for testing some non-drawing functionality:
A Super tiny Canvas for testing Data:
Rectangle functions:
Text functions:
Line functions:
Gradiant & Pattern functions:
Shadow properties:
Paths (part 1):
Paths (part 2):
Transforms:
Compositing:
Image drawing (from an <img>):
Image drawing (from a <canvas>):
State:


Issue 1483:
Scripts fail to load when page reloaded during paused execution
Steps to reproduce
Set a breakpoint at line 5 in index.js.
Reload the page, this should trigger the break point.
Immediately reload the page again while the script execution is paused
on the break point. (i.e. don't do anything after the break point is
triggered but reload the page.)
Notice that:
The break point did not trigger again.
The console did not output "init" (if using the example code).
If you go into the script tab and select the index.js script to view,
the contents of index.js will be blank (if connectd via http:) plain text
(if connected via file:)


Alphabetical Index | Thematic Index
Introduction:
Specify polyon offset:
Specify vertex arrays:
Select the active texture coordinate array:
Draw vertex arrays:
Create a named buffer:
Modify buffer data:
Transform the current matrix:
Replace the current matrix:
Manipulate the matrix stack:
Specify the viewport:
Set the current color and normal vector:
Specify light source, material, or lighting model parameter values:
Choose a shading model:
Specify which polygon orientation is front-facing:
Specify the dimensions of points and lines:
Choose when polygons are rasterized:
Read pixels:
Specify how pixels are encoded:
Control how a texture is applied to a fragment:
Set the current texture coordinates:
Specify a two-dimensional texture image or texture subimage:
Copy a texture or a part of it:
Specify a two-dimensional compressed texture image or texture subimage:
Create a named texture:
Select the active texture unit:
Set fog parameter:
Control per-fragment testing:
Combine fragment and frame buffer values:
Clear buffers:
Control buffers enabled for writing:
Control multisampling:
Enable and disable modes:
Wait until all GL commands have executed completely:
Force all issued GL commands to be executed:
Specify hints for GL operation:
Obtain information about an error or the current GL connection:
Query static state variables:
Introduction:
Manage or query display connections:
Request GL and EGL extension functions:
Query errors:
Request or query frame buffer configurations:
Manage or query EGL rendering contexts:
Manage or query EGL surfaces:
Synchronize execution:
Post and copy buffers:


MOVIEFLIX
SIGN IN
See What's Next
WATCH ANYWHERE. CANCEL ANYTIME.
JOIN FREE FOR ONE MONTH
Questions? Call 1-866-444-4444
ENGLISH
ESPANOL


Court denies dispatch rider bail for having items linked to LTTE
SEGAMAT, Nov 18 — A despatch rider, S. Teeran who was charged with supporting and possessing items linked to the Liberation Tigers of Tamil Eelam (LTTE) last month, was denied bail by the Sessions Court here today.
Sessions judge, Rasidah Roslee, who made the decision before the 38-year-old accused, had heard arguments from the defence counsel of the applicant A. Mathan and Deputy Public Prosecutor Suriani Ujang.
Rasidah, in her judgement, said she agreed with Suriani’s argument that a bail could not be given especially involving cases of public interest and national security.
She said the duty of the Sessions Court too was to mention and manage the case before it was transferred to the High Court.
As such, she said the application for bail should be submitted to the High Court which had the jurisdiction to decide on such cases.
The application of bail was made by the counsel on the claim that his client had spinal problem and had undergone a surgery in July and would need three to six months to recover.
Earlier, Suriani said the application for bail should be rejected since the accused was charged under a case involving public interest and national security, other than dismissing the accused’s medical report as it was from a private hospital, namely, Oriental Melaka Straits Medical Centre.
She said the Sessions Court did not have the power to decide on the bail application as it was not under the jurisdiction of the court.
The court then fixed mention for December 19 for the management of the case and the forensic report.
On October 29, Teran, who was attached to a law firm here, was charged with supporting and possessing items linked to LTTE.
The accused was charged with perpetrating the act at 6.30pm at, Jalan Genuang, Kampung Paya Pulai here on October 10.
He was charged under Section 130 JB(1)(a) of the Penal Code which provided jail up to seven years or fine and the confiscation of the items (linked to LTTE). — Bernama


jQuery Calculator
Original code by Bo Li, changes made by Charles Tian
Examples:
-
Open in new window
-
jQueryPopup
-
Popup
-
Draggable
-
Modal
-
-
IFrame
-
Learn to make this
-
Back to logger example
-
Induce an error


This research aimed to measure the take-up of 3-hours of high-quality PE and out-of-hours school sport in a typical week.
Research reports published in the last 5 years are available on GOV.UK. You can find our archived research on the
National Archives
. Note: the search function is not available on archived content so please use the filters on the left of each page.


previous |
Table of Contents
Glossary
A NOTE ON DATES IN THIS GLOSSARY.
The Toman Calendar (devised by Toma dur Ahmid) was adopted
approximately two centuries after the death of the last male Aes
Sedai, recording years After the Breaking of the World (AB). So
many records were destroyed in the Trolloc Wars that at their end
there was argument about the exact year under the old system. A new
calendar, proposed by Tiam of Gazar, celebrated freedom from the
Trolloc threat and recorded each year as a Free Year (FY). The
Gazaran Calendar gained wide acceptance within twenty years after
the Wars’ end. Artur Hawkwing attempted to establish a new
calendar based on the founding of his empire (FF, From the
Founding), but only historians now refer to it. After the death and
destruction of the War of the Hundred Years, a third calendar was
devised by Uren din Jubai Soaring Gull, a scholar of the Sea Folk,
and promulgated by the Panarch Farede of Tarabon. The Farede
Calendar, dating from the arbitrarily decided end of the War of the
Hundred Years and recording years of the New Era (NE), is currently
in use.
- Arad Doman:
- A nation
on the Aryth Ocean, currently racked by civil war and by wars against those who
have declared for the Dragon Reborn. Its capital is Bandar Eban. In Arad Doman,
the ruler (king or queen) is elected by a council of the heads of merchant
guilds (the Council of Merchants), who are almost always women. He or she must be
from the noble class, not be a merchant, and is elected for life. Legally the
king or queen has absolute authority, except that he or she can be deposed by
three-quarter vote of the Council. The current ruler is King Alsalam Saeed
Almadar, Lord of Almadar, High Seat of House Almadar. His present whereabouts
are much shrouded in mystery
- armsmen:
- Soldiers who owe allegiance or fealty to a particular lord or lady.
- Asha’man:
- (1) In the Old Tongue, “Guardian” or
“Guardians,” but the word always meant a guardian of justice and truth.
- (2) The
name given, both collectively and as a rank, to the men who have come to the
Black Tower, near Caemlyn in Andor, in order to learn to channel. Their training
concentrates largely on the ways in which the One Power can be used as a
weapon, and in another departure from the usages of the White Tower, once they
learn to seize saidin, the male half of the Power, they are required to
perform all chores and labors with the Power. When newly enrolled, a man is
termed a Soldier, he wears a plain black coat with a high collar, in the
Andoran fashion. Being raised to Dedicated brings the right to wear a silver
pin, called the Sword, on the collar of his coat. Promotion to Asha’man brings
the right to wear a Dragon pin, in gold and red enamel, on the collar opposite
the Sword. Although many women, including wives, flee when they learn that their
men actually can channel, a fair number of men at the Black Tower are married,
and they use a version of the Warder bond to create a link with their wives.
This same bond, altered to compel obedience, has recently been used to bond
captured Aes Sedai as well.
-
- Balwer, Sebban:
- Formerly secretary to
Pedron Niall (the Lord Captain Commander of the Children of the Light) in
public, and secretly Niall’s spymaster. After Niall’s death, Balwer aided the
escape of Morgase (once Queen of Andor) from the Seanchan in Amador for his own
reasons, and now is employed as secretary to Perrin t’Bashere Aybara and Faile
ni Bashere t’Aybara. Perrin is beginning to suspect that there is more to Balwer
than at first appeared.
- Band of the Red Hand:
- see Shen an Calhar.
- Blood, the:
- Term used by the Seanchan to designate the nobility. There are degrees of
nobility. The High Blood shave the sides of their heads and paint multiple
fingernails—the higher the rank, the more nails painted—but a member of the
lesser Blood, the low Blood, may have only the nails of the little fingers
painted. One can be raised to the Blood as well as born to it, and this is
frequently a reward for outstanding accomplishment or service to the Empire.
-
- calendar:
- There are
10 days to the week, 28 days to the month, and 13 months to the year. Several
feastdays are not part of any month, these include Sunday (the longest day of
the year), the Feast of Thanksgiving (once every four years at the spring
equinox), and the Feast of All Souls Salvation, also called All Souls Day (once
every ten years at the autumn equinox). While the months have names—Taisham,
Jumara, Saban, Aine, Adar, Saven, Amadame, Tammaz, Maigdhal, Choren, Shaldme,
Nesan, and Danu—these are seldom used except in official documents and by
officials. For most people, using the seasons is good enough.
- Captain-General:
- (1) The
military rank of the leader of the Queen’s Guard, in Andor. This position is currently
held by Lady Birgitte Trahelion.
- (2) The title given to the head of the Green
Ajah, though known only to members of the Green. This position is currently held
by Adelorna Bastine in the Tower, and Myrelle Berengan among the rebel Aes
Sedai contingent under Egwene al’Vere.
- Cha Faile:
- (1) In the Old Tongue, “the Falcon’s Talon”.
- (2) Name
taken by the young Cairhienin and Tairens, attempted followers of jt’e’toh, who
have sworn fealty to Faile ni Bashere t’Aybara. In secret, they act as her
personal scouts and spies. Since her capture by the Shaido, they continue their
activities under the guidance of Sebban Balwer.
- Children of the Light:
- Society of strict ascetic beliefs, owing allegiance to
no nation and dedicated to the defeat of the Dark One and the destruction of
all Darkfriends. Founded during the War of the Hundred Years by Lothair Mantelar
to proselytize against an increase in Darkfriends, they evolved during the war
into a completely military society. They are extremely rigid in their beliefs,
and certain that only they know the truth and the right. They consider Aes Sedai
and any who support them to be Darkfriends. Known disparagingly as Whitecloaks,
they were formerly headquartered in Amador, Amadicia, but were forced out when
the Seanchan conquered the city. Their sign is a golden sunburst on a field of
white. See also Questioners.
- Companions, the:
- The elite military formation of Illian, currently commanded
by First Captain Demetre Marcolin. The Companions provide a bodyguard for the
King of Illian and guard key points around the nation. Additionally, the
Companions have traditionally been used in battle to assault the enemy’s
strongest positions, to exploit weaknesses, and, if necessary, to cover the
retreat of the King. Unlike most other such elite formations, foreigners
(excepting Tairens, Altarans and Murandians) are not only welcome, they can
rise even to the highest rank, as can commoners, which also is unusual. The
uniform of the Companions consists of a green coat, a breastplate worked with
the Nine Bees of Illian, and a conical helmet with a faceguard of steel bars.
The First Captain wears four rings of golden braid on the cuffs of his coat,
and three thin golden plumes on his helmet. The Second Captain wears three rings
of golden braid on each cuff, and three golden plumes tipped with green.
Lieutenants wear two yellow rings on their cuffs, and two thin green plumes,
under-lieutenants one yellow ring and a single green plume. Bannermen are
designated by two broken rings of yellow on the cuffs and a single yellow
plume, squadmen by a single broken ring of yellow.
- Consolidation, the:
- When the armies sent by Artur Hawkwing under his son
Luthair landed in Seanchan, they discovered a shifting quilt of nations often
at war with one another, where Aes Sedai often reigned. Without any equivalent
of the White Tower, Aes Sedai worked for their own individual goals, using the
Power. Forming small groups, they schemed against one another constantly. In
large part it was this constant scheming for personal advantage and the
resulting wars among the myriad nations that allowed the armies from east of
the Aryth Ocean to begin the conquest of an entire continent, and for their
descendants to complete it. This conquest, during which the descendants of the
original armies became Seanchan as much as they conquered Seanchan, took more
than nine hundred years and is called the Consolidation.
- Corenne:
- In the Old Tongue, “the Return.” The name given by the Seanchan both to the fleet of
thousands of ships and to the hundreds of thousands of soldiers, craftsmen and
others carried by those ships, who will come behind the Forerunners to reclaim
the lands stolen from Artur Hawkwing’s descendants. See also Hailene.
- cuendillar:
- A supposedly indestructible substance created during
the Age of Legends. Any known force used in an attempt to break it is absorbed,
making cuendillar stronger. Although the making of cuendillar has
been thought lost forever, rumors of new objects made from it have surfaced. It
is also known as heartstone.
- currency:
- After many centuries of trade, the standard terms
for coins are the same in every land: crowns (the largest coin in size), marks
and pennies. Crowns and marks can be minted of gold or silver, while pennies can
be silver or copper, the last often called simply a copper. In different lands,
however, these coins can be of different sizes and weights. Even in one nation,
coins of different sizes and weights have been minted by different rulers.
Because of trade, the coins of many nations can be found almost anywhere. For
that reason, bankers, moneylenders and merchants all use scales to determine
the value of any given coin. Even large numbers of coins are weighed for this
reason. The only paper currency is “letters-of-rights,” which are issued by
bankers, guaranteeing to present a certain amount of gold or silver when the
letter-of-rights is presented. Because of the long distances between cities, the
length of time needed to travel from one to another, and the difficulties of
transactions at long distance, a letter-of-nghts may be accepted at full value
in a city near to the bank that issued it, but it may be accepted only at a
lower value in a city farther away. Generally, someone of means intending a
long journey will carry one or more letters-of-rights to exchange for coin when
needed. Letters-of-rights are usually accepted only by bankers or merchants, and
would never be used in shops.
-
- da’covale:
- (1) In the Old Tongue, this would be translated
literally as “one who is owned,” or “person who is property.”
- (2) Among the
Seanchan, the term often used, along with “property,” for slaves. Slavery has a
long and unusual history among the Seanchan, with slaves having the ability to
rise to positions of great power and open authority, including over those who
are free. See also so’jhin.
- Darkhounds:
- Shadowspawn created from lupine stock corrupted by the Dark One. While they
resemble hounds in their basic shape, they are blacker than night and the size
of ponies, weighing several hundred pounds each. They usually run in packs of
ten or twelve, although the tracks of a larger pack have been sighted. They make
no mark on soft ground, but leave prints in stone, and are frequently
accompanied by the smell of burned sulphur. They will not usually venture out
into the rain, but once running rain fails to stop them. Once they are on the
trail, they must be confronted and defeated or the victim’s death is
inevitable. The only exception to this is when the victim can reach the other
side of a river or stream, since Darkhounds will not cross flowing water. Or
supposedly not. Their blood and saliva are poison, and if either touches the
skin, the victim will die slowly and in great pain. See also Wild Hunt.
- Daughters of Silence, the:
- During the history of the White Tower (over three thousand years), various
women who have been put out have been unwilling to accept their fates and have
tried to band together. Such groups—most of them by far, at least—have been
dispersed by the White Tower as soon as found and punished severely and
publicly to make sure that the lesson is carried to everyone. The last group to
be dispersed called themselves the Daughters of Silence (794—798 NE).
- The Daughters consisted of two Accepted who had been put out of the
Tower and twenty-three women they had gathered and trained. All were carried
back to Tar Valon and punished, and the twenty-three were enrolled in the
novice book. Only one of those, Saerin Asnobar, managed to reach the shawl. See
also Kin, the.
- Deathwatch Guards, the:
- The
elite military formation of the Seanchan Empire, including both humans and
Ogier. The human members of the Deathwatch Guard are all da’covale, born
as property and chosen while young to serve the Empress, whose personal
property they are. Fanatically loyal and fiercely proud, they often display the
ravens tattooed on their shoulders, the mark of a da’covale of the
Empress. The Ogier members are known as Gardeners, and they are not da’covale.
The Gardeners are as fiercely loyal as the human Deathwatch Guards, though,
and are even more feared. Human or Ogier, the Deathwatch Guards not only are
ready to die for the Empress and the Imperial family, but believe that their
lives are the property of the Empress, to be disposed of as she wishes. Their
helmets and armor are lacquered in dark green and blood-red, their shields are
lacquered black, and their spears and swords carry black tassels. See also
da’covale.
- Defenders of the Stone, the:
- The elite military formation of Tear. The current Captain of the Stone
(commander of the Defenders) is Rodrivar Tihera. Only Tairens are accepted into
the Defenders, and officers are usually of noble birth, though often from minor
Houses or minor branches of strong Houses. The Defenders are tasked to hold the
great fortress called the Stone of Tear, in the city of Tear, to defend the
city, and to provide police services in place of any City Watch or the like.
Except in times of war, their duties seldom take them far from the city. Then,
as with other elite formations, they are the core around which the army is
formed. The uniform of the Defenders consists of a black coat with padded
sleeves striped black-and-gold with black cuffs, a burnished breastplate, and
a rimmed helmet with a faceguard of steel bars. The Captain of the Stone wears
three short white plumes on his helmet, and on the cuffs of his coat three
intertwined golden braids on a white band.  Bannermen have gold-colored cuffs on their
coats, and squadmen have cuffs striped black and gold.
- Delving:
- (1) Using the One Power to
diagnose physical condition and illness.
- (2) Finding deposits of metal ores
with the One Power. That this has long been a lost ability among Aes Sedai may
account for the name becoming attached to another ability.
- Depository:
- A division
of the Tower Library. There are twelve publicly known Depositories, each having
books and records pertaining to a particular subject, or to related subjects.
A Thirteenth Depository, known only to Aes Sedai, contains secret documents,
records and histories which may be accessed only by the Amyrlin Seat, the
Keeper of the Chronicles, and the Sitters in the Hall of the Tower. And, of
course, by the handful of librarians who maintain the Depository.
- der’morat-:
- (1) In the
Old Tongue, “master handler.”
- (2) Among the Seanchan, the prefix applied to
indicate a senior and highly skilled handler of one of the exotics, one who
trains others, as in der’morat’raken. Der’morat can have a fairly high
social status, the highest of all held by der’sul’dam, the trainers of sul’dam,
who rank with fairly high military officers. See also morat-.
-
- Erith:
- Daughter of Iva daughter of
Alar. An attractive young Ogier woman whom Loial intends to marry, although at
present he is on the run from her.
-
- Fain, Padan:
- Former
Darkfriend, now more and worse than a Darkfriend, and an enemy of the Forsaken
as much as he is of Rand al’Thor, whom he hates with a passion. Last seen in
Far Madding with Toram Riatin.
- Fel, Herid:
- The
author of Reason and Unreason and other books. Fel was a student (and
teacher) of history and philosophy at the Academy of Cairhien. He was discovered
in his study torn limb from limb.
- First Reasoner:
- The
title given to the head of the White Ajah. This position is currently held by
Ferane Neheran in the White Tower. Ferane Sedai is one of only two Ajah heads to
sit in the Hall of the Tower at present.
- First Weaver:
- The
title given to the head of the Yellow Ajah. This position is currently held by
Suana Dragand in the White Tower. Suana Sedai is one of only two Ajah heads to
sit in the Hall of the Tower at present.
- Fists of Heaven, the:
- Lightly
armed and lightly armored Seanchan infantry carried into battle on the backs of
the flying creatures called to’raken. All are small men, or women,
largely because of limits as to how much weight a to’raken can carry for
any distance. Considered to be among the toughest of soldiers, they are used
primarily for raids, surprise assaults on positions at an enemy’s rear, and
where speed in getting soldiers into place is of the essence.
- Forerunners, the:
- See Hailene.
- Forsaken, the:
- The name
given to thirteen powerful Aes Sedai, men and women both, who went over to the
Shadow during the Age of Legends and were trapped in the sealing of the Bore
into the Dark One’s prison. While it has long been believed that they alone
abandoned the Light during the War of the Shadow, in fact others did as well,
these thirteen were only the highest-ranking among them. The Forsaken (who call
themselves the Chosen) are somewhat reduced in number since their awakening in
the present day. Those thought to have survived are Demandred, Semirhage,
Graendal, Mesaana, Moghedien, and two who were reincarnated in new bodies and
given new names, Osan’gar and Aran’gar, although it seems possible that
Osan’gar may also be dead. The life of a Forsaken is always uncertain. Recently,
a man calling himself Moridin has appeared, and seems to be yet another of the
dead Forsaken brought back from the grave by the Dark One. The same may be
possible regarding the woman calling herself Cyndane, but since Aran’gar was a
man brought back as a woman, speculation as to the original identities of
Moridin and Cyndane may prove futile until more is learned.
-
- Gregorin:
- Full name Gregorin Panar de Lushenos. A member of the Council of Nine in Illian
who presently serves as the Steward for the Dragon Reborn in Illian.
-
- Hailene:
- In the Old Tongue, “Forerunners,” or “Those Who Come
Before.” The term applied by the Seanchan to the massive expeditionary force
sent across the Aryth Ocean to scout out the lands where Artur Hawkwing once
ruled. Now under the command of the High Lady Suroth, its numbers swollen by
recruits from conquered lands, the Hailene has gone far beyond its
original goals, and has in fact been succeeded by the Return. See Return.
- Hanlon, Daved:
- A
Darkfriend, formerly commander of the White Lions in service to the Forsaken
Rahvin while he held Caemlyn using the name Lord Gaebril. From there, Hanlon
took the White Lions to Cairhien under orders to further the rebellion against
the Dragon Reborn. The White Lions were destroyed by a “bubble of evil,” and
Hanlon has been ordered back to Caemlyn and, under the name Doilen Mellar, has
ingratiated himself with Elayne, the Daughter-Heir. According to rumor, he has
done considerably more than ingratiate himself.
- Head Clerk:
- The title given to the head of the Gray Ajah. This position is currently held by
Serancha Corvine, a woman of reputedly fastidious behavior, in the Tower.
- heart:
- The basic unit of
organization in the Black Ajah. In effect, a cell. A heart consists of three
sisters who know each other; each member of the heart knows one additional
sister of the Black.
-
- Illuminators, Guild of:
- A
society that held the secret of making fireworks. It guarded this secret very
closely, even to the extent of murder. The Guild gained its name from the grand
displays, called Illuminations, that it provided for rulers and sometimes for
greater lords. Lesser fireworks were sold for use by others, but with dire
warnings of the disaster that could result from attempting to learn what was
inside them. The Guild once had chapter houses in Cairhien and Tanchico, but
both are now destroyed. In addition, the members of the Guild in Tanchico
resisted the invasion by the Seanchan and the survivors were made da’covale,
and the Guild as such no longer exists. However, individual Illuminators
have escaped Seanchan rule, and perhaps more grand displays will be seen in the
not-too-distant future. See also da’covale.
- Ishara:
- The first Queen of Andor (circa FY 994-1020).
At the death of Artur Hawkwing, Ishara convinced her husband, one of Hawkwing’s
foremost generals, to raise the siege of Tar Valon and accompany her to Caemlyn
with as many soldiers as he could break away from the army. Where others tried
to seize the whole of Hawkwing’s empire and failed, Ishara took a firm hold on
a small part and succeeded. Today, nearly every noble House in Andor contains
some of Ishara’s blood, and the right to claim the Lion Throne depends both on
direct descent from her and on the number of lines of connection to her that
can be established.
-
- Kaensada:
- An area of Seanchan that is
populated by less-than-civilized hill tribes. These tribes fight a great deal
among themselves, as do individual families within the tribes. Each tribe has
its own customs and taboos, the latter of which often make no sense to anyone
outside that tribe. Most of the tribesmen avoid the more civilized residents of
Seanchan.
- Katar:
- A city in Arad Doman known
for its mines and forges. Katar is wealthy enough that its Lords occasionally
need reminding that they are part of Arad Doman.
- Kin, the:
- Even during the Trolloc
Wars, more than two thousand years ago (circa 1000—1350 AB), the White Tower
continued to maintain its standards, putting out women who failed to measure up.
One group of these women, fearing to return home in the midst of the wars, fled
to Barashta (near the present-day site of Ebou Dar), as far from the fighting
as was possible to go at that time. Calling themselves the Kin, and Kinswomen,
they kept in hiding and offered a safe haven for others who had been put out. In
time, their approaches to women told to leave the Tower led to contacts with
runaways, and while the exact reasons may never be known, the Kin began to
accept runaways, as well. They made great efforts to keep these girls from
learning anything about the Kin until they were sure that Aes Sedai would not
swoop down and retake them. After all, everyone knew that runaways were always
caught sooner or later, and the Kin knew that unless they held themselves
secret, they themselves would be punished severely.
- Unknown to the Kin, Aes
Sedai in the Tower were aware of their existence almost from the very first,
but prosecution of the wars left no time for dealing with them. By the end of
the wars, the Tower realized that it might not be in their best interests to
snuff out the Kin. Prior to that time, a majority of runaways actually had
managed to escape, whatever the Towers propaganda, but once the Kin began
helping them, the Tower knew exactly where any runaway was heading, and they
began retaking nine out of ten. Since Kinswomen moved in and out of Barashta
(and later Ebou Dar) in an effort to hide their existence and their numbers,
never staying more than ten years lest someone notice that they did not age at
a normal speed, the Tower believed they were few, and they certainly were
keeping themselves low. In order to use the Kin as a trap for runaways, the
Tower decided to leave them alone, unlike any other similar group in history,
and to keep the very existence of the Kin a secret known only to full Aes
Sedai.
- The Kin do not have laws, but rather rules (called the Rule) based in
part on the rules for novices and Accepted in the White Tower, and in part on
the necessity of maintaining secrecy. As might be expected given the origins of
the Kin, they maintain the Rule very firmly on all of their members.
- Recent open contacts between Aes Sedai and Kinswomen, while known only to a handful of
sisters, have produced a number of shocks, including the facts that there are
twice as many Kinswomen as Aes Sedai and that some have lived more than a
hundred years longer than any Aes Sedai who has lived since before the Trolloc
Wars. The effect of these revelations, both on Aes Sedai and on Kinswomen, is
as yet a matter for speculation. See also Daughters of Silence, the,
Knitting Circle, the.
- Knitting Circle, the:
- The leaders
of the Kin. Since no member of the Kin has ever known how Aes Sedai arrange
their own hierarchy—knowledge passed on only when an Accepted has passed her
test for the shawl—they put no store in strength in the Power but give great
weight to age, with the older woman always standing above the younger The
Knitting Circle (a title chosen, like the Kin, because it is innocuous) thus
consists of the thirteen oldest Kinswomen resident in Ebou Dar, with the oldest
given the title of Eldest. By the rules, all will have to step down when it is
time for them to move on, but so long as they are resident in Ebou Dar, they
have supreme authority over the Kin, to a degree that any Amyrlin Seat would
envy. See also Kin, the.
-
- Lady of the Shadows:
- A Seanchan term for death.
- Lance-Captain:
- In most
lands, noblewomen do not personally lead their armsmen into battle under normal
circumstances. Instead, they hire a professional soldier, almost always a
commoner, who is responsible for both training and leading their armsmen.
Depending on the land, this man can be called a Lance-Captain, Sword-Captain,
Master of the Horse, or Master of the Lances. Rumors of closer relationships
than lady and servant often spring up, perhaps inevitably. Sometimes they are
true.
- Legion of the Dragon, the:
- A
large military formation, all infantry, giving allegiance to the Dragon Reborn,
trained by Davram Bashere along lines worked out by himself and Mat Cauthon,
lines which depart sharply from the usual employment of foot. While many men
simply walk in to volunteer, large numbers of the Legion are scooped up by
recruiting parties from the Black Tower, who first gather all of the men in an
area who are willing to follow the Dragon Reborn, and only after taking them
through gateways near Caemlyn winnow out those who can be taught to channel.
The remainder, by far the greater number, are sent to Bashere’s training camps.
- length, units of:
- 10 inches = 1 foot; 3 feet = 1 pace; 2 paces = 1 span; 1000 spans = 1 mile; 4
miles = 1 league.
-
- marath’damane:
- In the Old Tongue, “those who must be leashed,” and
also “one who must be leashed.” The term applied by the Seanchan to any woman
capable of channeling who has not been collared as a damane.
- Master of the Lances:
- See Lance-Captain.
- Master of the Horse:
- See Lance-Captain.
- Mera’din:
- In the Old Tongue, “the Brotherless.” The name
adopted, as a society, by those Aiel who abandoned clan and sept and went to
the Shaido because they could not accept Rand al’Thor, a wetlander, as the Car’a’carn,
or because they refused to accept his revelations concerning the history
and origins of the Aiel. Deserting clan and sept for any reason is anathema
among the Aiel, therefore their own warrior societies among the Shaido were
unwilling to take them in, and they formed this society, the Brotherless.
- morat-:
- In the Old
Tongue, “handler.” Among the Seanchan, it is used for those who handle exotics,
such as morat’raken, a raken handler or rider, also informally
called a flier. See also der’morat-.
-
- Prophet, the:
- More
formally, the Prophet of the Lord Dragon. Once known as Masema Dagar, a
Shienaran soldier, he underwent a revelation and decided that he had been
called to spread the word of the Dragon’s Rebirth. He believes that nothing—nothing!—is more important than acknowledging the Dragon Reborn as the Light
made flesh and being ready when the Dragon Reborn calls, and he and his
followers will use any means to force others to sing the glories of the Dragon
Reborn. Forsaking any name but “the Prophet,” he has brought chaos to much of
Ghealdan and Amadicia, large parts of which he controls. He joined with Perrin
Aybara, who was sent to bring him to Rand, and has, for reasons unknown, stayed
with him even though this delays his going to the Dragon Reborn.
-
- Queen’s Guards, the:
- The elite military formation in Andor. In peacetime the Guard is responsible for
upholding the Queen’s law and keeping the peace. The uniform of the Queen’s
Guard includes a red undercoat, gleaming mail and plate armor, a brilliant red
cloak, and a conical helmet with a barred visor. High-ranking officers wear
knots of rank on their shoulder, and may wear golden lion-head spurs. A recent
addition to the Queen’s Guard is the Daughter-Heir’s personal bodyguard, which
is composed entirely of women with the sole exception of its captain, Doilin
Mellar.
- Questioners, the:
- An order
within the Children of the Light. They refer to themselves as the Hand of the
Light, and their avowed purposes are to discover the truth in disputations and
uncover Darkfriends. In the search for truth and the Light, their normal method
of inquiry is torture, their normal manner that they know the truth already
and must only make their victim confess to it. At times they act as if they are
entirely separate from the Children and the Council of the Anointed, which
commands the Children. The head of the Questioners is the High Inquisitor, at
present Rhadam Asunawa, who sits on the Council of the Anointed. Their sign is
a blood-red shepherd’s crook.
-
- Redarms:
- Soldiers of the Band of the
Red Hand, who have been chosen out for temporary police duty to make sure that
other soldiers of the Band cause no trouble or damage in a town or village. So
named because, while on duty, they wear very broad red armbands that almost
cover their entire sleeves. Usually chosen from among the most experienced and
reliable men. Since any damages must be paid for by the men serving as
Redarms, they work hard to make sure all is quiet and peaceful. A number of
former Redarms were chosen to accompany Mat Cauthon to Ebou Dar. See also Band
of the Red Hand.
- Return, the:
- See Corenne.
-
- Sea Folk hierarchy:
- The
Atha’an Miere, the Sea Folk, are ruled by the Mistress of the Ships to the
Atha’an Miere. She is assisted by the Windfinder to the Mistress of the Ships,
and by the Master of the Blades. Below this come the clan Wavemistresses, each
assisted by her Windfinder and her Swordmaster. Below her are the
Sailmistresses (ship captains) of her clan, each assisted by her Windfinder and
her Cargomaster. The Windfinder to the Mistress of the Ships has authority over
all Windfinders to clan Wavemistresses, who in turn have authority over all the
Windfinders of her clan. Likewise, the Master of the Blades has authority over
all Swordmasters, and they in turn over the Cargomasters of their clans. Rank
is not hereditary among the Sea Folk. The Mistress of the Ships is chosen, for
life, by the First Twelve of the Atha’an Miere, the twelve most senior clan
Wavemistresses. A clan Wavemistress is elected by the twelve most senior Sailmistresses
of her clan, called simply the First Twelve, a term which is also used to
designate the senior Sailmistresses present anywhere. She can also be removed
by a vote of her clan’s First Twelve. In fact, anyone other than the Mistress
of the Ships can be demoted, even all the way down to deckhand, for
malfeasance, cowardice or other crimes. Also, the Windfinder to a Wavemistress
or Mistress of the Ship who dies will, of necessity, have to serve a lower
ranking woman, and her own rank thus decreases.
- Seandar:
- The Imperial capital of
Seanchan, located in the northeast of the Seanchan continent. It is also the
largest city in the Empire.

Although most Seekers are da’covale and the property of the Imperial
family, they have wide-ranging powers. Even one of the Blood can be arrested
for failure to answer any question put
by a Seeker, or for failure to cooperate fully with a Seeker, this last defined
by the Seekers themselves, subject only to review by the Empress. Those Seekers
who are da’covale are marked on either shoulder with a raven and a
tower. Unlike the Deathwatch Guards, Seekers are seldom eager to show their
ravens, in part because it necessitates revealing who and what they are.
- sei’mosiev:
- In the Old Tongue, “lowered eyes,” or “downcast eyes.”
Among the Seanchan, to say that one has “become sei’mosiev” means that
one has “lost face.” See also sei’taer.
- sei’taer:
- In the Old
Tongue, “straight eyes,” or “level eyes.” Among the Seanchan, it refers to
honor or face, to the ability to meet someone’s eyes. It is possible to “be” or
“have” sei’taer, meaning that one has honor and face, and also to “gain”
or “lose” sei’taer. See also sei’mosiev.
- Shara:
- A mysterious land that lies
to the east of the Aiel Waste. The land is protected both by inhospitable
natural features and by man-made walls. Little is known about Shara, as the
people of that land appear to work to keep their culture secret. The Sharans
deny that the Trolloc Wars touched them, despite Aiel statements to the
contrary. They deny knowledge of Artur Hawkwing’s attempted invasion, despite
the accounts of eyewitnesses from the Sea Folk. The little information that has
leaked out reveals that the Sharans are ruled by a single absolute monarch, a
Sh’boan if a woman and a Sh’botay if a man. That monarch rules for exactly
seven years, then dies. The rule then passes to the mate of that ruler, who
rules for seven years and then dies. This pattern has repeated itself since the
time of the Breaking of the World. The Sharans believe that the deaths are the
“Will of the Pattern.”
- There are channelers in Shara, known as the Ayyad, who
are tattooed on their faces at birth. The women of the Ayyad enforce the laws
regarding the Ayyad stringently. A sexual relationship between Ayyad and
non-Ayyad is punishable by death for the non-Ayyad, and the Ayyad is also
executed if force on his or her part can be proven. If a child is born of the
union, it is left exposed to the elements, and dies. Male Ayyad are used as
breeding stock only. When they reach their twenty-first year or begin to
channel, whichever comes first, they are killed by Ayyad women and the body
cremated. Supposedly, the Ayyad channel the One Power only at the command of
the Sh’boan or Sh’botay, who is always surrounded by Ayyad women.
- Even the name of the land is in doubt. The natives
have been known to call it many different names, including Shamara, Co’dansin,
Tomaka, Kigali, and Shibouya.
- Shen an Calhar:
- In the Old
Tongue, “the Band of the Red Hand.”
- (1) A legendary group of heroes who had
many exploits, finally dying in the defense of Manetheren when that land was
destroyed during the Trolloc Wars.
- (2) A military formation put together almost
by accident by Mat Cauthon and organized along the lines of military forces
during what is considered the height of the military arts, the days of Artur
Hawkwing and the centuries immediately preceding. See also Redarms.
- Sisnera, Darlin:
- A High Lord in Tear, he was formerly in rebellion
against the Dragon Reborn, but now serves as Steward for the Dragon Reborn in
Tear.
- so’jhin:
- The closest translation from the Old Tongue would be
“a height among lowness,” though some translate it as meaning “both sky and valley”
among several other possibilities. So’jhin is the term applied by the
Seanchan to hereditary upper servants They are da’covale, property, yet
occupy positions of considerable authority and often power. Even the Blood step
carefully around so’jhin of the Imperial family, and speak to so’jhin
of the Empress herself as to equals. See also Blood, the, da’covale.
- Stump:
- A public meeting among the
Ogier. The meeting can be within or between stedding. It is presided over
by the Council of Elders of a stedding, but any adult Ogier may speak,
or may choose an advocate to speak for him. A Stump is often held at the largest
tree stump in a stedding, and may last for several years. When a
question arises that affects all Ogier, a Great Stump is held, and Ogier from
all stedding meet to address the question. The various stedding take
turns hosting a Great Stump.
- Sword-Captain:
- See Lance-Captain.
-
- Taborwin, Breane:
- Once a
bored noblewoman in Cairhien, she lost her wealth and status and is now not
only a servant, but in a serious romantic relationship with a man whom she
once would have scorned.
- Taborwin, Dobraine:
- A lord
in Cairhien. He currently serves as Steward for the Dragon Reborn in Cairhien.
- Tarabon:
- A nation on the Aryth
Ocean. Once a great trading nation, a source of rugs, dyes and the Guild of
Illuminators’ fireworks among other things, Tarabon has fallen on hard times.
Racked by anarchy and civil war compounded by simultaneous wars against Arad
Doman and the Dragonsworn, it was ripe for the picking when the Seanchan
arrived. It is now firmly under Seanchan control, the chapter house of the
Guild of Illuminators has been destroyed and most Illuminators themselves made da’covale.
Most Taraboners appear grateful that the Seanchan have restored order, and
since the Seanchan allow them to continue living their lives with minimal
interference, they have no desire to bring on more warfare by trying to chase
the Seanchan out. There are, however, some lords and soldiers who remain outside
the Seanchan sphere of influence and hope to reclaim their land.
-
- wasp-jelly:
- A small
aquatic creature that appears to be made of jelly but stings severely when
touched.
- weight, units of:
- 10 ounces = 1 pound, 10 pounds = 1 stone, 10 stone = 1 hundredweight, 10
hundredweight = 1 ton.
- Wild Hunt, the:
- It is believed by many that the Dark One (often called Grim, or Old Grim, in Tear,
Illian, Murandy, Altara and Ghealdan) rides out in the night with the “black
dogs,” or the Darkhounds, hunting souls. This is the Wild Hunt. It is believed
by many that merely seeing the Wild Hunt pass means imminent death, either for
the viewer or for someone dear to the viewer. It is held to be especially
dangerous to meet the Wild Hunt at a crossroads, just before sunrise or just
after sunset. See also Darkhounds.
- Winged Guards, the:
- The personal bodyguards of the First of Mayene, and the elite military formation of
Mayene. Members of the Winged Guards wear red-painted breastplates and red
helmets shaped like rimmed pots that come down to the napes of their necks in
the back, and carry red-streamered lances. Officers have wings worked on the
sides of their helmets, and rank is denoted by slender plumes.
- Wise Woman:
- Honorific used in Ebou Dar for women famed for their incredible abilities at
healing almost any injury. A Wise Woman is traditionally marked by a red belt.
While some have noted that many, indeed most, Ebou Dar Wise Women were not even
from Altara, much less Ebou Dar, what was not known until recently, and still
is known only to a few, is that all Wise Women are in fact Kinswomen and use
various versions of Healing, giving out herbs and poultices only as a cover.
With the flight of the Kin from Ebou Dar after the Seanchan took the city, no
Wise Women remain there. See also Kin, the.
-
- Younglings, the:
- The first Younglings were young men studying under the Warders at the White Tower.
They fought against their teachers who attempted to free Siuan Sanche after she
was deposed from the Amyrlm Seat. Led by Gawyn Trakand, the Younglings remained
loyal to the White Tower, and fought skirmishes against Whitecloaks under Eamon
Valda. They accompanied Elaida’s embassy to the Dragon Reborn in Cairhien and
saw action against the Aiel and Asha’man at Dumai’s Wells. On their return to
Tar Valon, they found themselves barred from the city.
- The Younglings wear
green cloaks with Gawyn’s White Boar, those who fought against their teachers
in Tar Valon wear a small silver tower on their collars. They accept recruits
wherever they go, but they do not take veterans or older men. One requirement
is that the recruit must be willing to put aside all loyalties except to the
Younglings. Older members teach the new recruits Warder techniques since they
have given over accepting instruction from Warders, and several have refused
offers of bonding from Aes Sedai. In many ways they hardly seem attached to the
Tower and Aes Sedai at all. This is a result in part of their suspicion that
they were not meant to survive the expedition to Cairhien.
previous |
Table of Contents


Go
PASSING DATA TO CHILD COMPONENTS
USING V-MODEL WITH COMPONENTS
{{ customInput }}
CONTENT DIST. WITH SLOTS
DYNAMIC COMPONENTS


To buy list
5kg potatoes
200g cheddar cheese
package of water
2k tomatoes
500g tomatoes in package
mustard sauce
1kg bananas


HERE COMES A NEW LOCATION!
Input a location name.
Input a distance
Input an Ingredient
Input an image url


AM
AM
PM
Control Panel
Menu
Profile
Admin Home
tranzip Home
Log Out
Edit New Bus:
Bus 34
Bus 34
Bus 34
Bus 34
Bus 34
Bus 34
Bus 34
Changes Made:
AM
PM


--- title: Using SQL in RStudio author: Irene Steves date: '2020-04-29' slug: using-sql-in-rstudio categories: [] tags: [] cover: /post/2020-04-29-using-sql-in-rstudio_files/cover-sql-r-friends.png draft: false output: blogdown::html_page: toc: true toc_depth: 3 ---
In the last year, SQL has wound its way deeper and deeper into my R workflow. I switch between the two every day, but up to now, I’ve been slow diving into the SQL tools RStudio provides. This post documents the little tricks I’ve gathered scouring RStudio Community posts, blogposts, and other resources for help upgrading my R-SQL workflow. To see just the code, take a look at the associated GitHub gist.
My typical workflow currently looks like this:
DBI::dbGetQuery()
or a similar functionThis workflow is something I’ve largely absorbed from my coworkers. Some of the peculiarities are due to historical accidents – for example, many of the early developers at the company used Ruby, so RubyMine also became the IDE of choice for working with SQL. That said, this flow works pretty well for us.
Over time, I found my own reasons for using RubyMine (or really, any other IDE with advanced SQL support):
I’m glad I was forced to venture out of my RStudio comfort zone, but I’ve begun to discover that some of the features I love about RubyMine actually exist in RStudio as well.
Up to now, I’d only used dataframe-style previews of query results, such as in the example below:
library(dplyr)
library(dbplyr)
conn <- src_memdb() # create a SQLite database in memory
copy_to(conn,
storms, # this is a dataset built into dplyr
overwrite = TRUE)
tbl(conn, sql("SELECT * FROM storms LIMIT 5"))
# Source: SQL [?? x 13]
# Database: sqlite 3.30.1 [:memory:]
name year month day hour lat long status category wind pressure
<chr> <dbl> <dbl> <int> <dbl> <dbl> <dbl> <chr> <chr> <int> <int>
1 Amy 1975 6 27 0 27.5 -79 tropi… -1 25 1013
2 Amy 1975 6 27 6 28.5 -79 tropi… -1 25 1013
3 Amy 1975 6 27 12 29.5 -79 tropi… -1 25 1013
4 Amy 1975 6 27 18 30.5 -79 tropi… -1 25 1013
5 Amy 1975 6 28 0 31.5 -78.8 tropi… -1 25 1012
# … with 2 more variables: ts_diameter <dbl>, hu_diameter <dbl>
It turns out that within RStudio, there are actually (at least) two other methods of previewing SQL queries. (Thank you to RStudio Community posts such as this one for enlightening me.) These two methods also have the added benefit of SQL code with syntax highlighting.
.sql
fileWhen you open a new .sql
file in RStudio, it automatically populates the file with the following code:
-- !preview conn=DBI::dbConnect(RSQLite::SQLite())
SELECT 1
I’d always blindly deleted the header, but it turns out that all this time, RStudio had been trying to tell me that I can actually preview queries in RStudio! If you supply it with a working database connection (no spaces around the =
!) and click the Preview button, a SQL Results tab pops up next to the Console with the query results.
If you’ve run the previous dplyr/dbplyr code chunk in the same session, you’ll have both the connection and the data you need to test out this preview function yourself! Just create a .sql
file with the following code:
-- !preview conn=src_memdb()$con
SELECT * FROM storms LIMIT 5
Note that unlike in the tbl()
example above, you have to pull out the connection from the src_memdb()
using $con
. This seems to be a special case; other connections seem to work without extra fussing. For the rest of this post, I’ll refer to this connection as con
with one “n” (with the exception of the gif below, where I gave it the lengthier name conn_isolated
).
con <- src_memdb()$con
I generally prefer to show RMarkdown output in the console 1 (and it looks like I’m not the only one). This means that when I run code in an .Rmd
file, it feels more or less the same as when I run an .R
file: the plots show up in the plots pane, code is run in the console, and so on.
While you can use SQL chunks with this setting, there is NO chunk preview option. You must trust your queries and knit the file to make sure everything runs. You get the syntax highlighting razzle-dazzle but alas– no preview.
It is in this very specific case where inline mode wins big time. SQL previews magically become an option, allowing you to interact with your beautifully colored SQL code.
When mixing R and SQL, you often want to (a) get data from a database and then continue manipulating it in R, or (b) modify the query by passing in variables from R.
When using SQL chunks, you can specify an output variable using the output.var
chunk option with the variable name as a string. 2
In inline mode, the preview will no longer appear when running the SQL chunk, but the variable will appear in your environment.  Add ?
before the variable in the SQL chunk and just make sure that the R variable has the same name.
```{r}
storm_status <- "hurricane"
```
```{sql connection=con}
SELECT * FROM storms WHERE status = ?storm_status LIMIT 5;
```
Sometimes, you cannot simply pass in a parameter. The glue_sql()
function is great at managing some of the magic for you. To pass in a column name as a parameter, for example, you can just wrap the string in glue_sql()
and it just works.
```{r}
col_name <- glue::glue_sql("status")
```
```{sql connection=con}
SELECT * FROM storms WHERE ?col_name = 'hurricane' LIMIT 5;
```
Note: Generally, you will also need to specify the .con
(connection) so that glue
will know what type of SQL syntax you need.
Now, what if you want to provide multiple parameters? Adding an *
to the end of the variable collapses the vector into a single comma-separated expression, rather than outputting a vector of SQL expressions. This behavior is somewhat reminiscent of args
and kwargs
in Python, which uses *
as an unpacking operator.
types <- c("hurricane", "tropical depression")
# without an asterisk
glue::glue_sql("{types}", .con = con)
<SQL> 'hurricane'
<SQL> 'tropical depression'
# with an asterisk
glue::glue_sql("{types*}", .con = con)
<SQL> 'hurricane', 'tropical depression'
Of course, to pass these parameters to our SQL chunk, we need to make sure we have the appropriate parentheses around ?storm_status
for the IN
to run.
```{r}
types <- c("hurricane", "tropical depression")
storm_status <- glue::glue_sql("{types*}", .con = con)
```
```{sql connection=con}
SELECT * FROM storms WHERE status IN (?storm_status) LIMIT 5;
```
What if you have a gigantic SQL query that you want to store in a separate file but you also want to use chunks?
I had no idea that chunks had a code
parameter until I came across Christophe Dervieux’s comments in this RStudio Community discussion. You can use it read in a SQL file with your query, parameters and all.
```{sql connection=con, code=readLines("storm.sql"), output.var="storm_preview"}
```
```{r}
storm_preview
```
When you knit the file, the imported SQL (and its comments) is included in the output by default.
At the end of the day, both R and SQL are–and will remain–big parts of my analysis flow, so it’s these little tricks that help to smooth out the little points of friction on the way. If you have more tricks to share with me, leave a comment or ping me on Twitter!
Creds to Allison Horst for the fun arms & faces!
For “console mode” Rmd’s: Global Options
–> R Markdown
–> uncheck Show output inline for all R Markdown documents
↩
There are a few additional chunk option examples in the SQL language engine section of R Markdown: The Definitive Guide↩
For all my enthusiasm for syntax highlighting, I admit I do not understand how to do it properly when quoting RMarkdown chunks, though this RStudio blogpost gave me some clues. For more details on how to use syntax highlighting with blogdown, I recommend posts by Amber Thomas and Maëlle Salmon↩


Our professionally maintained reel-to-reel audio equipment allows us to get the best recording from your audio reels. If needed, we can edit the audio as well to adjust speed and certain kinds of distortion.
Audio Tape to CD TransferOur professional quality audio transfer equipment ensures the highest possible quality from your audio cassette tapes. If needed, we can also duplicate audio cassettes as well. Believe it or not, there is still an occasional need for that service and who are we to question ‘why?’.
Record Albums Converted to CDThere are a multitude of albums that simply don't exist for purchase on CD or digital download. In these cases, we have high quality transfer equipment to play your 33 1/3, 45 or even 78 albums and record them to CD. Not only does this preserve the music quality, but makes listening to them far more convenient!
There is still a strong demand for this service and that's no surprise, considering how popular slides were for decades. There are vast amounts of wonderful family photos recorded on this outdated media and we specialize in transferring and preserving your slides on to a CD or DVD.
We produce a high resolution scan of each slide, crop, and then color correct by hand for the best possible image quality. We then save the digital files on to a disc for secure storage and convenient access. We can organize your slide archives however you wish and even create stunning slide shows that can be viewed on your computer or TV. This is not a "cookie cutter" service. We handle each order to suit our customer's individual needs.
Photos Scanned and Saved to CD/DVDSimilar in nature to our slide transfer service, photo transfer is also growing in demand. Our customers like the idea of having a digital back up to their vulnerable old photos whether loose or in albums.  Aside from the peace of mind a digital back up allows, the convenience of sharing photos digitally is another good reason to let us scan your photos for you. The albums will be returned to you in their original condition and rest assured that all the work is done right in our studio. We never risk sending your albums out to a third party vendor.
We make a high resolution scan of each photograph, crop and then color correct by hand for the best possible image quality. Are your photos adhered to pages in an album? No problem, we han handle nearly any scenario. We then save the digital files on to a disc for secure storage and convenient access. We can organize your photo archives however you wish and even create stunning slide shows that can be viewed on your computer or TV. This is not a "cookie cutter" service. We handle each order to suit the customer's individual needs.
We specialize in small duplication runs of 500 or less. Proud parents can make disc copies for family members. Companies can get their CD and DVD duplication order turned quickly enough to meet almost any deadline. We use only high quality CDs and DVDs, utilizing the latest in technology to ensure your satisfaction. We never use paper labels, but instead imprint directly onto the DVDs/CDs. Custom label designs and case options are available as well. We look forward to handling your next CD and DVD duplication project.
Some Advantages of our Duplication Service...At Stilson Video Services, we don't penalize our customers with a minimum order charge. Need to stop by to have one disc copied? No problem.
Do you need help with label or packaging design? Our skilled graphic designer can help in the design of your black and white or full-color label. Our professional quality ink jet printer will then print your design directly on to the discs with stunning results.
When it comes to choosing cases or custom packaging, we offer a wide variety of options, including:
Please call us today to discuss your next CD or DVD duplication project.
Don't despair. In most cases, we can repair broken or damaged tapes or film and salvage those precious memories. We can repair nearly all formats and if your tape player has your tape firmly in its jaws, just bring the whole unit in to us, we’ll take it from there. Once the tapes are repaired we can continue with your video editing or transfer project and no one will be the wiser. By the way, if a tape player or camera has damaged one of your tapes, it can no longer be trusted and will most likely strike again. Best to retire the unit and move on.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illo itaque ipsum sit harum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illo itaque ipsum sit harum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illo itaque ipsum sit harum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illo itaque ipsum sit harum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illo itaque ipsum sit harum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illo itaque ipsum sit harum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illo itaque ipsum sit harum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illo itaque ipsum sit harum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illo itaque ipsum sit harum.


This application will help users find attractions in an area around them.
I'm a student that is currently a part of the WATS program at Seattle University, and this is my capstone project for the program. All of this work includes bits and pieces of everything I learned in this program including HTML, CSS, Javascript, scafolding via Yeoman, etc.


Traveller's
Menu
Home
Subscription
Posts
Recent Posts
Most read
Get to know us
Search
A blog for restless minds and wanderings lovers
Previous
Next
See Post
See Post
See Post
See Post
See Post
See Post
Load More Posts


Biography:
This section will inform the user about myself.
Education:
This section will inform the user about my education and training.
- Code Fellows
- Northern Virginia Community College
- US Army Advanced Individual Training
- River Ridge High School
Job Experience:
This section will inform the user about my job history.
- Code Fellows
- Novant Health
- Inova Health
- Eastern Mountain Sports
- Construction & Development Inc.
- G4S Wackenhut
- US Army
My goals:
This section will inform the user about my job history.


<contactnumber>
A <contactnumber> element contains the contact number of a person or organization, such as a telephone number, mobile phone number, or fax number.
Category: xNAL domain elements