Type Casting
Type casting is a way to check the type of an instance, or to treat that instance as a different superclass or subclass from somewhere else in its own class hierarchy.
Type casting in Swift is implemented with the is
and as
operators. These two operators provide a simple and expressive way to check the type of a value or cast a value to a different type.
You can also use type casting to check whether a type conforms to a protocol, as described in Checking for Protocol Conformance.
Defining a Class Hierarchy for Type Casting
You can use type casting with a hierarchy of classes and subclasses to check the type of a particular class instance and to cast that instance to another class within the same hierarchy. The three code snippets below define a hierarchy of classes and an array containing instances of those classes, for use in an example of type casting.
The first snippet defines a new base class called MediaItem
. This class provides basic functionality for any kind of item that appears in a digital media library. Specifically, it declares a name
property of type String
, and an init name
initializer. (It is assumed that all media items, including all movies and songs, will have a name.)
class MediaItem {
var name: String
init(name: String) {
self.name = name
}
}
The next snippet defines two subclasses of MediaItem
. The first subclass, Movie
, encapsulates additional information about a movie or film. It adds a director
property on top of the base MediaItem
class, with a corresponding initializer. The second subclass, Song
, adds an artist
property and initializer on top of the base class:
class Movie: MediaItem {
var director: String
init(name: String, director: String) {
self.director = director
super.init(name: name)
}
}
class Song: MediaItem {
var artist: String
init(name: String, artist: String) {
self.artist = artist
super.init(name: name)
}
}
The final snippet creates a constant array called library
, which contains two Movie
instances and three Song
instances. The type of the library
array is inferred by initializing it with the contents of an array literal. Swift’s type checker is able to deduce that Movie
and Song
have a common superclass of MediaItem
, and so it infers a type of [MediaItem]
for the library
array:
let library = [
Movie(name: "Casablanca", director: "Michael Curtiz"),
Song(name: "Blue Suede Shoes", artist: "Elvis Presley"),
Movie(name: "Citizen Kane", director: "Orson Welles"),
Song(name: "The One And Only", artist: "Chesney Hawkes"),
Song(name: "Never Gonna Give You Up", artist: "Rick Astley")
]
// the type of "library" is inferred to be [MediaItem]
The items stored in library
are still Movie
and Song
instances behind the scenes. However, if you iterate over the contents of this array, the items you receive back are typed as MediaItem
, and not as Movie
or Song
. In order to work with them as their native type, you need to check their type, or downcast them to a different type, as described below.
Checking Type
Use the type check operator (is
) to check whether an instance is of a certain subclass type. The type check operator returns true
if the instance is of that subclass type and false
if it is not.
The example below defines two variables, movieCount
and songCount
, which count the number of Movie
and Song
instances in the library
array:
var movieCount = 0
var songCount = 0
for item in library {
if item is Movie {
movieCount += 1
} else if item is Song {
songCount += 1
}
}
print("Media library contains \(movieCount) movies and \(songCount) songs")
// Prints "Media library contains 2 movies and 3 songs"
This example iterates through all items in the library
array. On each pass, the for
-in
loop sets the item
constant to the next MediaItem
in the array.
item is Movie
returns true
if the current MediaItem
is a Movie
instance and false
if it is not. Similarly, item is Song
checks whether the item is a Song
instance. At the end of the for
-in
loop, the values of movieCount
and songCount
contain a count of how many MediaItem
instances were found of each type.
Downcasting
A constant or variable of a certain class type may actually refer to an instance of a subclass behind the scenes. Where you believe this is the case, you can try to downcast to the subclass type with a type cast operator (as?
or as!
).
Because downcasting can fail, the type cast operator comes in two different forms. The conditional form, as?
, returns an optional value of the type you are trying to downcast to. The forced form, as!
, attempts the downcast and force-unwraps the result as a single compound action.
Use the conditional form of the type cast operator (as?
) when you are not sure if the downcast will succeed. This form of the operator will always return an optional value, and the value will be nil
if the downcast was not possible. This enables you to check for a successful downcast.
Use the forced form of the type cast operator (as!
) only when you are sure that the downcast will always succeed. This form of the operator will trigger a runtime error if you try to downcast to an incorrect class type.
The example below iterates over each MediaItem
in library
, and prints an appropriate description for each item. To do this, it needs to access each item as a true Movie
or Song
, and not just as a MediaItem
. This is necessary in order for it to be able to access the director
or artist
property of a Movie
or Song
for use in the description.
In this example, each item in the array might be a Movie
, or it might be a Song
. You don’t know in advance which actual class to use for each item, and so it is appropriate to use the conditional form of the type cast operator (as?
) to check the downcast each time through the loop:
for item in library {
if let movie = item as? Movie {
print("Movie: \(movie.name), dir. \(movie.director)")
} else if let song = item as? Song {
print("Song: \(song.name), by \(song.artist)")
}
}
// Movie: Casablanca, dir. Michael Curtiz
// Song: Blue Suede Shoes, by Elvis Presley
// Movie: Citizen Kane, dir. Orson Welles
// Song: The One And Only, by Chesney Hawkes
// Song: Never Gonna Give You Up, by Rick Astley
The example starts by trying to downcast the current item
as a Movie
. Because item
is a MediaItem
instance, it’s possible that it might be a Movie
; equally, it’s also possible that it might be a Song
, or even just a base MediaItem
. Because of this uncertainty, the as?
form of the type cast operator returns an optional value when attempting to downcast to a subclass type. The result of item as? Movie
is of type Movie?
, or “optional Movie
”.
Downcasting to Movie
fails when applied to the Song
instances in the library array. To cope with this, the example above uses optional binding to check whether the optional Movie
actually contains a value (that is, to find out whether the downcast succeeded.) This optional binding is written “if let movie = item as? Movie
”, which can be read as:
“Try to access item
as a Movie
. If this is successful, set a new temporary constant called movie
to the value stored in the returned optional Movie
.”
If the downcasting succeeds, the properties of movie
are then used to print a description for that Movie
instance, including the name of its director
. A similar principle is used to check for Song
instances, and to print an appropriate description (including artist
name) whenever a Song
is found in the library.
Type Casting for Any and AnyObject
Swift provides two special types for working with nonspecific types:
Any
can represent an instance of any type at all, including function types.AnyObject
can represent an instance of any class type.
Use Any
and AnyObject
only when you explicitly need the behavior and capabilities they provide. It is always better to be specific about the types you expect to work with in your code.
Here’s an example of using Any
to work with a mix of different types, including function types and nonclass types. The example creates an array called things
, which can store values of type Any
:
var things = [Any]()
things.append(0)
things.append(0.0)
things.append(42)
things.append(3.14159)
things.append("hello")
things.append((3.0, 5.0))
things.append(Movie(name: "Ghostbusters", director: "Ivan Reitman"))
things.append({ (name: String) -> String in "Hello, \(name)" })
The things
array contains two Int
values, two Double
values, a String
value, a tuple of type (Double, Double)
, the movie “Ghostbusters”, and a closure expression that takes a String
value and returns another String
value.
To discover the specific type of a constant or variable that is known only to be of type Any
or AnyObject
, you can use an is
or as
pattern in a switch
statement’s cases. The example below iterates over the items in the things
array and queries the type of each item with a switch
statement. Several of the switch
statement’s cases bind their matched value to a constant of the specified type to enable its value to be printed:
for thing in things {
switch thing {
case 0 as Int:
print("zero as an Int")
case 0 as Double:
print("zero as a Double")
case let someInt as Int:
print("an integer value of \(someInt)")
case let someDouble as Double where someDouble > 0:
print("a positive double value of \(someDouble)")
case is Double:
print("some other double value that I don't want to print")
case let someString as String:
print("a string value of \"\(someString)\"")
case let (x, y) as (Double, Double):
print("an (x, y) point at \(x), \(y)")
case let movie as Movie:
print("a movie called \(movie.name), dir. \(movie.director)")
case let stringConverter as (String) -> String:
print(stringConverter("Michael"))
default:
print("something else")
}
}
// zero as an Int
// zero as a Double
// an integer value of 42
// a positive double value of 3.14159
// a string value of "hello"
// an (x, y) point at 3.0, 5.0
// a movie called Ghostbusters, dir. Ivan Reitman
// Hello, Michael
Copyright © 2017 Apple Inc. All rights reserved. Terms of Use | Privacy Policy | Updated: 2017-09-19


