Ode Language Documentation
This documentation is borrowed from the original Joy language documentation, with modifications to clarify how certain operators function in the Ode environment.
Literals
Boolean/Logical Literals
The logical type, or the type of truth values. It has just two literals: true and false.
false
=> false
Character Literals
The type of characters. Literals are written with a single quote. Examples: 'A '7 '; and so on. Unix style escapes are allowed.
Integer Literals
The type of negative, zero or positive integers. Literals are written in decimal notation. Examples: -123 0 42.
Set Literals
The type of sets of small non-negative integers. The maximum is platform dependent, typically the range is 0..31. Literals are written inside curly braces.
Examples:
{}
{0}
{1 3 5}
{19 18 17}
String Literals
The type of strings of characters. Literals are written inside double quotes. Examples: "" "A" "hello world" "123". Unix style escapes are accepted.
List Literals
The type of lists of values of any type (including lists), or the type of quoted programs which may contain operators or combinators. Literals of this type are written inside square brackets.
Examples:
[]
[3 512 -7]
[john mary]
['A 'C ['B]]
[dup *]
Float Literals
The type of floating-point numbers. Literals of this type are written with embedded decimal points (like 1.2) and optional exponent specifiers (like 1.5E2).
Definitions and Symbols
==
Defines a definition.
double == dup +;
name : sym -> "sym"
For operators and combinators, the string "sym" is the name of item sym, for literals sym the result string is its type.
intern : "sym" -> sym
Pushes the item whose name is "sym".
Math
+ : M I -> N
Numeric N is the result of adding integer I to numeric M. Also supports float.
succ : M -> N
Numeric N is the successor of numeric M.
div : I J -> K L
Integers K and L are the quotient and remainder of dividing I by J.
rem : I J -> K
Integer K is the remainder of dividing I by J. Also supports float.
- : M I -> N
Numeric N is the result of subtracting integer I from numeric M. Also supports float.
* : I J -> K
Integer K is the product of integers I and J. Also supports float.
/ : I J -> K
Integer K is the (rounded) ratio of integers I and J. Also supports float.
Boolean Operations
choice : B T F -> X
If B is true, then X = T else X = F.
or : X Y -> Z
Z is the logical disjunction for truth values.
xor : X Y -> Z
Z is the logical exclusive disjunction for truth values.
and : X Y -> Z
Z is the logical conjunction for truth values.
not : X -> Y
Y is the logical negation for truth values.
>= : X Y -> B
Either both X and Y are numeric or both are strings or symbols. Tests whether X greater than or equal to Y. Also supports float.
> : X Y -> B
Either both X and Y are numeric or both are strings or symbols. Tests whether X greater than Y. Also supports float.
!= : X Y -> B
Either both X and Y are numeric or both are strings or symbols. Tests whether X not equal to Y. Also supports float.
= : X Y -> B
Either both X and Y are numeric or both are strings or symbols. Tests whether X equal to Y. Also supports float.
< : X Y -> B
Either both X and Y are numeric or both are strings or symbols. Tests whether X less than Y. Also supports float.
<= : X Y -> B
Either both X and Y are numeric or both are strings or symbols. Tests whether X less than or equal to Y. Also supports float.
null : X -> B
Tests for empty aggregate X or zero numeric.
small : X -> B
Tests whether aggregate X has 0 or 1 members, or numeric 0 or 1.
integer : X -> B
Tests whether X is an integer.
char : X -> B
Tests whether X is a character.
logical : X -> B
Tests whether X is a logical.
set : X -> B
Tests whether X is a set.
string : X -> B
Tests whether X is a string.
list : X -> B
Tests whether X is a list.
float : R -> B
Tests whether R is a float.
Aggregate Operations
concat : S T -> U
Sequence U is the concatenation of sequences S and T.
size : A -> I
Integer I is the number of elements of aggregate A.
cons : X A -> B
Aggregate B is A with a new member X (first member for sequences).
swons : A X -> B
Aggregate B is A with a new member X (first member for sequences). This is the same as cons, but with the arguments reversed.
uncons : A -> F R
F and R are the first and the rest of non-empty aggregate A.
i : [P] -> ...
Executes P. So, [P] i == P.
rest : A -> R
R is the non-empty aggregate A with its first member removed.
first : A -> F
F is the first member of the non-empty aggregate A.
Functional Operations
map : A [P] -> B
Executes P on each member of aggregate A, collects results in same type aggregate B.
fold : A V0 [P] -> V
Starting with value V0, sequentially pushes members of aggregate A and combines with binary operator P to produce value V.
split : A [B] -> A1 A2
Uses test B to split aggregate A into same type aggregates A1 and A2.
(Note: Preserves stack state before each test is run, restoring it after).
Recursion
primrec : X [I] [C] -> R
Executes I to obtain an initial value R0. For integer X uses increasing positive integers to X, combines by C for new R. For aggregate X uses successive members and combines by C for new R.
The primrec combinator expects two quoted programs in addition to a data parameter. For an integer data parameter it works like this: If the data parameter is zero, then the first quotation has to produce the value to be returned. If the data parameter is positive then the second has to combine the data parameter with the result of applying the function to its predecessor. For the factorial function the required quoted programs are very simple:
[1] [*] primrec
computes the factorial recursively. There is no need for any definition. For example, the following program computes the factorial of 5:
5 [1] [*] primrec
It first pushes the number 5 and then it pushes the two short quoted programs. At this point the stack contains three elements. Then the primrec combinator is executed. It pops the two quotations off the stack and saves them elsewhere. Then primrec tests whether the top element on the stack (initially the 5) is equal to zero. If it is, it pops it off and executes one of the quotations, the [1] which leaves 1 on the stack as the result. Otherwise it pushes a decremented copy of the top element and recurses. On the way back from the recursion it uses the other quotation, [*], to multiply what is now a factorial on top of the stack by the second element on the stack. When all is done, the stack contains 120, the factorial of 5. As may be seen from this program, the usual branching of recursive definitions is built into the combinator. The primrec combinator can be used with many other quotation parameters to compute quite different functions. It can also be used with data types other than integers.
linrec : [P] [T] [R1] [R2] -> ...
Executes P. If that yields true, executes T. Else executes R1, recurses, executes R2.
A high proportion of recursively defined functions exhibit a very simple pattern: There is some test, the if-part, which determines whether the ground case obtains. If it does, then the non-recursive branch is executed, the basis case of recursion. If it does not, then the recursive part is executed, including one or more recursive calls.
The linrec combinator is very similar to the genrec combinator. The essential difference is that the bundled up quotation is immediately called before the rec2-part. Consequently it can only be used for linear recursion.
binrec : [B] [T] [R1] [R2] -> ...
Executes B. If that yields true, executes T. Else uses R1 to produce two intermediates, recurses on both, then executes R2 to combines their results.
In many recursive definitions there are two recursive calls of the function being defined. This is the pattern of binary recursion, and it is used in the usual definitions of quicksort and of the Fibonacci function. In analogy with the linrec combinator for linear recursion, Joy has a binrec combinator for binary recursion. The following will quicksort a list whose members can be a mixture of anything except lists:
quicksort ==
[small]
[]
[uncons [>] split]
[swapd cons concat]
binrec;
And an example using the above quicksort:
[5 3 1 4 2] quicksort
=> [1 2 3 4 5]
genrec : [B] [T] [R1] [R2] -> ...
Executes B, if that yields true executes T. Else executes R1 and then [[B] [T] [R1] [R2] genrec] R2.
One of these is the genrec combinator which takes four program parameters in addition to whatever data parameters it needs. Fourth from the top is an if-part, followed by a then-part. If the if-part yields true, then the then-part is executed and the combinator terminates. The other two parameters are the rec1-part and the rec2part. If the if-part yields false, the rec1-part is executed. Following that the four program parameters and the combinator are again pushed onto the stack bundled up in a quoted form. Then the rec2-part is executed, where it will find the bundled form. Typically it will then execute the bundled form, either with i or with app2, or some other combinator. The following pieces of code, without any definitions, compute the factorial, the (naive) Fibonacci and quicksort. The four parts are here aligned to make comparisons easier.
Input/Output
rand : -> I
I is a random integer.
Control Flow
ifte : [B] [T] [F] -> ...
Preserves the stack state, then executes B. The stack state is then restored. If B yielded true, then executes T else executes F.
Put another way, it saves the stack before calling the conditional and restores it before calling the appropriate branch, therefore hiding any changing of the stack the conditional may have done.
Definitions and Symbols
body : U -> [P]
Quotation [P] is the body of user-defined symbol U.
Example:
double == 2 *; [double] first body
=> [2 *]
Ode only:
User-defined symbol U can be a name or a name in a list.
Basic Stack Operations
id : ->
Identity function, does nothing. Any program of the form P id Q is equivalent to just P Q.
dup : X -> X X
Pushes an extra copy of X onto stack.
swap : X Y -> Y X
Interchanges X and Y on top of the stack.
rollup : X Y Z -> Z X Y
Moves X and Y up, moves Z down
rolldown : X Y Z -> Y Z X
Moves Y and Z down, moves X up.
rotate : X Y Z -> Z Y X
Interchanges X and Z.
pop : X ->
Removes X from top of the stack.
dip : X [P] -> ... X
Saves X, executes P, pushes X back.
Advanced Stack Operations
newstack : ... ->
Removes all items from the stack.
stack : .. X Y Z -> .. X Y Z [Z Y X ..]
Pushes the stack as a list.
(Note that when treating lists as stacks, the first element in the list will be the top item of the stack.)
unstack : [X Y ..] -> ..Y X
The list [X Y ..] becomes the new stack.
(Note that when treating lists as stacks, the first element in the list will be the top item of the stack.)
infra : L1 [P] -> L2
Using list L1 as stack, executes P and returns a new list L2. The first element of L1 is used as the top of stack, and after execution of P the top of stack becomes the first element of L2.
(Note that when treating lists as stacks, the first element in the list will be the top item of the stack.)
unary : X [P] -> R
Executes P, which leaves R on top of the stack. No matter how many parameters this consumes, exactly one is removed from the stack.
unary2 : X1 X2 [P] -> R1 R2
Executes P twice, with X1 and X2 on top of the stack. Returns the two values R1 and R2.
unary3 : X1 X2 X3 [P] -> R1 R2 R3
Executes P three times, with Xi, returns Ri (i = 1..3).
unary4 : X1 X2 X3 X4 [P] -> R1 R2 R3 R4
Executes P four times, with Xi, returns Ri (i = 1..4).
Not Yet Implemented
These operators are part of Joy, but have not yet been implemented.
undefs : -> [...]
Push a list of all undefined symbols in the current symbol table.
strtol : S I -> J
String S is converted to the integer J using base I. If I = 0, assumes base 10, but leading "0" means base 8 and leading "0x" means base 16.
strtod : S -> R
String S is converted to the float R.
format : N C I J -> S
S is the formatted version of N in mode C ('d or 'i = decimal, 'o = octal, 'x or 'X = hex with lower or upper case letters) with maximum width I and minimum width J.
formatf : F C I J -> S
S is the formatted version of F in mode C ('e or 'E = exponential, 'f = fractional, 'g or G = general with lower or upper case letters) with maximum width I and precision J.
srand : I ->
Sets the random integer seed to integer I.
max : N1 N2 -> N
N is the maximum of numeric values N1 and N2. Also supports float.
min : N1 N2 -> N
N is the minimum of numeric values N1 and N2. Also supports float.
compare : A B -> I
I (=-1,0,+1) is the comparison of aggregates A and B. The values correspond to the predicates <=, =, >=.
at : A I -> X
X (= A[I]) is the member of A at position I.
of : I A -> X
X (= A[I]) is the I-th member of aggregate A.
opcase : X [..[X Xs]..] -> [Xs]
Indexing on type of X, returns the list [Xs].
case : X [..[X Y]..] -> Y i
Indexing on the value of X, execute the matching Y.
unswons : A -> R F
R and F are the rest and the first of non-empty aggregate A.
drop : A N -> B
Aggregate B is the result of deleting the first N elements of A.
take : A N -> B
Aggregate B is the result of retaining just the first N elements of A.
enconcat : X S T -> U
Sequence U is the concatenation of sequences S and T with X inserted between S and T (== swapd cons concat)
equal : T U -> B
(Recursively) tests whether trees T and U are identical.
has : A X -> B
Tests whether aggregate A has X as a member.
in : X A -> B
Tests whether X is a member of aggregate A.
leaf : X -> B
Tests whether X is not a list.
user : X -> B
Tests whether X is a user-defined symbol.
file : F -> B
Tests whether F is a file.
x : [P]i -> ...
Executes P without popping [P]. So, [P] x == [P] P.
app1 : X [P] -> R
Executes P, pushes result R on stack without X.
app11 : X Y [P] -> R
Executes P, pushes result R on stack.
app12 : X Y1 Y2 [P] -> R1 R2
Executes P twice, with Y1 and Y2, returns R1 and R2.
construct : [P] [[P1] [P2] ..] -> R1 R2 ..
Saves state of stack and then executes [P]. Then executes each [Pi] to give Ri pushed onto saved stack.
nullary : [P] -> R
Executes P, which leaves R on top of the stack. No matter how many parameters this consumes, none are removed from the stack.
binary : X Y [P] -> R
Executes P, which leaves R on top of the stack. No matter how many parameters this consumes, exactly two are removed from the stack.
ternary : X Y Z [P] -> R
Executes P, which leaves R on top of the stack. No matter how many parameters this consumes, exactly three are removed from the stack.
cleave : X [P1] [P2] -> R1 R2
Executes P1 and P2, each with X on top, producing two results.
branch : B [T] [F] -> ...
If B is true, then executes T else executes F.
ifinteger : X [T] [E] -> ...
If X is an integer, executes T else executes E.
ifchar : X [T] [E] -> ...
If X is a character, executes T else executes E.
iflogical : X [T] [E] -> ...
If X is a logical or truth value, executes T else executes E.
ifset : X [T] [E] -> ...
If X is a set, executes T else executes E.
ifstring : X [T] [E] -> ...
If X is a string, executes T else executes E.
iflist : X [T] [E] -> ...
If X is a list, executes T else executes E.
iffloat : X [T] [E] -> ...
If X is a float, executes T else executes E.
iffile : X [T] [E] -> ...
If X is a file, executes T else executes E.
cond : [..[[Bi] Ti]..[D]] -> ...
Tries each Bi. If that yields true, then executes Ti and exits. If no Bi yields true, executes default D.
while : [B] [D] -> ...
While executing B yields true executes D.
tailrec : [P] [T] [R1] -> ...
Executes P. If that yields true, executes T. Else executes R1, recurses.
condlinrec : [ [C1] [C2] .. [D] ] -> ...
Each [Ci] is of the forms [[B] [T]] or [[B] [R1] [R2]]. Tries each B. If that yields true and there is just a [T], executes T and exit. If there are [R1] and [R2], executes R1, recurses, executes R2. Subsequent case are ignored. If no B yields true, then [D] is used. It is then of the forms [[T]] or [[R1] [R2]]. For the former, executes T. For the latter executes R1, recurses, executes R2.
step : A [P] -> ...
Sequentially putting members of aggregate A onto stack, executes P for each member of A.
times : N [P] -> ...
N times executes P.
filter : A [B] -> A1
Uses test B to filter aggregate A producing sametype aggregate A1.
some : A [B] -> X
Applies test B to members of aggregate A, X = true if some pass.
all : A [B] -> X
Applies test B to members of aggregate A, X = true if all pass.
treestep : T [P] -> ...
Recursively traverses leaves of tree T, executes P for each leaf.
treerec : T [O] [C] -> ...
T is a tree. If T is a leaf, executes O. Else executes [[O] [C] treerec] C.
treegenrec : T [O1] [O2] [C] -> ...
T is a tree. If T is a leaf, executes O1. Else executes O2 and then [[O1] [O2] [C] treegenrec] C.
neg : I -> J
Integer J is the negative of integer I.
Notes on Joy
These operators are mentioned occassionally in Joy examples, but have been replaced by new operations by Manfred von Thun, original author of Joy, himself.
app2 : X1 X2 [P] -> R1 R2
Obsolescent. == unary2
app3 : X1 X2 X3 [P] -> R1 R2 R3
Obsolescent. == unary3
app4 : X1 X2 X3 X4 [P] -> R1 R2 R3 R4
Obsolescent. == unary4
Other Operations (Not Implemented)
conts : -> [[P] [Q] ..]
Pushes current continuations. Buggy, do not use.
autoput : -> I
Pushes current value of flag for automatic output, I = 0..2.
undeferror : -> I
Pushes current value of undefined-is-error flag.
echo : -> I
Pushes value of echo flag, I = 0..3.
clock : -> I
Pushes the integer value of current CPU usage in hundreds of a second.
time : -> I
Pushes the current time (in seconds since the Epoch).
maxint : -> N
Pushes largest integer (platform dependent). Typically it is 32 bits.
sign : N1 -> N2
Integer N2 is the sign (-1 or 0 or +1) of integer N1, or float N2 is the sign (-1.0 or 0.0 or 1.0) of float N1.
localtime : I -> T
Converts a time I into a list T representing local time: [year month day hour minute second isdst yearday weekday]. Month is 1 = January ... 12 = December; isdst is a Boolean flagging daylight savings/summer time; weekday is 0 = Monday ... 7 = Sunday.
gmtime : I -> T
Converts a time I into a list T representing universal time: [year month day hour minute second isdst yearday weekday]. Month is 1 = January ... 12 = December; isdst is false; weekday is 0 = Monday ... 7 = Sunday.
mktime : T -> I
Converts a list T representing local time into a time I. T is in the format generated by localtime.
strftime : T S1 -> S2
Formats a list T in the format of localtime or gmtime using string S1 and pushes the result S2.
File I/O (Not Implemented)
File Literals
The type of references to open I/O streams, typically but not necessarily files. The only literals of this type are stdin, stdout, and stderr.
get : -> F
Reads a factor from input and pushes it onto stack.
put : X ->
Writes X to output, pops X off stack.
putch : N ->
N : numeric, writes character whose ASCII is N.
putchars : "abc.." ->
Writes abc.. (without quotes)
fclose : S ->
Stream S is closed and removed from the stack.
feof : S -> S B
B is the end-of-file status of stream S.
ferror : S -> S B
B is the error status of stream S.
fflush : S -> S
Flush stream S, forcing all buffered output to be written.
fgetch : S -> S C
C is the next available character from stream S.
fgets : S -> S L
L is the next available line (as a string) from stream S.
fopen : P M -> S
The file system object with pathname P is opened with mode M (r, w, a, etc.) and stream object S is pushed; if the open fails, file:NULL is pushed.
fread : S I -> S L
I bytes are read from the current position of stream S and returned as a list of I integers.
fwrite : S L -> S
A list of integers are written as bytes to the current position of stream S.
fremove : P -> B
The file system object with pathname P is removed from the file system. is a boolean indicating success or failure.
frename : P1 P2 -> B
The file system object with pathname P1 is renamed to P2. B is a boolean indicating success or failure.
fput : S X -> S
Writes X to stream S, pops X off stack.
fputch : S C -> S
The character C is written to the current position of stream S.
fputchars : S "abc.." -> S
The string abc.. (no quotes) is written to the current position of stream S.
fputstring : S "abc.." -> S
== fputchars, as a temporary alternative.
fseek : S P W -> S
Stream S is repositioned to position P relative to whence-point W, where W = 0, 1, 2 for beginning, current position, end respectively.
ftell : S -> S I
I is the current position of stream S.
Sets (Not Implemented)
setsize : -> N
Pushes the maximum number of elements in a set (platform dependent). Typically it is 32, and set members are in the range 0..31.
or : X Y -> Z
Z is the union of sets X and Y.
xor : X Y -> Z
Z is the symmetric difference of sets X and Y.
and : X Y -> Z
Z is the intersection of sets X and Y.
not : X -> Y
Y is the complement of set X.
System Specific Operations (Not Implemented)
These operations do not make sense in the current web-based environment, so are not currently implemented.
help : ->
Lists all defined symbols, including those from library files. Then lists all primitives of raw Joy (There is a variant: "_help" which lists hidden symbols).
helpdetail : [ S1 S2 .. ]
Gives brief help on each symbol S in the list.
manual : ->
Writes this manual of all Joy primitives to output file.
setautoput : I ->
Sets value of flag for automatic put to I (if I = 0, none; if I = 1, put; if I = 2, stack.
setundeferror : I ->
Sets flag that controls behavior of undefined functions (0 = no error, 1 = error).
setecho : I ->
Sets value of echo flag for listing. I = 0: no echo, 1: echo, 2: with tab, 3: and linenumber.
gc : ->
Initiates garbage collection.
system : "command" ->
Escapes to shell, executes string "command". The string may cause execution of another program. When that has finished, the process returns to Joy.
getenv : "variable" -> "value"
Retrieves the value of the environment variable "variable".
argv : -> A
Creates an aggregate A containing the interpreter's command line arguments.
argc : -> I
Pushes the number of command line arguments. This is quivalent to 'argv size'.
include : "filnam.ext" ->
Transfers input to file whose name is "filnam.ext". On end-of-file returns to previous input file.
abort : ->
Aborts execution of current Joy program, returns to Joy main cycle.
quit : ->
Exit from Joy.


Verdansk Easter Egg Trainer
Bunker 11
Keypads
Red Access Cards
Computer Passwords
Secret Station
Bunker 11
Locate the activation phone (blue marks)
Translate the 3-digit Russian code
Activate each phone in the 3-digit sequence (yellow numbers)
Travel to Bunker 11 (yellow mark)
0
- nol
1
- beh-diem
2
- doo-ah
3
- tree
4
- zeh-deal-ya
5
- peeyat
6
- seht
7
- see-yem
8
- poy-sem
9
- dairy
Keypads
Locate each bunker keypad
Enter the code from the map
Red Access Cards
Locate a Red Access Card from a random loot drop
Go to a marked map location to access the bunker
Computers
Easter egg is currently unsolved
Locate the computers around the map
Interact with them to "Enter Password"
Secret Station
Travel to the marked #1 building on the map
Interact with the keypad and enter "
2179
"
Interact with the computer
Write down each photo tag (and differential if there)
Note the Roman Numeral under the painting, then add/subtract the differential to decipher the code
Interact with the computer again to enter the top halves, then bottom halves of the code
Travel to the marked #2 tunnel on the map
Interact with the computer, get on the subway
Arch
Bag
Beard
Medal
Monument
Mountain
Shoulder
Steeple
1) Select Painting Order
2) Select Adjustment Number Order
-3
-2
-1
0
+1
+2
+3
3) Select Roman Numeral Order
I(1)
II(2)
III(3)
IV(4)
V(5)
VI(6)
VII(7)
VIII(8)
IX(9)
X(10)
1) Selected Paintings
2) Selected Adjustments
3) Selected Numbers
Deciphered Code
Reset Decoder
by DestrucSean
Get Lights, Camera, Reaction! on Steam
×


