Natural Numbers
First thing first, if we're going to implement a sort algorithm, we need something to sort. We'll be using natural numbers. Of course, there's no natural numbers available out of the box in Scala's type system. We need to create a type for each and every natural number!
Creating an infinity of types might end up being a little time consuming, so we'll do something a little smarter. We'll use MATH!
Peano's axioms
Peano's axioms are a simple way to formally define what natural numbers are.
- There's one special object called
0
.0
is a natural number. - For every natural number
n
, there's exactly one other natural number called it's successorS(n)
. 0
is not the successor of any natural number. All other natural numbers are the successor of a natural number- No two natural numbers have the same successor
- Natural numbers can be compared for equality. Equality is reflexive, symmetric and transitive.
- For some statement
P
,P
is true for all natural number if:P
is true about0
- If
P
is true for a numbern
, (P(n)
is true),P
is true forn
's successor (P(S(n))
is true).
You can read more about Peano's arithmetic on Wikipedia.
With those axioms in mind, it's easy to represent natural numbers in Scala's type system.
Let's start by creating a Nat trait.
There's one special object called
0
.0
is a natural number (Since0
is an invalid type name, we'll call it_0
).
For every natural number
n
, there's exactly one other natural number called it's successorS(n)
.
Having defined those classes, we can represent any natural number. Let's defined the natural numbers from 1 to 5.
easy-peasy :)
Basic arithmetic
Just to prove that those numbers are actually usable, we're going to implement addition. Again Peano tells us how to do that (image taken from wikipedia):
It might not be obvious yet why this is enough. Luckily it translate almost directly to types.
And here's a translation in Scala that I've shamelessly stolen from Shapeless. From now on, each time we'll need something that exist in Shapeless, we'll just take it from there, because, you know, "Great Artists Steal" (plus, I'm lazy). Of course I'll mention it every time. I may remove some code for the sake of clarity if it's not relevant to us.
Meet Shapeless' Sum
:
You might feel a tiny bit overwhelmed by the awesomeness. Take a few deep breathes, we'll walk that step by step:
Sum
takes two natural numbers A
and B
, and returns another natural number Out
. It's using dependent types to create a type level function. The type Out
depends on A
and B
. In other words, we'll give Scalac an A
and a B
, and it will magically figure out what Out
is.
We now have a way to represent additions. A + B = Out
!
Since we can represent, the next step is to actually compute the result of adding two natural numbers.
This this the base case of our definition of addition.
For any natural number b
, 0 + b = b
.
We can immediately test this case using the apply method:
The other cases are defined by induction:
What this says is given 2 Nat A
and B
,
S(A) + B = A + S(B)
That's not exactly the axiom defined in Wikipedia, but it's equivalent because:
A + S(B) = S(A + B)
- similarly,
S(A) + B = S(A + B)
- therefore
A + S(B) = S(A + B) = S(A) + B
So if we try to evaluate the addition 3 + 1
, by mean of implicit resolution, the Scala compiler will go through the following steps:
S(S(S(0))) + S(0) = S(S(0)) + S(S(0))
S(S(0)) + S(S(0)) = S(0) + S(S(S(0)))
S(0) + S(S(S(0))) = 0 + S(S(S(S(0))))
- And back on our base case
0 + S(S(S(S(0)))) = S(S(S(S(0))))
- therefore,
S(S(S(0))) + S(0) = S(S(S(S(0))))
.
We can test it in a Scala REPL:
We can do basic arithmetic in the type system :)
Inequalities
To implement quicksort, we need to be able to compare natural numbers. Again, Shapeless got us covered:
As always, we just have to cover a base case 0
, and use induction to cover all other cases.
Zero is the smallest natural number so ∀x∈N. 0 < S(x)
We can immediately test that:
As you already know, type are propositions, and programs are proofs. Since a value of type LT[_0, _1]
exists, the compiler just proved that 0 < 1
. (see Curry–Howard correspondence)
For every other cases, we just compare the numbers predecessors:
∀ x,y ∈ N. S(x) < S(y) ⇔ x < y
.
Again the compiler will walk its way to the base case:
S(S(0)) < S(S(S(0))) ⇔ S(0) < S(S(0))
S(0) < S(S(0)) ⇔ 0 < S(0)
- We're back on our base case
Let's test it:
- An instance of
LT[_1, _2]
exists, which mean we can prove that1 < 2
. - No instance of
LT[_2, _1]
exists, which mean we can't prove that2 < 1
.
To implement quicksort, we'll also use ≥
. Shapeless does not provide it, but it does provide ≤
, We'll just use that instead.
I think you'll be able to figure out how the following code works by yourself.
Type level list, aka HList
Alright, we now have a way to work with natural numbers, but if we're going to sort them, we also need to have a list. But how do lists work ? Here's is a simplified version of Scala's list.
So a list is recursively defined, and can be 2 things:
- An empty list
- A first element (
head
), and another list (tail
) of the same type.
To represent a list of types, we'll use HList
. A HList
is defined in exactly the same way, except the recursion happens in the type system.
Once again, HList
are already defined in shapeless:
Just like a classical list, a HList
is either empty, or a head
and a tail
.
Note how similar the two definitions are! Traditionally, HList
also stores values. Since we're only working in the type system, and for the sake of clarity, I removed the useless code.
Let's create a type level list of natural numbers:
Partitioning
We have almost everything we need. We now need the ability to partition our HList
into 3 elements:
- the pivot
- a
HList
of types smaller or equal to the pivot - a
HList
of types larger than the pivot
This time, Shapeless does not provide anything built-in. For once, we are on our own :)
Let's start by finding the smaller elements. Given a list H
, and a natural number A
, we want to get a new Hlist
:
We can now start to implement the resolution, starting by the usual base case; the empty list:
Now we must ask ourself, "what are the other cases" ?
When defining a function working with list, we usually pattern match on the first element (the head
), and recursively call ourself on the tail
.
We'll do just that. Two cases are then possible. Either the first element is smaller or equal to the pivot, in that case we keep it:
Or it's not, and we ignore it:
Testing the code:
The sublist of types greater than the pivot can be obtained in a similar manner:
And again, testing it:
HList concatenation
Almost there! The quicksort algorithm requires some list concatenation. We need to implement a way to prepend an Hlist
to another Hlist
.
By now you have enough understanding to figure this out by yourself:
Testing it:
Sorting
Finally! We have everything we need to implement our quicksort. All we have to do now is to put the pieces together.
A sort algorithm takes an list, and returns a list:
As usual, we'll first deal with a base case. Sorting an empty list results in an empty list:
Now the inductive case:
WOW. Quite a lot of types this time. Luckily, it's nothing really hard.
- First, we want to extract the pivot. Since I like simplicity, we'll just extract the head of the list
H
, and the tailT
:new Sorted[H :: T] { ... }
- Then, we want to split the tail
T
in two sublists. All we have to do is ask the compiler to figure this out (using implicit parameters):LTEqs.Aux[T, H, lsOut]
-> give me all the types inT
smaller or equal toH
, and call that sublistlsOut
.GTs.Aux[T, H, gsOut],
-> give me all the types inT
greater thanH
, and call that sublistgsOut
.
- Sort the sublists:
Sorted.Aux[lsOut, smOut]
-> SortlsOut
, the resultingHList
is calledsmOut
Sorted.Aux[gsOut, slOut]
-> SortgsOut
, the resultingHList
is calledslOut
- Concatenate the sorted list of smaller types, the pivot, and the sorted list of larger types:
Prepend[smOut, H :: slOut]
And we're done. The result is preps.Out
.
Let's run the final test:
Conclusion
- It's really impressive that implementing this beauty in a mainstream, production ready language is possible. Even if a bit of boilerplate is required.
- We managed to implement a quicksort so slow a human could easily outperform it.
Edit: Erika Mustermann pointed out in the comment that Roman Leshchinskiy did a type level quicksort implementation in Haskell a while back, based on the paper of Thomas Hallgren Fun with Functional Dependencies. You should have a look at it!


Steve Cohen: GOP's Cult Loyalty to Trump Is 'Authoritarianism Happening' | Breitbart
by Pam KeyOn Friday’s broadcast of MSNBC’s “Live With Velshi and Ruhle,” Rep. Steve Cohen (D-TN) accused Republicans of being a cult of President Donald Trump, which he argued is allowing “authoritarianism.”
Cohen said, “There may be one Republican House member who might vote to impeach and a couple of senators who are in danger, the McSally’s, the Tillis’s— they’re on hot seats– possibly even Joni Ernst. But it could have influenced them, but the reality is most of them have bought that it’s the Trump party.”
“They’re no longer the party of Dwight Eisenhower or even Ronald Reagan and certainly not the Bushes,” he continued. “They are totally attached to Trump and will do whatever they can to support him and when they do things not for the basis or the benefit of their country or even their party but of an individual, a cult figure who has taken over their party that’s scary to America because that’s authoritarianism happening.”
Follow Pam Key on Twitter @pamkeyNEN


Western Washington's sky gazing forecaster
About
Created by David Flegal with the help of the Dark Sky API, Handlebars.JS, and of course, the Google Maps API.
MIT License 2016