GitPython provides object model access to your git repository. This tutorial is composed of multiple sections, each of which explain a real-life usecase.
The first step is to create a Repo object to represent your repository:
from git import *
repo = Repo("/Users/mtrier/Development/git-python")
In the above example, the directory /Users/mtrier/Development/git-python is my working repository and contains the .git directory. You can also initialize GitPython with a bare repository:
repo = Repo.create("/var/git/git-python.git")
A repo object provides high-level access to your data, it allows you to create and delete heads, tags and remotes and access the configuration of the repository:
repo.config_reader() # get a config reader for read-only access
repo.config_writer() # get a config writer to change configuration
Query the active branch, query untracked files or whether the repository data has been modified:
repo.is_dirty()
False
repo.untracked_files
['my_untracked_file']
Clone from existing repositories or initialize new empty ones:
cloned_repo = repo.clone("to/this/path")
new_repo = repo.init("path/for/new/repo")
Archive the repository contents to a tar file:
repo.archive(open("repo.tar",'w'))
References are the tips of your commit graph from which you can easily examine the history of your project:
heads = repo.heads
master = heads.master # lists can be accessed by name for convenience
master.commit # the commit pointed to by head called master
master.rename("new_name") # rename heads
Tags are (usually immutable) references to a commit and/or a tag object:
tags = repo.tags
tagref = tags[0]
tagref.tag # tags may have tag objects carrying additional information
tagref.commit # but they always point to commits
repo.delete_tag(tagref) # delete or
repo.create_tag("my_tag") # create tags using the repo for convenience
A symbolic reference is a special case of a reference as it points to another reference instead of a commit:
head = repo.head # the head points to the active branch/ref
master = head.reference # retrieve the reference the head points to
master.commit # from here you use it as any other reference
You can easily create and delete reference types or modify where they point to:
repo.delete_head('master') # delete an existing head
master = repo.create_head('master') # create a new one
master.commit = 'HEAD~10' # set branch to another commit without changing index or working tree
Create or delete tags the same way except you may not change them afterwards:
new_tag = repo.create_tag('my_tag', 'my message')
repo.delete_tag(new_tag)
Change the symbolic reference to switch branches cheaply ( without adjusting the index or the working copy ):
new_branch = repo.create_head('new_branch')
repo.head.reference = new_branch
An Object is anything storable in git’s object database. Objects contain information about their type, their uncompressed size as well as the actual data. Each object is uniquely identified by a SHA1 hash, being 40 hexadecimal characters in size or 20 bytes in size.
Git only knows 4 distinct object types being Blobs, Trees, Commits and Tags.
In Git-Pyhton, all objects can be accessed through their common base, compared and hashed, as shown in the following example:
hc = repo.head.commit
hct = hc.tree
hc != hct
hc != repo.tags[0]
hc == repo.head.reference.commit
Basic fields are:
hct.type
'tree'
hct.size
166
hct.sha
'a95eeb2a7082212c197cabbf2539185ec74ed0e8'
hct.data # returns string with pure uncompressed data
'...'
len(hct.data) == hct.size
Index Objects are objects that can be put into git’s index. These objects are trees and blobs which additionally know about their path in the filesystem as well as their mode:
hct.path # root tree has no path
''
hct.trees[0].path # the first subdirectory has one though
'dir'
htc.mode # trees have mode 0
0
'%o' % htc.blobs[0].mode # blobs have a specific mode though comparable to a standard linux fs
100644
Access blob data (or any object data) directly or using streams:
htc.data # binary tree data as string ( inefficient )
htc.blobs[0].data_stream # stream object to read data from
htc.blobs[0].stream_data(my_stream) # write data to given stream
Commit objects contain information about a specific commit. Obtain commits using references as done in Examining References or as follows.
Obtain commits at the specified revision:
repo.commit('master')
repo.commit('v0.1')
repo.commit('HEAD~10')
Iterate 100 commits:
repo.iter_commits('master', max_count=100)
If you need paging, you can specify a number of commits to skip:
repo.iter_commits('master', max_count=10, skip=20)
The above will return commits 21-30 from the commit list.:
headcommit = repo.head.commit
headcommit.sha
'207c0c4418115df0d30820ab1a9acd2ea4bf4431'
headcommit.parents
[<git.Commit "a91c45eee0b41bf3cdaad3418ca3850664c4a4b4">]
headcommit.tree
<git.Tree "563413aedbeda425d8d9dcbb744247d0c3e8a0ac">
headcommit.author
<git.Actor "Michael Trier<EMAIL_ADDRESS>headcommit.authored_date # seconds since epoch
1256291446
headcommit.committer
<git.Actor "Michael Trier<EMAIL_ADDRESS>headcommit.committed_date
1256291446
headcommit.message
'cleaned up a lot of test information. Fixed escaping so it works with
subprocess.'
Note: date time is represented in a seconds since epock format. Conversion to human readable form can be accomplished with the various time module methods:
import time
time.asctime(time.gmtime(headcommit.committed_date))
'Wed May 7 05:56:02 2008'
time.strftime("%a, %d %b %Y %H:%M", time.gmtime(headcommit.committed_date))
'Wed, 7 May 2008 05:56'
You can traverse a commit’s ancestry by chaining calls to parents:
headcommit.parents[0].parents[0].parents[0]
The above corresponds to master^^^ or master~3 in git parlance.
A tree records pointers to the contents of a directory. Let’s say you want the root tree of the latest commit on the master branch:
tree = repo.heads.master.commit.tree
<git.Tree "a006b5b1a8115185a228b7514cdcd46fed90dc92">
tree.sha
'a006b5b1a8115185a228b7514cdcd46fed90dc92'
Once you have a tree, you can get the contents:
tree.trees # trees are subdirectories
[<git.Tree "f7eb5df2e465ab621b1db3f5714850d6732cfed2">]
tree.blobs # blobs are files
[<git.Blob "a871e79d59cf8488cac4af0c8f990b7a989e2b53">,
<git.Blob "3594e94c04db171e2767224db355f514b13715c5">,
<git.Blob "e79b05161e4836e5fbf197aeb52515753e8d6ab6">,
<git.Blob "94954abda49de8615a048f8d2e64b5de848e27a1">]
Its useful to know that a tree behaves like a list with the ability to query entries by name:
tree[0] == tree['dir'] # access by index and by sub-path
<git.Tree "f7eb5df2e465ab621b1db3f5714850d6732cfed2">
for entry in tree: do_something_with(entry)
blob = tree[0][0]
blob.name
'file'
blob.path
'dir/file'
blob.abspath
'/Users/mtrier/Development/git-python/dir/file'
>>>tree['dir/file'].sha == blob.sha
There is a convenience method that allows you to get a named sub-object from a tree with a syntax similar to how paths are written in an unix system:
tree/"lib"
<git.Tree "c1c7214dde86f76bc3e18806ac1f47c38b2b7a30">
tree/"dir/file" == blob.sha
You can also get a tree directly from the repository if you know its name:
repo.tree()
<git.Tree "master">
repo.tree("c1c7214dde86f76bc3e18806ac1f47c38b2b7a30")
<git.Tree "c1c7214dde86f76bc3e18806ac1f47c38b2b7a30">
repo.tree('0.1.6')
<git.Tree "6825a94104164d9f0f5632607bebd2a32a3579e5">
As trees only allow direct access to their direct entries, use the traverse method to obtain an iterator to traverse entries recursively:
tree.traverse()
<generator object at 0x7f6598bd65a8>
for entry in traverse(): do_something_with(entry)
The git index is the stage containing changes to be written with the next commit or where merges finally have to take place. You may freely access and manipulate this information using the IndexFile Object:
index = repo.index
Access objects and add/remove entries. Commit the changes:
for stage,blob in index.iter_blobs(): do_something(...)
Access blob objects
for (path,stage),entry in index.entries.iteritems: pass
Access the entries directly
index.add(['my_new_file']) # add a new file to the index
index.remove(['dir/existing_file'])
new_commit = index.commit("my commit message")
Create new indices from other trees or as result of a merge. Write that result to a new index:
tmp_index = Index.from_tree(repo, 'HEAD~1') # load a tree into a temporary index
merge_index = Index.from_tree(repo, 'base', 'HEAD', 'some_branch') # merge two trees three-way
merge_index.write("merged_index")
Remotes are used as alias for a foreign repository to ease pushing to and fetching from them:
test_remote = repo.create_remote('test', 'git@server:repo.git')
repo.delete_remote(test_remote) # create and delete remotes
origin = repo.remotes.origin # get default remote by name
origin.refs # local remote references
o = origin.rename('new_origin') # rename remotes
o.fetch() # fetch, pull and push from and to the remote
o.pull()
o.push()
You can easily access configuration information for a remote by accessing options as if they where attributes:
o.url
'git@server:dummy_repo.git'
Change configuration for a specific remote only:
o.config_writer.set("pushurl", "other_url")
Diffs can generally be obtained by Subclasses of Diffable as they provide the diff method. This operation yields a DiffIndex allowing you to easily access diff information about paths.
Diffs can be made between the Index and Trees, Index and the working tree, trees and trees as well as trees and the working copy. If commits are involved, their tree will be used implicitly:
hcommit = repo.head.commit
idiff = hcommit.diff() # diff tree against index
tdiff = hcommit.diff('HEAD~1') # diff tree against previous tree
wdiff = hcommit.diff(None) # diff tree against working tree
index = repo.index
index.diff() # diff index against itself yielding empty diff
index.diff(None) # diff index against working copy
index.diff('HEAD') # diff index against current HEAD tree
The item returned is a DiffIndex which is essentially a list of Diff objects. It provides additional filtering to ease finding what you might be looking for:
for diff_added in wdiff.iter_change_type('A'): do_something_with(diff_added)
To switch between branches, you effectively need to point your HEAD to the new branch head and reset your index and working copy to match. A simple manual way to do it is the following one:
repo.head.reference = repo.heads.other_branch
repo.head.reset(index=True, working_tree=True)
The previous approach would brutally overwrite the user’s changes in the working copy and index though and is less sophisticated than a git-checkout for instance which generally prevents you from destroying your work. Use the safer approach as follows:
repo.heads.master.checkout() # checkout the branch using git-checkout
repo.heads.other_branch.checkout()
In case you are missing functionality as it has not been wrapped, you may conveniently use the git command directly. It is owned by each repository instance:
git = repo.git
git.checkout('head', b="my_new_branch") # default command
git.for_each_ref() # '-' becomes '_' when calling it
The return value will by default be a string of the standard output channel produced by the command.
Keyword arguments translate to short and long keyword arguments on the commandline. The special notion git.command(flag=True) will create a flag without value like command --flag.
If None is found in the arguments, it will be dropped silently. Lists and tuples passed as arguments will be unpacked to individual arguments. Objects are converted to strings using the str(...) function.
There is more functionality in there, like the ability to archive repositories, get stats and logs, blame, and probably a few other things that were not mentioned here.
Check the unit tests for an in-depth introduction on how each function is supposed to be used.


Moment squirming Jeremy Corbyn and Boris Johnson react to Prince Andrew's BBC Newsnight interview
ITV's Julie Etchingham quizzed the two prime ministerial hopefuls in light of questions over Andrew's friendship with convicted sex offender Jeffrey Epstein, who took his own life in jail while facing sex trafficking charges
by James Rodger, https://www.facebook.com/jamesrodgerjournalistJeremy Corbyn and Boris Johnson were asked if the Duke of York is "fit for purpose" during the first leaders' debate of the General Election campaign.
ITV's Julie Etchingham quizzed the two prime ministerial hopefuls in light of questions over Andrew's friendship with convicted sex offender Jeffrey Epstein, who took his own life in jail while facing sex trafficking charges.
The Queen's second son has been accused of showing a lack of empathy with Epstein's victims and a lack of remorse for his friendship with the disgraced financier.
Labour leader Mr Corbyn and his Tory counterpart Mr Johnson were initially asked if the monarchy was fit for purpose.
Mr Corbyn replied: "Needs a bit of improvement."
Mr Johnson said: "The institution of the monarchy is beyond reproach."
Asked about the duke, Mr Corbyn said: "Before we discuss Prince Andrew I think we should discuss the victims that are there because of what Epstein was doing.
"I think there are very, very serious questions that must be answered and nobody should be above the law, but the primary position ought to be the proper treatment of those people who were victims of the most appalling behaviour by apparently Epstein and many others."
Prime Minister Mr Johnson said "all our sympathies" should be with the victims of Epstein, adding: "The law must certainly take its course."