{% extends "base.html"%} {%block title%}TCP DPort Information{%endblock%} {%block location%}
Home -> PCap Files -> {{filename}} -> TCP Dport Information
{%endblock%} {%block content%}This report shows numbers of TCP packets by source address, destination address, and destination port.
| Source Address | Destination Address | Destination Port | Number of Packets |
|---|---|---|---|
| {{row[0]}} | {{row[1]}} | {{row[2]}} | {{row[3]}} |


Class HivenClient¶
HivenClient¶
- class
openhivenpy.Client.
HivenClient
(args*, kwargs**)¶Main Class used to interact with the Websocket and the Hiven API. Inherited by Bot Client and User Client
- Parameter:
- param str token
Token for the interaction with Hiven.
Raises Exception InvalidToken if None, empty String or length not 128
- param int heartbeat
Hearbeat interval for sending messages to the Hiven Websocket
- param bool print_output
If set to True the raw messages that were received on the Websocket will be printed out! Defaults to False
- param bool debug_mode
If set to True the following will be printed out: * Data is sent to Hiven * Data is received from Hiven * An event was triggered * A command was used Defaults to False
- param str client_type
Type of the HivenClient. Can only be either “user”, “bot” or None.
Note
Will be automatically set if Bot Client or User Client is used! If the HivenClient: HivenClient is directly used as an object, it is recommended to set it to None!
deactivate_print_output
() → None¶