A guide to vmstat and friends
A getting started guide for vmstat, iostat, mpstat and pidstat.
vmstat
Once I figured out how vmstat works, I found that I almost could no longer live without it, it’s that good. Fortunately it’s available everywhere, so I don’t. There are many versions around, both for Linux and Unix.
vmstat does a little bit of everything: memory, processes, I/O, swap, disks, CPU.
The basic syntax is:
vmstat [options] <interval> <count>
vmstat prints a new update every interval seconds, stopping after count lines. If no count is supplied, vmstat continues until killed. If there isn’t any interval, only 1 line is printed.
# 1 update per second, 5 updates
-> vmstat 1 5
procs -----------memory---------- --swap- ---io--- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
4 0 0 4098084<PHONE_NUMBER>944 0 0 34 25 340 320 8 3 89 0 0
1 0 0 4098184<PHONE_NUMBER>264 0 0 0 0 1263 3198 4 3 93 0 0
0 0 0 4098436<PHONE_NUMBER>924 0 0 0 0 1141 2999 3 2 95 0 0
0 0 0 4097736<PHONE_NUMBER>916 0 0 0 0 2166 4414 5 4 92 0 0
0 0 0 4096476<PHONE_NUMBER>916 0 0 0 0 1103 3130 3 3 94 0 0
The values in the very first line are averages since boot, thus it usually stands out as different than the rest.
All values, with the exception of memory and processes, are average rates from the previous update.
Memory and processes (the first 6 columns) are always instantaneous values.
Memory is shown in KBs but -S
changes units, e.g. -S M
for MBs.
If your version of vmstat supports -w
, use it, makes the table wider and easier to read.
So what does each column mean?
| column | meaning | unit |
|---|---|---|
| r | number of processes running | - |
| b | number of processes sleeping | - |
| spwd | swap memory used | K |
| free | amount of idle memory | K |
| buff | memory used for buffers | K |
| cache | memory used for cache | K |
| si | swaps per second from disk to memory | 1/s |
| so | swaps per second from memory to disk | 1/s |
| bi | blocks per second received from block device | blocks/s |
| bo | blocks per second sent to block device | blocks/s |
| in | interrupts per second | 1/s |
| cs | context switches per second | 1/s |
| us | CPU user time | % of total |
| sy | CPU system time | % of total |
| id | CPU idle time | % of total |
| st | CPU time stolen from Virtual Machine | % of total |
A few guidelines to read the values:
- check first si and so for swapping activity, this is the performance killer
- check that memory allocation makes sense for the workload
- consistent high us indicate possible CPU bound load
- consistent high wa indicate possible I/O bound load
- if this is a VM and st (steal) is consistently high for long, the host system could be overloaded or the VM under-provisioned
-d
gets us per-device I/O counters since boot. With -p <PART>
we get the same for an specific parition.
-> vmstat -d 1
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
sda<PHONE_NUMBER> 5471678 52614<PHONE_NUMBER>0 4139296 68873 0 45
sda<PHONE_NUMBER> 5471678 52614<PHONE_NUMBER>5 4139440 68876 0 45
sda<PHONE_NUMBER> 5735630 57902<PHONE_NUMBER>4 5888256 80177 0 51
...
Columns are read like this:
| column | meaning |
|---|---|
| total | total number of reads / writes |
| merged | merged requests (N requests into one I/O) |
| sectors | number of sectors read / written |
| ms | milliseconds spent reading / writing |
| cur | number of I/O operations running |
| s | seconds spent for I/O |
We can also access a detailed cache utilization report with -m
, but it may require root permissions to work.
> vmstat -m
Cache Num Total Size Pages
ecryptfs_inode_cache 1544 1564 960 17
ecryptfs_file_cache 256 1024 16 256
ecryptfs_auth_tok_list_item 19 76 832 19
nf_conntrack_expect 0 0 216 18
nf_conntrack 101 200 320 25
fuse_request 80 80 400 20
fuse_inode 42 76 832 19
ext4_groupinfo_4k 1716 1736 144 28
ext4_inode_cache<PHONE_NUMBER>50 1080 30
ext4_allocation_context 128 128 128 32
ext4_io_end 256 320 64 64
ext4_extent_status<PHONE_NUMBER>78 40 102
mbcache 294 438 56 73
...
And the columns are:
| column | meaning |
|---|---|
| cache | the cache name |
| num | active object count |
| total | total object count |
| size | size per object |
| pages | pages with one or more active object |
vmstat also has these one-shot views:
-s
system statistics-D
all disks summary-f
forks
iostat
iostat shows the combined CPU and disk I/O statistics. As with vmstat, it can work with interval and count
# one update per second
-> iostat 1
Linux 4.19.8-arch1-1-ARCH (ix) 12/24/2018 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
12.14 0.03 5.66 0.03 0.00 82.14
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 4.41 29.11 49.44 3409859 5790640
avg-cpu: %user %nice %system %iowait %steal %idle
5.56 0.00 3.79 0.00 0.00 90.66
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.00 0.00 0.00 0 0
...
Again, the first report shows averages since boot (we can omit it with -y
). While the following shows rates since the previous interval.
We can choose to only see cpu with -c
or disk with -d
. Also -x
shows extended I/O statistics and -m
changes units to MB.
-h
changes into an easier to read (for humans) format.
mpstat
mpstat shows (more) detailed CPU statistics. We get vmstat’s counters plus some. Same deal with the interval and count
# 1 update per second
-> mpstat 1
Linux 4.19.8-arch1-1-ARCH (ix) 12/24/2018 _x86_64_ (4 CPU)
06:48:41 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
06:48:42 PM all 7.85 0.00 3.04 0.00 0.25 0.51 0.00 0.00 0.00 88.35
06:48:43 PM all 10.08 0.00 4.79 0.00 1.01 0.00 0.00 0.00 0.00 84.13
06:48:44 PM all 7.25 0.00 5.25 0.00 0.75 0.50 0.00 0.00 0.00 86.25
06:48:45 PM all 9.07 0.00 3.78 0.25 1.01 0.50 0.00 0.00 0.00 85.39
First line is, yet again, averages since boot.
We can choose to only show activity for some CPUs with -P
, e.g. -P 1,3
There are additional views: -I ALL
shows all CPU interruptions, -n
shows CPU statistics based on NUMA placement nodes
(use -N
to indicate which nodes to report). There is even a JSON output with -o JSON
mpstat shows general CPU utilization, to track an individual process there is pidstat
pidstat
This one has some similarities with top. Every interval pidstat prints what processes were running.
We can also track particular processes with -p
. Threads are shown with -t
.
# track process CPU activity, thread view
-> pidstat -t -p 25809 1
Linux 4.19.8-arch1-1-ARCH (ix) 12/29/2018 _x86_64_ (4 CPU)
11:00:58 PM UID TGID TID %usr %system %guest %wait %CPU CPU Command
11:00:58 PM 980 25809 - 0.22 0.07 0.00 0.00 0.28 1 mysqld
11:00:58 PM 980 - 25809 0.00 0.00 0.00 0.00 0.00 1 |__mysqld
11:00:58 PM 980 - 25811 0.00 0.00 0.00 0.00 0.00 0 |__mysqld
11:00:58 PM 980 - 25812 0.00 0.00 0.00 0.00 0.00 3 |__mysqld
11:00:58 PM 980 - 25820 0.00 0.00 0.00 0.00 0.00 1 |__mysqld
11:00:58 PM 980 - 25834 0.02 0.01 0.00 0.01 0.02 3 |__mysqld
11:00:58 PM 980 - 25835 0.02 0.00 0.00 0.01 0.02 3 |__mysqld
11:00:58 PM 980 - 25836 0.01 0.00 0.00 0.01 0.02 2 |__mysqld
11:00:58 PM 980 - 25837 0.01 0.00 0.00 0.01 0.01 0 |__mysqld
-r
shows memory per process, which gives a quick way to check for memory leaks
# track process memory activity
-> pidstat -r -p 27766 1
Linux 4.19.8-arch1-1-ARCH (ix) 12/30/2018 _x86_64_ (4 CPU)
09:42:59 PM UID PID minflt/s majflt/s VSZ RSS %MEM Command
09:43:00 PM 1000 27766 0.00 0.00<PHONE_NUMBER>8 0.15 mysqld
09:43:01 PM 1000 27766 0.00 0.00<PHONE_NUMBER>8 0.15 mysqld
09:43:02 PM 1000 27766 0.00 0.00<PHONE_NUMBER>8 0.15 mysqld
09:43:03 PM 1000 27766 0.00 0.00<PHONE_NUMBER>8 0.15 mysqld
Average: 1000 27766 0.00 0.00<PHONE_NUMBER>8 0.15 mysqld
pidstat can start a program with -e
and show its activity during the execution.
Besides CPU, pidstat can also show per-process I/O activity
# per-process I/O
-> pidstat -d 1 5
Linux 4.20.0-arch1-1-ARCH (ix) 01/06/2019 _x86_64_ (4 CPU)
04:04:53 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s iodelay Command
04:04:54 PM 1000 14423 276.00 197888.00 0.00 1 dd
04:04:55 PM 1000 14423 0.00 218880.00 0.00 0 dd
04:04:56 PM 1000 14423 0.00 224664.00 0.00 0 dd
04:04:57 PM 1000 14423 0.00 230428.00 0.00 0 dd
04:04:59 PM 1000 14423 0.00 192520.00 0.00 0 dd
Average: 1000 14423 46.00 207763.33 0.00 0 dd
If pidstat prints negative values, it means it doesn’t have enough permissions to access the process. Try switching to the user running the process (or as root, that should always).
pidstat supports all these views:
-d
I/O statistics-u
CPU statistics-R
process priority-r
memory utilization-s
stack utilization-t
thread statistics-w
task switching-v
file descriptor
Putting It All Together
These programs complement each other. How would all work together? Let’s say we want to find why my machine is running slow.
The first thing we can check is vmstat:
-> vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 12<PHONE_NUMBER>540<PHONE_NUMBER>304 0 0 1184 38944 2888 9877 20 5 1 74 0
2 9<PHONE_NUMBER>748<PHONE_NUMBER>272 0 0 2660 36868 2876 7426 18 7 1 73 0
0 11<PHONE_NUMBER>836<PHONE_NUMBER>616 0 0 2688 43052 2959 7064 23 5 1 70 0
2 11<PHONE_NUMBER>092<PHONE_NUMBER>416 0 0 2672 40960 3034 7547 23 6 2 69 0
1 11<PHONE_NUMBER>008<PHONE_NUMBER>000 0 0 2088 38912 2939 7370 24 6 2 67 0
0 11<PHONE_NUMBER>616<PHONE_NUMBER>940 0 0 2148 38916 2976 8061 31 6 1 63 0
1 10<PHONE_NUMBER>532<PHONE_NUMBER>252 20 0 1608 41012 3919 9665 34 11 1 54 0
0 11<PHONE_NUMBER>36<PHONE_NUMBER>188 0 0 1920 12292 2702 5527 6 4 0 90 0
What can you see? A consistent high number of sleeping (b), memory utilization going up, no swapping… that’s good, disks are being written.
Hmm, a consistently high CPU wait (wa). There are indications of an I/O bottleneck, the CPUs are waiting for disks requests.
What does mpstat say?
mpstat 1
Linux 4.20.0-arch1-1-ARCH (ix) 01/06/2019 _x86_64_ (4 CPU)
01:34:49 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
01:34:50 PM all 24.54 0.00 4.22 68.87 1.06 1.06 0.00 0.00 0.00 0.26
01:34:51 PM all 19.05 0.00 3.44 74.87 1.06 0.53 0.00 0.00 0.00 1.06
01:34:52 PM all 19.37 0.00 3.14 74.61 0.79 1.05 0.00 0.00 0.00 1.05
01:34:54 PM all 22.08 0.00 3.12 62.86 0.52 1.04 0.00 0.00 0.00 10.39
Again there it is, a high iowait. There is something funny going on with the disks.
Let’s try iostat:
iostat -x 1 -y
Linux 4.20.0-arch1-1-ARCH (ix) 01/06/2019 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 0.00 0.00 0.00
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sda 54.00 0.00 2532.00 0.00 0.00 0.00 0.00 0.00 0.57 0.00 0.02 46.89 0.00 0.06 0.30
dm-0 54.00 0.00 2532.00 0.00 0.00 0.00 0.00 0.00 0.50 0.00 0.03 46.89 0.00 0.24 1.30
sdd 1.00 347.00 4.00 39512.00 0.00 0.00 0.00 0.00 53.00 5.42 0.99 4.00 113.87 2.86 99.40
avg-cpu: %user %nice %system %iowait %steal %idle
23.90 0.00 6.49 68.31 0.00 1.30
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sda 69.00 0.00 2636.00 0.00 2.00 0.00 2.82 0.00 0.58 0.00 0.06 38.20 0.00 0.29 2.00
dm-0 71.00 0.00 2636.00 0.00 0.00 0.00 0.00 0.00 1.03 0.00 0.07 37.13 0.00 0.32 2.30
sdd 0.00 340.00 0.00 38672.00 0.00 0.00 0.00 0.00 0.00 5.84 0.99 0.00 113.74 2.92 99.30
Quite a lot of writes on the sdd device. Even worse, the %util is reaching 100%, the device is saturated (%util is only meaningful for spinning disks, RAID or SDD have different capacities)
So the problem seems to be related with sdd.
Can we check what processes are doing I/O?
sudo pidstat -d 1
Linux 4.20.0-arch1-1-ARCH (ix) 01/06/2019 _x86_64_ (4 CPU)
01:36:25 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s iodelay Command
01:36:26 PM 0 2546 3.81 0.00 0.00 100 kworker/u8:3+flush-8:48
01:36:26 PM 0 2799 0.00 38.10 0.00 48 jbd2/sdd1-8
01:36:26 PM 980 3435 1474.29 36323.81 0.00 0 mysqld
01:36:26 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s iodelay Command
01:36:27 PM 0 2546 0.00 0.00 0.00 99 kworker/u8:3+flush-8:48
01:36:27 PM 980 3435 2524.00 35096.00 0.00 0 mysqld
We find a mysql server, a kernel thread flushing data and jbd2 (filesystem journal).
Aha! we found what has been causing all that troublesome I/O. To continue investigating we would need to get into the database, but this post is getting way too long already. If you are curious, the root cause was some bad queries that were creating temporary tables.
Related Links
- manpages
- vmstat: https://linux.die.net/man/8/vmstat
- iostat: https://linux.die.net/man/1/iostat
- mpstat: https://linux.die.net/man/1/mpstat
- pidstat: https://linux.die.net/man/1/pidstat
What’s Next?
How about some long term analysis? Something that can work unattended and do reports? Sounds nice?
Good, I guess next article will be about sar.
So long.
Tomas