I am new to this whole web socket thing. Up until now I have't really felt the need for them. I knew the theory behind it but I was't sure how I could use them in the applications that I was building. That coupled with the fact that the support of websockets with free PAAS providers like heroku and appfog is limited discouraged me from looking into them deeply. But I am working on this new side project that uses web rtc and web sockets seemed like a very natural choice to use in a signalling server. So I decided to learn it.
The client side api of web sockets is simple. Here is a sample code that connects to echo websocket server.
var socket = new WebSocket("ws://echo.websocket.org/");
socket.onopen = function(event){
//socket connected
socket.send("A message to the server");
};
socket.onmessage = function(event){
console.log("Message from the server: " + event.data);
};
socket.onclose = function(event){
//handle the close event
};
socket.onerror = function(event){
//handle the error event
};
Nice clean api. So far so good. I was encouraged. But things got a little complicated when I started looking into libraries for server side implementations of web sockets. Specifically I was looking for node js libraries, since node js is the language I am most comfortable with. I had heard a lot about socket.io so I looked at it first. The project was failing builds and it was more of a api in itself rather than a pure web socket implementation. It was not what I needed. For instance it used a fall-backs to add support for web browsers that have not implemented web sockets . I am not targeting these browsers (since I am developing a web rtc app and if they don't support sockets they probably don't support web rtc as well) hence I had no need for fall-backs. Another thing with socket.io was that it added a lot of features of it's own like the concept of 'rooms' which while very nice feature meant that I had to learn more to do things the socket.io way.
So I decided to look else where. I came upon this excellent question on stackoverflow that listed all the libraries that implement web sockets. After studying them I chose ws since it was simplest ( and according to the author the fastest ) and wrote a basic websocket server. The thing that I liked the most about ws was that it used almost the same api as the one on the client side. Specifically there were three events that defined the life of a socket.
Once more I was very impressed with how simple it was to create a socket server and created a basic server after a couple of hours. All I had to do was figure out a way to make it work with express which was quite easy after reading the examples in the repo. Now I had to implement my specific requirements the first of which was I wanted to authenticate the web socket. That is if the connection is from a un authenticated source it should be closed as soon as possible.
I was using passport 'local-strategy' for authentication. There was no mention of authenticating the socket. Once more I turned to stack overflow for help. This answer pointed me in the right direction (if you are facing a similar problem don't forget to read the comments of the answer). All I had to do now was replace the memory store with the redis store to get the session data. However at this point I encountered another probelm. How to reuse redis client? Well I don't know if this was the best way to solve but here is what I did. I created a new module.
var redis = require('redis').createClient();
export.exposeConnection = function(){
return redis;
};
Now node js modules are cached by default. So I could create a redis client once and just require
it whenever I needed it. It was easy to get the session data once I solved the problem of reusing the client
redis.get("sess:"+sessionID,function(err,session){
if(err||!session){
socket.close();
}
if(session){
//rest of the code
}
});
Another problem solved. I was moving along quite swiftly. I was making good progress. And then I hit a wall. I will explain the scenario.
{"username":{"socket":socket}}
. In short I wanted to make the contacts of the user aware of his/her presence. A simple requirement. Here is my implementation of it.
function setStatus(contacts,status,initiatingSocket){
initiatingSocket.contactsOnline = [];
if(!contacts.length>0){return;}
var contactsLength = contacts.length;
for(var i=0;i<contactsLength;i++){
if(!clients.hasOwnProperty(contacts[i])){continue;}
var socket = clients[contacts[i]].socket;
socket.send(JSON.stringify({ contact:initiatingSocket.name, status:status}));
initiatingSocket.contactsOnline.push(contacts[i]);
}
if(initiatingSocket.readyState===3){return}
initiatingSocket.send(JSON.stringify({contacts:initiatingSocket.contactsOnline}));
return;
}
Explanation
At this point all the contacts of the user and the user itself is aware of who all are online.
Now it works well. The only problem is the loop itself. I am not a performance maniac but node js being a single threaded will block the application for the duration of the loop. I could use process.nextTick but it won't be of much help. For a small number of contacts and concurrent users this would work fine. But what if there are a large number of users having good amount of contacts (say about a hundred each) then for status change for every user the loop will execute a hundred times. Each loop blocking the application for it's duration. Not good. This is the same problem that the guys at facebook talk about . Maintaining presence is quite costly. I am not assuming a traffic like facebook gets but this is the type of problem for which node js is not a good fit. So I am going to do the same thing those folks did.
I am going to use erlang. I am not as fluent as I would like to be in erlang but this is a very good use case for it. It's light weight threads should be able to solve the problem of concurrency. And using pattern matching I could probably write the code above in a better way . Plus it has quite a good web socket library in cowboy.
However I won't be abandoning node js completely. Here is what I am thinking. I would use 2 sockets on the client. I would authenticate the socket using node js. The in the call back of the first one I will make a request with the second that would actually deal with presence notification part. So my application will be divided into two parts. A node js server that handles the authentication. Erlang web socket server that handles signalling. But before that I want to lock down some other stuff like making web rtc calls between two online users before re-writing my signalling server.
The days ahead are going to be exciting. I will keep you guys posted.


Warehouse Keeper Sorint:
These are the prizes for level 2 members:
Demon's ?Boots - P. Def.: 36 Weight: 1220
Demon's Stockings - P. Def.: 43 Weight: 980 MP Increase: 177
Demon's Gloves - P. Def.: 36 Weight: 610
Full Plate Helmet - P. Def.: 58 Weight: 600


We're sorry but site doesn't work properly without JavaScript enabled. Please enable it to continue.


{% extends 'base.html' %} {% block page_title %}{{ _('Prizes') }}{% endblock %} {% block meta_description -%} {%- endblock %} {% block content %}
{% trans %} The grand prize winners (1 from each region) will each receive $10000 (USD) in video equipment or cash to be used towards school expenses (if the winner is currently enrolled in an accredited film school or film program at an accredited college or university). {% endtrans %}
{% trans %} The category winner (first place in each category in each region) will each receive $5,000 (USD) in video equipment or cash to be used towards school expenses (if the winner is currently enrolled in an accredited film school or film program at an accredited college or university). The category runner up winner (second place in each category in each region) will each receive $1,000 (USD) in video equipment or cash to be used towards school expenses (if the winner is currently enrolled in an accredited film school or film program at an accredited college or university). {% endtrans %}
{% trans %} In addition to the above, everyone who enters and provides their mailing address will receive a Firefox Flicks prize pack. If a team enters, the individual who submitted the flick will receive the prize pack. {% endtrans %}
{% trans legal=url('flicks.base.rules') %} For full prize details please see the Firefox Flicks legal requirements. {% endtrans %}


I had a huge paper due in the morning, so at around 5:00 PM, I called my friend and bought one 20mg Adderall pill from him. Like every other college student, I had heard all about how Adderall aids in school work. I have experience with the usual drugs: alcohol, nicotine, marijuana, painkillers, shrooms, LSD and have even dabbled in cocaine a few times, but I had never taken Adderall.
At around 6:00 PM I swallowed the little pinkish orange pill on an empty stomach. Perhaps it was placebo, but in about 30 minutes I felt a bit light-headed. My field of vision seemed to broaden a bit, and I felt a slight increase in energy. With this new found buzz of energy, and an expectation of what was to come, I began searching for quotes for my paper.
I soon began typing my paper, and I noted that sentences just flowed right out of my head and into the paper. Ideas and thoughts just seemed to come to me easier and faster than usual.
I really began to feel the Adderall at around 7:30, T + 1:30 from when I had first dosed. My vision was a little shaky, my hands were sweating and I could feel my heart beating faster and harder than usual. At this point, I had a fairly good body buzz and just a general sense of euphoria. It wasn't anything too intense, but the feeling was defiantly there. I guess I would compare it to a mild dose of coke... only a little less 'pure' feeling, and without the numbing qualities (and naturally much longer lasting).
During the next 3 hours I was absolutely railed onto my paper. I would describe it as almost a meditative state, in the fact that I didn't notice, or care about anything other than the computer screen in front of me. This is coming from a guy who usually procrastinates for hours and has a hard time concentrating on school work for more than a few minutes at a time. (Yah, I think I have a little ADD--but don't we all?)
I couldn't think about ANYTHING else. I became obsessed with making my paper perfect. I was delighted to find all sorts of connections, parallels, and quotes that I probably would not have been able to put into my paper if it hadn't been for the Adderall.
The one time that I had to leave my desk, I remember feeling SUPER pissed about momentarily stopping work on my paper. Iím usually more than happy to take nice relaxing breaks from school work, but not this time! The whole time I was away from my desk, I was thinking about my paper, my baby. I was actually happy to resume work on it!
I finished the bulk of my paper around 10:30. By this time, I noted a decrease in the intensity of the effects. My vision was normal, my heartbeat had subsided a bit, and the body buzz was almost completely gone. My hands were still pretty sweaty though. I could still feel the speedy effects at work in my brain, and I was still thinking about my paper, although not quite as intensely as before.
Slowly, I could feel the Adderall leave my body, and by around midnight, T+ 6:00, I felt just about back to baseline. I noticed a slight depression from the come-down, but it was nothing too bad. My friend had warned me that it could make it hard to sleep, so at around 1:00 AM, I took a couple Benedryl pills, to aid in getting some sleep. I fell asleep just fine, woke up the next day feeling fine, no hangover, no bad effects.
There is no doubt that Adderall helped me get a paper done that probably would not have been done otherwise. Adderall helped me get into 'the zone' on something that would otherwise be mind-blowiwngly boring.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


MALLRATS A film review by Will FitzHugh Copyright 1997 Will FitzHugh
Some will invoke the dreaded 'Sophomore Slump' shorthand review they learned in Movie Criticism 103 and there's some truth to it, I suppose. Kevin Smith follows up his mesmerizing, no-budget debut, 'Clerks', with this coming-of-age drama about two boneheads, Brodie and T. S., who get dumped by their girlfriends and go to the mall to put the pieces of their shattered lives back together.
Most disappointing is the fact that with a bigger budget Smith could not find better acting talent. The aforementioned boneheads are played by Jason Lee, who takes a page from the Brian O'Halloran (reprising his archetypal Jay role from 'Clerks' in a cameo) school of acting and yells all his lines, and Jeremy London, who reminds me of a younger, duller (now that's dull) Brendan Fraser. Shannen Doherty is a welcome breath of professionalism as Brodie's ex-girlfriend and Michael 'Serial Killer' Rooker slips a bit from previous roles but still impresses as the other ex-girlfriends' manipulative father.
Still, this is the second-best movie I've seen that takes place almost entirely in a mall (first would be 'Dawn of the Dead'). See, Smith is expanding on his vision of the two-store strip from 'Clerks' and creating a whole world to play with. The protagonists' inane discussions of what does and does not constitute a food court skewer the absurdity of our modern pop culture. There's lots of comic book references, a cameo by Stan Lee and some topless fortune telling. Silent Bob and Jay fill the Shakespearian fool roles and provide some hijinks as they try to wreak havoc with mall security.
Kevin Smith seems to have had a bit of trouble in the transition from no-budget to low-budget, but no matter. Slick is not always better and I for one will take some flaws with my entertainment. The longer he can stay away from Hollywood (and if he keeps this up, it might be while), the longer he can produce these warped, slice-of-New-Jersey visions of a broken America.
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