"Enterprise-class centralized version control for the masses"
Welcome to subversion.apache.org, the online home of the Apache Subversion™ software project. Subversion is an open source version control system. Founded in 2000 by CollabNet, Inc., the Subversion project and software have seen incredible success over the past decade. Subversion has enjoyed and continues to enjoy widespread adoption in both the open source arena and the corporate world.
Subversion is developed as a project of the Apache Software Foundation, and as such is part of a rich community of developers and users. We're always in need of individuals with a wide range of skills, and we invite you to participate in the development of Apache Subversion. Here's how to get started.
For helpful hints about how to get the most out of your visit to this site, see the About This Site section below.
Subversion exists to be universally recognized and adopted as an open-source, centralized version control system characterized by its reliability as a safe haven for valuable data; the simplicity of its model and usage; and its ability to support the needs of a wide variety of users and projects, from individuals to large-scale enterprise operations.
We are pleased to announce the release of Apache Subversion 1.12.0-rc1. This release is not intended for production use, but is provided as a milestone to encourage wider testing and feedback from intrepid users and maintainers. Please see the release announcement for more information about this release, and the release notes and change log for information about what will eventually be in the 1.12.0 release.
To get this release from the nearest mirror, please visit our download page.
The recent releases of Apache Subversion, 1.10.4 and 1.11.1, contain a fix for a moderate severity security issue CVE-2018-11803. This issue can allow an unauthenticated user to crash the httpd process serving a Subversion repository configured to allow anonymous read access. We encourage users of Subversion to upgrade to the latest appropriate version as soon as reasonable. Please see the release announcement and the 1.11 release notes or 1.10 release notes for more information about the releases.
To get the latest release from the nearest mirror, please visit our download page.
We are pleased to announce the release of Apache Subversion 1.11.1. This is the most complete Subversion release to date, and we encourage users of Subversion to upgrade as soon as reasonable. In addition to the normal collection of bug fixes, and stability enhancements, this release also addresses a security-related issue: CVE-2018-11803 Please see the release announcement and the release notes for more information about this release.
To get this release from the nearest mirror, please visit our download page.
[Click here to see all News items.]
This website is the central source of information about Subversion and the community which gives it life. Here, you'll find resources that are useful to existing and potential Subversion users and developers alike. Want to read about Subversion's features? Need to download the latest Subversion release? Perhaps you've thought of a great enhancement and you're wondering how to share the idea with the developers? This site will help you do all that.
Who is this site not aimed at? Well, there are many third-party tools which exist as part of the greater Subversion ecosystem, but aren't part of the core project itself. Subversion clients such as TortoiseSVN, or Subversion's integrations into various IDE's such as Eclipse and NetBeans, or the pure Java implementation of Subversion called SVNKit — these are all valuable pieces of the Subversion story, but each is managed as its own project outside of the core Subversion offering. This site really isn't so much about those projects.
The sections below provide a high-level overview of how this website is organized, making reference to the navigation menu you should find on the left-hand side of each page of the website.
The "About Subversion" section of the website is Information Central. You can read the latest Subversion News, learn about Subversion's rich set of Features, and consult various sources of Documentation about Subversion and the processes that govern that interactions of the Subversion community. There's a Frequently Asked Questions (FAQ) page, as well as some forward-looking material in the form of a feature Roadmap.
Learning about Subversion is great, but the real fun is in applying that knowledge. The "Getting Subversion" section of the website is all about making sure Subversion finds it way into your hands. This community releases source code archives of the various Subversion versions, which you can get via the Source Code menu. (That's also a good place to look for instructions on checking out Subversion's source code from the repository in which it lives.) But if you'd rather not deal with building Subversion yourself, there are a number of places where you can get precompiled Binary Packages of Subversion, built for various platforms.
The other sections of the website are primarily about getting — the "Community" section is where you interact and give. Here, you'll learn about the Mailing Lists where Subversion-related discussions occur and about the Issue Tracker where bugs and enhancement requests are reported. We'll tell you about the various ways you can be Getting Involved with the project.
The rest of this site is about Subversion — but Subversion doesn't operate in vaccum. It is part of the Apache Software Foundation (ASF), which — in addition to the servers that run this site and our mailing lists — provides financial, technical, and legal backing. The "About the ASF" section contains links that relate to the the Foundation as a whole. It lists our sponsors and allows you to donate if you wish.


| rainbow_hcl {colorspace} | R Documentation |
Color palettes based on the HCL (and HSV) color space to replace base R palettes.
rainbow_hcl( n, c = 50, l = 70, start = 0, end = 360 * (n - 1)/n, gamma = NULL, fixup = TRUE, alpha = 1, ... ) heat_hcl( n, h = c(0, 90), c. = c(100, 30), l = c(50, 90), power = c(1/5, 1), gamma = NULL, fixup = TRUE, alpha = 1, ... ) terrain_hcl( n, h = c(130, 0), c. = c(80, 0), l = c(60, 95), power = c(1/10, 1), gamma = NULL, fixup = TRUE, alpha = 1, ... ) diverging_hsv( n, h = c(240, 0), s = 1, v = 1, power = 1, gamma = NULL, fixup = TRUE, alpha = 1, ... )
n |
the number of colors (>= 1) to be in the palette. |
c, c. |
chroma value in the HCL color description. |
l |
luminance value in the HCL color description. |
start |
the hue at which the rainbow begins. |
end |
the hue at which the rainbow ends. |
gamma |
Deprecated. |
fixup |
logical. Should the color be corrected to a valid RGB value before correction? |
alpha |
numeric vector of values in the range |
... |
Other arguments passed to |
h |
hue value in the HCL or HSV color description, has to be in [0, 360] for HCL and in [0, 1] for HSV colors. |
power |
control parameter determining how chroma and luminance should be increased (1 = linear, 2 = quadratic, etc.). |
s |
saturation value in the HSV color description. |
v |
value value in the HSV color description. |
Based on the general qualitative, sequential, and diverging hcl_palettes
within the colorspace package, convenience functions are provided as
alternatives to standard base R palettes (which are highly saturated
and too flashy).
rainbow_hcl
computes a rainbow of colors via qualitative_hcl
defined by different hues given a single value of each chroma and luminance.
It corresponds to rainbow
which computes a rainbow in HSV
space.
heat_hcl
is an implementation of heat.colors
in
HCL space based on a call to sequential_hcl
. Similarly,
terrain_hcl
palette also calls sequential_hcl
with different
parameters, providing colors similar in spirit to terrain.colors
in HCL space.
diverging_hsv
(and equivalently its alias diverge_hsv
)
provides an HSV-based version of diverging_hcl
. Its purpose
is mainly didactic to show that HSV-based diverging palettes are less
appealing, more difficult to read and more flashy than HCL-based diverging
palettes. diverging_hsv
is similar to cm.colors
.
A character vector with (s)RGB codings of the colors in the palette.
Zeileis A, Hornik K, Murrell P (2009). Escaping RGBland: Selecting Colors for Statistical Graphics. Computational Statistics & Data Analysis, 53, 3259–3270. doi: 10.1016/j.csda.2008.11.033 Preprint available from https://eeecon.uibk.ac.at/~zeileis/papers/Zeileis+Hornik+Murrell-2009.pdf.
Stauffer R, Mayr GJ, Dabernig M, Zeileis A (2015). Somewhere over the Rainbow: How to Make Effective Use of Colors in Meteorological Visualizations. Bulletin of the American Meteorological Society, 96(2), 203–216. doi: 10.1175/BAMS-D-13-00155.1
## convenience demo function wheel <- function(col, radius = 1, ...) pie(rep(1, length(col)), col = col, radius = radius, ...) ## compare base and colorspace palettes ## (in color and desaturated) par(mar = rep(0, 4), mfrow = c(2, 2)) ## rainbow color wheel wheel(rainbow_hcl(12)) wheel(rainbow(12)) wheel(desaturate(rainbow_hcl(12))) wheel(desaturate(rainbow(12))) ## diverging red-blue colors swatchplot( diverging_hsv(7), desaturate(diverging_hsv(7)), diverging_hcl(7, c = 100, l = c(50, 90)), desaturate(diverging_hcl(7, c = 100, l = c(50, 90))), nrow = 2 ) ## diverging cyan-magenta colors swatchplot( cm.colors(7), desaturate(cm.colors(7)), diverging_hcl(7, "Cyan-Magenta"), ## or, similarly: Tropic desaturate(diverging_hcl(7, "Cyan-Magenta")), nrow = 2 ) ## heat colors swatchplot( heat.colors(12), desaturate(heat.colors(12)), heat_hcl(12), desaturate(heat_hcl(12)), nrow = 2 ) ## terrain colors swatchplot( terrain.colors(12), desaturate(terrain.colors(12)), terrain_hcl(12), desaturate(terrain_hcl(12)), nrow = 2 )


Connect with me on LinkedIn to get insights into the latest technology trends/tools and to be a part of my discussions with industry leaders in Big Data and AI/ML!
Follow me on Quora to read my answers to frequently-asked questions regarding professional certifications, US college academics, etc.
Join me on GitHub to view my software engineering side-projects and open-source work. My repos also contain my course-related projects!
Follow me on Medium to see my articles on technology-related topics, such as how to study for Cloud certifications, creating/deploying webapps on AWS, etc.


| Class | Description |
|---|---|
| ActorEditingEnvironment |
Returns BorderPane to represent Actor Editing Environment.
|
| ActorRule |
Rule container for an actor containing behavior, images, and/or sounds.
|
| ActorRuleCreator |
Space in actor editing environment where rules are created.
|
| GameEditingEnvironment |
This class enables the author to edit and set various attributes of the game
including the game's name, description, and preview image.
|
| GUIActorImageViewer | |
| GUILevelInspector | |
| GUIMain |
Main GUI class.
|
| GUIMainScreen |
This class sets up all the GUI elements on the Game Authoring Environment's
Main Screen
|
| ImageviewActorIcon |
ImageView that serves as an icon for an actor.
|
| LabelClickable |
This class creates a Label containing text (the name of an actor or level) and an image (a picture
of an actor or level).
|
| LabelMainScreenWelcome |
This class creates a Label containing a welcome message for the Game Editing Environment.
|
| LevelEditingEnvironment |
Level editing environment
|
| TabActors |
Actors tab to go in the Inspector Pane in the Level Editing Environment GUI.
|
| TabAttributes |
Tab for setting attributes to go in the Inspector Pane in either the Level or Actor Editing Environment GUI.
|
| TabLibraryBehaviors |
Tab contains ListView of behaviors and drag/drop behavior for behaviors.
|
| TabLibraryImages |
Tab contains ListView of images
|
| TabLibrarySounds |
Tab contains ListView of sounds
|


 It displays the current status of the machine and its active users. It was developed by Rahul Bawa and Raman Mangla in 2018.
 It displays the current status of the machine and its active users. It was developed by Rahul Bawa and Raman Mangla in 2018.


absolute path CNN
Relative Path
Content路径，默认访问static下的css文件夹
2 + 3
4 % 2
admin
member
below 18
above 18
name is null
name is not null
name is empty
equal content
not equal content
contains ng


The Halloween Store
For the little Goblin in all of us!
Home
Product List
Personal
Decoratng Ideas
Outdoor
Indoor
Table
Treats
Join Email
Props
Costumes
Special Effects
Masks
Please enter the following information:
First Name:
Last Name:
Email:
Zip Code:


Bruno is always an active pet.He is enticed with playing with water guns and rat chasing.
Brunos fears are always standing before a mirror
Here is bruno's favourite meals
Here is a link to get free veterinary cuopon favorite things.