@@include('../html-partials/head.html')
Settings
Your Raccoon Archive URL:
Save
@@include('../html-partials/js-bottom.html')


For making Trellis-type conditioning plots without strip labels. This is useful for displaying the structure of results from factorial designs and other studies when many conditioning variables would clutter the display with layers of redundant strip labels. Settings of the variables are encoded by layout and spacing in the trellis array and decoded by a separate legend. The functionality is implemented by a single S3 generic strucplot() function that is a wrapper for the Lattice package's xyplot() function. This allows access to all Lattice graphics capabilities in the usual way.
| Version: | 1.0-3 |
| Depends: | R (≥ 3.2.0), utils, lattice |
| Imports: | stats, graphics, grid |
| Suggests: | datasets, grDevices, knitr, faraway, rmarkdown |
| Published: | 2016-09-12 |
| Author: | Bert Gunter [aut, cre] |
| Maintainer: | Bert Gunter <bgunter at comcast.net> |
| License: | GPL-2 | GPL-3 |
| NeedsCompilation: | no |
| Materials: | NEWS |
| CRAN checks: | stripless results |
| Reference manual: | stripless.pdf |
| Vignettes: |
Stripless: An Alternative Display for Conditioning Plots |
| Package source: | stripless_1.0-3.tar.gz |
| Windows binaries: | r-devel: stripless_1.0-3.zip, r-release: stripless_1.0-3.zip, r-oldrel: stripless_1.0-3.zip |
| OS X binaries: | r-release: stripless_1.0-3.tgz, r-oldrel: stripless_1.0-3.tgz |
| Old sources: | stripless archive |
Please use the canonical form https://CRAN.R-project.org/package=stripless to link to this page.


References
Amazon.com. 2016. “Introducing Amazon Go and the world’s most advanced shopping technology.” https://youtu.be/NrmMk1Myrxc.
Belbin, R. Meredith. 2010. Management Teams: Why They Succeed or Fail. Second. Elsevier Ltd.
Business Process Simulator. 2018. “Reference Guide.” https://www.bpsimulator.com/en/help.
Camunda Corporation. 2018a. “BPMN Editor.” https://camunda.com.
———. 2018b. “BPMN Tutorial.” https://camunda.com/bpmn.
Cucumber. 2019a. “The Cucumber Reference.” https://cucumber.io/docs/cucumber/.
———. 2019b. “The Gherkin Reference.” https://cucumber.io/docs/gherkin/.
Dewey, John. 1910. “How We Think.” https://www.gutenberg.org/ebooks/37423; Heath; Company.
Fisher, SG, TA Hunter, and WDK Macross. 1998. “The Distribution of Belbin Team Roles Among Uk Managers.” Personnel Review 29 (2): 124–40.
Free Software Foundation. 2018. “What Is Free Software?” https://www.gnu.org/philosophy/free-sw.html; Free Software Foundation, Inc.
Gates, Bill. 1999. Business at the Speed of Thought: Using a Digital Nervous System. New York, NY, USA: Time Warner.
Hoffman, Chris. 2018. “What Is a Cryptokitty?” https://www.howtogeek.com/354535/what-the-is-a-cryptokitty.
Hofstede, Geert, Gert Jan Hofstede, and Michael Minkov. 2010. Cultures and Organizations: Software for the Mind. Third. McGraw-Hill.
Hohpe, Gregor. 2017a. “37 Things One Architect Knows About It Transformation: A Chief Architect’s Journey.” https://leanpub.com/37things.
———. 2017b. “Enterprise Architecture Equals Architecting the Enterprise?” YOW! Conferences; Workshops for Developers by Developers; https://youtu.be/pUYEVJVNSGc.
International Organization for Standardization. 2015. “ISO 9001:2015(en) Quality Management Systems.” https://www.iso.org/obp/ui/#iso:std:iso:9001.
———. 2019. “The Iso 9000 Family - Quality Management.” https://www.iso.org/iso-9001-quality-management.html.
Kaggle. 2017. “Employee Churn Prediction: Determining What Factors Predicts an Employee Leaving His/Her Job.” https://www.kaggle.com/c/employee-churn-prediction/data.
Management Study Guide. 2018. “Performance Appraisal.” https://www.managementstudyguide.com/performance-appraisal.htm.
Park, Yuhyun. 2016. “8 Digital Skills We Must Teach Our Children.” https://www.weforum.org/agenda/2016/06/8-digital-skills-we-must-teach-our-children/; DQ Institute.
Ross, Jeanne W., Peter Weill, and David C. Robertson. 2006. Enterprize Architecture as Strategy: Creating a Foundation for Business Execution. Harvard Business Review Press.
Royal Thai Embassy. 2016. “Thailand 4.0.” http://thaiembdc.org/thailand-4-0-2.
Saleh, Khalid. 2019. “Global Online Retail Spending: Statistics and Trends.” https://www.invespcro.com/blog/global-online-retail-spending-statistics-and-trends/; Invesp.
Short, Chris. 2017. “5 Laws Every Aspiring Devops Engineer Should Know.” In The Open Organization Guide to It Culture Change: Open Principles and Practices for a More Innovative It Department. https://opensource.com/open-organization/17/5/5-devops-laws; The Open Orgnization.
Simon, Herbert A. 1955. “A Behavioral Model of Rational Choice.” Quarterly Journal of Economics 69: 99–118.
Singapore National Youth Council Youth Conversations. 2019. “We Are More: Amplifying the Voices of Our Youth.” Singapore Ministry of Culture, Community,; Youth; https://youthconversations.wpcomstaging.com/wp-content/uploads/2019/03/NYC-Youth-Conversations-Publication-2019.pdf.
Stallman, Robert. 1985. “The Gnu Manifesto.” https://www.gnu.org/gnu/manifesto.html.
Statista. 2019. “Number of Internet Users Worldwide 2005-2018.” https://www.statista.com/statistics/273018/number-of-internet-users-worldwide.
Suriyawong, Thekkit Chat. 2018. “7-11 (Seven Eleven) with New Generation 4.0 High Tech.” https://youtu.be/Xl3rEUbpgsE; Channel 3 News.
Tan, Alanna. 2019. “How Millenials in Singapore Define Success.” Vulcan Post, May.
Thailand Ministry of Commerce. 2016. “Thailand 4.0 Infographic.” http://www.thaitradeusa.com/home/wp-content/uploads/2016/09/infographic-TH4.0_en.jpg.
The CryptoKitten Team. 2018. “CryptoKitties: Collectible and Breedable Cats Empowered by Blockchain Technology. Version 2.0.” https://drive.google.com/file/d/1soo-eAaJHzhw_XhFGMJp3VNcQoM43byS/view.
The Open Organization Ambassadors. 2017. “The Open Organization Definition.” https://opensource.com/sites/default/files/gated-content/openorg_definition_ebook.pdf.
Tieger, Paul D., Barbara Barron, and Kelly Tieger. 2014. Do What You Are: Discover the Perfect Career for You Through the Scecrets of Personality Type. Fifth. Little, Brown; Company.
Whitehurst, Jim. 2015. The Open Organization: Igniting Passion and Performance. Harvard Business Review.
———. 2019. Organize for Innovation: Rethinking How We Work. The Open Organization.
Xie, Yihui. 2015. Dynamic Documents with R and Knitr. Second. Boca Raton, Florida: http://yihui.name/knitr; Chapman; Hall/CRC.
———. 2019. Bookdown: Authoring Books and Technical Documents with R Markdown. https://CRAN.R-project.org/package=bookdown.
yWorks. 2018. “YEd Graph Editor.” https://www.yworks.com/products/yed.


source code
|
email
Put in any Brooklyn/Manhattan/Bronx/Queens [beehive] address to determine what kinds of trees are within your bees' likely foraging range:
Find nearby trees!


Gallery
Incident Data Dashboard created using R Shiny app
Log Analytics Dashboard created using Banana from Solr Collection.
Shiny application showing comaprison of Popular Indicators for a period of 50 years


kavin kumar
Hi, there ...I am kavin currently I am studying B.E Computer Science Engineering at Karpagam Institue of Technology.  Yes, I am a problem solver. I love competitive coding very much. I strongly believe people who are good at competitive coding find everything in computer science easy.


{% if message %}
{{ message | e }}
{% endif %}
Milestones #v1
- Version 1.0
- Static Android Applications Testing (Apk files)
- Vulnerability coverage
- Tapjacking
- Manifest Analysis
- SSL issues
- SQL injection
- Logging based vulnerabilities
- Content Providers access permissions
- Web View Security
- Sensitive data on the shared storage
- External Storage
- Cryptographic based vulnerabilities
- Exposing external JavaScript Interfaces in webviews
- Self Serve Portal for Developers
- Version 1.1 :
- Comparision between multiple scan results
- Version 1.2 :
- Dashboard for scan results
- Report downloads in JSON and XML format
- UI look-n-feel Enhancements
Roadmap
- Version 2.0
- Dynamic Android Application Testing
- Test the api calls
- Third-party Data Transit on Unencrypted Channel
- Sensitive information sent as a querystring parameter
- Cleartext password in Response
- Other Api/ Server related security test cases
- Static Analysis Improvements
- Look for Debug Logs
- Check for file creations
- Sensitive information in Application Log Files
- Application is Accessible on Rooted Device
- Unencrypted Credentials in Databases (sqlite db)
- Store sensitive information outside App Sandbox (on SDCard)
- Allow Global File Permission on App Data
- Store Encryption Key Locally/Store Sensitive Data in ClearText
- Bypass Certificate Pinning
- App/Web Caches Sensitive Data Leak
- Leaking Content Provider
- Version 3.0 :
{% extends "footer.html" %}


{% include head.html %}
Bacon ipsum dolor amet filet mignon short ribs pork loin turducken chuck.  Prosciutto boudin jowl, frankfurter cupim alcatra chuck. Salami rump cupim, swine tongue sirloin beef ribs flank short ribs pork chop t-bone. Bacon ipsum dolor amet filet mignon short ribs pork loin turducken chuck.  Prosciutto boudin jowl, frankfurter cupim alcatra chuck. Salami rump cupim, swine tongue sirloin beef ribs flank short ribs pork chop t-bone.
Bacon ipsum dolor amet filet mignon short ribs pork loin turducken chuck.  Prosciutto boudin jowl, frankfurter cupim alcatra chuck. Salami rump cupim, swine tongue sirloin beef ribs flank short ribs pork chop t-bone. Bacon ipsum dolor amet filet mignon short ribs pork loin turducken chuck.  Prosciutto boudin jowl, frankfurter cupim alcatra chuck. Salami rump cupim, swine tongue sirloin beef ribs flank short ribs pork chop t-bone.


You finally reach the end of the trail, emerging into a forest clearing with a small, wooden cabin. The path continues to the cabin's porch.
You see a faint wisp of smoke coming from the chimmney of the cabin, maybe someone is home?
As you glance around the clearing, it appears to be heavily wooded on all sides. The only path is back the way you came.


Before joining Talent bank, I was doing graphic design for local companies as a freelancer, but had the ambition to develop my coding skills. One thing is what I learned at school, but another and more important one - what I learned here at Talent bank: how it is to work with big companies, what are they demanding, how do we work as a team around digital projects that need more than just a one off delivery; practical knowledge instead of only theory.