Dear Dry,
Today is International Women’s Day, which is a day we call attention not only to the achievements of women but to the fight for equality around the world. The Feminist Majority has been standing shoulder-to-shoulder with Afghan women and girls in the fight against Taliban oppression for 18 years. Since the fall of the Taliban regime in 2001, many Afghan women and girls are going to school, have entered the paid workforce, and have benefited from a significantly reduced maternal mortality rate. But the Taliban has not gone entirely away and is threatening constantly women and girls’ advancement and security. *We must remain shoulder-to-shoulder with Afghan women and girls. [ http://salsa.wiredforchange.com/o/1269/p/dia/action3/common/public/?action_KEY=11000 ]*
* [ http://salsa.wiredforchange.com/o/1269/p/dia/action3/common/public/?action_KEY=11000 ]* [ http://salsa.wiredforchange.com/o/1269/p/dia/action3/common/public/?action_KEY=11000 ]
Many Afghan women leaders as well as ordinary Afghans are saying their number one concern is security, and they want the remaining U.S. support troops to stay. We support the Afghan women’s groups concerns. This is no time to leave Afghanistan completely when women and girls are making progress and the new unity government, pledged to women’s empowerment, is trying to move forward.
*Please urge President Obama, Secretary Kerry, and Congress to support postponement or extension of the US **timeline for removing support troops from Afghanistan.* [ http://salsa.wiredforchange.com/o/1269/p/dia/action3/common/public/?action_KEY=11000 ]
President Obama is right now reviewing his decision to withdraw 5,000 U.S. troops from Afghanistan by the end of 2015 and ALL troops by the end of 2016. Afghan women and girls have come too far to be turned back now. If the Taliban returns, too many of the women who have gone to work and school and who have taken on leadership in government or in the several hundred established Afghan women’s groups, will be killed. We must stand shoulder-to-shoulder with these courageous women.
*This International Women’s Day, tell President Obama, Secretary Kerry, and Congress that the U.S. must not abandon Afghan women and girls who need and want security. [ http://salsa.wiredforchange.com/o/1269/p/dia/action3/common/public/?action_KEY=11000 ]* Let’s help Afghan women protect the gains they have won.
For women’s lives and equality,
Normal 0 false false false EN-US JA X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-name:“Table Normal”; mso-style-parent:“”; font-size:10.0pt;“Times New Roman”; border:none;}
Eleanor Smeal
President, Feminist Majority


Java VisualVM is a tool that provides a visual interface for viewing detailed information about Java applications while they are running on a Java Virtual Machine (JVM), and for troubleshooting and profiling these applications. Various optional tools, including Java VisualVM, are provided with the Java Development Kit (JDK) for retrieving different types of data about running JVM software instances. For example, most of the previously standalone tools JConsole, jstat, jinfo, jstack, and jmap are part of Java VisualVM. Java VisualVM federates these tools to obtain data from the JVM software, then re-organizes and presents the information graphically, to enable you to view different data about multiple Java applications uniformly, whether they are running locally or on remote machines. Furthermore, developers can extend Java VisualVM to add new functionality by creating and posting plug-ins to the tool's built-in update center.
Java VisualVM can be used by Java application developers to troubleshoot applications and to monitor and improve the applications' performance. Java VisualVM can allow developers to generate and analyse heap dumps, track down memory leaks, browse the platform's MBeans and perform operations on those MBeans, perform and monitor garbage collection, and perform lightweight memory and CPU profiling.
Java VisualVM was first bundled with the the Java platform, Standard Edition (Java SE) in JDK version 6, update 7.


labeled
by Kevin Reiss at 2020-07-09 22:07:10.General publishing has been configured using MARCXML (MARC binary is unreliable). Both the OAI endpoint and FTP output have been tested and work properly.
closed
by None at 2020-07-10 19:42:37.General publishing has been successfully run multiple times from the SFTP.
This was successfully installed in the development environment:
The following errors were raised when attempting to import a test spreadsheet:
labeled
by James R. Griffin III at 2020-07-10 14:25:32.labeled
by James R. Griffin III at 2020-07-10 14:30:00.renamed
by James R. Griffin III at 2020-07-10 05:12:51.transferred
by James R. Griffin III at 2020-07-10 05:15:40.labeled
by James R. Griffin III at 2020-07-10 05:16:40.Trying to import these into updatespace did succeed, but failed to mint the new ARKs with only the following map having been generated:
submission_8095 99567
submission_8114 99568
submission_8123 99569
submission_8184 99570
submission_8188 99571
submission_8509 99572
submission_8665 99573
submission_8918 99574
Invoking the following did successfully generate the ARKs:
/dspace/bin/dspace import --add --collection $collection_handle --eperson $eperson --mapfile test-import.map --source "$source"
submission_8095 99999/fk46m4kx0x
submission_8114 99999/fk42v3w38c
submission_8123 99999/fk4z61vv4d
submission_8184 99999/fk4tf15212
submission_8188 99999/fk4pp0f78j
submission_8509 99999/fk4jw9qf4k
submission_8665 99999/fk4f490m9s
submission_8918 99999/fk49c88t4j
assigned
by James R. Griffin III at 2020-07-10 05:25:39.assigned
by James R. Griffin III at 2020-07-10 06:30:10.Looks good so far, looping in @kelea99 to take a look.
@tpendragon this looks great so far. Clean and straight forward
mentioned
by Kim Leaman at 2020-07-10 13:11:25.subscribed
by Kim Leaman at 2020-07-10 13:11:25.mentioned
by Trey Pendragon at 2020-07-10 13:40:29.subscribed
by Trey Pendragon at 2020-07-10 13:40:29.referenced
by Trey Pendragon at 2020-07-10 18:52:59.Per Web Analytics meeting with ITIMS this morning, we're going to record this with Google Analytics.
labeled
by None at 2020-07-10 15:28:48.deployed
by Trey Pendragon at 2020-07-10 18:57:19.Here is a PO Line that should be mapped to 'On-Order'.
POL-8098
The status of the line is 'Sent'.
The PO Line number can be delivered in General Publishing at the item level.
closed
by Kevin Reiss at 2020-07-09 22:06:27.Coverage increased (+0.1%) to 96.512% when pulling 789fd9f30a15ef2bfd3076d93bc94dfe94701aa6 on account-fields into a4ee6b68d3361313cd02c310387799ff900b9830 on master.
head_ref_force_pushed
by None at 2020-07-10 14:11:30.referenced
by None at 2020-07-10 14:43:01.merged
by None at 2020-07-10 14:43:02.closed
by None at 2020-07-10 14:43:02.assigned
by None at 2020-07-10 13:06:39.closed
by None at 2020-07-10 14:43:02.deployed
by Trey Pendragon at 2020-07-10 17:39:17.referenced
by Kevin Reiss at 2020-07-10 18:03:18.merged
by Kevin Reiss at 2020-07-10 18:03:18.closed
by Kevin Reiss at 2020-07-10 18:03:18.renamed
by Esmé Cowles at 2020-07-10 18:37:22.We can just use 3 hours for everything.
closed
by Esmé Cowles at 2020-07-10 18:41:59.Decision 7/9: CDL items will be in the cdlres
(reserves) or cdl
(non-reserve) locations.
closed
by Esmé Cowles at 2020-07-10 18:43:14.This was demonstrated 7/10 — keeping this ticket open to track production deployment of this feature.
The copyright notice in the linked document is displayed before a user is allowed to check out an item.
closed
by Esmé Cowles at 2020-07-10 18:50:09.This is lower priority than the queue-related features. After we open library buildings to patron access, we will need a workflow to figure out how to reshelve items, allow users to request CDL items, or decide if we're OK with keeping items permanently sequestered.
labeled
by Esmé Cowles at 2020-07-10 18:44:08.deployed
by Trey Pendragon at 2020-07-10 19:35:18.referenced
by Kevin Reiss at 2020-07-10 19:53:29.merged
by Kevin Reiss at 2020-07-10 19:53:29.closed
by Kevin Reiss at 2020-07-10 19:53:29.head_ref_deleted
by Kevin Reiss at 2020-07-10 19:53:33.assigned
by None at 2020-07-10 16:23:51.referenced
by None at 2020-07-10 16:30:22.Coverage remained the same at 100.0% when pulling 1aaa2a046e5b8d644297aa7cb5e5413749f5342a on 811-disallow-more into b24410464cadc4923979b0f7608f843aeeadf7c1 on master.
referenced
by Francis Kayiwa at 2020-07-10 13:10:37.merged
by Francis Kayiwa at 2020-07-10 13:10:37.closed
by Francis Kayiwa at 2020-07-10 13:10:38.head_ref_deleted
by Francis Kayiwa at 2020-07-10 13:10:41.closed
by Francis Kayiwa at 2020-07-10 13:12:23.referenced
by Francis Kayiwa at 2020-07-10 13:12:22.merged
by Francis Kayiwa at 2020-07-10 13:12:23.closed
by Francis Kayiwa at 2020-07-10 13:12:23.head_ref_deleted
by Francis Kayiwa at 2020-07-10 13:12:26.renamed
by None at 2020-07-10 15:54:12.assigned
by None at 2020-07-10 15:54:16.referenced
by Francis Kayiwa at 2020-07-10 16:50:33.merged
by Francis Kayiwa at 2020-07-10 16:50:33.closed
by Francis Kayiwa at 2020-07-10 16:50:33.head_ref_deleted
by Francis Kayiwa at 2020-07-10 16:50:37.head_ref_force_pushed
by Francis Kayiwa at 2020-07-09 22:09:02.head_ref_force_pushed
by Francis Kayiwa at 2020-07-10 14:40:15.head_ref_force_pushed
by Francis Kayiwa at 2020-07-10 15:30:16.head_ref_force_pushed
by Francis Kayiwa at 2020-07-10 17:25:21.head_ref_force_pushed
by Francis Kayiwa at 2020-07-10 18:32:34.We'll try again once we're ready / able to deploy the application code that goes along with this. Thanks!
referenced
by None at 2020-07-10 20:22:59.merged
by None at 2020-07-10 20:22:59.closed
by None at 2020-07-10 20:22:59.head_ref_deleted
by None at 2020-07-10 20:23:04.closed
by Eliot Jordan at 2020-07-09 22:25:45.referenced
by Eliot Jordan at 2020-07-09 22:25:44.merged
by Eliot Jordan at 2020-07-09 22:25:44.closed
by Eliot Jordan at 2020-07-09 22:25:45.head_ref_force_pushed
by Eliot Jordan at 2020-07-09 22:36:53.ready_for_review
by Eliot Jordan at 2020-07-09 22:41:56.referenced
by Eliot Jordan at 2020-07-09 22:42:12.merged
by Eliot Jordan at 2020-07-09 22:42:12.closed
by Eliot Jordan at 2020-07-09 22:42:12.head_ref_force_pushed
by Eliot Jordan at 2020-07-09 22:39:48.renamed
by Eliot Jordan at 2020-07-09 23:34:39.referenced
by James R. Griffin III at 2020-07-10 06:34:20.merged
by James R. Griffin III at 2020-07-10 06:34:20.closed
by James R. Griffin III at 2020-07-10 06:34:20.head_ref_deleted
by James R. Griffin III at 2020-07-10 06:34:23.successfully imported into ASpace:
- [x] WC064
error 413 Request Entity Too Large
extent field needs to be prepped per below
- [x] C0614
error 413 Request Entity Too Large
needed dates fixed (end date occurring before start date)
invalid value item
- [x] MC152
(had to correct an end date occurring before the start date)
- [x] C0807
data issue: Error: #<RuntimeError: Problem creating 'Abreu, Juan': Invalid value: item>
Fixed. NB: ASpace does not allow the word "items" in the value of the extent field. It does accept other values (such as "folders"), however.
- [x] MC001.04
error 413 Request Entity Too Large
end date before start date needed fixing
broke into two smaller pieces
at least one extent is required--all extents are there, but the importer seems to be skipping those that contain a comma separator, which results in an empty array
successfully imported the two pieces, now running into issues with merging them in ASpace
timeouts resolved (thanks @kayiwa !) and merged
- [x] C0776
error 413 Request Entity Too Large
some unittitles are too long, causing import to fail
- [x] C0879
error: the following errors were found: id_0 : That ID is already in use
Turns out this is the error thrown when the eadid is already in use in ASpace
https://github.com/pulibrary/pulfalight/pull/293 did not need to be deprecated
closed
by James R. Griffin III at 2020-07-10 15:50:58.head_ref_deleted
by James R. Griffin III at 2020-07-10 15:51:29.renamed
by James R. Griffin III at 2020-07-10 15:54:23.closed
by James R. Griffin III at 2020-07-10 16:03:22.convert_to_draft
by James R. Griffin III at 2020-07-10 14:52:53.head_ref_force_pushed
by James R. Griffin III at 2020-07-10 15:27:38.ready_for_review
by James R. Griffin III at 2020-07-10 15:50:29.referenced
by James R. Griffin III at 2020-07-10 16:03:22.merged
by James R. Griffin III at 2020-07-10 16:03:22.closed
by James R. Griffin III at 2020-07-10 16:03:23.head_ref_deleted
by James R. Griffin III at 2020-07-10 16:03:25.assigned
by James R. Griffin III at 2020-07-10 16:03:43.pulfalight:seed
rake task already exists. Update it so that it runs the indexing inline and commits docs immediately.
closed
by James R. Griffin III at 2020-07-10 18:02:00.head_ref_force_pushed
by Eliot Jordan at 2020-07-10 16:46:51.referenced
by James R. Griffin III at 2020-07-10 18:01:59.merged
by James R. Griffin III at 2020-07-10 18:01:59.closed
by James R. Griffin III at 2020-07-10 18:02:00.head_ref_deleted
by James R. Griffin III at 2020-07-10 18:02:05.head_ref_deleted
by Eliot Jordan at 2020-07-10 18:19:26.head_ref_deleted
by Eliot Jordan at 2020-07-10 18:19:28.head_ref_deleted
by Eliot Jordan at 2020-07-10 18:19:29.head_ref_deleted
by Eliot Jordan at 2020-07-10 18:19:30.head_ref_deleted
by Eliot Jordan at 2020-07-10 18:19:33.head_ref_deleted
by Eliot Jordan at 2020-07-10 18:19:34.head_ref_deleted
by Eliot Jordan at 2020-07-10 18:19:35.head_ref_deleted
by Eliot Jordan at 2020-07-10 18:19:36.head_ref_deleted
by Eliot Jordan at 2020-07-10 18:19:40.labeled
by James R. Griffin III at 2020-07-10 18:19:19.milestoned
by James R. Griffin III at 2020-07-10 18:19:20.renamed
by James R. Griffin III at 2020-07-10 18:19:38.assigned
by James R. Griffin III at 2020-07-10 18:19:47.head_ref_deleted
by Eliot Jordan at 2020-07-10 18:20:48.head_ref_deleted
by Eliot Jordan at 2020-07-10 18:20:49.head_ref_deleted
by Eliot Jordan at 2020-07-10 18:20:52.head_ref_deleted
by Eliot Jordan at 2020-07-10 18:20:54.I have just discovered that I had been making progress on this with https://github.com/pulibrary/pulfalight/tree/catalog-raw-responses
labeled
by James R. Griffin III at 2020-07-10 15:57:09.milestoned
by James R. Griffin III at 2020-07-10 15:57:09.assigned
by Eliot Jordan at 2020-07-10 15:57:09.head_ref_deleted
by Eliot Jordan at 2020-07-10 18:21:00.head_ref_deleted
by Eliot Jordan at 2020-07-10 18:21:02.head_ref_deleted
by Eliot Jordan at 2020-07-10 18:21:03.head_ref_deleted
by Eliot Jordan at 2020-07-10 18:21:05.head_ref_deleted
by James R. Griffin III at 2020-07-10 18:22:39.head_ref_deleted
by James R. Griffin III at 2020-07-10 18:22:42.head_ref_deleted
by James R. Griffin III at 2020-07-10 18:22:48.Progress has been made on this from https://github.com/pulibrary/pulfalight/tree/issues-39-jrgriffiniii-aeon-pulfa-indexing and https://github.com/pulibrary/pulfalight/tree/issues-39-jrgriffiniii-aeon-integration
head_ref_deleted
by James R. Griffin III at 2020-07-10 18:24:53.head_ref_deleted
by James R. Griffin III at 2020-07-10 18:24:54.head_ref_deleted
by James R. Griffin III at 2020-07-10 18:25:24.head_ref_deleted
by James R. Griffin III at 2020-07-10 18:25:25.head_ref_deleted
by James R. Griffin III at 2020-07-10 18:25:34.head_ref_force_pushed
by James R. Griffin III at 2020-07-10 19:42:24.referenced
by Kevin Reiss at 2020-07-10 17:37:07.merged
by Kevin Reiss at 2020-07-10 17:37:07.closed
by Kevin Reiss at 2020-07-10 17:37:07.head_ref_deleted
by Kevin Reiss at 2020-07-10 17:37:11.referenced
by Kevin Reiss at 2020-07-10 19:18:20.merged
by Kevin Reiss at 2020-07-10 19:18:20.closed
by Kevin Reiss at 2020-07-10 19:18:20.head_ref_deleted
by Kevin Reiss at 2020-07-10 19:18:23.referenced
by Kevin Reiss at 2020-07-10 16:00:19.merged
by Kevin Reiss at 2020-07-10 16:00:19.closed
by Kevin Reiss at 2020-07-10 16:00:19.head_ref_deleted
by Kevin Reiss at 2020-07-10 16:00:24.


--- layout: post title: A Phaser.js Platformer (#2) date: 2019-01-19 01:25:39.000000000 +05:30 type: post parent_id: '0' published: true password: '' status: publish tags: [Project, Phaser] meta: timeline_notification: '1547841342' _publicize_job_id: '26681566674' author: login: priyankasaggu119 email<EMAIL_ADDRESS>display_name: priyankasaggu119 first_name: '' last_name: '' permalink: "/2019/01/19/a-phaser-js-platformer-2/" ---
January 19, 2019
Today was really really tiring. Have spent an entire day in writing code for the Virtual Controllers of the game. And Yeah, finally succeeded at the end of it, check it now.
So, everyone can play now, either on desktop or on mobile screens.
Now, looking forward to writing more levels, with some more scary 😈enemies.
Till then, take care :)


CLASS WEB PAGE: http://academy.cba.mit.edu/classes/scanning_printing/index.html
DOWNLOAD FILES:
-3D PRINTER
|3D
| STL
-3D SCANNER
PLY
3D print is not a simple technology and the process to get good results needs much more experimentation and learning of techniques for making additive parts out of a file. In this fifth week I learn about 3d printing, scanning, the requirements to design a good objet to 3d print and some materials.
'Here' is the link of the webinar of Moritz Begle about 3D printing materials for us students of Fab Academy 2015.
In these days I tried to learn Grasshopper following severals tutorials one of which is the 'RHINO/GRASSHOPPER' introduction organized by Fab Lab Frosinone.
I started from a circle defined by radius and center point;
- I created a series of the first circle along the z axis;
- Using an attraction point and Graph Mapper I scaled in xy the circles along a Parabola;
- I transformed the curves in loft and I rotated the structure around the z axis;
- Then I created other attraction point along a circle: it attracts the normal vector of each face created;
- I closed the mesh and I baked it.
PRINT SETTINGS:
Cura Software
Print Speed: 120 (mm/s)
Printing Temperature: 185 (C)
Bed Temperature: 65 (C)
Fill Density: 20 (%)
Filament Diameter: 1.75 (mm)
Filament Material : PLA
A SHORT VIDEO OF MINE 3D PRINT:
https://vimeo.com/121133418
MACHINE REFERENCES:
http://www.personalfab.it/shop/deltawasp-60-100/
To make the 3D scan I used the Sense 3D Scanner. I had very few time to do it, so I decided to scan an object in the fab lab. I choce a 3D printed pot and I scanned it. The software was quiete able to repair my scan but for a better result it should be worked with a software like Rhinoceros.


Theater Performers Stabbed During Show in Saudi Arabia
by Abbas Al Lawati(Bloomberg) -- Three theater performers were stabbed during a live performance in the Saudi capital, Riyadh, police said early on Tuesday.
The assailant, a 33-year-old Yemeni resident, stormed the stage and stabbed a woman and two men, a police spokesman was cited as saying by the state-run Saudi Press Agency. The performers were treated for superficial wounds and are in stable condition. Police apprehended the assailant, the spokesman said. The nationality of the victims is still unknown.
Read: Things Not Always What They Seem as Saudi Arabia Loosens Up
While police didn’t cite the motive for the attack, it comes as the conservative kingdom undergoes a drastic overhaul of its social norms spearheaded by its young crown prince, Mohammed bin Salman. Saudis have been granted freedoms that include the loosening of rules on women’s attire and travel as well as the mixing of genders as part of a plan to wean the economy off oil.
To contact the reporter on this story: Abbas Al Lawati in Dubai at<EMAIL_ADDRESS>To contact the editors responsible for this story: Shaji Mathew at<EMAIL_ADDRESS>Riad Hamade
For more articles like this, please visit us at bloomberg.com
©2019 Bloomberg L.P.


Source code for torch.distributed.algorithms.join
import warnings
from abc import ABC, abstractmethod
from types import TracebackType
from typing import Any, List, NamedTuple, Optional, Type
import torch
import torch.distributed as dist
[docs]class JoinHook():
r"""
This defines a join hook, which provides two entry points in the join
context manager: a main hook, which is called repeatedly while there exists
a non-joined process, and a post-hook, which is called once all processes
have joined.
To implement a join hook for the generic join context manager, define a
class that inherits from :class:`JoinHook` and override ``main_hook()`` and
``post_hook()`` as appropriate.
"""
[docs] def main_hook(self) -> None:
r"""
This hook is called repeatedly while there exists a non-joined process
to shadow collective communications in one training iteration (i.e. in
one forward pass, backward pass, and optimizer step).
"""
...
[docs] def post_hook(self, is_last_joiner: bool) -> None:
r"""
This hook is called after all processes have joined. It is passed an
additional ``bool`` argument ``is_last_joiner``, which indicates if the
rank is one of the last to join.
Arguments:
is_last_joiner (bool): ``True`` if the rank is one of the last to
join; ``False`` otherwise.
"""
...
[docs]class Joinable(ABC):
r"""
This defines an abstract base class for joinable classes. A joinable class
(inheriting from :class:`Joinable`) should implement :meth:`join_hook`,
which returns a :class:`JoinHook` instance, in addition to
:meth:`join_device` and :meth:`join_process_group` that return device and
process group information, respectively.
"""
@abstractmethod
def __init__(self):
super(Joinable, self).__init__()
self._join_config = _JoinConfig.construct_disabled_join_config()
[docs] @abstractmethod
def join_hook(self, **kwargs) -> JoinHook:
r"""
Returns a :class:`JoinHook` instance for the given :class:`Joinable`.
Arguments:
kwargs (dict): a :class:`dict` containing any keyword arguments
to modify the behavior of the join hook at run time; all
:class:`Joinable` instances sharing the same join context
manager are forwarded the same value for ``kwargs``.
"""
...
@property
@abstractmethod
def join_device(self) -> torch.device:
r"""
Returns the device from which to perform collective communications
needed by the join context manager implementation itself.
"""
...
@property
@abstractmethod
def join_process_group(self) -> Any:
r"""
Returns the process group for the collective communications needed by
the join context manager itself.
"""
...
class _JoinConfig(NamedTuple):
r"""
This includes all fields needed from a :class:`Joinable` instance for the
join context manager side.
"""
enable: bool
throw_on_early_termination: bool
is_first_joinable: bool
@staticmethod
def construct_disabled_join_config():
r"""
Returns a :class:`_JoinConfig` instance indicating that join-related
logic should be disabled, e.g. if the caller is not in a join context
manager.
"""
return _JoinConfig(
enable=False,
throw_on_early_termination=False,
is_first_joinable=False
)
[docs]class Join():
r"""
This class defines the generic join context manager, which allows custom
hooks to be called after a process joins. These hooks should shadow the
collective communications of non-joined processes to prevent hanging and
erroring and to ensure algorithmic correctness. Refer to :class:`JoinHook`
for details about the hook definition.
.. warning::
The context manager requires each participating :class:`Joinable` to
call the method :meth:`notify_join_context()` before its own per-
iteration collective communications to ensure correctness.
.. warning::
The context manager requires that all ``process_group`` attributes in
the :class:`JoinHook` objects are the same. If there are multiple
:class:`JoinHook` objects, then the ``device`` of the first is used.
The process group and device information is used for checking for non-
joined processes and for notifying processes to throw an exception if
``throw_on_early_termination`` is enabled, both of which using an all-
reduce.
Arguments:
joinables (List[Joinable]): a list of the participating
:class:`Joinable` s; their hooks are iterated over in the given
order.
enable (bool): a flag enabling uneven input detection; setting to
``False`` disables the context manager's functionality and should
only be set when the user knows the inputs will not be uneven
(default: ``True``).
throw_on_early_termination (bool): a flag controlling whether to throw an
exception upon detecting uneven inputs (default: ``False``).
Example::
>>> import os
>>> import torch
>>> import torch.distributed as dist
>>> import torch.multiprocessing as mp
>>> import torch.nn.parallel.DistributedDataParallel as DDP
>>> import torch.distributed.optim.ZeroRedundancyOptimizer as ZeRO
>>> from torch.distributed.algorithms.join import Join
>>>
>>> # On each spawned worker
>>> def worker(rank):
>>> dist.init_process_group("nccl", rank=rank, world_size=2)
>>> model = DDP(torch.nn.Linear(1, 1).to(rank), device_ids=[rank])
>>> optim = ZeRO(model.parameters(), torch.optim.Adam, lr=0.01)
>>> # Rank 1 gets one more input than rank 0
>>> inputs = [torch.tensor([1.]).to(rank) for _ in range(10 + rank)]
>>> with Join([model, optim]):
>>> for input in inputs:
>>> loss = model(input).sum()
>>> loss.backward()
>>> optim.step()
>>> # All ranks reach here without hanging/erroring
"""
def __init__(
self,
joinables: List[Joinable],
enable: bool = True,
throw_on_early_termination: bool = False,
**kwargs,
):
if len(joinables) == 0:
raise ValueError("The join context manager requires at least one joinable")
self._joinables = joinables
self._join_hooks = [joinable.join_hook(**kwargs) for joinable in self._joinables]
self._enable = enable
self._throw_on_early_termination = throw_on_early_termination
self._set_joinable_configs()
self._extract_dist_info()
def _set_joinable_configs(self) -> None:
r"""
Sets the :class:`_JoinConfig` of each participating :class:`Joinable`.
"""
assert len(self._joinables) > 0
is_first_joinable = True
for joinable in self._joinables:
joinable._join_config = _JoinConfig(
enable=self._enable,
throw_on_early_termination=self._throw_on_early_termination,
is_first_joinable=is_first_joinable
)
is_first_joinable = False
def _extract_dist_info(self) -> None:
r"""
Extracts the process group and device information from the joinables.
If there are multiple joinables, then the context manager uses the
first specified device.
Preconditions:
``self._joinables`` is not ``None`` and is non-empty.
Raises:
ValueError
If there are multiple conflicting ``process_group`` attributes
among the ``Joinable`` objects.
"""
process_group = None
device = None
for joinable in self._joinables:
if process_group is None:
process_group = joinable.join_process_group
elif process_group != joinable.join_process_group:
raise ValueError("Using join context manager with multiple process groups")
if device is None:
device = joinable.join_device
self._process_group = process_group
self._rank = dist.get_rank(self._process_group)
self._device = device
def __enter__(self):
...
def __exit__(
self,
type: Optional[Type[BaseException]],
value: Optional[BaseException],
traceback: Optional[TracebackType]
):
r"""
Repeatedly runs the main hooks until all processes join; then, runs
the post-hooks.
Raises:
RuntimeError
If ``throw_on_early_termination=True``.
"""
if not self._enable or type:
return # propagate the exception directly if one was raised
all_procs_joined = False
is_last_joiner = True
i = 0
WARN_THRESHOLD = 1000
warnings.simplefilter("once")
while not all_procs_joined:
if i > WARN_THRESHOLD:
warnings.warn(
"Detected uneven input skew of greater than "
f"{WARN_THRESHOLD}. This means that rank "
f"{self._rank} has at least {WARN_THRESHOLD} "
f"fewer inputs than other currently-active ranks. "
"This level of skew could lead to performance "
"degradation during training."
)
# Shadow the all-reduce in non-joined processes
num_nonjoined_procs = self._get_num_nonjoined_procs()
if num_nonjoined_procs == 0:
all_procs_joined = True
else:
if self._throw_on_early_termination:
self._notify_procs_to_terminate()
# Run main hooks
for join_hook in self._join_hooks:
join_hook.main_hook()
is_last_joiner = False
i += 1
# Run post-hooks
for join_hook in self._join_hooks:
join_hook.post_hook(is_last_joiner)
def _get_num_nonjoined_procs(self):
r"""
Returns the number of non-joined processes by shadowing an all-reduce
in the non-joined processes.
"""
num_nonjoined_procs = torch.zeros(1, device=self._device)
dist.all_reduce(num_nonjoined_procs, group=self._process_group)
return num_nonjoined_procs.item()
def _notify_procs_to_terminate(self):
r"""
Schedules an all-reduce to notify non-joined processes to terminate
and raises a ``RuntimeError`` indicating that the current process has
exhausted its inputs.
"""
ones = torch.ones(1, device=self._device)
dist.all_reduce(ones, group=self._process_group)
raise RuntimeError(f"Rank {self._rank} exhausted all inputs.")
[docs] @staticmethod
def notify_join_context(joinable: Joinable):
r"""
Notifies the join context manager that the calling process has not yet
joined; then, if ``throw_on_early_termination=True``, checks if uneven
inputs have been detected (i.e. if one process has already joined) and
throws an exception if so.
This method should be called from a :class:`Joinable` object before
its per-iteration collective communications. For example, this should
be called at the beginning of the forward pass in
:class:`DistributedDataParallel`.
Only the first :class:`Joinable` object passed into the context
manager performs the collective communications in this method, and
for the others, this method is vacuous.
Arguments:
joinable (Joinable): the :class:`Joinable` object calling this
method.
Returns:
An async work handle for the all-reduce meant to notify the context
manager that the process has not yet joined if ``joinable`` is the
first one passed into the context manager; ``None`` otherwise.
"""
assert hasattr(joinable, "_join_config"), \
f"Check that the {type(joinable)} constructor calls the " \
"``Joinable`` constructor"
join_config = joinable._join_config
# First joinable is responsible for the collective communications
if not join_config.is_first_joinable or not join_config.enable:
return None
device = joinable.join_device
process_group = joinable.join_process_group
# Schedule an all-reduce to indicate that the caller has not yet joined
ones = torch.ones(1, device=device)
work = dist.all_reduce(ones, group=process_group, async_op=True)
if join_config.throw_on_early_termination:
# Check if uneven inputs have been detected
zeros = torch.zeros(1, device=device)
dist.all_reduce(zeros, group=process_group)
should_throw = zeros.item()
if should_throw:
raise RuntimeError(
"Detected at least one rank that exhausted inputs. "
"Throwing across all ranks."
)
return work


home
blog posts
2015
Inheritance 'no' Composition 'yes'?!
Disarm a Stereotype Threat
Fizzbuzz Loop
An Array of Values
SQL Injection - entry field detected
Duck and Cover
Ask a Silly Question
Git
Chef
CSS
c3_Thinking style
Arrays & Hashes
Enumerable map
Tech Issues
Pairing and Feedback
A Class about Organization
Peer Pairing
Ruby Arrays and Hashes


{{> components/products/new products=products.top_sellers title="Top Sellers"}}
{{/if}} --}}
{{!-- feature-set-2 --}}
{{> components/deadsoxy/home-feature-set-1}}
{{> components/deadsoxy/home-about}} {{#if products.featured}}
{{> components/products/featured products=products.featured title="Featured"}}
{{/if}}
Contact Us
{{> components/page/contact-us-form2}}
{{> components/products/new products=products.top_sellers title="Top Sellers"}}
{{/if}} --}}


ArtsFeed is the official print and online arts publication of the Bronx High School of Science. As a publication, it provides a platform for students to discuss, write, and depict art in an independent medium. The content encompasses a broad range of arts involving drama, dance, music, pop culture, and more. Contributors are encouraged to convey their unfiltered thoughts in whatever form they desire. This medium serves as a place where we see the art in the world, from politics to music.
We believe everyone wants a voice. Throughout history, our voices have been shunned. But there have always been those who spoke up for those who could not express-the voices of the voiceless. Those voices, although spanning many generations and covering many diverse topics, had one thing in common: art. Whether it be a Renaissance painting, a Debussy’s tonal poem, or a modern rap track, people have always used art to express themselves. Our attempts at being heard illuminate artistic characteristics and tendencies of our community.


findOrthologs.Rd
findOrthologs(): map orthologous genes using ENSEMBL BioMART (getBM) from one species to another species. This function retrieves ids by 500 at a time to decrease the load on ENSEMBL servers.
findOrthologsHsMm(): map orthologous genes using ENSEMBL BioMART from human to mouse
findOrthologsMmHs(): map orthologous genes using ENSEMBL BioMART from mouse to human
loadBIOMARTdatasets(): Load 2 ENSEMBL BioMART datasets for finding orthologs. Details useMart
attributesFiltersFromTo(): List filters and attributes available in each dataset. Details: listAttributes
findOrthologs(datasets_FROM_TO = loadBIOMARTdatasets(from = "hsapiens_gene_ensembl", to = "mmusculus_gene_ensembl"), from_filters = "hgnc_symbol", from_values = c("TP53", "TERT"), to_attributes = "external_gene_name", to_homolog_attribute = "mmusculus_homolog_ensembl_gene", from_gene_id_name = "human_ensembl_gene_id", to_gene_id_name = "mouse_ensembl_gene_id") findOrthologsHsMm(from_filters = "hgnc_symbol", from_values = c("TP53", "TERT"), to_attributes = "external_gene_name") findOrthologsMmHs(from_filters = "ensembl_gene_id", from_values = c("ENSMUSG00000059552", "ENSMUSG00000021611"), to_attributes = "hgnc_symbol") loadBIOMARTdatasets(from = "hsapiens_gene_ensembl", to = "mmusculus_gene_ensembl") attributesFiltersFromTo(datasets_FROM_TO = loadBIOMARTdatasets())
| datasets_FROM_TO | environment containing "Mart" objects produced by |
|---|---|
| from_filters | Filters (one or more) that should be used in the query in the "from" species database. A possible list of filters can be retrieved using |
| from_values | Values of the filter, e.g. vector of affy IDs in the "from" species database. If multiple filters are specified then the argument should be a list of vectors of which the position of each vector corresponds to the position of the filters in the filters argument. Please limit the number of values to less than 500. |
| to_attributes | Attributes you want to retrieve from the "to" species database. A possible list of attributes can be retrieved using the function |
| to_homolog_attribute | Attribute that returns homolog gene id in the "from" database |
| from_gene_id_name | name of the column containing the ENSEMBL gene ids of "from" species |
| to_gene_id_name | name of the column containing the ENSEMBL gene ids of "from" species |
| from | ENSEMBL biomart dataset for a species whose identifiers you want to convert. Full list of possible options: listDatasets("ensembl") |
| to | ENSEMBL biomart dataset for a species whose identifiers you want convert into. |
| datasets_FROM_TO | environment containing "Mart" objects produced by |
findOrthologs(): data.frame containing the mapping of homologous genes from one species to another species including to_attributes
findOrthologsHsMm(): data.frame containing the mapping of homologous genes from human to mouse including to_attributes
findOrthologsMmHs(): data.frame containing the mapping of homologous genes from mouse to human including to_attributes
loadBIOMARTdatasets(): environment containing 2 object of class 'Mart', one for each species dataset
attributesFiltersFromTo(): list containing 4 vector of either filters or attributes for each dataset
findOrthologs()#> human_ensembl_gene_id mouse_ensembl_gene_id external_gene_name hgnc_symbol #> 1 ENSG00000141510 ENSMUSG00000059552 Trp53 TP53 #> 2 ENSG00000164362 ENSMUSG00000021611 Tert TERTfindOrthologsHsMm()#> human_ensembl_gene_id mouse_ensembl_gene_id external_gene_name hgnc_symbol #> 1 ENSG00000141510 ENSMUSG00000059552 Trp53 TP53 #> 2 ENSG00000164362 ENSMUSG00000021611 Tert TERTfindOrthologsMmHs()#> mouse_ensembl_gene_id human_ensembl_gene_id hgnc_symbol #> 1 ENSMUSG00000021611 ENSG00000164362 TERT #> 2 ENSMUSG00000059552 ENSG00000141510 TP53attributes = attributesFiltersFromTo(datasets_FROM_TO = loadBIOMARTdatasets()) grep("Mouse gene stable ID", attributes$from_attributes$description, ignore.case = T, value = T)#> [1] "Algerian mouse gene stable ID" #> [2] "Mouse gene stable ID" #> [3] "Northern American deer mouse gene stable ID" #> [4] "Ryukyu mouse gene stable ID" #> [5] "Shrew mouse gene stable ID" #> [6] "Steppe mouse gene stable ID"#> name description page #> 2213 mmusculus_homolog_associated_gene_name Mouse gene name homologs#> [1] "hgnc_symbol"# find the desired column name attributes$from_attributes[grep("Mouse gene stable ID", attributes$from_attributes$description, ignore.case = T),]#> name #> 292 mspretus_homolog_ensembl_gene #> 2212 mmusculus_homolog_ensembl_gene #> 2308 pmbairdii_homolog_ensembl_gene #> 2692 mcaroli_homolog_ensembl_gene #> 2804 mpahari_homolog_ensembl_gene #> 2900 mspicilegus_homolog_ensembl_gene #> description page #> 292 Algerian mouse gene stable ID homologs #> 2212 Mouse gene stable ID homologs #> 2308 Northern American deer mouse gene stable ID homologs #> 2692 Ryukyu mouse gene stable ID homologs #> 2804 Shrew mouse gene stable ID homologs #> 2900 Steppe mouse gene stable ID homologs


java.io.Serializable
. Such fields will result
in runtime exceptions if the object is serialized.
Fields declared
transient
or static
are not reported, nor are fields of classes that have a writeObject
method defined.
This inspection assumes fields of the types
java.util.Collection
and
java.util.Map
to be
Serializable
, unless the types
they are declared in are non-Serializable
.
Example:
class NonSerializableClass {}
public class SerializableClass implements Serializable {
NonSerializableClass clazz; // warning: Non-serializable field 'clazz' in a Serializable class
static NonSerializableClass staticClazz; // no warnings
}
Use the following options to configure the inspection:
Serializable
from a superclass but are not intended for serialization.


This is a right-justified paragraph in a sans serif font (preferably Arial), with some green text.
And here is a formatted link.


Edgelab – C4 System Architecture Documentation System
2020
What
Living software architecture documentation system based on C4 model
Requirements
- Multi-stakeholder documentation: CEO, CTO, Dev, Ops, Support, PO
- Visual, 3D-navigable, living diagrams, technology agnostic, easy-DSL
- Multi-level architecture documentation
Why
- Living software documentation
- Distribution of knowledge
- Mental alignment
- On-boarding support
- Communication and collaboration support
Who
- CEO, CTO, Dev, Ops, Support, PO
How
- Integration of Structurizr cloud for 3D visualization
- Integration of Atlassian Confluence cloud for static documentation
- Integration of PlantUML for static UML documentation
- Distributed documentation based on Structurizr DSL
Technology
- Kotlin


|
||||||||||
| PREV NEXT | FRAMES NO FRAMES |
| Classes in org.jclouds.vcloud.director.v1_5.domain used by org.jclouds.vcloud.director.v1_5 | |
|---|---|
| Error
The standard error message type used in the vCloud REST API. |
|
| Error.Code
|
|
| Session
Returns a representation of the current session that can serve as a single entry point to the system, as it provides user, admin, and extension (sysadmin) entry links depending on the privileges of the current user. |
|
| Task
Represents an asynchronous or long-running task in the vCloud environment. |
| Classes in org.jclouds.vcloud.director.v1_5.domain used by org.jclouds.vcloud.director.v1_5.config | |
|---|---|
| Session
Returns a representation of the current session that can serve as a single entry point to the system, as it provides user, admin, and extension (sysadmin) entry links depending on the privileges of the current user. |
|
| SessionWithToken
Session and its corresponding token |
| Classes in org.jclouds.vcloud.director.v1_5.domain used by org.jclouds.vcloud.director.v1_5.domain | |
|---|---|
| AbstractVAppType
Represents a base type for VAppType and VmType. |
|
| AbstractVAppType.Builder
|
|
| AccessSetting
Specifies who can access the resource. |
|
| AccessSetting.Builder
|
|
| AccessSettings
A list of access settings for a resource. |
|
| AccessSettings.Builder
|
|
| AdminCatalog
Admin representation of the container for meta data (key-value pair) associated to different entities in the system. |
|
| AdminCatalog.Builder
|
|
| AdminOrg
The AdminOrg represents an administrative view of an organization. |
|
| AdminOrg.Builder
|
|
| AdminVdc
Provides an administrative view of a vDC. |
|
| AdminVdc.Builder
|
|
| Capabilities
Collection of supported hardware capabilities. |
|
| Capabilities.Builder
|
|
| CapacityType
Represents a capacity of a given resource. |
|
| CapacityType.Builder
|
|
| CapacityWithUsage
Represents a capacity and usage of a given resource. |
|
| CapacityWithUsage.Builder
|
|
| CaptureVAppParams
Represents the parameters for capturing a vApp to a vApp template. |
|
| CaptureVAppParams.Builder
|
|
| Catalog
Container for references to VAppTemplate and Media objects. |
|
| Catalog.Builder
|
|
| CatalogItem
Contains a reference to a VappTemplate or Media object and related metadata. |
|
| CatalogItem.Builder
|
|
| CatalogItems
Represents a list of catalog item references. |
|
| CatalogItems.Builder
|
|
| CatalogReference
|
|
| CatalogReference.Builder
|
|
| CatalogsList
Container for ReferenceType elements that reference catalogs. |
|
| CatalogsList.Builder
|
|
| CatalogType
Container for references to VappTemplate and Media objects. |
|
| CatalogType.Builder
|
|
| CloneMediaParams
Represents parameters for copying a media resource and optionally deleting the source. |
|
| CloneMediaParams.Builder
|
|
| CloneVAppParams
Represents parameters for copying a vApp and optionally deleting the source. |
|
| CloneVAppParams.Builder
|
|
| CloneVAppTemplateParams
Represents parameters for copying a vApp template and optionally deleting the source. |
|
| CloneVAppTemplateParams.Builder
|
|
| ComposeVAppParams
Represents vApp composition parameters. |
|
| ComposeVAppParams.Builder
|
|
| ComputeCapacity
Represents a compute capacity with units. |
|
| ComputeCapacity.Builder
|
|
| ControlAccessParams
Used to control access to resources. |
|
| ControlAccessParams.Builder
|
|
| CustomizationSection
Represents a vApp template customization settings section. |
|
| CustomizationSection.Builder
|
|
| CustomOrgLdapSettings
Used when OrgLdapMode=CUSTOM to define connection details for the organization's LDAP service. |
|
| CustomOrgLdapSettings.Builder
|
|
| CustomOrgLdapSettings.ConcreteBuilder
|
|
| DeployVAppParams
Represents vApp/VM deployment parameters. |
|
| DeployVAppParams.Builder
|
|
| DhcpService
Represents a DHCP network service. |
|
| DhcpService.Builder
|
|
| Entity
An entity. |
|
| Entity.Builder
|
|
| EntityType
Basic entity type in the vCloud object model. |
|
| EntityType.Builder
|
|
| Error
The standard error message type used in the vCloud REST API. |
|
| Error.Builder
|
|
| Error.Code
|
|
| ExternalNetwork
Admin representation of external network. |
|
| ExternalNetwork.Builder
|
|
| File
Represents a file to be transferred (uploaded or downloaded). |
|
| File.Builder
|
|
| FirewallRule
Represents a firewall rule. |
|
| FirewallRule.Builder
|
|
| FirewallRuleProtocols
Java class for anonymous complex type. |
|
| FirewallRuleProtocols.Builder
|
|
| FirewallService
Represents a network firewall service. |
|
| FirewallService.Builder
|
|
| Group
Represents group in the system. |
|
| Group.Builder
|
|
| GroupsList
Container for ReferenceType elements that reference groups. |
|
| GroupsList.Builder
|
|
| GuestCustomizationSection
Represents a guest customization settings. |
|
| GuestCustomizationSection.Builder
|
|
| InstantiateOvfParams
Represents vApp instantiation from OVF parameters |
|
| InstantiateOvfParams.Builder
|
|
| InstantiateVAppParams
Parameters for Instantiating a vApp |
|
| InstantiateVAppParams.Builder
|
|
| InstantiateVAppParamsType
Represents vApp instantiation parameters. |
|
| InstantiateVAppParamsType.Builder
|
|
| InstantiateVAppTemplateParams
Represents vApp template instantiation parameters. |
|
| InstantiateVAppTemplateParams.Builder
|
|
| InstantiationParams
Represents a list of ovf:Section to configure for instantiating a VApp. |
|
| InstantiationParams.Builder
|
|
| IpAddresses
A list of IpAddresses. |
|
| IpAddresses.Builder
|
|
| IpRange
Represents a range of IP addresses, start and end inclusive. |
|
| IpRange.Builder
|
|
| IpRanges
A list of IpAddresses. |
|
| IpRanges.Builder
|
|
| IpScope
Specify network settings like gateway, network mask, DNS servers, IP ranges, etc. |
|
| IpScope.Builder
|
|
| IpsecVpnLocalPeer
Gives more details of local peer end point. |
|
| IpsecVpnLocalPeer.Builder
|
|
| IpsecVpnManagedPeerType
|
|
| IpsecVpnManagedPeerType.Builder
|
|
| IpsecVpnPeerType
|
|
| IpsecVpnRemotePeer
Gives more details of remote peer end point. |
|
| IpsecVpnRemotePeer.Builder
|
|
| IpsecVpnService
Represents an IPSec-VPN network service. |
|
| IpsecVpnService.Builder
|
|
| IpsecVpnThirdPartyPeer
Gives more details of third party peer end point. |
|
| IpsecVpnThirdPartyPeer.Builder
|
|
| IpsecVpnTunnel
Represents details of an IPSec-VPN tunnel. |
|
| IpsecVpnTunnel.Builder
|
|
| IpsecVpnUnmanagedPeerType
|
|
| LeaseSettingsSection
Represents the lease settings section for a vApp. |
|
| LeaseSettingsSection.Builder
|
|
| Link
A link. |
|
| Link.Builder
|
|
| Media
Represents a media. |
|
| Media.Builder
|
|
| MediaInsertOrEjectParams
Represents parameters for inserting/ejecting media to VM. |
|
| MediaInsertOrEjectParams.Builder
|
|
| Metadata
Represents a set of metadata |
|
| Metadata.Builder
|
|
| MetadataEntry
Represents a metadata entry |
|
| MetadataEntry.Builder
|
|
| MetadataValue
Represents a metadata entry |
|
| MetadataValue.Builder
|
|
| NatOneToOneBasicRule
Represents the NAT basic rule for one to one mapping of internal and external IP addresses from a network. |
|
| NatOneToOneBasicRule.Builder
|
|
| NatOneToOneVmRule
Represents the NAT rule for one to one mapping of VM NIC and external IP addresses from a network. |
|
| NatOneToOneVmRule.Builder
|
|
| NatPortForwardingRule
Represents the NAT rule for port forwarding between internal IP/port and external IP/port. |
|
| NatPortForwardingRule.Builder
|
|
| NatRule
Represents a NAT rule. |
|
| NatRule.Builder
|
|
| NatService
Represents a NAT network service. |
|
| NatService.Builder
|
|
| NatVmRule
Represents the NAT rule for port forwarding between VM NIC/port and external IP/port. |
|
| NatVmRule.Builder
|
|
| Network
|
|
| Network.Builder
|
|
| NetworkAssignment
Represents mapping between a VM and vApp network. |
|
| NetworkAssignment.Builder
|
|
| NetworkConfigSection
Represents the network config section of a vApp. |
|
| NetworkConfigSection.Builder
|
|
| NetworkConfiguration
Returns a network configuration |
|
| NetworkConfiguration.Builder
|
|
| NetworkConnection
Represents a network connection. |
|
| NetworkConnection.Builder
|
|
| NetworkConnection.IpAddressAllocationMode
|
|
| NetworkConnectionSection
Represents a list of network cards existing in a VM. |
|
| NetworkConnectionSection.Builder
|
|
| NetworkFeatures
Represents features of a network. |
|
| NetworkFeatures.Builder
|
|
| Networks
Container for ReferenceType elements that reference ExternalNetwork objects. |
|
| Networks.Builder
|
|
| NetworkServiceType
Represents a network service |
|
| NetworkServiceType.Builder
|
|
| Org
Represents an organization. |
|
| Org.Builder
|
|
| OrgEmailSettings
Defines the email settings for an organization. |
|
| OrgEmailSettings.Builder
|
|
| OrgGeneralSettings
Defines general org settings. |
|
| OrgGeneralSettings.Builder
|
|
| OrgLdapGroupAttributes
Defines how a group is imported from LDAP. |
|
| OrgLdapGroupAttributes.Builder
|
|
| OrgLdapSettings
Base settings for LDAP connection |
|
| OrgLdapSettings.Builder
|
|
| OrgLdapUserAttributes
Defines how LDAP attributes are used when importing a user. |
|
| OrgLdapUserAttributes.Builder
|
|
| OrgLeaseSettings
Defines default lease durations and policies for an organization. |
|
| OrgLeaseSettings.Builder
|
|
| OrgList
A list of organizations. |
|
| OrgList.Builder
|
|
| OrgNetwork
|
|
| OrgNetwork.Builder
|
|
| OrgPasswordPolicySettings
Java class for OrgPasswordPolicySettings complex type. |
|
| OrgPasswordPolicySettings.Builder
|
|
| OrgSettings
Describes various settings for some organization. |
|
| OrgSettings.Builder
|
|
| OrgVAppTemplateLeaseSettings
Defines default lease policies for vAppTemplate on organization level. |
|
| OrgVAppTemplateLeaseSettings.Builder
|
|
| Owner
Represents the owner of this entity. |
|
| Owner.Builder
|
|
| ParamsType
A basic type used to specify parameters for operations. |
|
| ParamsType.Builder
|
|
| ProductSectionList
Essentially a container with a list of product sections. |
|
| ProductSectionList.Builder
|
|
| Property
Contains key/value pair as property. |
|
| Property.Builder
|
|
| PublishCatalogParams
Parameters used when publishing catalogs. |
|
| PublishCatalogParams.Builder
|
|
| RasdItemsList
Represents a list of RASD items. |
|
| RasdItemsList.Builder
|
|
| RecomposeVAppParams
Represents vApp re-composition parameters. |
|
| RecomposeVAppParams.Builder
|
|
| Reference
A reference to a resource. |
|
| Reference.Builder
|
|
| References
This is the container for returned elements in referenceView |
|
| References.Builder
|
|
| RelocateParams
Parameters to be used for vm relocation. |
|
| RelocateParams.Builder
|
|
| Resource
A resource. |
|
| Resource.Builder
|
|
| ResourceEntityType
Base type that represents a resource entity such as a vApp template or virtual media. |
|
| ResourceEntityType.Builder
|
|
| ResourceEntityType.Status
|
|
| ResourceType
The base type for all objects in the vCloud model. |
|
| ResourceType.Builder
|
|
| RoleReference
|
|
| RoleReference.Builder
|
|
| RoleReferences
Container for ReferenceType elements that reference RoleType objects. |
|
| RoleReferences.Builder
|
|
| RouterInfo
Specifies router information. |
|
| RouterInfo.Builder
|
|
| RuntimeInfoSection
Runtime information for a specific vm |
|
| RuntimeInfoSection.Builder
|
|
| ScreenTicket
The ticket for accessing the console of a VM. |
|
| ScreenTicket.Builder
|
|
| Session
Returns a representation of the current session that can serve as a single entry point to the system, as it provides user, admin, and extension (sysadmin) entry links depending on the privileges of the current user. |
|
| Session.Builder
|
|
| SessionWithToken
Session and its corresponding token |
|
| SessionWithToken.Builder
|
|
| SmtpServerSettings
Specifies connection details for the organization s SMTP server. |
|
| SmtpServerSettings.Builder
|
|
| SourcedCompositionItemParam
Represents a composition item. |
|
| SourcedCompositionItemParam.Builder
|
|
| StaticRoute
Java class for StaticRoute complex type. |
|
| StaticRoute.Builder
|
|
| StaticRoutingService
Represents Static Routing network service. |
|
| StaticRoutingService.Builder
|
|
| SyslogServerSettings
Syslog server settings. |
|
| SyslogServerSettings.Builder
|
|
| Task
Represents an asynchronous or long-running task in the vCloud environment. |
|
| Task.Builder
|
|
| TasksList
Task List |
|
| TasksList.Builder
|
|
| UndeployVAppParams
Represents vApp/VM undeployment parameters. |
|
| UndeployVAppParams.Builder
|
|
| UploadVAppTemplateParams
Represents vApp Template upload parameters. |
|
| UploadVAppTemplateParams.Builder
|
|
| User
Represents users in the vCloud system. |
|
| User.Builder
|
|
| UsersList
Container for ReferenceType elements that reference users. |
|
| UsersList.Builder
|
|
| VApp
Represents a vApp. |
|
| VApp.Builder
|
|
| VAppChildren
Represents vApp children. |
|
| VAppChildren.Builder
|
|
| VAppCreationParams
Represents vApp creation parameters. |
|
| VAppCreationParams.Builder
|
|
| VAppCreationParamsType
Represents vApp creation parameters. |
|
| VAppCreationParamsType.Builder
|
|
| VAppNetwork
Represents a vApp network. |
|
| VAppNetwork.Builder
|
|
| VAppNetworkConfiguration
Represents a VApp network configuration. |
|
| VAppNetworkConfiguration.Builder
|
|
| VAppReference
|
|
| VAppReference.Builder
|
|
| VAppTemplate
Represents a vApp template. |
|
| VAppTemplate.Builder
|
|
| VAppTemplateChildren
Represents vApp template children. |
|
| VAppTemplateChildren.Builder
|
|
| Vdc
Represents a virtual data center (vDC). |
|
| Vdc.Builder
|
|
| Vdcs
Represents a list of references to virtual data centers. |
|
| Vdcs.Builder
|
|
| Vm
Represents a VM. |
|
| Vm.Builder
|
|
| VmPendingQuestion
Represents a question which vSphere issued for a VM in a stuck state(WAITING_FOR_INPUT). |
|
| VmPendingQuestion.Builder
|
|
| VmQuestionAnswer
Represents a VM answer to a question when the VM is in a stuck (WAITING_FOR_INPUT) state. |
|
| VmQuestionAnswer.Builder
|
|
| VmQuestionAnswerChoice
Represents a pair of ID and text of an answer choice of a VM question. |
|
| VmQuestionAnswerChoice.Builder
|
|
| VMWareTools
|
|
| VMWareTools.Builder
|
| Classes in org.jclouds.vcloud.director.v1_5.domain used by org.jclouds.vcloud.director.v1_5.domain.cim | |
|---|---|
| Link
A link. |
| Classes in org.jclouds.vcloud.director.v1_5.domain used by org.jclouds.vcloud.director.v1_5.domain.ovf | |
|---|---|
| Link
A link. |
| Classes in org.jclouds.vcloud.director.v1_5.domain used by org.jclouds.vcloud.director.v1_5.domain.query | |
|---|---|
| Link
A link. |
|
| Reference
A reference to a resource. |
|
| ResourceType
The base type for all objects in the vCloud model. |
|
| ResourceType.Builder
|
| Classes in org.jclouds.vcloud.director.v1_5.domain used by org.jclouds.vcloud.director.v1_5.features | |
|---|---|
| AdminCatalog
Admin representation of the container for meta data (key-value pair) associated to different entities in the system. |
|
| AdminOrg
The AdminOrg represents an administrative view of an organization. |
|
| AdminVdc
Provides an administrative view of a vDC. |
|
| CaptureVAppParams
Represents the parameters for capturing a vApp to a vApp template. |
|
| CatalogItem
Contains a reference to a VappTemplate or Media object and related metadata. |
|
| CatalogType
Container for references to VappTemplate and Media objects. |
|
| CloneMediaParams
Represents parameters for copying a media resource and optionally deleting the source. |
|
| CloneVAppParams
Represents parameters for copying a vApp and optionally deleting the source. |
|
| CloneVAppTemplateParams
Represents parameters for copying a vApp template and optionally deleting the source. |
|
| ComposeVAppParams
Represents vApp composition parameters. |
|
| ControlAccessParams
Used to control access to resources. |
|
| CustomizationSection
Represents a vApp template customization settings section. |
|
| DeployVAppParams
Represents vApp/VM deployment parameters. |
|
| ExternalNetwork
Admin representation of external network. |
|
| Group
Represents group in the system. |
|
| GuestCustomizationSection
Represents a guest customization settings. |
|
| InstantiateVAppParamsType
Represents vApp instantiation parameters. |
|
| LeaseSettingsSection
Represents the lease settings section for a vApp. |
|
| Media
Represents a media. |
|
| MediaInsertOrEjectParams
Represents parameters for inserting/ejecting media to VM. |
|
| Metadata
Represents a set of metadata |
|
| MetadataValue
Represents a metadata entry |
|
| Network
|
|
| NetworkConfigSection
Represents the network config section of a vApp. |
|
| NetworkConnectionSection
Represents a list of network cards existing in a VM. |
|
| Org
Represents an organization. |
|
| OrgEmailSettings
Defines the email settings for an organization. |
|
| OrgGeneralSettings
Defines general org settings. |
|
| OrgLdapSettings
Base settings for LDAP connection |
|
| OrgLeaseSettings
Defines default lease durations and policies for an organization. |
|
| OrgList
A list of organizations. |
|
| OrgNetwork
|
|
| OrgPasswordPolicySettings
Java class for OrgPasswordPolicySettings complex type. |
|
| OrgSettings
Describes various settings for some organization. |
|
| OrgVAppTemplateLeaseSettings
Defines default lease policies for vAppTemplate on organization level. |
|
| Owner
Represents the owner of this entity. |
|
| ProductSectionList
Essentially a container with a list of product sections. |
|
| PublishCatalogParams
Parameters used when publishing catalogs. |
|
| RasdItemsList
Represents a list of RASD items. |
|
| RecomposeVAppParams
Represents vApp re-composition parameters. |
|
| References
This is the container for returned elements in referenceView |
|
| RelocateParams
Parameters to be used for vm relocation. |
|
| RoleReferences
Container for ReferenceType elements that reference RoleType objects. |
|
| RuntimeInfoSection
Runtime information for a specific vm |
|
| ScreenTicket
The ticket for accessing the console of a VM. |
|
| Task
Represents an asynchronous or long-running task in the vCloud environment. |
|
| TasksList
Task List |
|
| UndeployVAppParams
Represents vApp/VM undeployment parameters. |
|
| UploadVAppTemplateParams
Represents vApp Template upload parameters. |
|
| User
Represents users in the vCloud system. |
|
| VApp
Represents a vApp. |
|
| VAppTemplate
Represents a vApp template. |
|
| Vdc
Represents a virtual data center (vDC). |
|
| VmPendingQuestion
Represents a question which vSphere issued for a VM in a stuck state(WAITING_FOR_INPUT). |
|
| VmQuestionAnswer
Represents a VM answer to a question when the VM is in a stuck (WAITING_FOR_INPUT) state. |
| Classes in org.jclouds.vcloud.director.v1_5.domain used by org.jclouds.vcloud.director.v1_5.functions | |
|---|---|
| SessionWithToken
Session and its corresponding token |
| Classes in org.jclouds.vcloud.director.v1_5.domain used by org.jclouds.vcloud.director.v1_5.handlers | |
|---|---|
| SessionWithToken
Session and its corresponding token |
| Classes in org.jclouds.vcloud.director.v1_5.domain used by org.jclouds.vcloud.director.v1_5.login | |
|---|---|
| Session
Returns a representation of the current session that can serve as a single entry point to the system, as it provides user, admin, and extension (sysadmin) entry links depending on the privileges of the current user. |
|
| SessionWithToken
Session and its corresponding token |
| Classes in org.jclouds.vcloud.director.v1_5.domain used by org.jclouds.vcloud.director.v1_5.parsers | |
|---|---|
| Session
Returns a representation of the current session that can serve as a single entry point to the system, as it provides user, admin, and extension (sysadmin) entry links depending on the privileges of the current user. |
|
| SessionWithToken
Session and its corresponding token |
| Classes in org.jclouds.vcloud.director.v1_5.domain used by org.jclouds.vcloud.director.v1_5.predicates | |
|---|---|
| Link
A link. |
|
| Reference
A reference to a resource. |
|
| Task
Represents an asynchronous or long-running task in the vCloud environment. |
|
||||||||||
| PREV NEXT | FRAMES NO FRAMES |