Make Pretty XML
Paste XML String into the Text Area below and click the "Make It Pretty" button.
Your browser is not supported


Home
Projects
About Me
Photos of what I love
Contact
CARLO LUJAN
C
A
R
L
O
A
N
G
E
L
P
o
r
t
f
o
l
i
o
Learn about my projects
Learn about me
Instagram: @carlo_lj
Github:CarloLj
Facebook:Carlo Angel Lj
Photos of what I love
Contact
Github
❮
❯
Home
About Me
GitHub
Contact
Carlo Angel Lujan Garcia
© Google SPS Week 3 -- Carlo Lujan -- 2021
View More info about this portfolio!
English
Chinese
Spanish
Hindi
Arabic
French
German
Japanese


| # | Who | = | Penalty | * | A | B | C | D | E | F |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | HIR180 | 6 | 106 | + 00:02 | + 00:04 | + 00:08 | + 00:17 | + 00:45 | + 00:30 | |
| 2 | neal | 6 | 162 | + 00:02 | + 00:04 | + 00:09 | + 00:28 | + 01:12 | + 00:47 | |
| 3 | receed | 6 | 172 | + 00:06 | + 00:09 | + 00:21 | + 00:30 | + 00:41 | + 01:05 | |
| 4 | Geothermal | 6 | 174 | + 00:02 | + 00:06 | + 00:17 | + 00:29 | + 00:45 | + 01:15 | |
| 5 | cerberus97 | 6 | 179 | + 00:02 | + 00:09 | +1 00:21 | + 00:33 | + 00:46 | + 00:58 | |
| 6 | Egor | 6 | 187 | + 00:05 | + 00:09 | + 00:16 | + 00:29 | + 00:43 | + 01:25 | |
| 7 | KrK | 6 | 191 | + 00:03 | + 00:09 | + 00:16 | + 00:26 | + 00:42 | + 01:35 | |
| 8 | icecuber | 6 | 193 | + 00:02 | + 00:06 | + 00:11 | + 00:25 | + 00:58 | + 01:31 | |
| 9 | dreamoon_love_AA | 6 | 204 | +1 | + 00:03 | + 00:06 | +1 00:12 | +1 00:28 | + 00:43 | + 01:32 |
| 10 | Toxel | 6 | 236 | + 00:07 | + 00:10 | + 00:17 | + 00:52 | +1 01:43 | + 00:37 | |
| 11 | saketh | 6 | 241 | + 00:04 | +1 00:15 | + 00:19 | + 00:43 | +1 01:45 | + 00:35 | |
| 12 | kostyamyasso2002 | 6 | 254 | + 00:05 | + 00:18 | + 00:12 | +1 00:36 | + 01:31 | + 01:22 | |
| 13 | Um_nik | 6 | 255 | + 00:05 | + 00:16 | + 00:25 | + 00:54 | + 01:08 | + 01:27 | |
| 14 | A_Fan_of_the_AK_King--lk | 6 | 276 | +12 | + 00:06 | +1 00:45 | +1 00:26 | + 00:41 | + 00:57 | + 01:21 |
| 15 | mlby | 6 | 305 | + 00:05 | + 00:09 | +2 00:22 | +1 00:39 | + 01:49 | + 01:31 | |
| 16 | The.Last.Wizard | 6 | 332 | + 00:07 | + 00:15 | + 00:31 | + 01:12 | + 01:54 | + 01:33 | |
| 17 | cuom1999 | 6 | 337 | + 00:06 | + 00:09 | + 00:29 | +3 00:58 | +1 01:29 | + 01:46 | |
| 18 | Suzukaze | 6 | 348 | + 00:04 | +3 01:10 | + 00:27 | + 00:46 | + 01:00 | + 01:51 | |
| 19 | hitonanode | 6 | 365 | + 00:04 | + 00:08 | +3 01:45 | + 00:50 | +1 01:11 | + 01:27 | |
| 20 | rainboy | 6 | 566 | + 01:59 | + 01:53 | + 01:48 | + 01:41 | +1 01:17 | + 00:38 | |
| 21 | tmwilliamlin168 | 5 | 88 | -2 | + 00:01 | + 00:04 | + 00:10 | -1 | + 00:31 | + 00:42 |
| 22 | natsugiri | 5 | 96 | + 00:03 | + 00:09 | + 00:16 | + 00:27 | + 00:41 | ||
| 23 | Egor.Lifar | 5 | 104 | + 00:03 | +1 00:09 | + 00:15 | + 00:26 | + 00:41 | ||
| 24 | BThero | 5 | 106 | + 00:03 | + 00:07 | + 00:14 | + 00:32 | + 00:50 | -1 | |
| 25 | kotamanegi | 5 | 109 | + 00:03 | + 00:05 | + 00:13 | + 00:31 | + 00:57 | ||
| 26 | Ashishgup | 5 | 116 | + 00:02 | +1 00:08 | + 00:17 | + 00:31 | + 00:48 | ||
| 27 | risujiroh | 5 | 120 | + 00:02 | + 00:09 | + 00:18 | + 00:29 | -5 | + 01:02 | |
| 28 | Giver | 5 | 130 | + 00:04 | + 00:09 | + 00:20 | + 00:36 | + 01:01 | ||
| 29 | _LeMur_ | 5 | 137 | + 00:04 | + 00:11 | + 00:18 | +1 00:36 | + 00:58 | ||
| 30 | olphe | 5 | 139 | + 00:03 | + 00:06 | + 00:13 | + 00:22 | +3 01:05 | ||
| 31 | diuven_fanclub | 5 | 142 | + 00:05 | + 00:15 | + 00:27 | + 00:42 | + 00:53 | ||
| 32 | Sakutara | 5 | 146 | + 00:06 | + 00:13 | + 00:21 | +1 00:42 | + 00:54 | -1 | |
| 33 | Maksim1744 | 5 | 150 | + 00:04 | + 00:07 | + 00:14 | -1 | + 00:48 | + 01:17 | |
| 34 | .I. | 5 | 151 | + 00:02 | + 00:06 | + 00:13 | + 01:11 | + 00:59 | ||
| 34 | andrew | 5 | 151 | + 00:03 | +1 00:18 | + 00:16 | + 00:34 | + 01:10 | ||
| 36 | gasin | 5 | 154 | + 00:05 | + 00:10 | + 00:24 | + 00:47 | + 01:08 | ||
| 37 | sava-cska | 5 | 156 | + 00:05 | + 00:11 | +1 00:20 | + 00:41 | + 01:09 | ||
| 38 | MiFaFaOvO | 5 | 158 | + 00:40 | + 00:37 | + 00:46 | +1 00:18 | + 00:07 | ||
| 39 | CucuMbah1937 | 5 | 160 | -1 | + 00:09 | + 00:05 | + 00:23 | + 00:55 | + 01:08 | |
| 40 | wery0 | 5 | 162 | + 00:03 | + 00:09 | + 00:23 | + 00:52 | + 01:15 | ||
| 41 | mango_lassi | 5 | 165 | + 00:05 | + 00:10 | + 00:26 | + 00:41 | + 01:23 | ||
| 42 | LamoreauxAJ | 5 | 167 | + 00:03 | +1 00:17 | + 00:29 | + 00:47 | + 01:01 | -1 | |
| 43 | realhype | 5 | 176 | + 00:05 | + 00:09 | + 00:18 | + 00:46 | +3 01:08 | ||
| 44 | mibig | 5 | 180 | + 00:04 | + 00:12 | + 00:23 | + 00:51 | + 01:30 | -1 | |
| 44 | betrue12 | 5 | 180 | + 00:04 | + 00:08 | +1 00:23 | + 00:46 | + 01:29 | ||
| 46 | drastogi21 | 5 | 181 | + 00:04 | + 00:12 | + 00:22 | + 00:54 | + 01:29 | ||
| 46 | Felerius | 5 | 181 | + 00:07 | + 00:15 | + 00:26 | + 00:45 | +1 01:18 | ||
| 48 | oldpreisnerboy | 5 | 182 | + 00:08 | + 00:15 | +1 00:33 | + 00:44 | + 01:12 | ||
| 49 | Rahul | 5 | 187 | + 00:03 | + 00:10 | +1 00:23 | + 01:19 | + 01:02 | ||
| 50 | remoralizer | 5 | 189 | + 00:04 | + 00:11 | + 00:23 | + 00:46 | + 01:45 | ||
| 50 | Allors | 5 | 189 | + 00:06 | +1 00:16 | + 00:23 | + 01:22 | + 00:52 | ||
| 52 | huangshijia | 5 | 190 | + 00:07 | + 00:18 | +1 00:32 | +1 00:50 | + 01:03 | ||
| 53 | koyumeishi | 5 | 191 | + 00:04 | + 00:16 | + 00:30 | + 00:57 | + 01:24 | ||
| 53 | AntonD | 5 | 191 | + 00:06 | + 00:12 | +2 00:30 | + 00:53 | + 01:10 | ||
| 55 | _42 | 5 | 192 | + 00:04 | +3 00:17 | + 00:29 | + 00:49 | + 01:03 | ||
| 56 | chemthan | 5 | 193 | + 00:02 | +1 00:09 | +2 00:15 | +1 00:46 | + 01:21 | ||
| 57 | wiwitrifai | 5 | 194 | + 00:13 | + 00:18 | + 00:26 | + 00:57 | + 01:20 | ||
| 58 | KonaeAkira | 5 | 195 | +1 | + 00:06 | + 00:30 | + 00:23 | + 00:47 | + 01:29 | |
| 58 | frogcatcher | 5 | 195 | + 00:06 | + 00:14 | + 00:33 | + 00:59 | + 01:23 | ||
| 60 | Dalgerok | 5 | 197 | + 00:01 | + 00:53 | + 00:11 | + 00:29 | + 01:43 | ||
| 61 | Fairy_Tale | 5 | 198 | + 00:13 | +1 00:08 | + 00:19 | -3 | + 01:00 | + 01:28 | |
| 61 | KeNaj712 | 5 | 198 | + 00:06 | + 00:22 | + 00:33 | + 00:59 | + 01:18 | ||
| 63 | 2qbingxuan | 5 | 199 | + 00:04 | +1 00:10 | +1 00:33 | +1 00:51 | + 01:11 | ||
| 64 | linjek | 5 | 200 | -1 | + 00:07 | +1 00:20 | + 00:31 | + 00:53 | + 01:19 | |
| 64 | Four-leafClover | 5 | 200 | + 00:06 | + 00:15 | +1 00:26 | + 01:00 | + 01:23 | ||
| 64 | kzyKT | 5 | 200 | + 00:07 | + 00:21 | + 00:31 | + 00:52 | + 01:29 | ||
| 67 | FuruyaRei | 5 | 201 | +2 : -5 | + 00:07 | +1 00:14 | + 00:26 | + 00:52 | +1 01:22 | |
| 68 | Mohammad_Kartoumeh | 5 | 202 | + 00:04 | + 00:08 | +1 00:21 | +1 00:49 | +1 01:30 | ||
| 68 | tsyr8924503 | 5 | 202 | + 00:07 | + 00:17 | +1 00:35 | + 00:55 | + 01:18 | ||
| 70 | Rubikun | 5 | 203 | + 00:04 | +1 00:12 | + 00:22 | + 00:43 | +2 01:32 | ||
| 71 | roll_no_1 | 5 | 204 | + 00:04 | + 00:20 | + 00:34 | + 00:54 | + 01:32 | ||
| 72 | beginend | 5 | 205 | + 00:05 | + 00:10 | +3 00:24 | +1 00:53 | + 01:13 | ||
| 72 | k_arthur_inf | 5 | 205 | + 00:06 | + 00:20 | + 00:40 | + 00:58 | + 01:21 | ||
| 74 | realcomplex | 5 | 207 | + 00:04 | + 00:10 | + 00:21 | +1 00:57 | + 01:45 | ||
| 75 | Siberian | 5 | 208 | + 00:02 | +1 00:31 | + 00:09 | + 00:51 | + 01:45 | ||
| 75 | Kerim.K | 5 | 208 | + 00:03 | + 00:31 | + 00:14 | + 00:58 | + 01:42 | ||
| 77 | potoooooooo | 5 | 209 | + 00:06 | + 00:13 | + 00:23 | + 00:48 | + 01:59 | ||
| 77 | WNG | 5 | 209 | +13 : -1 | + 00:04 | + 00:13 | + 00:32 | -3 | + 01:07 | + 01:33 |
| 79 | vivace_jr | 5 | 210 | + 00:05 | + 00:15 | + 00:33 | + 01:09 | + 01:28 | ||
| 80 | TAISA_ | 5 | 211 | + 00:05 | + 00:18 | +1 00:31 | + 00:56 | + 01:31 | ||
| 81 | shenxy13 | 5 | 212 | + 00:13 | + 00:17 | + 00:28 | + 00:52 | + 01:42 | ||
| 82 | Coming | 5 | 214 | + 00:07 | + 00:17 | + 00:37 | + 01:01 | + 01:32 | ||
| 83 | I_love_mohamed_fouad | 5 | 215 | + 00:03 | +2 00:18 | + 00:26 | + 00:45 | + 01:43 | ||
| 84 | gleb.astashkin | 5 | 216 | + 00:07 | + 00:14 | + 00:27 | + 00:51 | +1 01:47 | ||
| 85 | SchoolStoryTeller | 5 | 219 | -3 | + 00:08 | + 00:15 | + 00:36 | + 01:03 | + 01:37 | |
| 86 | pichulia | 5 | 220 | + 00:06 | +1 00:20 | + 00:32 | + 01:09 | + 01:23 | ||
| 87 | abisheka | 5 | 221 | + 00:03 | + 00:08 | +1 00:32 | +1 01:10 | + 01:28 | ||
| 88 | Alireza_Keshavarz | 5 | 222 | + 00:09 | +1 00:21 | +1 00:36 | + 00:56 | +1 01:10 | ||
| 89 | kostya123 | 5 | 224 | + 00:15 | + 00:35 | + 00:18 | + 01:06 | + 01:30 | ||
| 89 | crypt1k | 5 | 224 | + 00:04 | + 00:16 | + 00:27 | +1 01:07 | + 01:40 | ||
| 91 | IT_MACHINE | 5 | 227 | + 00:03 | +1 00:17 | + 00:33 | +2 01:05 | + 01:19 | ||
| 91 | akat | 5 | 227 | + 00:09 | + 00:17 | + 00:28 | + 01:19 | + 01:34 | ||
| 91 | cs71107 | 5 | 227 | + 00:06 | + 00:19 | + 00:30 | + 00:56 | + 01:56 | ||
| 94 | MarcosK | 5 | 228 | +9 | + 00:02 | + 00:11 | + 00:34 | +1 00:58 | + 01:53 | |
| 95 | theStaticMind | 5 | 230 | -2 | + 00:06 | + 00:19 | + 00:34 | + 01:02 | + 01:49 | |
| 96 | harshhx17 | 5 | 232 | + 00:07 | +2 00:23 | +1 00:39 | + 01:00 | + 01:13 | ||
| 96 | Pa.Nic | 5 | 232 | + 00:05 | + 00:10 | + 00:24 | + 01:20 | + 01:53 | ||
| 98 | vp-asp | 5 | 235 | + 00:05 | +1 00:23 | + 00:42 | + 01:06 | + 01:29 | ||
| 99 | sharpener | 5 | 237 | + 00:05 | +1 00:18 | +1 00:38 | + 01:06 | + 01:30 | ||
| 99 | 0x91 | 5 | 237 | + 00:07 | +1 00:25 | + 00:36 | + 01:04 | + 01:35 | ||
| 99 | eriksuenderhauf | 5 | 237 | + 00:08 | + 00:16 | +1 00:37 | + 01:07 | + 01:39 | ||
| 102 | Seanliu | 5 | 238 | + 00:05 | + 00:13 | +1 00:30 | +1 01:16 | + 01:34 | ||
| 102 | DP_I_J_K_L_M_N | 5 | 238 | + 00:04 | +1 00:30 | + 00:15 | +1 01:13 | + 01:36 | ||
| 104 | bartek95 | 5 | 241 | + 00:05 | + 00:13 | +2 00:40 | + 01:01 | +1 01:32 | ||
| 105 | Evlampiy | 5 | 242 | -17 | + 00:07 | + 00:04 | + 00:44 | + 01:14 | + 01:53 | |
| 106 | Dongyu1997 | 5 | 244 | + 00:06 | + 00:18 | + 00:45 | + 01:07 | + 01:48 | ||
| 107 | SheepRanger | 5 | 245 | + 00:04 | + 00:11 | + 00:27 | + 01:29 | + 01:54 | ||
| 107 | congthanh123 | 5 | 245 | + 00:03 | + 00:12 | +1 00:30 | +1 01:13 | + 01:47 | ||
| 107 | Astrea | 5 | 245 | + 00:03 | +1 00:18 | +1 00:30 | + 01:08 | + 01:46 | ||
| 107 | Marca | 5 | 245 | + 00:08 | + 00:22 | + 00:34 | + 01:10 | + 01:51 | ||
| 111 | Pyqe | 5 | 247 | + 00:08 | + 00:19 | +1 00:39 | + 01:44 | + 01:07 | ||
| 112 | QYitong | 5 | 249 | + 00:09 | + 00:24 | + 00:38 | + 01:15 | + 01:43 | ||
| 113 | Atlantis592 | 5 | 251 | + 00:07 | + 00:14 | +1 00:48 | + 01:09 | + 01:43 | ||
| 114 | kshitij98 | 5 | 252 | + 00:10 | +1 00:28 | + 00:40 | + 01:06 | + 01:38 | ||
| 114 | pajenegod | 5 | 252 | + 00:08 | +1 00:25 | +1 00:39 | + 01:09 | + 01:31 | ||
| 114 | Staszek | 5 | 252 | + 00:07 | +2 00:15 | +1 00:31 | + 01:06 | + 01:43 | ||
| 114 | Arayi | 5 | 252 | + 00:07 | +2 00:25 | + 00:36 | + 01:13 | + 01:31 | ||
| 118 | dlwocks31 | 5 | 254 | + 00:04 | + 00:09 | + 00:29 | +3 01:10 | + 01:52 | ||
| 119 | x20 | 5 | 257 | + 00:10 | + 00:28 | + 00:45 | + 01:11 | + 01:43 | ||
| 119 | Nyaan | 5 | 257 | + 00:07 | + 00:13 | + 00:26 | +2 01:50 | + 01:21 | ||
| 121 | Marckess | 5 | 258 | + 00:03 | + 00:19 | + 00:32 | +1 01:07 | +1 01:57 | ||
| 122 | Prof_BL | 5 | 259 | + 00:05 | +1 00:15 | +3 00:52 | + 01:06 | + 01:21 | ||
| 123 | hidac | 5 | 260 | + 00:12 | + 00:20 | +2 00:45 | + 01:05 | +1 01:28 | ||
| 124 | Ryute | 5 | 262 | + 00:07 | + 00:26 | + 00:43 | + 01:10 | + 01:56 | ||
| 124 | SuperMegaUltraEpicHacker | 5 | 262 | + 00:11 | + 00:23 | +1 00:36 | + 01:12 | + 01:50 | ||
| 126 | Fly_37 | 5 | 265 | + 00:08 | +1 00:33 | +1 00:40 | + 01:10 | + 01:34 | ||
| 127 | Kotoblepass | 5 | 267 | + 00:05 | +1 00:17 | + 00:43 | + 01:23 | + 01:49 | ||
| 127 | hkyiitd | 5 | 267 | + 00:06 | +1 00:19 | + 00:41 | + 01:08 | +2 01:43 | ||
| 127 | -is-this-fft- | 5 | 267 | + 00:04 | + 00:13 | +1 01:37 | + 00:54 | + 01:29 | ||
| 130 | fragusbot | 5 | 270 | + 00:05 | + 00:48 | + 00:28 | + 01:53 | + 01:16 | ||
| 131 | Olzhas | 5 | 271 | + 00:05 | +1 00:26 | + 00:48 | + 01:12 | + 01:50 | ||
| 132 | shurongwang | 5 | 272 | + 00:03 | + 00:16 | +2 00:52 | + 01:08 | +1 01:43 | ||
| 133 | shogier | 5 | 274 | + 00:08 | + 00:19 | +1 00:41 | +1 01:11 | +1 01:45 | ||
| 133 | Renaats | 5 | 274 | + 00:06 | + 00:10 | + 00:24 | +1 01:15 | +4 01:49 | ||
| 135 | ha15 | 5 | 275 | + 00:15 | + 00:21 | + 00:44 | + 01:26 | + 01:49 | ||
| 135 | rstoick | 5 | 275 | + 00:10 | +2 00:18 | +1 00:32 | + 01:01 | +2 01:44 | ||
| 137 | mblazev | 5 | 276 | + 00:03 | + 00:23 | +2 00:53 | + 01:15 | + 01:42 | ||
| 137 | rakeshcodeit | 5 | 276 | + 00:10 | + 00:21 | + 00:41 | + 01:27 | + 01:57 | ||
| 137 | takumi152 | 5 | 276 | + 00:09 | +1 00:20 | + 00:42 | + 01:27 | + 01:48 | ||
| 140 | Mirbek_aka | 5 | 277 | -1 | + 00:03 | + 00:12 | +1 00:35 | + 01:38 | + 01:59 | |
| 141 | Peasant | 5 | 278 | + 00:07 | +1 01:03 | + 00:30 | + 00:52 | +1 01:46 | ||
| 142 | beast_sl | 5 | 280 | + 00:09 | +1 00:23 | +1 00:42 | + 01:22 | + 01:44 | ||
| 142 | _no0B | 5 | 280 | +1 00:10 | + 00:16 | +2 00:36 | +4 01:07 | + 01:21 | ||
| 144 | zoooma13 | 5 | 291 | + 00:03 | + 00:22 | +1 00:37 | +1 01:32 | + 01:57 | ||
| 145 | irri | 5 | 293 | + 00:08 | + 00:29 | +1 00:54 | +1 01:13 | + 01:49 | ||
| 146 | boba5551 | 5 | 294 | + 00:04 | +1 01:14 | +1 00:33 | + 01:06 | + 01:37 | ||
| 147 | mikeleven | 5 | 297 | + 00:06 | +2 00:34 | + 00:49 | + 01:20 | + 01:48 | ||
| 148 | Haar | 5 | 298 | + 00:06 | + 00:18 | + 00:28 | +5 01:29 | + 01:47 | ||
| 149 | Flavius | 5 | 299 | + 00:07 | + 00:18 | +2 00:46 | + 01:20 | +1 01:58 | ||
| 150 | Ekler | 5 | 301 | + 00:06 | +1 00:29 | +1 00:43 | + 01:31 | + 01:52 | ||
| 151 | ToTLeS | 5 | 302 | + 00:27 | + 00:30 | +1 00:38 | + 01:25 | + 01:52 | ||
| 152 | w.w. | 5 | 303 | + 00:03 | +1 01:03 | +1 00:36 | + 01:15 | + 01:46 | ||
| 153 | vinhntndu | 5 | 306 | +7 | + 00:16 | + 00:46 | + 01:09 | + 01:22 | + 01:33 | |
| 153 | Avny | 5 | 306 | + 00:06 | + 00:25 | + 01:08 | + 01:28 | + 01:59 | ||
| 155 | Wss_ | 5 | 307 | + 00:12 | +1 00:25 | +2 00:49 | + 01:17 | + 01:54 | ||
| 155 | cjtoribio | 5 | 307 | + 00:05 | + 00:47 | + 00:21 | +2 01:30 | +1 01:54 | ||
| 157 | SleepyShashwat | 5 | 309 | + 00:04 | +1 01:58 | + 00:30 | + 00:43 | +1 01:34 | ||
| 158 | dalt | 5 | 312 | + 00:06 | +1 01:07 | +2 00:53 | + 00:48 | + 01:48 | ||
| 159 | Lawali | 5 | 314 | + 00:04 | +4 00:30 | +3 00:55 | + 01:13 | + 01:22 | ||
| 159 | MarcoMeijer | 5 | 314 | + 00:05 | +5 00:53 | + 00:39 | + 01:15 | + 01:32 | ||
| 161 | axdr | 5 | 317 | + 00:09 | +1 00:31 | +1 00:57 | + 01:21 | + 01:59 | ||
| 162 | lbjlc | 5 | 322 | + 00:21 | +1 00:32 | +1 00:29 | +3 01:29 | + 01:41 | ||
| 163 | Shavkat_Aminov | 5 | 333 | +2 : -2 | + 00:05 | +2 00:28 | + 00:48 | +3 01:21 | +1 01:51 | |
| 164 | xb0nS | 5 | 339 | + 00:04 | +3 01:00 | + 00:21 | +5 01:09 | +1 01:35 | ||
| 165 | r57shell | 5 | 341 | + 00:07 | + 01:03 | +1 00:34 | +1 01:41 | + 01:56 | ||
| 166 | Stran_nik | 5 | 344 | + 00:06 | +2 01:33 | + 00:40 | + 01:07 | + 01:58 | ||
| 167 | yet_super_CONFIDENCE | 5 | 348 | + 00:49 | + 00:57 | + 01:29 | + 00:42 | + 01:51 | ||
| 168 | jo_on | 5 | 352 | + 00:04 | +4 00:45 | + 00:56 | +1 01:27 | + 01:50 | ||
| 168 | klimoza | 5 | 352 | + 00:04 | +3 01:30 | +2 00:31 | + 00:51 | +1 01:56 | ||
| 170 | Zaee | 5 | 358 | + 00:05 | +4 01:47 | +1 00:43 | + 00:53 | + 01:40 | ||
| 171 | KhanhHoa_UNhi | 5 | 361 | + 00:06 | + 01:26 | + 01:18 | +1 01:02 | + 01:59 | ||
| 172 | Hasan0540 | 5 | 362 | + 00:02 | +4 01:40 | +2 00:50 | + 01:02 | + 01:28 | ||
| 173 | Andreasyan | 5 | 365 | + 01:02 | +1 01:35 | + 00:26 | + 00:54 | + 01:58 | ||
| 174 | old-days | 5 | 371 | + 00:04 | + 00:18 | +1 01:07 | +4 01:54 | + 01:58 | ||
| 175 | vieta | 5 | 377 | + 00:09 | +1 01:50 | + 00:46 | +2 01:21 | + 01:41 | ||
| 176 | ATS | 5 | 383 | + 01:28 | +1 01:24 | + 01:19 | -1 | +1 01:06 | + 00:46 | |
| 177 | GreenMind | 5 | 384 | +2 01:28 | +1 01:25 | + 00:37 | + 01:01 | + 01:23 | ||
| 178 | nim_gerold | 5 | 422 | + 00:03 | + 01:59 | +2 01:52 | +1 01:32 | + 01:06 | ||
| 179 | lelkok228 | 5 | 425 | + 00:04 | +6 01:46 | + 00:33 | +2 01:33 | + 01:49 | ||
| 180 | MrLolthe1st | 5 | 429 | + 00:46 | +1 00:37 | + 00:53 | +5 01:57 | + 01:56 | ||
| 181 | LayCurse | 5 | 464 | + 01:27 | + 01:30 | + 01:33 | + 01:51 | + 01:23 | ||
| 182 | Luma | 5 | 488 | + 01:58 | + 01:53 | + 01:43 | + 01:26 | + 01:08 | ||
| 183 | okwedook | 4 | 53 | + 00:01 | + 00:05 | + 00:16 | + 00:31 | -2 | ||
| 184 | hank55663 | 4 | 69 | + 00:05 | + 00:07 | + 00:12 | -3 | + 00:45 | ||
| 185 | emthrm | 4 | 80 | + 00:03 | + 00:09 | + 00:15 | -1 | + 00:53 | ||
| 185 | ei133333 | 4 | 80 | + 00:03 | + 00:07 | + 00:21 | +1 00:39 | |||
| 187 | kmjp | 4 | 81 | + 00:07 | + 00:09 | + 00:18 | -3 | + 00:47 | ||
| 188 | GioChkhaidze | 4 | 88 | + 00:04 | + 00:12 | + 00:27 | + 00:45 | -4 | ||
| 188 | Rutvik_Kothari | 4 | 88 | + 00:02 | + 00:11 | + 00:26 | + 00:49 | |||
| 190 | Akulyat | 4 | 93 | +24 | + 00:04 | + 00:09 | + 00:23 | -2 | + 00:57 | |
| 191 | A_Le_K | 4 | 94 | + 00:05 | + 00:12 | + 00:26 | + 00:51 | -1 | ||
| 192 | Farhod_Farmon | 4 | 96 | + 00:03 | + 00:12 | +1 00:24 | -1 | + 00:47 | ||
| 193 | 74TrAkToR | 4 | 100 | + 00:02 | + 00:07 | + 00:12 | -6 | + 01:19 | ||
| 194 | RTnF | 4 | 102 | + 00:04 | + 00:10 | + 00:26 | + 01:02 | |||
| 195 | goZXCnoob | 4 | 109 | -2 | + 00:04 | + 00:19 | + 00:28 | + 00:58 | ||
| 196 | apostoldaniel854 | 4 | 111 | + 00:05 | + 00:23 | + 00:33 | + 00:50 | |||
| 196 | zaki_joho | 4 | 111 | + 00:03 | + 00:10 | + 00:31 | +1 00:57 | |||
| 198 | 6aren | 4 | 115 | + 00:07 | + 00:17 | + 00:26 | +1 00:55 | |||
| 199 | RockyB | 4 | 116 | + 00:04 | + 00:19 | + 00:13 | +1 01:10 | |||
| 200 | T1duS | 4 | 120 | +1 00:05 | +1 00:10 | + 00:19 | -14 | +1 00:56 | ||
|
Accepted
Tried |
5147 5463 |
2855 4776 |
1736 2470 |
438 900 |
253 276 |
61 80 |