{{ partial "header.html" . }}
If you find any problems using Selenium, there are several places where you can search for help and where volunteerslike you and me will spend their time trying to help you save yours.
The first place where people ask for help about Selenium is the Official User Group. Here, you'll find that most of the time, someone already found the problem you are facing right now, and usually reached the solution for which you are looking.
Note: Please make sure to search the group before asking for something. Your question likely won't get answered if it was previously answered in another discussion!
The best place to ask for help is the user group (because they also keep the information accessible for others to read in the future). However, if you have a very important (or too simple) issue that needs a solution ASAP, you can always enter the IRC chat room. You might just find someone ready to help on #selenium at Freenode (irc.freenode.net). There is more info about IRC on wikipedia.
The #selenium IRC log archive is available at logbot.
Selenium's Bug Tracker can be used to log new bugs, check the status of an existing one or as inspiration to help make Selenium better.
Selenium is a diverse project and many commercial services have sprouted up to support it, some of which offer professional support for using and developing with Selenium.
First please check out our Sponsors for your needs.
You can also learn more about the Selenium ecosystem to see if there is a company that might be able to help you out.


|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object javax.management.NotificationBroadcasterSupport javax.management.relation.RelationService
public class RelationService
The Relation Service is in charge of creating and deleting relation types and relations, of handling the consistency and of providing query mechanisms.
It implements the NotificationBroadcaster by extending NotificationBroadcasterSupport to send notifications when a relation is removed from it.
It implements the NotificationListener interface to be able to receive notifications concerning unregistration of MBeans referenced in relation roles and of relation MBeans.
It implements the MBeanRegistration interface to be able to retrieve its ObjectName and MBean Server.
| Constructor Summary | |
|---|---|
RelationService(boolean theImmediatePurgeFlg)
Constructor. |
| Method Summary | |
|---|---|
void |
addRelation(ObjectName theRelObjectName)
Adds an MBean created by the user (and registered by him in the MBean Server) as a relation in the Relation Service. |
void |
addRelationType(RelationType theRelTypeObj)
Adds given object as a relation type. |
Integer |
checkRoleReading(String theRoleName,
String theRelTypeName)
Checks if given Role can be read in a relation of the given type. |
Integer |
checkRoleWriting(Role theRole,
String theRelTypeName,
Boolean theInitFlg)
Checks if given Role can be set in a relation of given type. |
void |
createRelation(String theRelId,
String theRelTypeName,
RoleList theRoleList)
Creates a simple relation (represented by a RelationSupport object) of given relation type, and adds it in the Relation Service. |
void |
createRelationType(String theRelTypeName,
RoleInfo[] theRoleInfoArray)
Creates a relation type (a RelationTypeSupport object) with given role infos (provided by the RoleInfo objects), and adds it in the Relation Service. |
Map |
findAssociatedMBeans(ObjectName theMBeanName,
String theRelTypeName,
String theRoleName)
Retrieves the MBeans associated to given one in a relation. |
Map |
findReferencingRelations(ObjectName theMBeanName,
String theRelTypeName,
String theRoleName)
Retrieves the relations where a given MBean is referenced. |
List |
findRelationsOfType(String theRelTypeName)
Returns the relation ids for relations of the given type. |
List |
getAllRelationIds()
Returns all the relation ids for all the relations handled by the Relation Service. |
List |
getAllRelationTypeNames()
Retrieves names of all known relation types. |
RoleResult |
getAllRoles(String theRelId)
Returns all roles present in the relation. |
MBeanNotificationInfo[] |
getNotificationInfo()
Returns a NotificationInfo object containing the name of the Java class of the notification and the notification types sent. |
boolean |
getPurgeFlag()
Returns the flag to indicate if when a notification is received for the unregistration of an MBean referenced in a relation, if an immediate "purge" of the relations (look for the relations no longer valid) has to be performed , or if that will be performed only when the purgeRelations method will be explicitly called. |
Map |
getReferencedMBeans(String theRelId)
Retrieves MBeans referenced in the various roles of the relation. |
String |
getRelationTypeName(String theRelId)
Returns name of associated relation type for given relation. |
List |
getRole(String theRelId,
String theRoleName)
Retrieves role value for given role name in given relation. |
Integer |
getRoleCardinality(String theRelId,
String theRoleName)
Retrieves the number of MBeans currently referenced in the given role. |
RoleInfo |
getRoleInfo(String theRelTypeName,
String theRoleInfoName)
Retrieves role info for given role name of a given relation type. |
List |
getRoleInfos(String theRelTypeName)
Retrieves list of role infos (RoleInfo objects) of a given relation type. |
RoleResult |
getRoles(String theRelId,
String[] theRoleNameArray)
Retrieves values of roles with given names in given relation. |
void |
handleNotification(Notification theNtf,
Object theHandback)
Invoked when a JMX notification occurs. |
Boolean |
hasRelation(String theRelId)
Checks if there is a relation identified in Relation Service with given relation id. |
void |
isActive()
Checks if the Relation Service is active. |
String |
isRelation(ObjectName theObjName)
Returns the relation id associated to the given ObjectName if the MBean has been added as a relation in the Relation Service. |
ObjectName |
isRelationMBean(String theRelId)
If the relation is represented by an MBean (created by the user and added as a relation in the Relation Service), returns the ObjectName of the MBean. |
void |
postDeregister()
Allows the MBean to perform any operations needed after having been unregistered in the MBean server. |
void |
postRegister(Boolean registrationDone)
Allows the MBean to perform any operations needed after having been registered in the MBean server or after the registration has failed. |
void |
preDeregister()
Allows the MBean to perform any operations it needs before being unregistered by the MBean server. |
ObjectName |
preRegister(MBeanServer server,
ObjectName name)
Allows the MBean to perform any operations it needs before being registered in the MBean server. |
void |
purgeRelations()
Purges the relations. |
void |
removeRelation(String theRelId)
Removes given relation from the Relation Service. |
void |
removeRelationType(String theRelTypeName)
Removes given relation type from Relation Service. |
void |
sendRelationCreationNotification(String theRelId)
Sends a notification (RelationNotification) for a relation creation. |
void |
sendRelationRemovalNotification(String theRelId,
List theUnregMBeanList)
Sends a notification (RelationNotification) for a relation removal. |
void |
sendRoleUpdateNotification(String theRelId,
Role theNewRole,
List theOldRoleValue)
Sends a notification (RelationNotification) for a role update in the given relation. |
void |
setPurgeFlag(boolean thePurgeFlg)
Sets the flag to indicate if when a notification is received for the unregistration of an MBean referenced in a relation, if an immediate "purge" of the relations (look for the relations no longer valid) has to be performed , or if that will be performed only when the purgeRelations method will be explicitly called. |
void |
setRole(String theRelId,
Role theRole)
Sets the given role in given relation. |
RoleResult |
setRoles(String theRelId,
RoleList theRoleList)
Sets the given roles in given relation. |
void |
updateRoleMap(String theRelId,
Role theNewRole,
List theOldRoleValue)
Handles update of the Relation Service role map for the update of given role in given relation. |
| Methods inherited from class javax.management.NotificationBroadcasterSupport |
|---|
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public RelationService(boolean theImmediatePurgeFlg)
theImmediatePurgeFlg
- flag to indicate when a notification is
received for the unregistration of an MBean referenced in a relation, if
an immediate "purge" of the relations (look for the relations no
longer valid) has to be performed , or if that will be performed only
when the purgeRelations method will be explicitly called.
true is immediate purge.
| Method Detail |
|---|
public void isActive() throws RelationServiceNotRegisteredException
isActive
in interface RelationServiceMBean
RelationServiceNotRegisteredException
- if it is not
registeredpublic ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
MBeanRegistration
preRegister
in interface MBeanRegistration
server
- The MBean server in which the MBean will be registered.name
- The object name of the MBean. This name is null if
the name parameter to one of the createMBean
or
registerMBean
methods in the MBeanServer
interface is null. In that case, this method must return a
non-null ObjectName for the new MBean.
name
parameter is not null, it will usually but not necessarily be
the returned value.
Exception
- This exception will be caught by
the MBean server and re-thrown as an MBeanRegistrationException
.public void postRegister(Boolean registrationDone)
MBeanRegistration
postRegister
in interface MBeanRegistration
registrationDone
- Indicates whether or not the MBean has
been successfully registered in the MBean server. The value
false means that the registration phase has failed.public void preDeregister() throws Exception
MBeanRegistration
preDeregister
in interface MBeanRegistration
Exception
- This exception will be caught by
the MBean server and re-thrown as an MBeanRegistrationException
.public void postDeregister()
MBeanRegistration
postDeregister
in interface MBeanRegistration
public boolean getPurgeFlag()
true is immediate purge.
getPurgeFlag
in interface RelationServiceMBean
setPurgeFlag(boolean)
public void setPurgeFlag(boolean thePurgeFlg)
true is immediate purge.
setPurgeFlag
in interface RelationServiceMBean
thePurgeFlg
- flaggetPurgeFlag()
public void createRelationType(String theRelTypeName, RoleInfo[] theRoleInfoArray) throws IllegalArgumentException, InvalidRelationTypeException
createRelationType
in interface RelationServiceMBean
theRelTypeName
- name of the relation typetheRoleInfoArray
- array of role infos
IllegalArgumentException
- if null parameter
InvalidRelationTypeException
- If:
- there is already a relation type with that name
- the same name has been used for two different role infos
- no role info provided
- one null role info provided
public void addRelationType(RelationType theRelTypeObj) throws IllegalArgumentException, InvalidRelationTypeException
addRelationType
in interface RelationServiceMBean
theRelTypeObj
- relation type object (implementing the
RelationType interface)
IllegalArgumentException
- if null parameter
InvalidRelationTypeException
- if:
- the same name has been used for two different roles
- no role info provided
- one null role info provided
- there is already a relation type with that name
public List getAllRelationTypeNames()
getAllRelationTypeNames
in interface RelationServiceMBean
public List getRoleInfos(String theRelTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
getRoleInfos
in interface RelationServiceMBean
theRelTypeName
- name of relation type
IllegalArgumentException
- if null parameter
RelationTypeNotFoundException
- if there is no relation type
with that name.public RoleInfo getRoleInfo(String theRelTypeName, String theRoleInfoName) throws IllegalArgumentException, RelationTypeNotFoundException, RoleInfoNotFoundException
getRoleInfo
in interface RelationServiceMBean
theRelTypeName
- name of relation typetheRoleInfoName
- name of role
IllegalArgumentException
- if null parameter
RelationTypeNotFoundException
- if the relation type is not
known in the Relation Service
RoleInfoNotFoundException
- if the role is not part of the
relation type.public void removeRelationType(String theRelTypeName) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationTypeNotFoundException
The relation objects of that type will be removed from the Relation Service.
removeRelationType
in interface RelationServiceMBean
theRelTypeName
- name of the relation type to be removed
RelationServiceNotRegisteredException
- if the Relation
Service is not registered in the MBean Server
IllegalArgumentException
- if null parameter
RelationTypeNotFoundException
- If there is no relation type
with that namepublic void createRelation(String theRelId, String theRelTypeName, RoleList theRoleList) throws RelationServiceNotRegisteredException, IllegalArgumentException, RoleNotFoundException, InvalidRelationIdException, RelationTypeNotFoundException, InvalidRoleValueException
Roles are initialized according to the role list provided in parameter. The ones not initialized in this way are set to an empty ArrayList of ObjectNames.
A RelationNotification, with type RELATION_BASIC_CREATION, is sent.
createRelation
in interface RelationServiceMBean
theRelId
- relation identifier, to identify uniquely the relation
inside the Relation ServicetheRelTypeName
- name of the relation type (has to be created
in the Relation Service)theRoleList
- role list to initialize roles of the relation (can
be null).
RelationServiceNotRegisteredException
- if the Relation
Service is not registered in the MBean Server
IllegalArgumentException
- if null parameter, except the role
list which can be null if no role initialization
RoleNotFoundException
- if a value is provided for a role
that does not exist in the relation type
InvalidRelationIdException
- if relation id already used
RelationTypeNotFoundException
- if relation type not known in
Relation Service
InvalidRoleValueException
- if:
- the same role name is used for two different roles
- the number of referenced MBeans in given value is less than expected minimum degree
- the number of referenced MBeans in provided value exceeds expected maximum degree
- one referenced MBean in the value is not an Object of the MBean class expected for that role
- an MBean provided for that role does not exist
public void addRelation(ObjectName theRelObjectName) throws IllegalArgumentException, RelationServiceNotRegisteredException, NoSuchMethodException, InvalidRelationIdException, InstanceNotFoundException, InvalidRelationServiceException, RelationTypeNotFoundException, RoleNotFoundException, InvalidRoleValueException
To be added as a relation, the MBean must conform to the following:
- implement the Relation interface
- have for RelationService ObjectName the ObjectName of current Relation Service
- have a relation id unique and unused in current Relation Service
- have for relation type a relation type created in the Relation Service
- have roles conforming to the role info provided in the relation type.
addRelation
in interface RelationServiceMBean
theRelObjectName
- ObjectName of the relation MBean to be added.
IllegalArgumentException
- if null parameter
RelationServiceNotRegisteredException
- if the Relation
Service is not registered in the MBean Server
NoSuchMethodException
- If the MBean does not implement the
Relation interface
InvalidRelationIdException
- if:
- no relation identifier in MBean
- the relation identifier is already used in the Relation Service
InstanceNotFoundException
- if the MBean for given ObjectName
has not been registered
InvalidRelationServiceException
- if:
- no Relation Service name in MBean
- the Relation Service name in the MBean is not the one of the current Relation Service
RelationTypeNotFoundException
- if:
- no relation type name in MBean
- the relation type name in MBean does not correspond to a relation type created in the Relation Service
InvalidRoleValueException
- if:
- the number of referenced MBeans in a role is less than expected minimum degree
- the number of referenced MBeans in a role exceeds expected maximum degree
- one referenced MBean in the value is not an Object of the MBean class expected for that role
- an MBean provided for a role does not exist
RoleNotFoundException
- if a value is provided for a role
that does not exist in the relation typepublic ObjectName isRelationMBean(String theRelId) throws IllegalArgumentException, RelationNotFoundException
isRelationMBean
in interface RelationServiceMBean
theRelId
- relation id identifying the relation
IllegalArgumentException
- if null parameter
RelationNotFoundException
- there is no relation associated
to that idpublic String isRelation(ObjectName theObjName) throws IllegalArgumentException
isRelation
in interface RelationServiceMBean
theObjName
- ObjectName of supposed relation
IllegalArgumentException
- if null parameterpublic Boolean hasRelation(String theRelId) throws IllegalArgumentException
hasRelation
in interface RelationServiceMBean
theRelId
- relation id identifying the relation
IllegalArgumentException
- if null parameterpublic List getAllRelationIds()
getAllRelationIds
in interface RelationServiceMBean
public Integer checkRoleReading(String theRoleName, String theRelTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
checkRoleReading
in interface RelationServiceMBean
theRoleName
- name of role to be checkedtheRelTypeName
- name of the relation type
- 0 if role can be read
- integer corresponding to RoleStatus.NO_ROLE_WITH_NAME
- integer corresponding to RoleStatus.ROLE_NOT_READABLE
IllegalArgumentException
- if null parameter
RelationTypeNotFoundException
- if the relation type is not
known in the Relation Servicepublic Integer checkRoleWriting(Role theRole, String theRelTypeName, Boolean theInitFlg) throws IllegalArgumentException, RelationTypeNotFoundException
checkRoleWriting
in interface RelationServiceMBean
theRole
- role to be checkedtheRelTypeName
- name of relation typetheInitFlg
- flag to specify that the checking is done for the
initialization of a role, write access shall not be verified.
- 0 if role can be set
- integer corresponding to RoleStatus.NO_ROLE_WITH_NAME
- integer for RoleStatus.ROLE_NOT_WRITABLE
- integer for RoleStatus.LESS_THAN_MIN_ROLE_DEGREE
- integer for RoleStatus.MORE_THAN_MAX_ROLE_DEGREE
- integer for RoleStatus.REF_MBEAN_OF_INCORRECT_CLASS
- integer for RoleStatus.REF_MBEAN_NOT_REGISTERED
IllegalArgumentException
- if null parameter
RelationTypeNotFoundException
- if unknown relation typepublic void sendRelationCreationNotification(String theRelId) throws IllegalArgumentException, RelationNotFoundException
- RelationNotification.RELATION_BASIC_CREATION if the relation is an object internal to the Relation Service
- RelationNotification.RELATION_MBEAN_CREATION if the relation is a MBean added as a relation.
The source object is the Relation Service itself.
It is called in Relation Service createRelation() and addRelation() methods.
sendRelationCreationNotification
in interface RelationServiceMBean
theRelId
- relation identifier of the updated relation
IllegalArgumentException
- if null parameter
RelationNotFoundException
- if there is no relation for given
relation idpublic void sendRoleUpdateNotification(String theRelId, Role theNewRole, List theOldRoleValue) throws IllegalArgumentException, RelationNotFoundException
- RelationNotification.RELATION_BASIC_UPDATE if the relation is an object internal to the Relation Service
- RelationNotification.RELATION_MBEAN_UPDATE if the relation is a MBean added as a relation.
The source object is the Relation Service itself.
It is called in relation MBean setRole() (for given role) and setRoles() (for each role) methods (implementation provided in RelationSupport class).
It is also called in Relation Service setRole() (for given role) and setRoles() (for each role) methods.
sendRoleUpdateNotification
in interface RelationServiceMBean
theRelId
- relation identifier of the updated relationtheNewRole
- new role (name and new value)theOldRoleValue
- old role value (List of ObjectName objects)
IllegalArgumentException
- if null parameter
RelationNotFoundException
- if there is no relation for given
relation idpublic void sendRelationRemovalNotification(String theRelId, List theUnregMBeanList) throws IllegalArgumentException, RelationNotFoundException
- RelationNotification.RELATION_BASIC_REMOVAL if the relation is an object internal to the Relation Service
- RelationNotification.RELATION_MBEAN_REMOVAL if the relation is a MBean added as a relation.
The source object is the Relation Service itself.
It is called in Relation Service removeRelation() method.
sendRelationRemovalNotification
in interface RelationServiceMBean
theRelId
- relation identifier of the updated relationtheUnregMBeanList
- List of ObjectNames of MBeans expected
to be unregistered due to relation removal (can be null)
IllegalArgumentException
- if null parameter
RelationNotFoundException
- if there is no relation for given
relation idpublic void updateRoleMap(String theRelId, Role theNewRole, List theOldRoleValue) throws IllegalArgumentException, RelationServiceNotRegisteredException, RelationNotFoundException
It is called in relation MBean setRole() (for given role) and setRoles() (for each role) methods (implementation provided in RelationSupport class).
It is also called in Relation Service setRole() (for given role) and setRoles() (for each role) methods.
To allow the Relation Service to maintain the consistency (in case of MBean unregistration) and to be able to perform queries, this method must be called when a role is updated.
updateRoleMap
in interface RelationServiceMBean
theRelId
- relation identifier of the updated relationtheNewRole
- new role (name and new value)theOldRoleValue
- old role value (List of ObjectName objects)
IllegalArgumentException
- if null parameter
RelationServiceNotRegisteredException
- if the Relation
Service is not registered in the MBean Server
RelationNotFoundException
- if no relation for given id.public void removeRelation(String theRelId) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
A RelationNotification notification is sent, its type being:
- RelationNotification.RELATION_BASIC_REMOVAL if the relation was only internal to the Relation Service
- RelationNotification.RELATION_MBEAN_REMOVAL if the relation is registered as an MBean.
For MBeans referenced in such relation, nothing will be done,
removeRelation
in interface RelationServiceMBean
theRelId
- relation id of the relation to be removed
RelationServiceNotRegisteredException
- if the Relation
Service is not registered in the MBean Server
IllegalArgumentException
- if null parameter
RelationNotFoundException
- if no relation corresponding to
given relation idpublic void purgeRelations() throws RelationServiceNotRegisteredException
Depending on the purgeFlag value, this method is either called automatically when a notification is received for the unregistration of an MBean referenced in a relation (if the flag is set to true), or not (if the flag is set to false).
In that case it is up to the user to call it to maintain the consistency of the relations. To be kept in mind that if an MBean is unregistered and the purge not done immediately, if the ObjectName is reused and assigned to another MBean referenced in a relation, calling manually this purgeRelations() method will cause trouble, as will consider the ObjectName as corresponding to the unregistered MBean, not seeing the new one.
The behavior depends on the cardinality of the role where the unregistered MBean is referenced:
- if removing one MBean reference in the role makes its number of references less than the minimum degree, the relation has to be removed.
- if the remaining number of references after removing the MBean reference is still in the cardinality range, keep the relation and update it calling its handleMBeanUnregistration() callback.
purgeRelations
in interface RelationServiceMBean
RelationServiceNotRegisteredException
- if the Relation
Service is not registered in the MBean Server.public Map findReferencingRelations(ObjectName theMBeanName, String theRelTypeName, String theRoleName) throws IllegalArgumentException
This corresponds to the CIM "References" and "ReferenceNames" operations.
findReferencingRelations
in interface RelationServiceMBean
theMBeanName
- ObjectName of MBeantheRelTypeName
- can be null; if specified, only the relations
of that type will be considered in the search. Else all relation types
are considered.theRoleName
- can be null; if specified, only the relations
where the MBean is referenced in that role will be returned. Else all
roles are considered.
IllegalArgumentException
- if null parameterpublic Map findAssociatedMBeans(ObjectName theMBeanName, String theRelTypeName, String theRoleName) throws IllegalArgumentException
This corresponds to CIM Associators and AssociatorNames operations.
findAssociatedMBeans
in interface RelationServiceMBean
theMBeanName
- ObjectName of MBeantheRelTypeName
- can be null; if specified, only the relations
of that type will be considered in the search. Else all
relation types are considered.theRoleName
- can be null; if specified, only the relations
where the MBean is referenced in that role will be considered. Else all
roles are considered.
IllegalArgumentException
- if null parameterpublic List findRelationsOfType(String theRelTypeName) throws IllegalArgumentException, RelationTypeNotFoundException
findRelationsOfType
in interface RelationServiceMBean
theRelTypeName
- relation type name
IllegalArgumentException
- if null parameter
RelationTypeNotFoundException
- if there is no relation type
with that name.public List getRole(String theRelId, String theRoleName) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException, RoleNotFoundException
getRole
in interface RelationServiceMBean
theRelId
- relation idtheRoleName
- name of role
RelationServiceNotRegisteredException
- if the Relation
Service is not registered
IllegalArgumentException
- if null parameter
RelationNotFoundException
- if no relation with given id
RoleNotFoundException
- if:
- there is no role with given name
or
- the role is not readable.
setRole(java.lang.String, javax.management.relation.Role)
public RoleResult getRoles(String theRelId, String[] theRoleNameArray) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
getRoles
in interface RelationServiceMBean
theRelId
- relation idtheRoleNameArray
- array of names of roles to be retrieved
RelationServiceNotRegisteredException
- if the Relation
Service is not registered in the MBean Server
IllegalArgumentException
- if null parameter
RelationNotFoundException
- if no relation with given idsetRoles(java.lang.String, javax.management.relation.RoleList)
public RoleResult getAllRoles(String theRelId) throws IllegalArgumentException, RelationNotFoundException, RelationServiceNotRegisteredException
getAllRoles
in interface RelationServiceMBean
theRelId
- relation id
IllegalArgumentException
- if null parameter
RelationNotFoundException
- if no relation for given id
RelationServiceNotRegisteredException
- if the Relation
Service is not registered in the MBean Serverpublic Integer getRoleCardinality(String theRelId, String theRoleName) throws IllegalArgumentException, RelationNotFoundException, RoleNotFoundException
getRoleCardinality
in interface RelationServiceMBean
theRelId
- relation idtheRoleName
- name of role
IllegalArgumentException
- if null parameter
RelationNotFoundException
- if no relation with given id
RoleNotFoundException
- if there is no role with given namepublic void setRole(String theRelId, Role theRole) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException, RoleNotFoundException, InvalidRoleValueException
Will check the role according to its corresponding role definition provided in relation's relation type
The Relation Service will keep track of the change to keep the consistency of relations by handling referenced MBean unregistrations.
setRole
in interface RelationServiceMBean
theRelId
- relation idtheRole
- role to be set (name and new value)
RelationServiceNotRegisteredException
- if the Relation
Service is not registered in the MBean Server
IllegalArgumentException
- if null parameter
RelationNotFoundException
- if no relation with given id
RoleNotFoundException
- if the role does not exist or is not
writable
InvalidRoleValueException
- if value provided for role is not
valid:
- the number of referenced MBeans in given value is less than expected minimum degree
or
- the number of referenced MBeans in provided value exceeds expected maximum degree
or
- one referenced MBean in the value is not an Object of the MBean class expected for that role
or
- an MBean provided for that role does not exist
getRole(java.lang.String, java.lang.String)
public RoleResult setRoles(String theRelId, RoleList theRoleList) throws RelationServiceNotRegisteredException, IllegalArgumentException, RelationNotFoundException
Will check the role according to its corresponding role definition provided in relation's relation type
The Relation Service keeps track of the changes to keep the consistency of relations by handling referenced MBean unregistrations.
setRoles
in interface RelationServiceMBean
theRelId
- relation idtheRoleList
- list of roles to be set
RelationServiceNotRegisteredException
- if the Relation
Service is not registered in the MBean Server
IllegalArgumentException
- if null parameter
RelationNotFoundException
- if no relation with given idgetRoles(java.lang.String, java.lang.String[])
public Map getReferencedMBeans(String theRelId) throws IllegalArgumentException, RelationNotFoundException
getReferencedMBeans
in interface RelationServiceMBean
theRelId
- relation id
ObjectName -> ArrayList of String (role names)
IllegalArgumentException
- if null parameter
RelationNotFoundException
- if no relation for given
relation idpublic String getRelationTypeName(String theRelId) throws IllegalArgumentException, RelationNotFoundException
getRelationTypeName
in interface RelationServiceMBean
theRelId
- relation id
IllegalArgumentException
- if null parameter
RelationNotFoundException
- if no relation for given
relation idpublic void handleNotification(Notification theNtf, Object theHandback)
handleNotification
in interface NotificationListener
theNtf
- The notification.theHandback
- An opaque object which helps the listener to
associate information regarding the MBean emitter (can be null).public MBeanNotificationInfo[] getNotificationInfo()
getNotificationInfo
in interface NotificationBroadcaster
getNotificationInfo
in class NotificationBroadcasterSupport
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright © 2004, 2010 Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.


Library: Net
Package: Sockets
Header: Poco/Net/SocketStream.h
Description
The base class for SocketStream, SocketInputStream and SocketOutputStream.
This class is needed to ensure the correct initialization order of the stream buffer and base classes.
Inheritance
Direct Base Classes: std::ios
All Base Classes: std::ios
Known Derived Classes: SocketOutputStream, SocketInputStream, SocketStream
Member Summary
Member Functions: close, rdbuf, socket
Constructors
SocketIOS
SocketIOS(
const Socket & socket
);
Creates the SocketIOS with the given socket.
The socket's SocketImpl must be a StreamSocketImpl, otherwise an InvalidArgumentException is thrown.
Destructor
~SocketIOS
~SocketIOS();
Destroys the SocketIOS.
Flushes the buffer, but does not close the socket.
Member Functions
close
void close();
Flushes the stream and closes the socket.
rdbuf
SocketStreamBuf * rdbuf();
Returns a pointer to the internal SocketStreamBuf.
socket
StreamSocket socket() const;
Returns the underlying socket.
Variables
_buf
SocketStreamBuf _buf;


View All
View All
Instant Messages
SMS Messages
Conference Messages
All Calls
Video Calls
Voice Calls
Phone Calls
Search keyword:
Search contact:
Loading ...
Click on a contact to view your conversation history
Show more messages ...
No more messages
No more messages of this type are available
Error
Failed to process your request, please try again later.
Error Code:
OK
Delete Conversations
This conversation will be permanently deleted. Are you sure you want to continue?
All conversations between you and {email} will be permanently deleted. Are you sure you want to continue?
Deleting conversations ...
Cancel
Delete


{% extends "layout.html" %} {% block content %}
| {% if view_conf.type == "addon" and required_by_name not in view_all_pkg_names %} {{required_by_name}} - only in the base view ({{query.configs.views[view_conf.base_view_id].name}}) {% else %} {{required_by_name}} {% endif %} |
{% for required_by_id in required_by_ids %}
{{required_by_id}} {% endfor %} |
Please note this list also includes runtime dependencies of the build dependencies. So it's not just the direct build dependencies. This is currently the best data Content Resolver can give at the moment.
| {{pkg_name}} (SRPM) |


Enter a date and click search to see a picture for that date along with information on the closest asteroid to Earth.


ABOUT ME!
As a recent Full Stack Web Developing graduate from University of Washington, I am excited to work collaboratively with a like-minded team. My passion is in providing an end product that is pleasing to the eye, adaptable, clean, responsive, and easily navigated by the user. I am highly skilled in troubleshooting when complications arise, organizing and creating legible code, HTML/CSS and Javascript languages, and making sure products are responsive for all device screen sizes. Working with a group of creators has proven beneficial when it comes to the time needed to finish a product, adaptability and flexibility in coding as each individual has their own techniques, and communication as it pertains to solving an error together from another team member's or my own code.


Coach Comments On Facing Micho
by Soccer LadumaSouth Africa’s U23 coach David Notoane has commented on the team’s match against Zamalek – the star-studded Egyptian giants coached by former Orlando Pirates coach Milutin Sredojevic.
The match was played on Wednesday at Zamalek’s headquarters as Notoane and the team prepare for the upcoming U23 Africa Cup of Nations.
Read: Axe Hovering Over PSL Coach’s Head!
“I am very happy with how the boys carried themselves playing against a side such as Zamalek. This practice match gave us a whole lot of positives and some of the things we need to give special attention to before our first group match against Zambia. I am glad we went through that exercise, it helped us a lot,” said Notoane, as quoted on SAFA’s official website.
Meanwhile, Notoane’s team has been boosted with the arrival of three players in captain of the side Tercious Malepe, as well as goalkeeper Mondli Mpoto and forward Keletso Makgalwa to take the total number of players in camp to 15.
Download The Soccer Laduma Social Media App & Earn Airtime for Selfies!


(just another timm tool)
home | discuss | report bug
Given a source of csv data, table
reads and stores the rows while at the same
time keeping statistics on what was seen in each row.
Column statistics are kept as thing
s which are instances of a class that
watches a stream of data and works out if that column is a numeric or symbolic.
All these things
are stored in table.all
as well as in the column groups
defined in table.COLS
.
DEFAULT= "x"
COLS = dict(less = "<", # numeric goals to minimize
more = ">", # numeric goals to maximize
klass= ":", # symbolic goal (for classification)
y = ":<>"):# all symbols denoting goals
Any column with a header that starts with something else, get stored in the group table.DEFAULT.
By default, table
reads all its data at once from a inits
list passes to its
constructor. But table
can also read table rows incrementally from strings, a
file, or a file inside a zip file.
For very fast csv reads, use csv
not table
. Table
uses csv
as a
primitive but also keeps extensive statistics on each column. If those
statistics are not required, then use csv
for (much) faster loads. For
example, on one machine, with pypy3, csv
can load nearly two million records
in under six seconds while in the same time table
can only load 10,000.
For clues on how to optimize table
, see the profiler output of pypy3
tableg.py -- _table3
.
from thing import thing
from csv import csv
class table:
K = 3
W = lambda x:x
DEFAULT = "x"
COLS = dict(less = "<", # numeric goals to be minimized
more = ">", # numeric goals to be maximized
klass= ":", # symbolic goal (used for classification)
y = ":<>" # all symbols denoting goals
) # (any any other thing goes into table.DEFAULT)
Read table either from a str
, a file
, a file
in a zip
or from some inits
list.
def __init__(i,inits=[],str=None,file=None,zip=None):
i.rows, i.group, i.all = [],{},[]
i.group[table.DEFAULT] = []
for key in table.COLS.keys():
i.group[key] = []
if file:
for row in csv(str=None, file=file,zip=zip,header=True):
i + row
[i + row for row in inits]
def __repr__(i):
return '{:rows %s :less %s :more %s :klass %s :x %s :y %s' % (
len(i.rows), len(i.group["less"]), len(i.group["more"]),
len(i.group["klass"]), len(i.group["x"]), len(i.group["y"]))
If all
is defined, we are beyong the first header row.
def __add__(i,row):
i.data(row) if i.all else i.header(row)
Create one thing
for each column.
Store that thing
in all
as well as
in its associated COLS
group.
def header(i,row):
for col,cell in enumerate(row):
t = thing(pos=col, txt=cell)
i.all += [t]
placed = False
for key,chars in table.COLS.items():
for char in chars:
if cell[0] == char:
i.group[key] += [t]
placed = True
If we can't place it anywhere else, place it in table.DEFAULT
.
if not placed:
i.group[table.DEFAULT] += [t]
Update the statistics held in each thing for each column.
Keep the data in rows
.
def data(i,row):
[t + row[t.pos] for t in i.all]
i.rows += [ row ]
Return a table just like this one, but withtout the row data
def twin(i,inits=[]):
t = table([[t.txt for t in i.all]])
[t + x for x in inits]
return t
Return the first klass value of a row
def klass(i,row):
return row[i.group["klass"][0].pos]
Return the first goal value of a row
def goal(i,row):
return row[i.group["y"][0].pos]
Compute Euclidean distance between two rows.
Makes use of sevices defined in each thing in all
.
def dist(i, j,k, what=None):
ds,ns = 0,1e-32
what = what or [table.DEFAULT]
for grp in what:
for t in i.group[grp]:
d = t.dist(j[t.pos], k[t.pos])
if d is not None:
ds += d
ns += 1
return ds**0.5 / ns**0.5
def nearest(i,row,rows=None,what=None,details=False,
bt = lambda x,y: x< y,
zero = 1e32):
best = zero
out = row
rows = rows or i.rows
for otherRow in rows:
if id(row) != id(otherRow):
tmp = i.dist(row, otherRow,
what=what or [table.DEFAULT])
if bt(tmp,best):
out,best = otherRow,tmp
return out,best if details else out
def furthest(i,row,rows=None,what=None,details=False):
return i.nearest(row,
what = what or [table.DEFAULT],
rows = rows or i.rows,
bt = lambda x,y: x > y,
zero = -1,
details=details)
def distances(i,rows=None,what=None):
out,index = {},{}
rows = rows or i.rows
for j,row in enumerate(rows):
out[j] = []
index[j] = row
for j,row1 in enumerate(rows):
for k,row2 in enumerate(rows):
if j > k:
d = i.dist(row1,row2,
what = what or [table.DEFAULT])
out[j] += [(d,k)]
out[k] += [(d,j)]
for k in out:
out[k].sort()
return out,index
Copyright © 2016 Tim Menzies<EMAIL_ADDRESS>This program is free software. It comes without any warranty, to the extent permitted by applicable law. You can redistribute it and/or modify it under the terms of the Do What The F*ck You Want To Public License, Version 2, as published by Sam Hocevar. See http://www.wtfpl.net for more details.
Share and enjoy.


Politics Podcast: How The Fifth Democratic Debate Could Affect The Race
by Galen Druke, Sarah Frostenson, Nate Silver, Galen Druke, Sarah Frostenson, Nate SilverBy , and
After a day of headline-making testimony in the House impeachment inquiry, the contenders for the Democratic nomination squared off in their fifth debate. The candidates largely eschewed talk of impeachment and mostly avoided the kind of conflict that characterized previous debates. In this installment of the FiveThirtyEight Politics podcast, the crew discusses the current contours of the race and what impact the debate will have.
You can listen to the episode by clicking the “play” button in the audio player above or by downloading it in iTunes , the ESPN App or your favorite podcast platform. If you are new to podcasts, learn how to listen .
The FiveThirtyEight Politics podcast publishes Mondays and Thursdays. Help new listeners discover the show by leaving us a rating and review on iTunes . Have a comment, question or suggestion for “good polling vs. bad polling”? Get in touch by email, on Twitter or in the comments.


National 5000m Outdoor Track Champions for Trinidad and Tobago
Men (63 runnings) 5000m 25 Jun 2017 Port of Spain 15:45.83 Collin Pereira 26 Jun 2016 Port of Spain 16:27.19 Jules LaRode-3 28 Jun 2015 Port of Spain 16:17.15 Jules LaRode-2 22 Jun 2014 Port of Spain 15:59.05 Jules LaRode 23 Jun 2013 Port of Spain 15:23.41 Denzel Ramirez-5 24 Jun 2012 Port of Spain 15:06.44 Richard Jones-4 14 Aug 2011 Port of Spain 16:10.02 Matthew Hagley 27 Jun 2010 Port of Spain 14:54.44 Richard Jones-3 Jun 2009 Port of Spain 15:05.05 Denzel Ramirez-4 22 Jun 2008 Port of Spain 15:06.51 Richard Jones-2 24 Jun 2007 Port of Spain 14:54.16 Denzel Ramirez-3 25 Jun 2006 Bacolet 15:23.57 Denzel Ramirez-2 26 Jun 2005 Port of Spain 15:22.26 Curtis Cox 20 Jun 2004 Port of Spain 15:40.81 Richard Jones 21 Jun 2003 Port of Spain 16:02.76 Denzel Ramirez Jun 2002 Port of Spain Jun 2001 Port of Spain 17:57.04 Wayne Gernes Jun 2000 Port of Spain 20 Jun 1999 Port of Spain 14:12.01 Ronnie Holassie-2 Jun 1998 Port of Spain Jun 1997 Pointe à Pierre 09 Jun 1996 Port of Spain 14:33.5 Ronnie Holassie Jun 1995 Port of Spain 16:03.6 Richard Jones Jun 1994 Port of Spain Jun 1993 Port of Spain 15:52.8 Kenrick Brown May 1992 Port of Spain 15:48.7 Anthony Appoy-2 30 Jun 1991 Port of Spain .... not held due to attempted coup d`état 24 Jun 1989 Arima Jul 1988 Port of Spain Jun 1987 Port of Spain Jun 1986 Port of Spain Paul Voisin Jul 1985 Port of Spain 15:24.0 Anthony Appoy May 1984 Port of Spain Wilbur Ferdinand-3 Jun 1983 Port of Spain 15:30.1 Stephen Hercules 26 Jun 1982 Port of Spain Jun 1981 Arima Jun 1980 Arima 15:32.1 Wilbur Ferdinand-2 May 1979 Arima 15:53.1 Wilbur Ferdinand Jun 1978 Arima Jun 1977 Arima 15:56.5 Keith Pascall Jun 1976 Arima 15:34.6 Rudy Maraj-3 Jun 1975 Arima 15:31.4 Rudy Maraj-2 Jun 1974 Arima 14:57.7 Rudy Maraj May 1973 Saint Augustine 15:56.6 Coswell dePeiza Jun 1972 Port of Spain 16:01.8 Errol Ottley .... not held Mar 1970 Scarborough 15:49.2 Felix Frederick 1969 Pointe à Pierre 16:07.6 Max Millington .... not held due to problems within the AAA Jun 1962 Pointe à Pierre 15:39.7 Robert Stephenson 1961 Pointe à Pierre Jul 1960 San Fernando 15:46.0 Glenroy Charles Jul 1959 San Fernando 16:05.6 Joseph Roberts-3 .... not held due to British West Indies Championships 3 miles May 1957 Port of Spain 15:01.2 Joseph Roberts-2 Apr 1956 Port of Spain 15:15.0 Levi Modeste 1955 Port of Spain 16:06.3 Joseph Roberts Apr 1954 Port of Spain 15:44.5 Alton Watkins 1953 Port of Spain 15:51.5 Carlton Chambers-3 Mar 1952 Port of Spain 15:54.0 Hector Toussaint May 1951 Port of Spain 16:02.6 Carlton Chambers-2 Apr 1950 Port of Spain Apr 1949 Port of Spain 16:30.0 Mannie Ramjohn-2 1948 Port of Spain Jun 1947 Port of Spain 15:33.8 Carlton Chambers 06 Apr 1946 Port of Spain 15:35.0 Mannie Ramjohn
Non-champion winners 2015 15:04.66 Kenneth Rotich Kipyego (KEN) 2012 14:40.06 Carl Stones (USA) 2011 15:19.97 Lamont Marshall (BER) 2010 14:24.09 Reuben Mwei Chebon (KEN)
Women (10 runnings) 5000m .... not held 27 Jun 2015 Port of Spain 20:50.43 April Francis-2 22 Jun 2014 Port of Spain 19:46.26 April Francis 3000m .... not held Jun 2008 Port of Spain 10:46.33 Shermin Lasaldo-2 Jun 2007 Port of Spain 11:12.37 Shermin Lasaldo Jun 2006 Bacolet 11:09.35 Samantha Shukla-2 Jun 2005 Port of Spain 10:43.87 Samantha Shukla Jun 2004 Port of Spain 11:07.76 Pilar McShine Jun 2003 Port of Spain Jun 2002 Port of Spain 11:06.98 Kerticha John .... 09 Jun 1996 Port of Spain 10:53.3 Bernardine Thomas
Notes: For 1946-1962, these championships were organized by the Amateur Athletic Foundation of Trinidad & Tobago which had been founded on 16 Jun 1945. The 1969-1970 championships were organized by the National Athletes Union, founded in 1967. In 1971, the Trinidad & Tibago National Amateur Athletic Association was constituted as the national governing body and has organized these championships since 1972. In 2008, the word amateur was dropped from the name of the NGB.
Most Titles
Men
(1946/date)
5
Denzel Ramirez
2003,2006-07,2009,2013
Women (1996/2008) 2
Samantha Shukla
2005-06
Shermin Lasaldo
2007-08
April Francis
2014-15
Last Updated on 26 Aug 2017
Contributors: Bernard Linley (50), Juraj Gasparovic (24)


Kellie Hays
About
Portfolio
Contact
(current)
Contact
Name
Email address
Message
© Copyright 2019 Kellie Hays


The buttons should increment by 2 and 3 respectively.
Note: this will NOT work when browsing the file directly, view using a server e.g. with `python -m http.server`.
ERROR!
ERROR!


]> Assurance - modifier sinistre Tableau de bord Gérer les contrats Gérer les contrats Gérer les demandes d'attestation Gérer les devis 1 You have 2 news message Michelle Moreno Have sent a photo 3 min ago Diane Myers You are now connected on message Yesterday 1 You have 3 New Emails Meeting about new dashboard... Cynthia Harvey, 3 min ago Meeting about new dashboard... Cynthia Harvey, Yesterday Meeting about new dashboard... Cynthia Harvey, April 12,,2018 3 You have 3 Notifications You got a email notification April 12, 2018 06:50 Your account has been blocked April 12, 2018 06:50 You got a new file April 12, 2018 06:50 john doe john doe<EMAIL_ADDRESS>Account Setting Billing Modifier sinistre : #{sinistreBean.editedSinistre.codeSinistre} Code sinistre Date declare Date sinistre Dommage corps Dommage materiel Etat avance Lieu Numéro sinistre Contrats Reglements
You have 2 news message
Have sent a photo
You are now connected on message
You have 3 New Emails
Meeting about new dashboard...
You have 3 Notifications
You got a email notification
Your account has been blocked
You got a new file


?Comocladia
pinnatifolia
L.
Determined
by
Hilary
M.
Davis
Missouri
Botanical
Garden
15
January
2002
.>9.^_?9Ianica|-
garden
vojsú-SOTAfJSCAt
CAMBRIDGE
UNIVERSITY
EXPEDITION
JAMAICA
1939
EX
HERBARIO
MUSEI
BRITANNICI
FLORA
OF
THE
BLUE
MOUNTAINS
Comocladia
pinnatifolia
L.
Locality:
Chester
Vale
Altitude:
3,000ft.
Date:
26.8.1939
Habitat:
secondary
forest;
clearing.
15ft.;
slender;
sparsely
branched;
rosette
of
leaves;
flowers
purple.
W.
R.
Philipson
No.
947
01498808
01498808
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


{% load staticfiles %} {# this actually belongs in internal_scripts, but we are in the process #} {# of deprecating it, so some people's apps might still rely on jQuery being #} {# available within the content block. #}


EventDropBuffer()
Syntax
*Result = EventDropBuffer()Description
After a #PB_Event_GadgetDrop or #PB_Event_WindowDrop is received by WaitWindowEvent() or WindowEvent() with an OS specific format, this function can be used to access the data.
Parameters
None.
Return value
Returns the memory address where the dropped data is located. The EventDropSize() command returns the size of this buffer.
Remarks
The returned memory buffer is internal to the library and should not be freed. It is also only valid until the next call to WaitWindowEvent() or WindowEvent(), so the data should be copied if it is required for longer than that.
See Also
EventDropSize(), EnableGadgetDrop(), EnableWindowDrop(), EventDropType(), EventDropAction(), EventDropX(), EventDropY()
Supported OS
All


Scryde Heartseeker:
You mean this? I think this Stone of Commune should be yours. Take it. I won't forget you. Till we meet again!
"Wait!"


| 002:199 Khan | : |
Then depart from the place whence all the people depart and ask Allah for His Forgiveness. Truly, Allah is Oft-Forgiving, Most-Merciful. |
| 002:199 Maulana | : |
Then hasten on from where the people hasten on, and ask the forgiveness of Allah. Surely Allah is Forgiving, Merciful. |
| 002:199 Pickthal | : |
Then hasten onward from the place whence the multitude hasteneth onward, and ask forgiveness of Allah. Lo! Allah is Forgiving, Merciful. |
| 002:199 Rashad | : |
You shall file together, with the rest of the people who file, and ask GOD for forgiveness. GOD is Forgiver, Most Merciful. |
| 002:199 Sarwar | : |
Then leave Mash'ar as the rest of the people do and ask forgiveness from God; He is All-forgiving and All-merciful. |
| 002:199 Shakir | : |
Then hasten on from the Place from which the people hasten on and ask the forgiveness of Allah; surely Allah is Forgiving, Merciful. |
| 002:199 Sherali | : |
Then pour forth from where the people pour forth, and seek forgiveness from ALLAH; surely ALLAH is most forgiving, Merciful. |
| 002:199 Yusufali | : |
Then pass on at a quick pace from the place whence it is usual for the multitude so to do, and ask for Allah's forgiveness. For Allah is Oft-forgiving, Most Merciful. |
Concepts/Themes Covered: أركان الإسلام > الحج والعمرة > فرضية الحج وآدابه Pillars of Islam> Hajj and Umrah> Duty of Hajj and its Morals
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


CODUNO
Settings
Logout
Here the statistics will be.
You now have:
Coders
The users coding right now:
You are not authorized to see this page.


{% extends "drawquest/dqbase.html" %} {% block viewport_meta %} {% endblock %} {% block extra_css %} {% endblock %} {% block body %}
Forgotten your username or password? Enter your e-mail address and we'll send you directions for how to reset your password.
This will be the email address you signed up with. (If you signed up with Facebook, enter your the email address associated with your Facebook account.)


Scarlet Xie
Contact
About
Portfolio
Portfolio
iMed
A personal medical assistant
OCR
Optical Character Recognition - handwritten digit recognition


Back to Test Overview
Expand All
Collapse All
Expand Errors
Random size test on tablet device
close
close


In the Create Models step, available features are columns or fields in the chosen dataset. You can use an available feature in the model to predict the target.
Categorical Feature
A feature whose values consist of a finite set of categories reused across records. For example, in an automotive dataset, a feature that indicates the country of origin of a vehicle would have a finite set of countries as its values.
Classification
When you choose to predict a categorical feature, Distil produces classification results. Classification results show the number of correctly and incorrectly predicted target values for each row in the dataset.
Continuous Feature
A feature whose values consist of a range of real numbers. For example, in an automotive dataset, a feature that indicates the weight of a vehicle would have a set of unique weights as its values.
Dataset
The collection of features and values that you select to build models that predict features.
Distance
In regression models, distance indicates how far from the actual value the predicted value is. Distance is used as a measure of error for each prediction.
Error
In regression results, the error threshold allows you to configure how accurate the model should be. Error is calculated as the distance of the predicted value from the actual value.
Feature
A column or field in a dataset that contains a set of values for each record. In an automotive dataset, for example, one feature may be horsepower.
Feature to Model
A feature that you want the model to consider when attempting to predict the target.
Forecast
When you choose to predict a timeseries feature, Distil produces forecasting results. Forecasting results show the predicted future values for each value in the timeseries feature.
Importance
Available features are listed in descending order by how much influence they have on other features in the dataset. Importance is calculated using Principal Component Analysis.
Model
A set of automatically configured algorithms and parameters tunings that attempt to predict a target feature. Models use features you select to attempt to predict the target feature.
N–Z
Prediction
A set of automatically calculated values for the target feature generated by the model.
Regression
For continuous features (e.g. integers), Distil produces regression results, which break down correct and incorrect results by the error (distance of the predictions from the actual values in the dataset). The acceptable error is configurable for each model.
Sample
In the Create Models step, Distil shows a representative sample of values for the selected features to model and the target feature.
Summary
On the Home and Select Data pages, the summary describes the contents of the available datasets that you can use in model building.
On the View Models page, the feature summaries show the range of values in results in the dataset.
Target
The feature that you want the model to predict.
Timeseries
A compound feature that you can create to track a value over time. To create a timeseries feature, you must group together the following features from your selected dataset:
Series ID Columns: The label or name of the variables being tracked across dataset rows. You can construct series ID from one or more features.
Time Column: The timestamp or date/time feature. Serves as the X-axis in the compound feature.
Value Column: The unique value for the group in each row. Serves as the Y-axis in the compound feature.
Value
A value of a particular feature in one row of a dataset.


| Modifier and Type | Method and Description |
|---|---|
Topology |
IBatfish.getEnvironmentTopology() |
| Modifier and Type | Method and Description |
|---|---|
abstract DataPlanePlugin.ComputeDataPlaneResult |
DataPlanePlugin.computeDataPlane(boolean differentialContext,
Map<String,Configuration> configurations,
Topology topology) |
void |
IBatfish.initRemoteRipNeighbors(Map<String,Configuration> configurations,
Map<Ip,Set<String>> ipOwners,
Topology topology) |
| Modifier and Type | Method and Description |
|---|---|
static Topology |
TopologyUtil.toTopology(Layer3Topology layer3Topology) |
| Modifier and Type | Method and Description |
|---|---|
static Topology |
CommonUtil.synthesizeTopology(Map<String,Configuration> configurations) |
| Modifier and Type | Method and Description |
|---|---|
static void |
CommonUtil.initRemoteOspfNeighbors(Map<String,Configuration> configurations,
Map<Ip,Set<String>> ipOwners,
Topology topology) |
| Modifier and Type | Method and Description |
|---|---|
Topology |
DataPlane.getTopology()
Return the network (i.e., layer 3) topology
|
| Constructor and Description |
|---|
ForwardingAnalysisImpl(Map<String,Configuration> configurations,
SortedMap<String,SortedMap<String,GenericRib<AbstractRoute>>> ribs,
Map<String,Map<String,Fib>> fibs,
Topology topology) |
| Modifier and Type | Method and Description |
|---|---|
static com.google.common.graph.Network<IsisNode,IsisEdge> |
IsisTopology.initIsisTopology(Map<String,Configuration> configurations,
Topology topology)
Initialize the ISIS topology as a directed graph.
|
| Modifier and Type | Method and Description |
|---|---|
static Topology |
Topology.create(String testrigName,
Map<String,Configuration> configurations,
Topology topology) |
| Modifier and Type | Method and Description |
|---|---|
Topology |
IncrementalDataPlane.getTopology() |
| Modifier and Type | Method and Description |
|---|---|
DataPlanePlugin.ComputeDataPlaneResult |
IncrementalDataPlanePlugin.computeDataPlane(boolean differentialContext,
Map<String,Configuration> configurations,
Topology topology) |
Map.Entry<RibDelta<OspfExternalType1Route>,RibDelta<OspfExternalType2Route>> |
VirtualRouter.propagateOspfExternalRoutes(Map<String,Node> allNodes,
Topology topology)
Propagate OSPF external routes from our neighbors by reading OSPF route "advertisements" from
our queues.
|
IncrementalDataPlane.Builder |
IncrementalDataPlane.Builder.setTopology(Topology topology) |
| Modifier and Type | Method and Description |
|---|---|
Topology |
Batfish.getEnvironmentTopology() |
| Modifier and Type | Method and Description |
|---|---|
void |
Batfish.initRemoteRipNeighbors(Map<String,Configuration> configurations,
Map<Ip,Set<String>> ipOwners,
Topology topology) |
| Constructor and Description |
|---|
InferRoles(Collection<String> nodes,
Topology topology) |
InferRoles(Collection<String> nodes,
Topology topology,
boolean caseSensitive) |
| Modifier and Type | Method and Description |
|---|---|
SynthesizerInputImpl.Builder |
SynthesizerInputImpl.Builder.setTopology(Topology topology) |
Copyright © 2014–2018. All rights reserved.


- TimestampSelector<T> - Interface in com.scaleoutsoftware.streaming.timewindowing
-
The TimestampSelector is used to pull a timestamp from an object.
- TimeWindow<T> - Interface in com.scaleoutsoftware.streaming.timewindowing
-
Supports iteration over a collection of elements that fall within the given start and end timestamps.
- toSessionWindows(List<T>, TimestampSelector<T>, long, long, long) - Static method in class com.scaleoutsoftware.streaming.timewindowing.Windowing
-
Transforms a List into an iterable collection of session TimeWindows.
- toSlidingWindows(List<T>, TimestampSelector<T>, long, long, long, long) - Static method in class com.scaleoutsoftware.streaming.timewindowing.Windowing
-
Transforms a List into an iterable collection of sliding TimeWindows
- toTumblingWindows(List<T>, TimestampSelector<T>, long, long, long) - Static method in class com.scaleoutsoftware.streaming.timewindowing.Windowing
-
Transforms a List into an iterable collection of tumbling TimeWindows.
- TumblingWindowCollection<T> - Class in com.scaleoutsoftware.streaming.timewindowing
-
The TumblingWindowCollection transforms a collection into an iterable collection of sequential time windows.
- TumblingWindowCollection(List<T>, TimestampSelector<T>, long, long) - Constructor for class com.scaleoutsoftware.streaming.timewindowing.TumblingWindowCollection
-


Human remains found by hunter in Adams County, DOJ says
by Logan RudeFRIENDSHIP, Wis. - A hunter found human remains Saturday afternoon in a wooded area in Adams County, according to a news release from the Wisconsin Department of Justice.
According to the release, law enforcement responded to the scene confirmed the remains were human.
The investigation is ongoing. The Adams County Sheriff's Office, Dane County Sheriff's Office, and the DOJ's Division of Criminal Investigation, along with the Adams County medical examiner, Wisconsin State Crime Laboratory and Wisconsin State Patrol, are investigating.


| Name | Description |
| config |
Config (vmx) file.
|
| core |
Core (core) file.
|
| digestDescriptor |
Disk digest descriptor file.
Since vSphere API 5.0
|
| digestExtent |
Disk digest extent file.
Since vSphere API 5.0
|
| diskDescriptor |
Disk descriptor (vmdk) file.
|
| diskExtent |
Disk extent (-flat/-delta/-s/-rdm/-rdmp.vmdk) file.
|
| diskReplicationState |
Host based replicated disk persistent state (psf) file.
Since vSphere API 5.0
|
| extendedConfig |
Extended config (vmxf) file.
|
| ftMetadata |
Fault Tolerance metadata file.
Since vSphere API 6.0
|
| guestCustomization |
Guest image customization file.
Since vSphere API 6.0
|
| log |
Log (log) file.
|
| namespaceData |
Namespace data file.
Since vSphere API 5.1
|
| nvram |
Non-volatile RAM (nvram) file.
|
| screenshot |
Screenshot file.
|
| snapshotData |
Snapshot data (vmsn) file.
|
| snapshotList |
Snapshot metadata (vmsd) file.
|
| snapshotManifestList |
Snapshot manifest metadata (-aux.xml) file.
This file is still being created but is no longer necessary since
the manifest metadata is now available in the snapshot metadata
(vmsd) file in vSphere 5.0. This type will be deprecated when
vSphere 4.1 is no longer supported.
Since vSphere API 5.0
|
| snapshotMemory |
Snapshot memory (vmem) file.
Since vSphere API 6.0
|
| stat |
Virtual machine statistics (stat) file.
|
| suspend |
Suspend (vmss) file.
|
| suspendMemory |
Suspend (vmem) file.
Since vSphere API 6.0
|
| swap |
Swap (vswp) file.
|
| uwswap |
File generated by VMware ESX kernel for a running virtual
machine.
Since vSphere API 5.0
|


PART I. GENERAL PROVISIONS
Note
Sections 10-1 to 10-16 designated as Part I by L 1994, c 283, §2(1).
[§10-1] Declaration of purpose. (a) The people of the State of Hawaii and the United States of America as set forth and approved in the Admission Act, established a public trust which includes among other responsibilities, betterment of conditions for native Hawaiians. The people of the State of Hawaii reaffirmed their solemn trust obligation and responsibility to native Hawaiians and furthermore declared in the state constitution that there be an office of Hawaiian affairs to address the needs of the aboriginal class of people of Hawaii.
(b) It shall be the duty and responsibility of all state departments and instrumentalities of state government providing services and programs which affect native Hawaiians and Hawaiians to actively work toward the goals of this chapter and to cooperate with and assist wherever possible the office of Hawaiian affairs. [L 1979, c 196, pt of §2]
Law Journals and Reviews
The Crown Lands Trust: Who Were, Who Are, the Beneficiaries? 38 UH L. Rev. 213 (2016).


 THE POSSIBILITES ARE ENDLESS.
 THE POSSIBILITES ARE ENDLESS.


Simple Web Uploader for Public SARS-CoV-2 Sequence Resource
This tool can be used to upload sequenced genomes of SARS-CoV-2 samples to the Public SARS-CoV-2 Sequence Resource. Your uploaded sequence will automatically be processed and incorporated into the public pangenome.