Sociable crows are healthier, research suggests
The study from Anglia Ruskin University challenges the belief that group living is less healthy as diseases can spread.
Crows living in large social groups are healthier than those with fewer social interactions, a study has suggested.
Researchers said it is possible that close social bonds reduce stress levels in the birds, making them less susceptible to parasites.
They say their findings challenge the commonly-held belief that animals in larger groups are less healthy as disease can spread more easily.
Findings of the study, led by Dr Claudia Wascher of Anglia Ruskin University, have been published this week in the journal Animal Behaviour.
Dr Wascher and her colleagues studied a population of captive carrion crows over a six-year period.
They monitored the behaviour of the birds in different sized groups and measured friendship by ranking them using a “sociality index”.
At the same time, they studied the crows’ droppings to measure for the presence of the gastrointestinal parasite coccidian oocyst, which can represent a health threat to birds.
Dr Wascher, senior lecturer in biology, said: “Crows are a highly social bird and we found that crows with the strongest social bonds excreted fewer samples containing coccidian oocyst, which is a common parasite in birds.
“It is a commonly-held belief that animals in larger groups are less healthy, as illness spreads from individual to individual more easily.
“We also know from previous studies that aggressive social interactions can be stressful for birds and that, over time, chronic activation of the physiological stress response can dampen the immune system, which can make individuals more susceptible to parasites.
“Therefore the results from our six-year study, showing a correlation between sociability and health, are significant.
“It could be that having close social bonds reduces stress levels in crows, which in turn makes them less susceptible to parasites.
“It could also be that healthier crows are more sociable.
“However, as many of the birds we studied were socialising within captive family groups, dictated by the number of crows within that family, we believe that social bonds in general affect the health of crows, and not vice versa.”


Mapping Deep-Dive
The Mapper make data-access coding simpler and more productive by using property attributes to map a model class’s properties to data values — parameters, reader columns, and (in the case of SQL Server) table-value parameters. This reduces and simplifies the amount of code required to render data.
Overview
Using the Mapper consists of two parts, which should be familiar from other scenarios:
- Use property attributes to define how each property in your model class should be mapped to a data store (if at all)
- Call a method to which uses data results and the attribute metadata to populate the properties
By defining metadata about the names of parameters or result columns, the Mapper can automatically map properties to columns and/or parameters. Several query methods on both Database connections and ShardSets implicitly use the Mapper.
Property Attributes
You use properties attributes to define the metadata that the Mapper requires. For example, given this very simple model class:
using System;
public class Subscriber
{
public int SubscriberId { get; set; }
public string Name { get; set; }
public DateTime Expiration { get; set; }
}
Adding mapping attributes to this class provides the metadata to automatically map these properties to stored procedures:
using System;
using ArgentSea.Sql;
public class Subscriber
{
[MapToSqlInt("@SubID", true)]
public int SubscriberId { get; set; }
[MapToSqlNVarChar("@SubscriberName", 255)]
public string Name { get; set; }
[MapToSqlDateTime2("@EndDate")]
public DateTime Expiration { get; set; }
}
The “@” parameter prefix is optional — ArgentSea will add the “@” automatically for parameters and remove it automatically when reading data reader rows.
Often, due to different naming conventions or development drift, database column names and the corresponding .NET properties names do not match. That is why every attribute requires a “name” argument — which should correspond to the database name. The Mapper will create query parameters and reference DataReader columns based on this name.
Important
Database parameters and columns should be named as consistently as possible. In most cases, this means the parameters have the same name as the columns they reference. If you like to use varying parameter names or alias columns in your result, you will find the Mapper unhelpful.
Properties without a mapping attribute are simply ignored.
Attribute Types
A mapping attribute is defined for most common database types. Attributes for spatial data types, CLR types, XML, and JSON types (for example) are missing because there is no straightforward mapping between the core .NET base types and these database types. ArgentSea supports writing a custom handler to render any of these complex types; such work is no more difficult than writing the same processing in ADO.NET.
The attribute itself defines the underlying database type. Naturally, the attribute type and the property type must match. For example, a long
(Int64) property must map to a bigint
database type. The Mapper will throw an error if these types do not match. There is no attempt to cast data to a different type, even if the cast would be successful.
Many data attribute types have an additional parameters. The length argument, for example, on string and array types, helps optimize data access performance by ensuring that buffers are sized appropriately.
Here is catalog of the current attributes, along with their arguments and corresponding .NET types:
| Attribute | Arguments | .NET types | SqlType |
|---|---|---|---|
| MapToSqlNVarCharAttribute | length¹ | String, Enum², Nullable<Enum> | NVarChar |
| MapToSqlNCharAttribute | length | String, Enum², Nullable<Enum> | NChar |
| MapToSqlVarCharAttribute | length¹, localeid³ | String, Enum², Nullable<Enum> | VarChar |
| MapToSqlCharAttribute | length, localeid³ | String, Enum², Nullable<Enum> | Char |
| MapToSqlBigIntAttribute | Int64, Enum⁴, Nullable<Int64>, Nullable<Enum> | BigInt | |
| MapToSqlIntAttribute | Int32, Enum⁴, Nullable<Int32>, Nullable<Enum> | Int | |
| MapToSqlSmallIntAttribute | Int16, Enum⁴, Nullable<Int16>, Nullable<Enum> | SmallInt | |
| MapToSqlTinyIntAttribute | Byte, Enum⁴, Nullable<Byte>, Nullable<Enum> | TinyInt | |
| MapToSqlBitAttribute | Boolean, Nullable<Boolean> | Bit | |
| MapToSqlDecimalAttribute | precision, scale | Decimal, Nullable<Decimal> | Decimal |
| MapToSqlMoneyAttribute | Decimal, Nullable<Decimal> | Money | |
| MapToSqlSmallMoneyAttribute | Decimal, Nullable<Decimal> | SmallMoney | |
| MapToSqlFloatAttribute | Double, Nullable<Double> | Float | |
| MapToSqlRealAttribute | Float, Nullable<Float> | Real | |
| MapToSqlDateTimeAttribute | DateTime, Nullable<DateTime> | DateTime | |
| MapToSqlDateTime2Attribute | precision | DateTime, Nullable<DateTime> | DateTime2 |
| MapToSqlDateAttribute | DateTime, Nullable<DateTime> | Date | |
| MapToSqlTimeAttribute | TimeSpan, Nullable<TimeSpan> | Time | |
| MapToSqlDateTimeOffsetAttribute | DateTimeOffset, Nullable<DateTimeOffset> | DateTimeOffset | |
| MapToSqlVarBinaryAttribute | length¹ | byte[] | VarBinary |
| MapToSqlBinaryAttribute | length | byte[] | Binary |
| MapToSqlUniqueIdentifierAttribute | Guid, Nullable<Guid> | UniqueIdentifier |
¹ For “max” values (nvarchar(max), varbinary(max), etc.) use length of -1.
² The Enum name is saved as string.
³ Locale Id is the Ansi code page to use for Unicode conversion. For en-US locale, for example, use 1033.
⁴ The Enum value is saved based on its underlying numeric value. The Enum integer base type (int, short, byte, etc.) must match the database type.
Required
Finally, the the data attributes have an optional required
(sic) parameter. If a database field is DbNull, the Mapper will normally set the corresponding property to null. However, the missing value may represent an entirely absent record. In this case, the correct result is a null object, not a valid instance with null/default properties. Setting a property attribute’s required
argument to True causes the Mapper to return a null object if the property would be null. By default (if not specified), required
is false.
Handling Nulls and Empty Types
Because the Mapper is handling database values, there is generally a possibility that the database value is DbNull. How this is converted to a .NET type depends upon the type.
Strings and Arrays
A .NET string with a value of null or a null array will be saved as a DbNull. Empty strings will save as a zero-length string.
Integers
Integers cannot be null, so the advent of nullable types is a godsend for mapping to database storage. To save or retrieve an integer (byte, Int16, Int32, or Int64) database value from a column that allows null, you should declare a nullable value type.
Floating Point Numbers
Like integer types, floating point types (Double and Float) can be wrapped in a nullable value. However, ArgentSea also handles NaN as a DbNull. If the floating point value is presented as a nullable type, then ArgentSea will save or retrieve NaN; if floating point type is presented, then NaN will be converted to/from a DbNull.
Guids
Rather like floating point types, Guid.Empty (00000000-0000-0000-0000-000000000000) will be converted to a data DbNull when read from or written to the database. Also like floats, if you need to write an empty Guid value, wrap it in a nullable type.
Enum Types
.NET enum values can be stored as either numbers or strings. Writing to a text column will automatically save the name of the enum; writing to a numeric column saves the number value.
Warning
Enums can inherit from several base types (byte, short, int, etc.). If you are saving to a numeric database column, the base type must correctly correspond to the database data type. Enums are Int32 by default.
Nullable Enum types will read or write as a DbNull when the value is null.
ShardKey and ShardChild
These are special types and are discussed in detail in the sharding section.
The MapToModel attribute
Complex object models may include properties that are objects with their own properties, which also need to be mapped to the underlying data.
For example, you might have an Address object that you use for Customers, Vendors, Contacts, Stores, and more. The Vendor class, then, has a property of type Address, and the Customer class has an Address property too. Since the address information is included with the results from the database, the Mapper should map the matching values to the Address object. The MapToModel
attribute tells the Mapper to do this.
Of course, the property’s type must also have data mapping attributes on the appropriate class properties. The type referenced by a MapToModel attribute can itself have a object property with a MapToModel attribute.
In other words, a Store object can have a property of type Address, which might in turn have a property of type Coordinates. If the Coordinates type has two properties, each with a MapToDouble
attribute, the Mapper will be able to map the Latitude and Longitude values to the Store.Address.Latitude and Store.Address.Longitude fields respectively.
Properties with the MapToModel attribute cannot be null, so the root object must be instantiate all of its properties when it is created.
Mapping Targets
The ArgentSea Mapper maps to:
- Query input parameters
- Query output parameters
- Data reader columns
- Table-valued parameters (SQL Server only)
The mapper does not generate dynamic SQL statements. The Mapper may be useful in situations where dynamic SQL is used, but, philosophically, this is not encouraged. Stored procedures are generally more secure, more performant, and offer a less tightly-coupled architecture.
The Parameter Collection
The Mapper’s parameter methods are implemented as an extension method to the (abstract) DbParametersCollection, which is inherited by each provider implementation of the DbCommand.Parameters property. This means that you can call the Mapper through the command object of any provider.
cmd.Parameters.CreateInputParameters<MyDataClass>(myDataClass, logger);
// or
cmd.Parameters.CreateOutputParameters<MyDataClass>(logger);
These extension methods can be combined with the other extension methods for a fluent API, which allows you to build a logical sequence of code that may be more readable.
For example, this code uses the fluent API to to set an output parameter and then the mapper to create and set all the other object properties from a transaction object.
cmd.Parameters.AddSqlIntOutputParameter("@TransactionId")
.CreateInputParameters<Transaction>(transaction, logger);
In ADO.NET, you normally access the data parameters collection (SqlParametersCollection
, NpgsqlParametersCollection
, etc.) through the Parameters property of the command object. In ArgentSea, you can still do this; the Mapper and other extension methods work on the parameters collection property.
When working with sharded data, however, this presents a problem that is described in detail in the tutorial on querying. The gist is that there is a need to create a parameters list independently of a command object.
Enter the QueryParameterCollection class. It’s functionally not much more than a parameter list, but it can be created without a command object. Because it also inherits from the abstract DbParameterCollection, the same extension methods — like the Mapper — work on this object too.
Again, the optional fluent API makes setting an input parameter and a mapped set of output parameters quite simple:
var prms = new QueryParameterCollection()
.AddSqlBigIntInputParameter("@ID", _id)
.CreateOutputParameters<MyClass>(logger);
Mapping to Input Parameters
You can create input parameters with the CreateInputParameters
method. This is an extension method on the parameters collection. The mapping attributes in your class will be used to:
- Create the set of input parameters
- Set the value of those parameters to the value of the corresponding property.
That is all the Mapper does. The Mapper simply saved you the time and effort of hand-coding a whole bunch of parameters. You can view the parameters in the debugger and you can add, remove or update any of them. If a particular query needs a parameter that is not presented in a property attribute, just add it to parameter the collection yourself!
Any parameters already added to the parameter collection will not be recreated (the names must match exactly). This is helpful if you need to treat one or more parameters differently (say, an output parameter in a collection of input parameters).
If you don’t want the Mapper to create a particular parameter set, you can provide a list of parameter names to suppress.
Mapping to Output Parameters
Working with output parameters is done in two steps:
- Create the output parameters before executing the query
- Read the output parameter values after executing the query
This example creates and sets the CustomerId parameter and creates all of the output parameters. It then executes the query and reads the output values into a new object.
cmd.Parameters.AddSqlIntInputParameter("@CustomerId", _Id)
.CreateOutputParameters<Customer>(logger);
await cmd.ExecuteNonQueryAsync();
var customer = cmd.Parameters.ToModel<Customer>(logger);
Of course, it would be quite unusual to have a query that only uses output parameters. Because the input parameter is added to the collection first, the output parameter will be automatically skipped. As with input parameters, you can also provide a list of parameter names that you want to explicitly skip. And also like input parameters, the CreateOutputParameters
method simply creates output parameters; you can modify the collection as needed.
Once the parameters are set and the procedure is executed, the Mapper can read the values of the output parameters into the corresponding properties of a new object instance. The ToModel
method returns a new object with the properties set.
Note
The MapOutput*;
methods of the Database or ShardSet objects fetch results from the database and implicitly use the Mapper to return a Model based upon output parameters. In most cases, you would use one of those methods rather than ToModel
on the Mapper directly.
Mapping from DataReader Results
The Mapper also converts the rows presented by a DataReader object into a list of corresponding objects, or a single row into a Model instance.
For example, to map to a list of objects:
var customers = rdr.ToList<Customer>(logger);
The IList result will contain an object instance for each valid row. If an attribute is marked “required” but the corresponding data field is DbNull, then the object will not be included listed results.
To map to a single Model instance:
var customer = rdr.ToModel<Customer>(logger);
Note
As with output parameters, the MapReader*;
or MapListAsync
methods of the Database or ShardSet objects fetch results from the database and implicitly use the Mapper to return a Model based upon DataReader results. In most cases, you would use one of those methods rather than ToList
or ToModel
on the Mapper.
The DataReader mapping methods allow you to use multiple SELECT result to map both the base object and one or more list properties. The order of the generic objects provided to the Mapper determines the expected order of the result streams in the DataReader.
Performance
The ArgentSea Mapper is written to be as high-performance as optimized hand-coded data access code. However, there is a hitch.
Property attributes can only be retrieved using reflection, which is relatively slow .NET code. To avoid this type of performance penalty on every data access, ArgentSea uses reflection only the first time the mapping is performed; using that metadata it then creates and compiles an “Expression Tree”to build an optimized, compiled mapping. The compiled code is cached in memory and reused for all subsequent calls.
Warning
The Mapper will be relatively slow (and CPU intensive) the first time each model class is mapped to parameters or data. The initial compilation usually takes less than a second. Subsequent calls will execute the data to property mapping at native machine-code speeds. When the application is restarted, the memory is cleared and the compilation overhead occurs again.
Logging
You have surely noticed that every Mapper command requires a logger instance — an object that implements the ILogger
interface. A supportable application requires logging, so the parameter is not optional. The .NET Core environment provides objects that log to the console, debug window, Windows event logs, file system, Application Insights, CloudWatch, and much more. ArgentSea can consume any of these logging providers and provide diagnostic and runtime data to their respective targets.
In production, you will generally want to use log level Information. In development you may find Debug or even Trace very helpful.
Caution
Be sure to manage the logging level in your configuration. This determines the amount of logging and this can have a substantial impact upon performance.
Logging Levels
The logging levels determine the types of events that are logged. These are described below:
Critical
Logs when the circuit breaker is triggered on a connection or command. This may generate many downstream errors until the functionality is restored.
Error
In most cases, an error condition will throw to the caller so they become the caller’s responsibility to handle or log. Because data access may happen on multiple threads, however, a simple throw may lose context. If the data reader passed to the Mapper is closed or null, this is logged as an exception along with the connection description.
Warning
ArgentSea creates a warning log event when starting an automatic retry on a connection or command.
Information
When the circuit breaker is triggered, ArgentSea creates a log record each time a test transaction is attempted and again when functionality is restored.
Debug
The logged events in the Debug level are intended to help diagnose internal processes that may not be returning the expected results.
The first type of event is when a DbNull value is presented to an object that then becomes null or empty, which happens with ShardKey, ShardChild, or any object with a Required argument set to true. When this happens unexpectedly, it can be difficult to determine which database value caused the problem (as now no properties exist to determine the culprit). This logging event identifies which DbNull caused the result to be null or Empty.
The second type of event provides full visibility into the generated code used to build the Mapper’s activity. The Expression Tree is walked and the pseudo-code saved to the log before it is compiled. This can be extremely useful in understanding the complexities of the Mapping behavior. The log record will be rather long and the extraction may not be efficient, but it also runs only during the first data access.
This log level also reports when a parameter attribute was defined but the parameter was not found among the output parameters. This might be by design or it might be a programming oversight.
Finally, the Mapper logs when it did not find an cached delegate so an Expression Tree is being built and compiled. This is normal at startup because the cache will be empty; if these event occur afterward, there is likely a problem.
Trace
The Mapper creates a trace log record as it iterates over properties. This can provide insight into the current context when other error conditions occur. Also, the logger will report the execution time for commands sent to a database connection or shard sets.


@@include('./header.html')
@@include('./home.html')
@@include('./speakers.html')
@@include('./agenda.html')
@@include('./workshops.html')
@@include('./venue.html')
@@include('./diversity.html')
@@include('./coc.html')
@@include('./imprint.html')
@@include('./tickets.html')
@@include('./about.html')
@@include('./footer.html')


| Class and Description |
|---|
| AttributeInfo
Auxiliary class that provides information about the attribute data sources (each named with their queryable column) available for similarity search operations.
|
| DatasetIdentifier
Provides identification for the data regarding a specific attribute available from a data source.
|
| DataSource
Instantiates a connection to retrieve attribute values from one of the following possible data sources:
(i) a path to a CSV file; or
(ii) a JDBC connection pool; or
(iii) an HTTP connection to a REST API.
|
| DataType.Type
Enumeration of all possible data types; one must be specified per attribute.
|
| Class and Description |
|---|
| AttributeInfo
Auxiliary class that provides information about the attribute data sources (each named with their queryable column) available for similarity search operations.
|
| DatasetIdentifier
Provides identification for the data regarding a specific attribute available from a data source.
|
| DataSource
Instantiates a connection to retrieve attribute values from one of the following possible data sources:
(i) a path to a CSV file; or
(ii) a JDBC connection pool; or
(iii) an HTTP connection to a REST API.
|
| DataType.Type
Enumeration of all possible data types; one must be specified per attribute.
|
| Class and Description |
|---|
| DatasetIdentifier
Provides identification for the data regarding a specific attribute available from a data source.
|
| Class and Description |
|---|
| DatasetIdentifier
Provides identification for the data regarding a specific attribute available from a data source.
|
| Class and Description |
|---|
| IDataConnector
Interface for connecting to data sources and querying them in-situ.
|
| Class and Description |
|---|
| DatasetIdentifier
Provides identification for the data regarding a specific attribute available from a data source.
|
| DataSource
Instantiates a connection to retrieve attribute values from one of the following possible data sources:
(i) a path to a CSV file; or
(ii) a JDBC connection pool; or
(iii) an HTTP connection to a REST API.
|
| DataType.Type
Enumeration of all possible data types; one must be specified per attribute.
|
| TransformedDatasetIdentifier
Provides identification of a transformed dataset, i.e., sets of keywords converted to a vector of double values according to a given dictionary of words.
|
| Class and Description |
|---|
| DatasetIdentifier
Provides identification for the data regarding a specific attribute available from a data source.
|
| DataType.Type
Enumeration of all possible data types; one must be specified per attribute.
|
| Class and Description |
|---|
| IDataConnector
Interface for connecting to data sources and querying them in-situ.
|
| Class and Description |
|---|
| DatasetIdentifier
Provides identification for the data regarding a specific attribute available from a data source.
|
| DataType.Type
Enumeration of all possible data types; one must be specified per attribute.
|
| Class and Description |
|---|
| AttributeInfo
Auxiliary class that provides information about the attribute data sources (each named with their queryable column) available for similarity search operations.
|


Visual Studio Code is a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux. It comes with built-in support for JavaScript, TypeScript and Node.js and has a rich ecosystem of extensions for other languages (such as C++, C#, Java, Python, PHP, Go) and runtime (such as .NET and Unity). Begin your journey with VS Code with these introductory videos.


The paper presents a general message passing architecture called as Message Passing Neural Networks (MPNNs) that unify various existing models for performing supervised learning on molecules.
Variants of the MPNN model achieve very good performance on the task of predicting the property of the molecules.
The input to the model is an undirected graph G where node features are represented as xv (corresponding to node v) and edge features are ev, w (corresponding to edge between nodes v, w).
The idea is to learn a representation (or feature vector) for all the nodes (and possibly edges) in the graph and use that for the downstream supervised learning task.
The model can be easily extended to the setting of directed graphs.
The model works in 2 phases:
All nodes send a message to their neighbouring nodes. The message is a function of the feature vectors corresponding to the sender node (or vertex), the receiver node and the edge connecting the two nodes. The feature vectors can be combined to form the message using the message function which can be implemented as a neural network.
Once a node has received messages from all its neighbours, it updated its feature vector by aggregating all the message. The function used to aggregate and update the feature vector is called as the update function and can be implemented as a neural network.
After updating the feature vectors, the graph could initiate another round of message passing. After a sufficient number of message passing rounds, the Readout phase is invoked.
The feature vectors corresponding to different nodes in the graph are aggregated into a single feature vector (corresponding to the feature vector of the graph) using the readout function.
The readout function can also be implemented using a neural network with the condition that it is invariant to the permutation of the nodes within the graph (to ensure that the MPNN is independent of the graph isomorphism).
Broadly speaking, the task is to predict the properties of given molecules (regression problem).
The QM9 dataset consists of 130K molecules whose properties have been measured using Quantum Mechanical Simulations (DFT).
Properties to be predicted include atomization energy, enthalpy, highest fundamental vibrational frequency etc.
There are two benchmarks for error:
DFT Error - Estimated average error of DFT approximation
Chemical Accuracy - As established by the chemistry community
Following variants of message function are explored:
Matrix multiplication between Aevw and hv where A is the adjacency matrix hv is the feature corresponding to node v.
Edge Network which is same as matrix multiplication case with the difference that A is a learned matrix for each edge type.
Pair Network where the feature vector corresponding to the source node, target node and edge is fed to a neural network.
Since all messages are shared via edges, it could take a long time for the message to move between two ends of the graph. To fasten this process, virtual elements are provided.
In the first setting, “virtual edges” are inserted between nodes.
In the second setting, a “master” node connects to all the other nodes.
In a graph with n nodes and d dimensional feature vectors, a single step of message passing would have the worst case time complexity of O(n2d2.
This complexity can be reduced by breaking the d dimensional embedding into k different groups of d/k embeddings which can be updated in parallel. The complexity of the modified approach is O(n2d2/k.
Best performing MPNN model uses edge network as the message function and set2set as the readout function.
Using group of embeddings helps to improve generalization. This effect could also be because of ensemble-like nature of the modified architecture.
The model performs worse without the virtual elements.
Long range interaction between vertices is necessary.
Scaling to larger molecule sizes is challenging because the model creates a fully connected graph by incorporating virtual elements.


Preferences
SmartIndent
ShowLineBreaks
ShowTypes
Types
UseNull
UseUndefined
UseArray
UseObject
UseBoolean
UseDate
UseError
UseFunction
UseNumber
UseRegExp
UseString
UseUserDefined
UseObjectsForUserDefined
Rules
CheckInfiniteLoops
MaxDepth
|
This page contains a Javascript object called objMonkey.
We put objMonkey into the JSSerializer and then call GetJSString():
The above string is a pure Javascript object and can be evald to recreate the object.
Alternatively the Javascript object can be converted to XML by calling GetXMLString():
|


Given a list of events (with room, start time, length and text), construct a schedule table (merging cells and placing all events in the right places). Events can further be filtered down by specifying the required values for some columns (such as the day).


Wikipedia Selection for Schools
Welcome to Wikipedia for Schools! This selection of articles from Wikipedia matches the UK National Curriculum and can be used by school children around the world. 6000 articles, 26 million words and 50,000 images make Wikipedia for Schools bigger than Harry Potter, the Lord of the Rings and the Chronicles of Narnia put together!
Wikipedia is great, but it wasn’t designed with the National Curriculum in mind. And because anyone can edit it, articles sometimes get vandalised. That’s why we’ve put together this special collection to make learning as easy and safe as it can be. Here at SOS Children, we’ve checked all the articles, tidied them up a bit, and put them together by school subject.
SOS Children ( www.soschildrensvillages.org.uk) is a charity which works around the world to help children in need. As well as Wikipedia articles, we’ve collected pages from the SOS Children website, so you can learn more about the work we do in 125 countries around the world.
We would like to say thank you to the Wikimedia Foundation, the people who made the Wikipedia site. We would also like to thank the many people who have come together over the years to make Wikipedia what it is today.
You can download Wikipedia for Schools from www.sos-schools.org/wikipedia-for-schools. You can also get a copy on USB memory stick. Wikipedia for Schools is on the internet too, at schools-wikipedia.org.
The legal stuff: content is covered by disclaimers and licences.
How to Navigate
You can find an article by clicking on the school subject on the left of the screen. You can also choose from a list of all articles by clicking on Title Word Index.
Wikipedia for Schools also includes Portal Pages. These pages give a summary of a topic and list important articles inside it, and you can find them by choosing Portals from the menu on the left. You can use the indexes to find your way around but you might like to pick an article and click words in the text to other articles. For example, good starting places are Africa, The Solar System, Tsunami or Apple.
How the content was selected and checked
Topics we have selected include the very best of Wikipedia. We chose them because they form part of the UK National Curriculum, and because we thought they would be of interest to children. The selection is vast, but because we have prioritised subjects on the curriculum, not all topics are covered in the same level of detail. For this reason, the Welsh town of Llandudno receives more detail on Wikipedia for Schools than places given a similar level of attention on the original Wikipedia site.
We chose articles from a list ranked by importance and quality which was drawn up by project members. Then we sorted the articles based on relevance to children, and removed unsuitable topics. With the help of volunteers like Paul and Zaheera, SOS staff checked the articles, choosing those versions of articles free from vandalism, and then removing unsuitable sections. External links and references have been removed as it wasn’t feasible to check all of these.
Wikipedia’s policies state that content has to be verifiable and based on recognised and reliable sources. We haven’t included references and sources in this selection, but you can check them on the original Wikipedia site if you’d like to follow up on something you’ve read.
This selection is part of a larger collection on the original Wikipedia site, which we recommend for older children in particular. We have tried to remove links to material in articles outside Wikipedia for Schools, including images where we identified copyright issues. However, occasional “dead ends” may remain, particularly on content boxes which are “part of a series”.
Staff and volunteers at SOS have done their very best checking through the collection, but if you do see something which shouldn't be there do please let us know for our benefit and that of the millions of people who use Wikipedia for Schools. We’ve fixed all the mistakes we came across, while retaining a sneaky “easter egg” for our own entertainment!
If you find pieces of foreign text which appear as a string of question marks (“????”) or in a similar format, it may be because you do not have that language font installed on your computer. If this happens, please check the same article on the original Wikipedia site before getting in touch.
Please send any comments via email to: wikipedia-cdsoschildrensvillages.org.uk
SOS Children ( www.soschildrensvillages.org.uk) is the world’s largest orphan charity. In 125 countries worldwide, donors and child sponsors provide a loving family for more than 62,000 children in over 500 Children’s Villages. We place a high priority on education, and a large part of our community work is devoted to bringing better schooling to children from deprived backgrounds. In the online world, Wikipedia for Schools is just one of our many educational resources. Our SOS Schools site contains a wealth of information about our schools around the world, as well as a selection of classroom resources. From there, you can access Our Africa, a unique online experience which brings you a child’s-eye view on what it’s like to grow up across the continent.


Metallicat
Menu
Home
Shop
About
Contact
Blog
Home
Shop
About
Contact
Blog
Meowadeth
Shop Now
View more
Iron Meowden
Shop Now
View more
Pawtera
Shop Now
View more
Slipkitten
Shop Now
View more
Sepurrtura
Shop Now
View more
Marilyn Meowson
Shop Now
View more


Video Game Hacking
Memory Introspection For Fun
-
@jackiekircher
Spelunky
Cheat Engine
scan memory
modify memory
read code
rewrite code
export changes with Lua
let's hack some games!


myBias
This site’s AllSides bias rating:
Loading...
Overall bias of the news sites you visit:
Loading...
Overall bias of news links you see:
Loading...
In aggrgate, you tend to read news articles from sources scored as {loading...} by AllSides.
In aggregate, the news story links you see online are from providers scored as {loading...} by AllSides.
This was determined by tracking the amount of time you spend on any site ranked by AllSides ( see the list), the
links to news sites ranked by AllSides that appeared on your browser, and those site’s corresponding bias
ratings: left, leans left, center, leans right, or right.
Privacy and transparency are important, so none of the data this extension collects ever leaves this device -
promise (it’s open source so you can check the
source code ). Click here to learn how AllSides does it’s
rankings.