| Rk |
Pos |
Name |
Age |
G |
PA |
AB |
R |
H |
2B |
3B |
HR |
RBI |
SB |
CS |
BB |
SO |
BA |
OBP |
SLG |
OPS |
OPS+ |
TB |
GDP |
HBP |
SH |
SF |
IBB |
| 1 |
C |
Spud Davis |
29 |
107 |
384 |
347 |
45 |
104 |
22 |
4 |
9 |
65 |
0 |
|
34 |
27 |
.300 |
.366 |
.464 |
.830 |
114 |
161 |
12 |
2 |
1 |
|
|
| 2 |
1B |
Ripper Collins# |
30 |
154 |
662 |
600 |
116 |
200 |
40 |
12 |
35 |
128 |
2 |
|
57 |
50 |
.333 |
.393 |
.615 |
1.008 |
158 |
369 |
11 |
2 |
3 |
|
|
| 3 |
2B |
Frankie Frisch# |
36 |
140 |
605 |
550 |
74 |
168 |
30 |
6 |
3 |
75 |
11 |
|
45 |
10 |
.305 |
.359 |
.398 |
.757 |
97 |
219 |
17 |
1 |
10 |
|
|
| 4 |
SS |
Leo Durocher |
28 |
146 |
542 |
500 |
62 |
130 |
26 |
5 |
3 |
70 |
2 |
|
33 |
40 |
.260 |
.308 |
.350 |
.658 |
71 |
175 |
16 |
2 |
6 |
|
|
| 5 |
3B |
Pepper Martin |
30 |
110 |
489 |
454 |
76 |
131 |
25 |
11 |
5 |
49 |
23 |
|
32 |
41 |
.289 |
.337 |
.425 |
.762 |
97 |
193 |
1 |
1 |
1 |
|
|
| 6 |
OF |
Jack Rothrock# |
29 |
154 |
709 |
647 |
106 |
184 |
35 |
3 |
11 |
72 |
10 |
|
49 |
56 |
.284 |
.336 |
.399 |
.734 |
90 |
258 |
6 |
1 |
11 |
|
|
| 7 |
OF |
Joe Medwick |
22 |
149 |
646 |
620 |
110 |
198 |
40 |
18 |
18 |
106 |
3 |
|
21 |
83 |
.319 |
.343 |
.529 |
.872 |
123 |
328 |
15 |
1 |
4 |
|
|
| 8 |
OF |
Ernie Orsatti* |
31 |
105 |
365 |
337 |
39 |
101 |
14 |
4 |
0 |
31 |
6 |
|
27 |
31 |
.300 |
.353 |
.365 |
.718 |
87 |
123 |
7 |
1 |
1 |
|
|
| Rk |
Pos |
Name |
Age |
G |
PA |
AB |
R |
H |
2B |
3B |
HR |
RBI |
SB |
CS |
BB |
SO |
BA |
OBP |
SLG |
OPS |
OPS+ |
TB |
GDP |
HBP |
SH |
SF |
IBB |
| 9 |
IF |
Burgess Whitehead |
24 |
100 |
357 |
332 |
55 |
92 |
13 |
5 |
1 |
24 |
5 |
|
12 |
19 |
.277 |
.310 |
.355 |
.666 |
73 |
118 |
3 |
4 |
9 |
|
|
| 10 |
C |
Bill DeLancey* |
22 |
93 |
295 |
253 |
41 |
80 |
18 |
3 |
13 |
40 |
1 |
|
41 |
37 |
.316 |
.414 |
.565 |
.979 |
152 |
143 |
5 |
1 |
0 |
|
|
| 11 |
OF |
Chick Fullis |
33 |
69 |
216 |
199 |
21 |
52 |
9 |
1 |
0 |
26 |
4 |
|
14 |
11 |
.261 |
.310 |
.317 |
.626 |
63 |
63 |
6 |
0 |
3 |
|
|
| 12 |
OF |
Buster Mills |
25 |
29 |
80 |
72 |
7 |
17 |
4 |
1 |
1 |
8 |
0 |
|
4 |
11 |
.236 |
.295 |
.361 |
.656 |
70 |
26 |
2 |
2 |
2 |
|
|
| 13 |
IF |
Pat Crawford* |
32 |
61 |
76 |
70 |
3 |
19 |
2 |
0 |
0 |
16 |
0 |
|
5 |
3 |
.271 |
.320 |
.300 |
.620 |
62 |
21 |
2 |
0 |
1 |
|
|
| 14 |
OF |
Kiddo Davis |
32 |
16 |
36 |
33 |
6 |
10 |
3 |
0 |
1 |
4 |
1 |
|
3 |
1 |
.303 |
.361 |
.485 |
.846 |
118 |
16 |
1 |
0 |
0 |
|
|
| 15 |
OF |
Gene Moore* |
24 |
9 |
20 |
18 |
2 |
5 |
1 |
0 |
0 |
1 |
0 |
|
2 |
2 |
.278 |
.350 |
.333 |
.683 |
79 |
6 |
0 |
0 |
0 |
|
|
| 16 |
UT |
Francis Healy |
23 |
15 |
13 |
13 |
1 |
4 |
1 |
0 |
0 |
1 |
0 |
|
0 |
2 |
.308 |
.308 |
.385 |
.692 |
79 |
5 |
1 |
0 |
0 |
|
|
| 17 |
|
Lew Riggs* |
24 |
2 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
1 |
.000 |
.000 |
.000 |
.000 |
-100 |
0 |
0 |
0 |
0 |
|
|
| 18 |
|
Red Worthington |
28 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
1 |
.000 |
.000 |
.000 |
.000 |
-100 |
0 |
0 |
0 |
0 |
|
|
| Rk |
Pos |
Name |
Age |
G |
PA |
AB |
R |
H |
2B |
3B |
HR |
RBI |
SB |
CS |
BB |
SO |
BA |
OBP |
SLG |
OPS |
OPS+ |
TB |
GDP |
HBP |
SH |
SF |
IBB |
| 19 |
P |
Dizzy Dean |
24 |
51 |
126 |
118 |
15 |
29 |
3 |
1 |
2 |
9 |
1 |
|
1 |
15 |
.246 |
.252 |
.339 |
.591 |
52 |
40 |
5 |
0 |
7 |
|
|
| 20 |
P |
Tex Carleton# |
27 |
41 |
96 |
88 |
7 |
17 |
2 |
1 |
1 |
10 |
0 |
|
5 |
27 |
.193 |
.237 |
.273 |
.509 |
32 |
24 |
1 |
0 |
3 |
|
|
| 21 |
P |
Paul Dean |
21 |
39 |
87 |
83 |
6 |
20 |
4 |
0 |
0 |
3 |
0 |
|
1 |
12 |
.241 |
.250 |
.289 |
.539 |
40 |
24 |
0 |
0 |
3 |
|
|
| 22 |
P |
Bill Hallahan |
31 |
32 |
61 |
55 |
3 |
10 |
1 |
0 |
0 |
6 |
0 |
|
2 |
16 |
.182 |
.211 |
.200 |
.411 |
7 |
11 |
1 |
0 |
4 |
|
|
| 23 |
P |
Bill Walker |
30 |
24 |
58 |
54 |
2 |
5 |
1 |
0 |
0 |
1 |
0 |
|
1 |
26 |
.093 |
.109 |
.111 |
.220 |
-43 |
6 |
2 |
0 |
3 |
|
|
| 24 |
P |
Jesse Haines |
40 |
37 |
21 |
19 |
1 |
3 |
0 |
0 |
0 |
0 |
0 |
|
1 |
5 |
.158 |
.200 |
.158 |
.358 |
-6 |
3 |
1 |
0 |
1 |
|
|
| 25 |
P |
Jim Mooney |
27 |
32 |
20 |
19 |
0 |
1 |
0 |
0 |
0 |
2 |
0 |
|
0 |
1 |
.053 |
.053 |
.053 |
.105 |
-73 |
1 |
0 |
0 |
1 |
|
|
| 26 |
P |
Dazzy Vance |
43 |
19 |
16 |
15 |
1 |
2 |
0 |
0 |
1 |
1 |
0 |
|
0 |
6 |
.133 |
.133 |
.333 |
.467 |
17 |
5 |
2 |
0 |
1 |
|
|
| 27 |
P |
Jim Winford |
24 |
5 |
3 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
2 |
1 |
.000 |
.667 |
.000 |
.667 |
90 |
0 |
0 |
0 |
0 |
|
|
| 28 |
P |
Flint Rhem |
33 |
5 |
2 |
2 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
.000 |
.000 |
.000 |
.000 |
-100 |
0 |
0 |
0 |
0 |
|
|
| 29 |
P |
Burleigh Grimes |
40 |
4 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
|
|
|
|
|
0 |
0 |
0 |
1 |
|
|
| 30 |
P |
Jim Lindsey |
35 |
11 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
.000 |
.000 |
.000 |
.000 |
-100 |
0 |
0 |
0 |
0 |
|
|
| 31 |
P |
Clarence Heise* |
26 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
|
|
|
|
|
0 |
0 |
0 |
0 |
|
|
|
|
Team Totals |
28.6 |
154 |
5989 |
5502 |
799 |
1582 |
294 |
75 |
104 |
748 |
69 |
|
392 |
535 |
.288 |
.337 |
.425 |
.762 |
97 |
2338 |
117 |
18 |
76 |
|
|
|
|
Rank in 8 NL teams |
|
|
|
1 |
1 |
1 |
1 |
2 |
2 |
|
1 |
|
5 |
6 |
1 |
4 |
1 |
1 |
|
1 |
|
7 |
|
|
|
|
|
Non-Pitcher Totals |
28.7 |
154 |
5497 |
5047 |
764 |
1495 |
283 |
73 |
100 |
716 |
68 |
|
379 |
426 |
.296 |
.348 |
.441 |
.788 |
104 |
2224 |
105 |
18 |
52 |
|
|
|
|
Pitcher Totals |
27.2 |
154 |
492 |
455 |
35 |
87 |
11 |
2 |
4 |
32 |
1 |
|
13 |
109 |
.191 |
.214 |
.251 |
.464 |
20 |
114 |
12 |
0 |
24 |
|
|
| Rk |
Pos |
Name |
Age |
G |
PA |
AB |
R |
H |
2B |
3B |
HR |
RBI |
SB |
CS |
BB |
SO |
BA |
OBP |
SLG |
OPS |
OPS+ |
TB |
GDP |
HBP |
SH |
SF |
IBB |


%%HEADER%%
Welcome to Manorsoft News
Nothing to say here yet.
Editors
| Id |
Name |
Email |
Comment |
%%EDITORS%%
If you're an editor and not listed above, login, edit preferences and set some web site (only accounts with non-empty web sites are shown here).
%%MENU%%
%%FOOTER%%


Assuming {{assumptionsDisplay}}, prove that {{targetDisplay}}
{{proofError}} |
Correct!
line mistake {{localCheck}}Assumptions: Target: {{questionError}}
Line Templates Success Failure| Name | Reader view | Antecedents | Results | Variables | Error 1 | Error 2 | |
| {{LineTemplateErrors[i]}} |
| Name | Occurs | Message 1 | |
| {{mistakeErrors[i][j]}} |
| indentation(n) | Number of times line n is indented | |||
| template(n) | Name of the template of line n | |||
| antecedents(n) | Formulas line n assumes have been proved | |||
| results(n) | Formulas proved by line n | |||
| variables(n) | Free variables occuring in line n (as expressions) | |||
| text(n) | Raw text of line n | |||
| element(p, n) | The expression instantiating template variable p in line n | |||
| num_lines() | Number of lines in the proof | |||
| assumptions() | Formulas the student can assume in the problem | |||
| target() | Formula the student has to prove in this problem | |||
| question_variables() | Variables occurring in the question (as expressions) | |||
| entry(i, S) | The ith entry of set of expressions S | |||
| if(p,x,y) | If p is true this returns x, otherwise returns y | |||
| substitute(p,x,a) | Replaces all instances of variable x in formula p with element a | |||
| = | {{controlFunctionErrors[i]}} |


today May 5 & 6, 2017
room 24-hours Corner, Library UTeM
Code Your Dream is coming back now
It's Over
Code Your Dream is the second hackathon hosted by FICTS and collaborated with Microsoft.
During our 12-hours event, student developers and designer
will gather on campus to build and make ideas into reality.
It doesn't matter if you're aiming to be the next Tony Stark or you're just looking to learn some code.
Code Your Dream is created for you.
No experience necessary. We invite you to come and learn something new. At the same time,
We bring the wifi, unlimited coffee, and mentors from some of the world's most influential companies.

What is Hackathon?
A hackathon is a marathon software and hardware product creation event. Think of hackathons like the 100m spring of programming and coding. For particular hours given, you and your team will create something new and exciting. With many others team hacking alongside you.
I've never been to a hackthon and I'm nervous.
Have no fear - The Code is first and foremost, a fun learning experience. We have beginner workshops held by industry professional. Our goal is for you to leave with having learned something.
Who can attend?
All FTMK Students and Lecturers
What should I bring?
Bring your matric card. You'll also need your laptop and charger for hacking.
Will this cost me money?
Nope. We'll provide all the food, swag and fun times you need to have an amazing weekend.
What if I don't know what I want to do?
We will be providing experienced people and ideas to help you with. We’ll also suggest ideas and themes leading up to the hackathon, as well as during the event. You are also welcomed to bring you course project or assignment here.
How do team work?
We support teams of up to 4 members. If you want to apply as a group, first submit your individual application.
What if I don’t have a team?
You can decide whether we team you up or you can try and form one at the event!
I don't like team work? Can I solo?
Yes sure. It is all up to you as long as you can finish you work in 12 hours.
When do applications close?
Applications close on May 4th at 23:59.
Still have more questions?
Email us at<EMAIL_ADDRESS>|
Friday 5.05 |
||
|
PM |
6 |
Check In & Register |
|
7 |
Dinner |
|
|
8 |
Opening Ceremony |
|
|
9 |
Team Up & Idea Generation |
|
|
10 |
Hacking Begins |
|
|
Saturday 5.06 |
||
|
AM |
12 |
Pizza Time |
|
3 |
Hacking Continue |
|
|
4 |
Half Time Report |
|
|
7 |
Breakfast and Game Time |
|
|
10 |
Hacking Stop & Demo Times |
|
|
11 |
Judging Time and Award Ceremony |
|
|
12 |
Networking and See you next time |
Let’s face it, prizes just make hackathons more fun. That’s why, we team up with our sponsors to bring you the awesome set of prizes. Drumroll please :


{% extends 'layouts/auth/base.html' %} {% load static %} {% block content %}
SIGNUP TO GET INSTANT ACCESS.
Have an account?


Making Causal Inferences with Text
Identifying the linguistic features that cause people to act a certain way after reading a text, regardless of confounding variables, is something people do all the time without even realizing it. For example,
- Consider university course catalogues. Students peruse these each semester before signing up. What’s the magic 200-word blurb that jives with students enough to sign up? What kind of writing style recommendations could you give to any professor, regarding any subject?
- Consider crowdfunding campaigns [1]. We want to know which writing styles pull in the most money, but the effect of language is confounded by the subject of the campaign – a campaign for someone’s medical bills will be written differently than a campaign for building wells. We want to find writing styles that could help any campaign.
- Consider comments on reddit, where each post has a popularity score. Say that we’re interested in finding what writing styles will help posts become popular. Some authors list their genders on reddit, and a user’s gender may also affect popularity through tone, style, or topic choices [2]. How do you decide what kind of language to reccomend to any person, regardless of their gender.
Across three papers, we develop adversarial learning-based approaches for these kinds of tasks as well as a theory of causal inference to formalize the relationship between text and causality. Our method involves:
-
Training a model which predicts outcomes from text. We control for confounds with adversarial learning [3], [4] or residualization [5].
-
Interpreting the models’ learned parameters to identify the most important words and phrases for the outcome, regardless of confounders.
Compared to other feature selection methods, ours picks features that are more predictive of the outcome and less affected by confounding variables across four domains: e-commerce product descriptions (predictive of sales, regardless of brand), search advertisements (predictive of click-through rate, regardless of landing page), university course descriptions (predictive of enrollment, regardless of subject), and financial complaints (predictive of a short response time, regardless of topic).
Formalizing Textual Causality
Our goal is to find features of text(s) T which are predictive of some desired target variable(s) Y but unrelated to confounding variable(s) C (i.e. the blue bit in the figure below). This is equivalent to picking a lexicon L such that when words in T belonging to L are selected, the resulting set L(T) can explain Y but not C.
In the paper, we formalize this intuitive goal into maximizing an informativeness coefficient
which measures the explanatory power of the lexicon L(T) beyond the information already contained in the confounders C. The red tells us how much variation in Y is explainable by both L(T) and C. The blue fixes C, letting us focus on L(T)’s unique effects. In our paper, we show that under some conditions this coefficient is equivalent to the strength of T’s causal effects on Y! [6]
In practice I(L) can be estimated by this sequence of steps:
- Training a classifier A that predicts Y from L(T) and C
- Training a classifier B that predicts Y from C.
- Measuring error(B) - error(A)
We continue by introducing two methods for coming up with the best lexicon L(T).
Method 1: Adversarial Learning
First, we encode T into a vector e via an attentional bi-LSTM. We then feed e into a series of feedforward neural networks which are trained to predict each target and confounding variable using a cross-entropy loss function. As gradients back-propagate from the confound prediction heads to the encoder, we pass them through a gradient reversal layer. In other words, If the cumulative loss of the target variables is L_t and that of the confounds is L_c, then the loss which is implicitly used to train the encoder is L_e = L_t - L_c. The encoder is encouraged to learn representations of the text which are unrelated to the confounds.
To get the “importance” of each feature, we simply look at the attention scores of the model, since ngrams the model focused on while making Y-predictions in a C-invariant way are themselves predictive of Y but not C!
Method 2: Deep Residualization
Recall that we can estimate I(L) by measuring the amount by which L can further improve predictions of Y compared to predictions of Y made from just C. Our Deep Residualization algorithm is directly motivated by this. It first predicts Y from C as well as possible, and then seeks to fine-tune those predictions using a bag-of-words representation of the text T. The parameters are then updated using the loss from both prediction steps. This two-stage prediction process implicitly controls for C because T is being used to explain the part of Y’s variance that the confounds can’t explain.
Then to get the “importance” of each feature, we trace all possible paths between the feature and output, multiply weights along these paths, then sum across paths.
Social Science Applications
Armed with our theoretical framework and algorithms, we can now pick words and phrases that are strongly associated with arbitrary outcomes, regardless of confounding information. In our papers, we do this for four domains:
- Product descriptions for chocolate and health products on the Japanese e-commerce website Rakuten. We want to find language that explains sales, but not brand or price.
- Written complaints to the Consumer Financial Protection Bureau (CFPB). We want to find language that predicts short response time, regardless of the financial product the complaint is about.
- Search advertisements for real estate, job listings, and apparel on the website Google.com. We want to find language that predicts a high click-through rate (CTR), regardless of the landing page the ad points to.
- Course descriptions and enrollment figures for 6 years of undergraduate offerings at Stanford University. We want to find language that boosts enrollment, regardless of subject and requirements.
As we can see, in each setting one or both of our proposed methods outperform a number of existing feature selection algorithms: Residualized Regressions (RR), Regression with Confound features (RC), Mixed-effects Regression (MR), Mutual information (MI), and Log-Odds Ratio (OR).
Furthermore, we can interpret features these algorithms are selecting to learn about the linguistic dynamics of the associated domains!
- Appeals to politeness and seasonality appear to help make for successful Japanese product descriptions – an interesting intersection of language and culture.
- Concrete details (“multiple”, “xx/xx/xxxx”) and already having taken some steps (“submitted”, “ago”) appears important for writing a complaint that will get handled quickly.
- Appeals to authority (“®“, “Official site”) and personalization (“your” “personalized”) are helpful for search advertising creatives.
- Student choice (“or”) and dynamic activities (“eating”, “doing”, “guest”, “project”) make for successful course descriptions.
Conclusion
This work presented two methods for identifying text features which best explain an outcome, controlling for confounding variables we are not interested in. This method is generally applicable to a variety of data science and social science applications. In the future, we hope to strengthen the method’s theoretical guarantees in a causal inference framework.
The algorithms in this blog post have been open-sourced! Install via pip:
pip3 install causal-selection
This post was based on the following papers:


CHAPTER 21
SUMMARY OF TESTIMONIES BY SURVIVORS
21.1
Introduction
Officially 137 persons have survived the catastrophe, some are crew members, two are advisors and the others are passengers. Most of them have testified to the police in Finland, Sweden and/or Estonia, some three or more times. Only a few crew members have been questioned directly by the JAIC.
They are:3rd engineer Margus Treu
motorman Hannes Kadak
watch A.B. Silver Linde
system engineer Henrik Sillaste
trainee officer Einar Kukk
purser Andres Vihmar (only by Bengt Schager).The JAIC has also interviewed only very few of the passengers or advisers directly, e.g. Pierre Thiger has been interrogated by Olof Forsberg and the statement is attached as Enclosure <IP_ADDRESS>. The Finnish Commission member Tuomo Karppinen has spoken by telephone to the truck driver Eckard Klug and to the advisors Paula Liikamaa and Peter Järvinen. The respective memo is attached as Enclosure 21.1.248.
Andi Meister's book "The Unfinished Logbook" and also the interview which Jutta Rabe held with him and subsequently with Bengt Schager, the psychological expert to the Swedish part of JAIC, reveal however that the Estonian Commission members as well as the Estonian security police and other government bodies have frequently spoken to the crew members, in particular to Margus Treu and Silver Linde. It is unknown whether these questionings were recorded, but at least, recordings are not available.
According to Kari Lethola, chairman of the Finnish part of the JAIC, the following survivors have not been interrogated at all:Igor Gricius from Dobele/Latvia,
Gull-Britt Payr from Stockholm,
Arturas Tamasauskas from Paneveöys/Lithuania.From the latter it is only known that he was the driver of the Lithuanian van, No. CVK 445. He refused to testify at all and left the hospital without permission.
Of the other 133 survivors, however, at least one statement of each is available to this 'Group of Experts'; in total there are 243! Contact was made with some of the key witnesses and additional information was obtained and/or relevant information was confirmed. These interviews - in addition to the statements taken by the police - are also available on video cassettes. The interviews were either carried out by a member of this 'Group of Experts', by the Finnish lawyer Henrik Gahmberg or by the Estonian journalist Juri Liim in close co-operation or in the presence of a member of this 'Group of Experts'.
The relevant parts of some of the statements and all of the interviews have been translated into English and are attached as enclosures.
All the available statements and interviews have been analysed, but only those statements of crew members made on the day of their rescue, or shortly thereafter, were considered to be reliable and thus possibly not influenced by the ESCO/Estline/N&T representatives and/or other interested parties. Similar weight was put on statements and interviews where members of this 'Group of Experts' were present and could talk to the survivor directly.
Several drawings are attached which indicate the layout of the crew and passenger cabins on all decks, the car deck with centre casing and lift arrange-ments, the 1st deck with passenger accommodation and engine control room (ECR), further the 0-deck with sauna/swimming pool/conference compartments and the sewage treatment area with the vacuum system directly next respectively aft of it and, further aft, the location of the heeling tanks and the stabiliser pockets directly aft of the heeling tanks.
The results of the analyses of all the available statements and interviews with regard to the time up to and including the casualty sequence of-events are outlined in the following Subchapters 21.2 - 21.9.
Other relevant observations made by survivors during and after the sinking, while waiting to be rescued and subsequently after their rescue, is explained in Subchapter 21.8 - Other Observations.
21.2
Summary of Testimonies by Surviving Crew Members on Duty
On the bridge there were on duty from 20.00 to 01.00 hours
the 2nd officer (B) Peeter Kannuussaar,
the 3rd officer Andres Tammesand since 22.00 hours
the watch A.B. Silver Linde.
Five or 10 minutes before 01.00 hours the next watch presumably
the 2nd officer (A) Tormi Ainsalu and
the 4th officer Kaimar Kikascame to the bridge.
Also the trainee officer Einar Kukk was on the bridge from about 20.20 hours to about 00.30 hours - see Enclosure 17.2.217.
In the engine room there were on duty from 00.00 hours onwards
the 3rd engineer Margus Treu,
the motorman Hannes Kadak,and at 00.30 hours the system engineer Henrik Sillaste was called down because there were problems with activating the starboard stabiliser fin (accor-ding to the book of Andi Meister "The Unfinished Logbook"), and also the vacuum system of the forward sewage installation was causing difficulties.
21.2.1
Summary of testimonies by trainee officer Einar Kukk - cabin 4103
- 4th deck, port side outside, 2nd but last cabin
Einar Kukk has been interrogated five times according to JAIC's Report, of which all statements are available to this 'Group of Experts'. They are attached as:
(1) on 29.09.94 in Turku - Enclosure 17.2.217
(2) on 29.09.94 in Tallinn - Enclosure <IP_ADDRESS>
(3) on 07.10.94 in Tallinn - Enclosure <IP_ADDRESS>
(4) on 17.10.94 in Tallinn - Enclosure <IP_ADDRESS>
(5) on 28.08.96 in Tallinn - Enclosure <IP_ADDRESS>- At about 23.00 hours a large wave hit the vessel's port bow.
- The master came to the bridge again about 30 minutes later and asked the 3rd officer whether all 4 engines were running, which was confirmed. The master then ordered that the stabilisers were to be activated after the next course change and left the bridge approximately 15 minutes before, i.e. at about 00.05/00.10 hours.
- The wind was coming from SW and veering West, whilst the waves came more from southerly directions. The sea was quite heavy.
- He was apparently still on the bridge when the vessel changed course around 00.25-00.30 hours, although he never said so, but he stated that the 2nd officer told him that the vessel would make about 1 knot less speed after the stabilisers had been activated. The speed was then about 14.5-15.0 knots.
- At about 00.30 hours Silver Linde returned to the bridge and Einar Kukk left for his cabin; in his last statement - Enclosure <IP_ADDRESS> - he said that Linde left the bridge at this time for a new round.
- He went to his cabin, cleared up some matters and then went to Pub Admiral, where also Karaoke was being performed (5th deck, starboard side, aft).
- There he saw Silver Linde in the door at about 00.40 hours. Kukk left after some minutes and went to his cabin. There he arrived at ca. 00.50 hours, went to bed, but could not sleep.
- After 5-10 minutes he heard a very strange noise which was very unusual (and alarming) to him, it could have been an impact or strong vibration and the vessel behaved very strangely; he got up and dressed; while he was putting on his shoes the vessel rocked and heeled abruptly to starboard, he cannot say how much, but it was very far.
- He rushed up to the 7th deck and met boatswain Vello Ruben in the central stairway,
Note: This means that the boatswain had been somewhere further down when the heel occurred - most probably on the car deck - because his cabin was on deck 7.
- when he was between 6th/7th deck he noted a shock/vibration inside the vessel.
- He and the boatswain helped each other out of the door on to the open deck 7;
- the list was then about 45° and the engines had definitely stopped;
- on deck 7 he met Ivan Ziljajev, a crew member with a walkie-talkie, and further forward in a liferaft, Silver Linde;
- when the list was 90°, he looked at his watch: it was 01.30 hours and he slid into the water, the stern was then submerged up to the stabiliser fin.


Home
About
Products
Blog
Contact
Contact Us!
We love hearing from our friends!
Full name:
Email:
What's on your mind?
Submit


King Oguz was victorious. Refresh to try again.
Be sure to follow me on Codepen for more pointless stuff.
King Trost was slain. Congratulations!
Be sure to follow me on Codepen for more pointless stuff.
 MY MEN WILL CRUSH YOU, BOY.
Continue
Spend your gold and experience on upgrades


In short, every columns and rows can be broken into smaller grids
In the layout of a webpage, we visualise that there are invisible lines that cut the vertical space into 12 columns. Some html elements may take out 1 of the 12 columns. Some may need to take out more columns, such as 2, 3, 4 or 6 columns. The number 12 appears to be a magic number for columns, because it allows evenly spaced 2, 3, or 4 columns layout in a webpage.
Various devices with various screen size could be used to open a webpage. The reason behind responsive webpages is that the webpage transform its appearance according to the size of the screen. For example, when users browse a webpage from their phones, the font size need to be bigger for easy reading and the buttons need to be bigger for finger gesture. Certain layout could be omitted to give a better viewing experience in smaller screen size.
When using html tags to create a webpage, we use tags in a way that not only making sense to a browser, but making sense to human reading the tags also. For example, 'h1' tag is for the highest level of heading, while 'h2' is for the second level heading, and 'h3' is for the third level heading. Using 'h3' as the highest level heading, then followed by 'h1' as sub-heading will cause confusion.
Media Queries is a special tag used in CSS denoted as '@media'. Using media queries, the CSS properties could be changed depend on device, screen size, and color.
Due to various platform and version of browsers, the rendering of webpages might not be consistent for the same CSS design. To achieve cross platform and cross browsers compatibility, there is a technique called 'CSS Resetting'. A special css file (eg. normalize.css) is loaded into a webpage to resets the styling of all HTML elements to a consistent baseline.


What is COBRA ?
Plant viruses cause an estimated 50 billion euros loss worldwide per year. Viral diseases represent one of the most limiting factors in European crop
production having negative effects on the quantity and quality of foodstuffs. The recent identification of plant factors required for the virus infection
cycle, together with the development of functional genomic tools in several economically important crops, offer novel opportunities to protect crop plants
against viral diseases. However, current candidate genes are few, and in the better-studied case (i.e. eIF4E, eIF4G) their proteins interact mainly with
the same viral factor. This is a major limitation that compromises the durability of resistances, because resistance depends on the introduction of a
single trait implicating one single viral counterpart. The scope of COBRA is to intensify applied and fundamental research on plant/virus interactions in
order to diversify targets for resistance gene pyramiding strategies and to match the research outputs with industry and breeding applications.
ANR Programme: Food & Feed: crop yields and nutrition security in the context of climate change (PLANT-KBBE) 2013
Project ID: ANR-13-KBBE-0006
Project coordinator: Veronique DECROOCQ (UMR 1332 Biologie et Pathologie du Fruit)
Data source
COBRA gathers information from 3 data sources:
Contributors
COBRA plant virus interaction database is developed in coordination with
other plant genomics and bioinformatics groups via the consortium.
The Plant KBBE project is funded by the European Commission within its 7th Framework
Programme, under the thematic area.
Website
The COBRA website is powered by INRA.
The current page is using a bootstrap (Code licensed under MIT) template provided by
Start bootstrap
(license Apache 2.0).
The web-application is based on Flask
python framework.
The network viewer is based on Cytoscape.js framework.


arver
- LUKS on the loose
arver [-u user] [-c arverdata] [OPTIONS] ACTION [USER] [TARGET]
arver is a tool that helps you to manage large amount of encrypted harddisks over mutliple servers and locations. Furthermore, it helps you to mange access policies to encrypted harddisks of a bunch of people.
By default arver
requires a specific action and (for most actions) a
target to work.
There are some generic command line options:
-u USER
, --user USER
arver
will read ~/.arver
to get your username. Using -u USER
you can override it.-c PATH
, --config-dir PATH
arver
will assume your data storage in ~/.arverdata
. However,
if you have multiple data storage or you want to put it to a different
location you can use the -c PATH
option.For more options see arver -h
The following actions are supported:
--create TARGET
arver
on all targeted disks.-o
, --open TARGET
--close TARGET
-a
, --add-user USER TARGET
-d
, --del-user USER TARGET
-r
, --refresh TARGET
-i
, --info TARGET
-l
, --list-targets
-k
, --keys TARGET
-g
, --garbage-collect
arver
keys.All Targets are defined in the disks
config file. See the section
Disks
for more details. A complete target looks like this:
/location_name/host_name/disk_name
But the TARGET option accepts also partial names and lists. E.g
location1,location2/host2,host4,disk3
targets all disks at location1, all disks on host2 at location2, all disks on
host4 and disk3. If any of the provided target names are not unique arver
will
quit with an error message stating all matching targets.
To run an action on all possible disks use ALL
as target.
Working with arver is quite simple and straight forward. Within the next paragraphs you'll find a detailed overview on the concept of arver, as well as how to set it up and what the different actions are doing exactly.
To setup arver we only need to define in the corresponding configuration files our
(admin-)users and our disks. See section Bootstrapping a new arverdata directory
on how to setup your config.
Arver's configuration files are contained in a single directory which contains all
the necessary (non-private) information to manage your disks. This directory will
be referred to as arverdata
. We recommend you to share that directory among your
group with a distributed version control system such as git.
Eeach admin will be assigned one global LUKS slot. Arver will use this information
to grant or revoke privileges to other users. See the Managing users
section
for a detailed descripton of how this is done.
The arverdata
directory contains the following files and directories:
keys/ <- contains the users `arver` keyrings
users <- yaml file containing all users configuration (see `Users`)
disks <- yaml file containing all disk configuration (see `Disks`)
keys/public/ <- contains gpg public keys of the admins (managed by arver)
To bootstrap a new arverdata
directory just run:
arver -u new_username --init
This will create ~/.arverdata with a sample configuration. See the next two sections on how to adapt it to your setup:
The user
config file contains all your users. It is very important that all users
use exactly the same configuration! It has the following structure:
me:
slot: 1
gpg: BEAFAFFEBEAFAFFEBEAFAFFEBEAFAFFEBEAFAFFE
foo:
slot 2
gpg: AFFEBEAFAFFEBEAFAFFEBEAFAFFEBEAFAFFEBEAF
me
is the identifier you selected on --init
. slot
referes to the LUKS slot which
will be used. This has to be a unique number between 0 and 7. If you'd like
to migrate existing LUKS devices take care to avoid the currently used slot number
(usually 0). gpg
is the (40 digit) fingerprint of the gpg-key. We recommend to use
a dedicated gpg key just for arver
. You can create one with:
gpg --gen-key
And you can find out the fingerprint of your key with:
gpg --fingerprint --list-key key-id
The disks
file contains the following hash tree in yaml notation:
'hostgroup1':
'host1':
'address' : 'host1.example.com'
'pre_open': 'pre_open_host_script.sh'
'disk1' :
'device' : 'storage/disk1'
'post_open': 'post_open_disk_script.sh'
'disk2' :
'device' : 'sdb1'
'host2':
'address' : 'host2.example.com'
'port' : '2222'
'username': 'hans'
'mails' :
'device' : 'nonraid/mails'
'pre_open': 'pre_open_disk_script.sh'
'hostgroup2':
'host3':
'address' : 'host3.example.com'
'username': '#arveruser'
'secure' :
'device' : 'storage/secure'
As you can see this allows you to organize your disks and servers in a tree structure, which will enable you to manage your disks more efficiently within the later commands.
hostgroup1
and hostgroup2
is just a logical container which can contain any
amount of hosts. You can name them as you like. This is interesting if you have
for example multiple hosts in one location and you need to quickly recover from
a power outage from this location.
Invoking
arver --list-targets
will present you the tree of the various targets in your disks
configuration
file.
host1
, host2
and host3
are identifiers for different hosts. These host-
objects can contain multiple disks and can have further information such as the
address
of the host or the ssh-port
number if the ssh daemon is not running
on the standart port.
username
defines the ssh login-user. By default it is root
. To always use
the same username as arver (as defined by -u
or in .arver
) set the
username to #arveruser
. If the user is not root
, the actual LUKS commands
will be executed via sudo
and you need the following entry in your sudoers
file on this machine (assuming the user is in the admin group):
%admin ALL=NOPASSWD: /usr/bin/test, /sbin/cryptsetup
You can also add script hooks to any host or disk. Those will be run during the
open
and close
actions at the appropriate time. The possible options are:
pre_open
, pre_close
, post_open
and post_close
.
Any other entry within the hosts-object are actual disks entries of that particular
host. These disks are represented by an identifier and at least a device
entry
pointing to the actual disk path. So for example the disks on host1
are:
/dev/storage/disk1
identified by disk1
and /dev/sdb1
idetified by disk2
.
The prefix /dev/
is alays added to the disk path.
To initially create an arver managed LUKS device you first need to add the device to the disks config. See above for various examples. You can create the LUKS device by invoking the following command:
$ arver --create TARGET
What's happening behind the scene?
Arver creates a new LUKS device with a random password in your LUKS slot on the
server. The password is then encrypted with your public key (defined in users
)
and stored in arverdata/keys/USERNAME/xxxx
To open a LUKS device managed by arver you can invoke the --open
action on any
target:
$ arver --open TARGET
arver retrieves the password by decrypting the keys in data/keys/YOURUSERNAME and uses this to open the LUKS device on the server.
See the section TARGET
on how to open multiple disks at once.
You can define script hooks to be executed before and after the open command.
See Disks
for details. The hooks are run in the following order:
Those scripts have to be present at the actual host.
If you don't have a key for any of the disks that you wish to open it will be skipped (along with its script hooks).
Closing luks devices is simply done by invoking
$ arver --close TARGET
For this action you can define hooks as well. See Disks
and Action Open
for details.
To gather various information about the different targets you can invoke
$ arver -i TARGET
Which will display you the current configuration of all devices, as well as different parameters of the LUKS device and slot usage.
To add another user to one of the disks you need to have the public key of that user. Just import his key into your gpg keyring.
If you manage your .arverdata
in a version controll system, you'll likely
have the key already in .arverdata/keys/public/USERNAME
where it will be
imported automatically.
Granting the user access to any disk is done by invoking the following command:
$ arver --add-user USERNAME TARGET
For this command to work, you have to trust the gpg key of USERNAME. See
man gpg
section --edit-key. You should always verify that you have the correct
key, e.g. by comparing the fingerprint over a trusted channel. Alternately
you can run arver
with --trust-all
option.
arver
will create a random password for the specific user and add it to
the user-slot on the targeted disks. Furthermore, the password is encrypted
with the public key of the specific user and stored in the data storage under
arverdata/keys/USERNAME/
.
You now need to pass the new keyfile to the other user. So if you use a version
controll system you should now commit the new keys. The other user should
follow the paragraph receiving new keys
.
If you are migrating from an existing LUKS infrastructure and want to add an
initial user to the LUKS device, you will need to use the --ask-password
option,
to provide an existing password.
To remove the permissions of a certain user you can simply run
$ arver --del-user USERNAME TARGET
Which will remove the password stored in the LUKS slot of that device. Remember
that you can also invoke this command on a whole hostgroup or even on all your
managed devices (using -t ALL
). This will help you to quickly and savely
removing any access to encrypted devices of one user immediately amongst the
whole infrastructure.
By design it is not possible to know who has access to which disks by just
looking at the arverdata
. All arver keys including the information on which
disks they fit are encrypted with the users public key. So without the
corresponding private key it is not possible to see the privileges.
You can however display the targets information
to see which slots are used.
But to do this you need access to the server and the users
config.
If you have been granted permission to a certain disk, the first thing you
need to do, is to integrate the new keyfile in your arverdata. If your group
uses a version controll system, you can just pull the arverdata. Otherwise
you copy the received file into arverdata/keys/USERNAME/
.
Important: The next thing you really should do, is to call
$ arver --refresh TARGET
This will replace the actual luks key on the target once more with a fresh random key and also collect all your keys into one file. Replacing the key is important to ensure, that the user who sent you the key, cannot record the actual luks key he sent you and use it as a backdoor in the future.
If you use a version controll system to store your arverdata
you should
commit the new key.
If you use an old cryptsetup version refresh might not work. In that case you cannot replace the luks key. Another problem in that case is, that it might become obvious or at least reconstructable to which devices you have access. To counter this problem, do a garbage collection, which will collect all keys into one keyfile, with:
$ arver -g
If you use a version controll system to store your arverdata
you should do this
always before commiting the arverdata
.
If you want to move a disk to a different server or a server to a different location, there is currently no nice way of doing this. You can however apply the following workaround, after you moved/renamed a disk in the config file:
$ arver --set-key /OLD_LOCATION/OLD_MACHINE/OLD_NAME --refresh NEW_NAME
For example after moving a_disk
from a_server
at a_location
to some_server
at some_location
in the config, you can restore your access with:
$ arver --set-key /a_location/a_server/a_disk --refresh /some_location/some_server/a_disk
cryptsetup
(8).
gnupg
(7).
Arver description: https://tech.immerda.ch/2011/08/arver-distributed-luks-key-management/
Arver project site: https://git.codecoop.org/projects/arver/
YAML website: http://www.yaml.org/


Home
All Crypto
Search
Login
Register
Logout
Edit Announcement
Name:
Image:
Price:
Description:
Bitcoin is a decentralized digital currency that can be transferred on the peer-to-peer bitcoin network.
Payment method:
Crypto Wallet
Credit Card
Debit Card
PayPal


Tesla to unveil truck inspired by 'Blade Runner' Nov. 21
by Craig TrudellTesla Inc. Chief Executive Officer Elon Musk set a date for the debut of the electric-car maker’s first pickup and further tied the truck to the famous sci-fi movie that inspired its design.
Tesla will unveil the truck Nov. 21 in Los Angeles, near the factory where Musk’s other company, Space Exploration Technologies Corp., builds rockets, Musk tweeted Wednesday. In a follow-up post, he said the date was “strangely familiar” and shared a link to the opening credits and scene of the 1982 film Blade Runner, which was set in November 2019.
Musk, 48, has made reference to the movie before in discussing the truck. He told Recode a year ago he wanted Tesla to design “a really futuristic-like cyberpunk, Blade Runner pickup truck.” He released a teaser image of the truck in March.
“I think the Tesla Cybertruck is our best product ever,” Musk said during Tesla’s latest earnings call on Oct. 23.
--With assistance from Dana Hull.


html lang=" en">
< head>
< title> About Us title>
< link rel=" stylesheet" href="../ style.css" />
< meta charset=" utf-8" /> head>
< body>
< h1> About Us h1>
< p> We're a small, colorful website with just two employees: p>
< ul>
< li>
< a href=" me.html"> Me: The Developer a>
li>
< li>
< a href=" mary.html"> Mary: The Graphic Designer a>
li>
ul>
< p>
< a href="../ index.html"> Return to home page a>
p>
body>
html>


Mashape-key
Location
Query string:
Size:
Country Code:
Search
Travels
Adults:
Children:
Seniors:
Departure Date:
Return Date:
Lat. Start point:
Lon. Start point:
Lat. Destination point:
Lon. Destination point:
Search


public class JSONHandler
extends java.lang.Object
implements com.sun.net.httpserver.HttpHandler
The class reads a payload in the request (means HTTP POST request) and tries to parse the JSON using Google Gson library. If parsing was successful then the same JSON is sent, though it is pretty print first, i.e. formatted for better human readability. It sends JSON with error details in case of violation of the format rules.
JVS uses Google Gson library which is able to
deserialize a JSON described in RFC 7159.
Thus error-handling is based on the messages from the com.google.gson.stream.JsonReader.java
.
Yet these messages are well-described to be used by JVS.
If a JSON is malformed, the error message is sent such as the following:
{ "errorCode" : 12345, "errorMessage" : "verbose, plain language description of the problem with hints about how to fix it", "errorPlace" : "the point where error has occurred", "resource" : "filename", "request-id" : "the request id generated by the API for easier tracking of errors" }
errorCode
is a value listed in BadJSONResponse.ERRORS
or zero if some unhandled error
is occurrederrorMessage
and errorPlace
are taken from the caught exception that is thrown
by Gson's JsonReader.resource
a name that is retrieved from a HTTP request URI (path)request-id
an id of a request that is unique for the session
So when JVS determines that a JSON is not valid, it builds BadJSONResponse
object with fields
as described above and serializes it to JSON format. Then JVS sends this JSON as a response for a client.
HTTP status code for any response is 200.
| Constructor and Description |
|---|
JSONHandler() |
| Modifier and Type | Method and Description |
|---|---|
void |
handle(com.sun.net.httpserver.HttpExchange t)
Performs validation of a client request.
|
public void handle(com.sun.net.httpserver.HttpExchange t) throws java.io.IOException
The callback invokes by HttpServer
on incoming request from a client.
It reads a payload from a request and performs validation. If validation is complete,
it sends HTTP OK
response with Content-Type: application/json
.
handle
in interface com.sun.net.httpserver.HttpHandler
t
- HttpExchange
instance passing by HttpServer.java.io.IOException
- if sending a response is not possible.


Consumer Discretionary
Staples
IT
Healthcare
Energy
Finance
Criteria
Value
Sector Average
Beta
% Float Shorted
ROE %
ROA %
ROCE %
3 years sales growth %
Calculate


Capture an Image and Save it so that we can do Graphical Visualisation of Facial Emotion
Capturing an Image
Want to ask model to predict your emotion ??
Type predict
Go Ahead !!


You were redirected to this page because of error during access to the federated resource. Please file an issue about this in out Jira or write a message to our support.
Information we would like to know:
support email:


| axi_qpsk_rx_tsync | |
Initialize axi_qpsk_rx_tsync pointer with a specifc instance of the device based device id.
@param InstancePtr to be initialized
@param DeviceId device id assigned to the device in xparameters.h
@return int XST_SUCCESS if initialization is successful
Write to transfer gateway of axi_qpsk_rx_tsync. Assignments are LSB-justified.
@param InstancePtr is the transfer instance to operate on.
@param Data is value to be written to gateway transfer.
@return None.
@note .
Read from transfer gateway of axi_qpsk_rx_tsync. Assignments are LSB-justified.
@param InstancePtr is the transfer instance to operate on.
@return u32
@note .
Write to syncreset gateway of axi_qpsk_rx_tsync. Assignments are LSB-justified.
@param InstancePtr is the syncreset instance to operate on.
@param Data is value to be written to gateway syncreset.
@return None.
@note .
Read from syncreset gateway of axi_qpsk_rx_tsync. Assignments are LSB-justified.
@param InstancePtr is the syncreset instance to operate on.
@return u32
@note .
Write to auto_restart gateway of axi_qpsk_rx_tsync. Assignments are LSB-justified.
@param InstancePtr is the auto_restart instance to operate on.
@param Data is value to be written to gateway auto_restart.
@return None.
@note .
Read from auto_restart gateway of axi_qpsk_rx_tsync. Assignments are LSB-justified.
@param InstancePtr is the auto_restart instance to operate on.
@return u32
@note .
Write to rxreset gateway of axi_qpsk_rx_tsync. Assignments are LSB-justified.
@param InstancePtr is the rxreset instance to operate on.
@param Data is value to be written to gateway rxreset.
@return None.
@note .
Read from rxreset gateway of axi_qpsk_rx_tsync. Assignments are LSB-justified.
@param InstancePtr is the rxreset instance to operate on.
@return u32
@note .
Write to packetsizerf gateway of axi_qpsk_rx_tsync. Assignments are LSB-justified.
@param InstancePtr is the packetsizerf instance to operate on.
@param Data is value to be written to gateway packetsizerf.
@return None.
@note .
Read from packetsizerf gateway of axi_qpsk_rx_tsync. Assignments are LSB-justified.
@param InstancePtr is the packetsizerf instance to operate on.
@return u32
@note .
Write to enable gateway of axi_qpsk_rx_tsync. Assignments are LSB-justified.
@param InstancePtr is the enable instance to operate on.
@param Data is value to be written to gateway enable.
@return None.
@note .
Read from enable gateway of axi_qpsk_rx_tsync. Assignments are LSB-justified.
@param InstancePtr is the enable instance to operate on.
@return u32
@note .


2016 Liby.me
Liby.me website is designed and developed with front-end and back-end completely by Liby Lee (Ziyang Li, as his formal name). This website front-end includes front-stage pages: Liby.me, and back-stage: Liby.me Admin Panel. The back-end is built solely on ExpressJs of NodeJs. Further dependencies I used to develop this site is listed below.
I developed this website with enormous enjoyment. Here appreciate to all of my friends and my family who gave words and encouraged me. Thanks you so much. If you have any concern, please email to<EMAIL_ADDRESS>or just directly send me private messages at the bottom of Me page.
我在开发这个网站的时候觉得非常的开心，在此感谢所有我的朋友和家人和他们提供的建议。如果您有任何疑问，请发送邮件到<EMAIL_ADDRESS>这个页面的底端给我发送站内私信。也十分感谢您的来访
- JQuery - Front-end Framework
- Font Awesome Icon Library - Icons
- Summer note - Blog Html Generator
- DateTimePicker - To pick date more conviniently
- ejs - HTML Rendering
- Body Parser - Help parse the post data
- Cookie Parser - Help parse the cookies
- Express JS - Back-end basic framework based on NodeJs
- NodeJs - Back-end framework
- MySql - Database
- NGINX - Server Application
- CentOS 6.5 - Server System


@* * Copyright 2023 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @*********************************** Example usage: '_help -> "Custom help", (shows help text) '_labelClass -> "form-label-bold", (extra class for labels) '_legend -> true, (shows legend/label) '_optional -> true, (shows optional/required for screen readers) '_helpIndent -> "help text", (shows helptext with indent class) '_pound -> true, (shows pound sign on inputs) '_add' -> true, (shows add/remove links) '_detailsQuestion -> "The question", (details element question text) '_detailsAnswer -> "The answer" (details element answer text) '_characterCount -> "250" (character limit) '_nojsText -> "no js text" (shows no js text) ***********************************@ @import views.html.helper._ @(elements: helper.FieldElements)(implicit messages: Messages)


medium-converter
Convert Medium posts to pdf, mobi or epub
>
Fetching post from Medium...
Download PDF
Download MOBI
Download EPUB
Download another Medium article
Converting...


--- layout: page title: About header-img: "img/about-bg.png" ---
Recent college graduate, excited to learn different programming applications.


Hello, my name is Lewis Mutuma
I'm a developer and also a student at Moringa school, Which is a world class software development school. Here is a link to find out more about Moringa schoolClick here.
You might be eager to know more about me, Right?
Well I'm an addict of good music, and music feeds my soul, i also sing.
I am a ex high school boy and i decided to take a programming class because it has always been my passion to play around with codes to create beautiful wedsites, webpages and applications
The thing that makes me cool is that I'm open minded and always embrace changes and new ideas.
I'm a developer specialized in 4 developing languages;
Before i give a sneak peak on the websites and applications that i have ventured my all of my hard work in, I'll tell you that all projects can be found on Github.
Anita's Kitchen is a webpage that tells about Anita's hotel bussiness and shows food served
This webpage is an online shopping site where people buy groceries online and delived to you


I made a mistake one day. More of a typo really. I used “bitwise and” instead of “logical and” in the code. A colleague of mine noticed that during the review and said something like this. “You shouldn't use bitwise operators instead of logical ones, the latter do short-circuiting.”
Yes. Both parts of that sentence are valid. You shouldn't use bitwise operators instead of logical ones. Logical operators in C++ perform short-circuit evaluation. That's true. But the invisible implication between the two parts is wrong.
Short-circuiting may be or may be not beneficial for the performance. It may be or may be not performed on bitwise operators too. And sometimes you're better off not doing logic the most logical way to begin with.
I want to propose a game. Let's measure things and see if we can predict the measurements before they come. We did a similar thing last year, and that was fun, so why not?
So here is the benchmark example.
#include <chrono> #include <iostream> #include <random> #include <array> int main() { using TheType = int; constexpr auto TheSize = 16 * 10000000; std::mt19937 rng(0); std::uniform_int_distribution<TheType> distribution(0, 1); std::vector<TheType> xs(TheSize); for (auto& digit : xs) { digit = distribution(rng); } volatile auto four_1_in_a_row = 0u; auto start = std::chrono::system_clock::now(); for (auto i = 0u; i < TheSize - 3; ++i) if(xs[i] == 1 && xs[i+1] == 1 && xs[i+2] == 1 && xs[i+3] == 1) ++four_1_in_a_row; auto end = std::chrono::system_clock::now(); std::cout << "time: " << (end-start).count() * 1e-9 << " 1111s: " << four_1_in_a_row << "\n"; } |
I've made several variants of this code, compiled it with clang 3.8.0-2ubuntu4 -std=c++14 -O2, and measured their run time on Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz.
Using your intuition and best judgment, please estimate their relative performance. Please use the slider below the code samples.
The main question. Is && faster than &?
for (auto i = 0u; i < TheSize - 3; ++i) if(xs[i] == 1 && xs[i+1] == 1 && xs[i+2] == 1 && xs[i+3] == 1) ++four_1_in_a_row; |
for (auto i = 0u; i < TheSize - 3; ++i) if(xs[i] == 1 & xs[i+1] == 1 & xs[i+2] == 1 & xs[i+3] == 1) ++four_1_in_a_row; |
They are almost the same.
“Logical and” can also be substituted with a multiplication operator. It has the same truth table on 0 and 1.
for (auto i = 0u; i < TheSize - 3; ++i) if(xs[i] == 1 & xs[i+1] == 1 & xs[i+2] == 1 & xs[i+3] == 1) ++four_1_in_a_row; |
for (auto i = 0u; i < TheSize - 3; ++i) if((xs[i] == 1) * (xs[i+1] == 1) * (xs[i+2] == 1) * (xs[i+3] == 1)) ++four_1_in_a_row; |
They are almost the same.
In this simple example, we can substitute almost all the logic with computation. Instead of comparing each value separately we can calculate the squared error for the whole 4-tuple.
for (auto i = 0u; i < TheSize - 3; ++i) if(xs[i] == 1 && xs[i+1] == 1 && xs[i+2] == 1 && xs[i+3] == 1) ++four_1_in_a_row; |
... inline int sq(int x) { return x*x; } ... for (auto i = 0u; i < TheSize - 3; ++i) if(sq(xs[i] - 1) + sq(xs[i+1] - 1) + sq(xs[i+2] - 1) + sq(xs[i+3] - 1) == 0) ++four_1_in_a_row; |
They are almost the same.
We don't really need multiplications. We don't really need squared error. Why don't we calculate an absolute error instead?
... inline int sq(int x) { return x*x; } ... for (auto i = 0u; i < TheSize - 3; ++i) if(sq(xs[i] - 1) + sq(xs[i+1] - 1) + sq(xs[i+2] - 1) + sq(xs[i+3] - 1) == 0) ++four_1_in_a_row; |
for (auto i = 0u; i < TheSize - 3; ++i) if(std::abs(xs[i] - 1) + std::abs(xs[i+1] - 1) + std::abs(xs[i+2] - 1) + std::abs(xs[i+3] - 1) == 0) ++four_1_in_a_row; |
They are almost the same.
The question is, will there be any gain if we simply translate our code to work with doubles?
... using TheType = int; ... for (auto i = 0u; i < TheSize - 3; ++i) if(xs[i] == 1 && xs[i+1] == 1 && xs[i+2] == 1 && xs[i+3] == 1) ++four_1_in_a_row; |
... using TheType = double; ... for (auto i = 0u; i < TheSize - 3; ++i) if(xs[i] == 1 && xs[i+1] == 1 && xs[i+2] == 1 && xs[i+3] == 1) ++four_1_in_a_row; |
They are almost the same.
But if we change the code to avoid logic, will there be any gain?
... inline int sq(int x) { return x*x; } ... using TheType = int; ... for (auto i = 0u; i < TheSize - 3; ++i) if(sq(xs[i] - 1) + sq(xs[i+1] - 1) + sq(xs[i+2] - 1) + sq(xs[i+3] - 1) == 0) ++four_1_in_a_row; |
... inline double sq(int x) { return x*x; } ... using TheType = double; ... for (auto i = 0u; i < TheSize - 3; ++i) if(sq(xs[i] - 1) + sq(xs[i+1] - 1) + sq(xs[i+2] - 1) + sq(xs[i+3] - 1) == 0) ++four_1_in_a_row; |
They are almost the same.
That sound a bit like cheating because with single precision types we would have to read two times less from the memory but let's give it a go.
... using TheType = double; ... for (auto i = 0u; i < TheSize - 3; ++i) if(xs[i] == 1 && xs[i+1] == 1 && xs[i+2] == 1 && xs[i+3] == 1) ++four_1_in_a_row; |
... using TheType = float; ... for (auto i = 0u; i < TheSize - 3; ++i) if(xs[i] == 1 && xs[i+1] == 1 && xs[i+2] == 1 && xs[i+3] == 1) ++four_1_in_a_row; |
They are almost the same.
This is the bonus round. There is a notion, right along with the short-circuiting being good for performance, that the comparison with zero is cheaper than any other comparison. Let's try it out.
for (auto i = 0u; i < TheSize - 3; ++i) if(xs[i] == 1 && xs[i+1] == 1 && xs[i+2] == 1 && xs[i+3] == 1) ++four_1_in_a_row; |
for (auto i = 0u; i < TheSize - 3; ++i) if(xs[i] == 0 && xs[i+1] == 0 && xs[i+2] == 0 && xs[i+3] == 0) four_0_in_a_row++; |
They are almost the same.
| ← there's more. | + Github & Twitter & Hacker News |


{% extends 'projectroles/base.html' %} {% block title %}Server Error{% endblock %} {% block content %}
Something went wrong on the server side. We track these errors automatically, but if the problem persists feel free to contact the administration.


Coconut Milk Rice
Moong Dal Khichdi
Vegetable Pulao
Matar Paneer
Vegitable FriedRice
Rava Idli
Rava Upma
Rava Dosa
Paneer-65
Rava Uttapam
Matar Paneer is one of the most popular North Indian paneer dishes. It is a simple preparation which can...
Palak paneer
Aloo matar
Baigan bharta
Soya matar
Beetroot poriyal


The International Physics Olympiad (IPhO) is the World Championship Physics Competition for High School students and is held annually in a different country.
The first IPhO was held in 1967 in Poland. It has gradually expanded to over 80 countries from 5 continents. The IPhO International Board ensures that the competition takes place each year and that each host country observes the regulations and traditions of the IPhO.
ipho-unofficial.org is an online resource for the past and upcoming Physics Olympiads.
It is unofficial and non-profit, and does not hold any rights over its contents. The data is taken from various websites including ipho-new.org, which is the official website of IPhO.
The theme and design of the website is based on imo-official.org.
ipho-unofficial.org is an open source project. View on Github.
ipho-unofficial.org is an open source project. View on Github.


--- layout: default key: index_tutorial tutorial: list title: Rong Zhuang's Tutorial categories: - name: Basic Knowledge description: OS, Database, IDE, Virtual Machine, Git type: basis - name: Javascript description: Javascript, Promise, Observable type: javascript - name: RESTful description: RESTful Api, ASP.NET Core, Postman, Spring Boot type: restful - name: Node.js description: Node.js, NPM, Yarn, Express, Electron type: nodejs - name: AngularJS description: Angular, TypeScript, Routing, Pipes, Jasmine, MEAN type: angular - name: ReactJS description: React JS, Flux, Redux, Routing, React Native type: reactjs - name: Java description: Java, Eclipse, JUnit, Spring Boot, Hibernate type: java - name: Mobile Development description: iOS, Android, Xamarin, Cordova type: mobile - name: Docker description: Docker Hub, Image, Container, Kitematic, Dockerfile, Compose type: docker ---
{{ tutorial.excerpt | remove: "
" | remove: ""}}


New in version 0.3.0.
The list-like object that contains every SingleImage in the Image container. It implements collections.Sequence prototocol.
New in version 0.3.0.
(numbers.Integral) The current index of its internal iterator.
Note
It’s only for internal use.
Scoped setter of current_index. Should be used for with statement e.g.:
with image.sequence.index_context(3):
print(image.size)
Note
It’s only for internal use.
Each single image in Image container. For example, it can be a frame of GIF animation.

New in version 0.3.0.
(wand.image.Image) The container image.
(numbers.Integral) The delay to pause before display the next image (in the sequence of its container). It’s hundredths of a second.
(numbers.Integral) The index of the single image in the container image.


|
ViennaCL - The Vienna Computing Library
1.5.2
|
A dense matrix class. More...
#include <matrix.hpp>
Public Types | |
| typedef base_type::size_type | size_type |
Public Member Functions | |
| matrix () | |
| The default constructor. Does not allocate any memory. | |
| matrix (size_type rows, size_type columns, viennacl::context ctx=viennacl::context()) | |
| Creates the matrix with the given dimensions. | |
| template<typename LHS , typename RHS , typename OP > | |
| matrix (matrix_expression< LHS, RHS, OP > const &proxy) | |
| matrix (identity_matrix< SCALARTYPE > const &m) | |
| Creates the matrix from the supplied identity matrix. | |
| matrix (zero_matrix< SCALARTYPE > const &m) | |
| Creates the matrix from the supplied zero matrix. | |
| matrix (scalar_matrix< SCALARTYPE > const &m) | |
| Creates the matrix from the supplied scalar matrix. | |
| matrix (const base_type &other) | |
| matrix (const self_type &other) | |
| void | resize (size_type rows, size_type columns, bool preserve=true) |
| Resizes the matrix. Existing entries can optionally be preserved. |
A dense matrix class.
| SCALARTYPE | The underlying scalar type (either float or double) |
| F | Storage layout: Either row_major or column_major (at present only row_major is supported) |
| ALIGNMENT | The internal memory size is given by (size()/ALIGNMENT + 1) * ALIGNMENT. ALIGNMENT must be a power of two. Best values or usually 4, 8 or 16, higher values are usually a waste of memory. |
| typedef base_type::size_type size_type |
Reimplemented from matrix_base< SCALARTYPE, F >.
| matrix | ( | ) | [inline, explicit] |
The default constructor. Does not allocate any memory.
| matrix | ( | size_type | rows, |
| size_type | columns, | ||
| viennacl::context | ctx = viennacl::context() |
||
| ) | [inline, explicit] |
Creates the matrix with the given dimensions.
| rows | Number of rows |
| columns | Number of columns |
| ctx | Optional context in which the matrix is created (one out of multiple OpenCL contexts, CUDA, host) |
| matrix | ( | matrix_expression< LHS, RHS, OP > const & | proxy | ) | [inline] |
| matrix | ( | identity_matrix< SCALARTYPE > const & | m | ) | [inline] |
Creates the matrix from the supplied identity matrix.
| matrix | ( | zero_matrix< SCALARTYPE > const & | m | ) | [inline] |
Creates the matrix from the supplied zero matrix.
| matrix | ( | scalar_matrix< SCALARTYPE > const & | m | ) | [inline] |
Creates the matrix from the supplied scalar matrix.
Resizes the matrix. Existing entries can optionally be preserved.
| rows | New number of rows |
| columns | New number of columns |
| preserve | If true, existing values are preserved. |
Reimplemented from matrix_base< SCALARTYPE, F >.


Turing tar-pit
`Prev `__
T
`Next `__
--------------
**Turing tar-pit**: n.
1. A place where anything is possible but nothing of interest is
practical. Alan Turing helped lay the foundations of computer science by
showing that all machines and languages capable of expressing a certain
very primitive set of operations are logically equivalent in the kinds
of computations they can carry out, and in principle have capabilities
that differ only in speed from those of the most powerful and elegantly
designed computers. However, no machine or language exactly matching
Turing's primitive set has ever been built (other than possibly as a
classroom exercise), because it would be horribly slow and far too
painful to use. A Turing tar-pit is any computer language or other tool
that shares this property.
2. The perennial `*holy wars* <../H/holy-wars.html>`__ over whether
language A or B is the “most powerful”.
--------------
+-------------------------------+----------------------------+---------------------------+
| `Prev `__ | `Up <../T.html>`__ | `Next `__ |
+-------------------------------+----------------------------+---------------------------+
| turbo nerd | `Home <../index.html>`__ | turist |
+-------------------------------+----------------------------+---------------------------+


Communism advocates for a society free of class division by money, in effect a state with a low Gini coefficient. The fall of Eastern European Communism in the late 1980s and early 1990s provides an opportunity to study the effect of conversion from Communism to Capitalism on the Gini coefficient. This analysis focuses on four former Eastern Bloc countries whose borders were not altered in the ensuing years.
Of the nine Eastern European countries that were ostensibly Communist in the second half of the 20th century, seven were still united by the Warsaw Pact when the Berlin Wall fell in 1989. Since then, four of them—Bulgaria, Hungary, Poland, and Romania—have remained intact and are therefore appropriate for this study. The dissolution of the USSR and Czechoslovakia into their constituent states and the reunification of East Germany with West Germany impede the analysis of these three former Eastern Bloc countries.
Data are from the UNU-WIDER World Income Inequality Database (WIID) filtered with Source=Transmonee 2004 and Welfaredefn=Income, net. To emphasize shape over score, data for each state are internally scaled from minimum to maximum. Data are not available for Bulgaria in 1989-1991 & 2001-2002 or Hungary in 1990 & 1992.
Julian Lange
Major Studio I
Quantitative Data


enum class RegisterType
Represents the type of a register.
|
A register that contains input values from a data set instance. |
|
|
A register that can be used for calculations and will be loaded with some default value (given by a DefaultValueProvider). |
|
|
A register that is read-only and will be initialised with values from a set of constants in the LGP environment. |
|
|
A register that does not fall in some known range will have unknown type. This type primarily serves as a default case when mapping register index ranges to register types. |


{% extends 'votings/bootstrap.html' %} {% comment %} Copyright 2018 - 2019 Fabian Wenzelmann Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. {% endcomment %} {% load static %} {% load bootstrap4 %} {% block bootstrap4_content %} {% block additional_static %} {% endblock %}


You are {{ submission.perspective.gender }}.
{{ submission.perspective.text }}
Submitted {{ submission.created_at }}
More from this round.
Click "Like" below to see new submissions in your news feed.


Easily manage and communicate across multiple projects using the combined power of "an enhanced wiki and issue tracking system" coupled with a "flexible Scrum tool" and a distributed concurrent versions system.
CodeBrowserBrowse through your project code's history quickly and easily from anywhere!


--- layout: post title: Kao, a Chinese Amrican, share the Nobel Prize in Physics categories: - News tags: [] status: publish type: post published: true meta: blogger_blog: c13s.blogspot.com blogger_author: djiao blogger_6253bd7e6fe76b5f854e34389ec53677_permalink: '8529873543680410685' _elasticsearch_indexed_on: '2009-10-06 13:29:00' ---
The 2009 Nobel Prize in Physics will be split among three researchers who laid the groundwork in the 1960s for today's digital-media and telecommunications infrastructure. The Nobel Foundation announced the prizewinners in a news conference this morning from the Royal Swedish Academy of Sciences in Stockholm.
Half the prize will be awarded to Charles Kao, formerly of Standard Telecommunication Laboratories in Harlow, England (now Nortel), and the Chinese University of Hong Kong. Kao was an early pioneer in the field of fiber optics, the transmission of information over flexible glass fibers.


NAME:
Name has errors
DESCRIPTION:
Description has errors
PRICE:
Price has errors
HOURS:
Hours has errors


{% include head.html %}
{% include navigation.html %} {% include header.html %} {% include next-meeting.html %} {% include meetups-prev-nearest.html %} {% include partner-events.html %} {% include find-us-links.html %} {% include pool.html %} {% include sponsors.html %} {% include about.html %} {% include organizers.html %} {% include footer.html %} {% include scripts.html %} {% include googleanalitics.html %}


Page Not Found
Sorry
We are sorry for this inconvience. Not sure what happened but unfortunately we were unable to display your web page successfully. Please try again or contact support to report your issue<EMAIL_ADDRESS>We are sorry for this inconvience. Not sure what happened but unfortunately we were unable to display your web page successfully. Please try again or contact support to report your issue: webadmin@inquisibee.com


{% extends "include/base2.html" %}
{% load i18n %}
{% block title %}
{% trans 'About' %}
{% endblock %}
{% block content%}
{% trans 'Notebook is to help your learn by simply making and editing notes. ' %} {% trans 'With ease, you can accomplish the whole learning process.' %}{% trans '9 notes a day, is 1 day not wasted!' %}
{% trans 'One page introduction' %}
{% trans "Notebook is also well suited for a team to cooperate on a project. Your team can use it to coordinate team efforts in learning and exploring a new project. Notebook is an effective tool for knowledge sharing within a company. Using notebook for knowledge sharing, knowledge can be flowing more continuously within your company. It is a much better way to organize your company's knowledge and wisdom than traditional document-centered knowledge systems. If you are intereted in setting up a site for your team or your company, please contact:" %} {% trans 'sys @ 3exps.org' %}


Dept. of Computer Science and Engineering
Those who still have not registered for codevita-season-9, Please Register first for Codevita season 9 then fill the below form as quick as possible.
Start : 10th Jul, 2020, 09:30 UTC
End : 25th Jul, 2020, 09:30 UTC
Takes Place Online
Start : 7th Nov, 2020, 09:30 UTC
End : 8th Nov, 2020, 09:30 UTC
Takes Place Online
Start : 17th Feb, 2021, 03:30 UTC
End : 17th Feb, 2021, 12:30 UTC
Takes Place At the Venue


Updated recommendations on first-line and second-line antiretroviral regimens and post-exposure prophylaxis and recommendations on early infant diagnosis of HIV: interim guidance
Interim guidance - Policy brief
Overview
Update on antiretroviral regimens for treating and preventing HIV infection: Since 2016, WHO has recommended tenofovir disoproxil fumarate (TDF) + lamivudine (3TC) (or emtricitabine, FTC) + efavirenz (EFV) 600 mg as the preferred first- line antiretroviral therapy (ART) regimen for adults and adolescents. WHO recommended dolutegravir (DTG) as an alternative option to EFV for first-line ART because of the uncertainty regarding the safety and efficacy of DTG during pregnancy and among people living with HIV receiving rifampicin-based tuberculosis (TB) treatment. New WHO interim guidelines contain recommendations regarding preferred first-line regimens for adults, adolescents and children initiating ART, which now include DTG and RAL.
Update on early infant diagnosis of HIV: In 2016, WHO recommended that HIV virological testing be used to diagnose HIV infection among infants and children younger than 18 months and that ART be started without delay while a second specimen is collected to confirm the initial positive virological test result.


Picture this. We want to stream live video. In fact don’t need PHP. We only need a flash player (or HTML5) and our live feed. The problem appear when we need to offer some kind of security. For example we want to show videos only to registered users based on our authentication system. Imagine we’re using sessions for validate users. That’s means we cannot put the media in a public folder and point our media player to those files. We can obfuscate the file name but it’ll remain public. In this small tutorial We’re going to see how to implement it with PHP. Let’s start.
First we are going to forget for a while video files. We are going to think in pictures.
If we don’t need to protect the file we can place the image in public folder:
<image href=’/path/to/image.png’ alt=’image’ width=’10’ height=’10’/>
But if we want to protect the picture we cannot place it on a public folder. We need to place it on a server folder and flush it with a code like this:
// here you can chech your sessions
header("Content-Type: image/jpeg");
readfile(‘/path/of/image’);
That’s easy. Isn’t it?. Video files are similar than pictures. We cannot use image tag but the behaviour is the same. With HTML5 we can show them with HTML tags and without HTML5 we need to use a client viewer (generally a flash viewer).
We can use the same technique than the previous example with video files but the problem now is the size of the file. Live video feeds are never ends. If we use the previous code our server must read the live feed forever, and our browser will be waiting forever too. We can easily change this behaviour. Instead to read the entire video file and flush it to the browser we can read small pieces of the file and flush them without waiting until the end of the file.
<?php
// here you can chech your sessions
function flush_buffers(){
ob_end_flush();
ob_flush();
flush();
ob_start();
}
$filename = "/path/of/fideofeed.flv";
if (is_file($filename)) {
header('Content-Type: video/x-flv');
header("Content-Disposition: attachment; filename=video.flv");
$fd = fopen($filename, "r");
while(!feof($fd)) {
echo fread($fd, 1024 * 5);
flush_buffers();
}
fclose ($fd);
exit();
}
If we want to stream static video files we also need to take into account the start of the video. When someone want to move across the video going forward and backward within the video client, our server script will retrieve a variable with the start time. That’s means we need to use this start time to open the file from this byte instead from the beggining.


{% if type == 'case-notes' %}
{% url "end_users:end_user_detail" end_user_advisory.id "case-notes" as post_url %}
{% include "includes/case-notes.html" %}
{% elif type == 'ecju-queries'%}
{% include "includes/ecju-queries.html" with object_type="end-user-advisory" case_id=end_user_advisory.id %}
{% elif type == 'ecju-generated-documents'%}
{% include "core/ecju-generated-documents.html" %}
{% endif %}


×
HACKATHON
DESCRIPTION
Wake up all the Nueron in your brain and make all veins pumb hot blood for it. It's going to be a great occasion to grow up your intelligence, creativity and diagnostic skills.Come on... let's invoke something new ...!!!
RULES
- Maximum number of participants allowed in one team is four(4).
- Duratioin of the event is 2 days.
- Topic will be provided on spot.
- Participants can carry their tools, extra items shall be provided asper requirements.
- Pre-designed projects will not be allowed.
- Project should be based on the given topic.
- Lab facility will be available.
- Accomodation will be provided.
- Participants should complete their project within the time limit.
- Only a single person among a team need to register.
- Judgement will be based on the basis of the completion of the project, percussion and overall outcome.
- Cost for any project requirement to be purchased will not be provided.
- Decision of the judges will be final and binding.
CLOSED


| 1 | /* | |
| 2 | * Licensed to the Apache Software Foundation (ASF) under one | |
| 3 | * or more contributor license agreements. See the NOTICE file | |
| 4 | * distributed with this work for additional information | |
| 5 | * regarding copyright ownership. The ASF licenses this file | |
| 6 | * to you under the Apache License, Version 2.0 (the | |
| 7 | * "License"); you may not use this file except in compliance | |
| 8 | * with the License. You may obtain a copy of the License at | |
| 9 | * | |
| 10 | * http://www.apache.org/licenses/LICENSE-2.0 | |
| 11 | * | |
| 12 | * Unless required by applicable law or agreed to in writing, | |
| 13 | * software distributed under the License is distributed on an | |
| 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| 15 | * KIND, either express or implied. See the License for the | |
| 16 | * specific language governing permissions and limitations | |
| 17 | * under the License. | |
| 18 | */ | |
| 19 | package org.apache.myfaces.shared.view; | |
| 20 | ||
| 21 | import java.io.IOException; | |
| 22 | ||
| 23 | import jakarta.servlet.ServletOutputStream; | |
| 24 | import jakarta.servlet.WriteListener; | |
| 25 | ||
| 26 | /** | |
| 27 | * Delegates the standard OutputStream-methods (close, flush, write) | |
| 28 | * to the given ServletOutputStream, if the ResponseSwitch is enabled | |
| 29 | */ | |
| 30 | class SwitchableOutputStream extends ServletOutputStream | |
| 31 | { | |
| 32 | ||
| 33 | ServletOutputStream _delegate = null; | |
| 34 | ResponseSwitch _responseSwitch = null; | |
| 35 | ||
| 36 | public SwitchableOutputStream(ServletOutputStream delegate, ResponseSwitch responseSwitch) | |
| 37 | { | |
| 38 | _delegate = delegate; | |
| 39 | _responseSwitch = responseSwitch; | |
| 40 | } | |
| 41 | ||
| 42 | @Override | |
| 43 | public void close() throws IOException | |
| 44 | { | |
| 45 |
1
1. close : negated conditional → NO_COVERAGE |
if (_responseSwitch.isEnabled()) |
| 46 | { | |
| 47 |
1
1. close : removed call to jakarta/servlet/ServletOutputStream::close → NO_COVERAGE |
_delegate.close(); |
| 48 | } | |
| 49 | } | |
| 50 | ||
| 51 | @Override | |
| 52 | public void flush() throws IOException | |
| 53 | { | |
| 54 |
1
1. flush : negated conditional → NO_COVERAGE |
if (_responseSwitch.isEnabled()) |
| 55 | { | |
| 56 |
1
1. flush : removed call to jakarta/servlet/ServletOutputStream::flush → NO_COVERAGE |
_delegate.flush(); |
| 57 | } | |
| 58 | } | |
| 59 | ||
| 60 | @Override | |
| 61 | public void write(byte[] b, int off, int len) throws IOException | |
| 62 | { | |
| 63 |
1
1. write : negated conditional → NO_COVERAGE |
if (_responseSwitch.isEnabled()) |
| 64 | { | |
| 65 |
1
1. write : removed call to jakarta/servlet/ServletOutputStream::write → NO_COVERAGE |
_delegate.write(b, off, len); |
| 66 | } | |
| 67 | } | |
| 68 | ||
| 69 | @Override | |
| 70 | public void write(byte[] b) throws IOException | |
| 71 | { | |
| 72 |
1
1. write : negated conditional → NO_COVERAGE |
if (_responseSwitch.isEnabled()) |
| 73 | { | |
| 74 |
1
1. write : removed call to jakarta/servlet/ServletOutputStream::write → NO_COVERAGE |
_delegate.write(b); |
| 75 | } | |
| 76 | } | |
| 77 | ||
| 78 | @Override | |
| 79 | public void write(int b) throws IOException | |
| 80 | { | |
| 81 |
1
1. write : negated conditional → NO_COVERAGE |
if (_responseSwitch.isEnabled()) |
| 82 | { | |
| 83 |
1
1. write : removed call to jakarta/servlet/ServletOutputStream::write → NO_COVERAGE |
_delegate.write(b); |
| 84 | } | |
| 85 | } | |
| 86 | ||
| 87 | @Override | |
| 88 | public boolean isReady() | |
| 89 | { | |
| 90 |
1
1. isReady : negated conditional → NO_COVERAGE |
if (_responseSwitch.isEnabled()) |
| 91 | { | |
| 92 |
2
1. isReady : replaced boolean return with false for org/apache/myfaces/shared/view/SwitchableOutputStream::isReady → NO_COVERAGE 2. isReady : replaced boolean return with true for org/apache/myfaces/shared/view/SwitchableOutputStream::isReady → NO_COVERAGE |
return _delegate.isReady(); |
| 93 | } | |
| 94 | | |
| 95 |
1
1. isReady : replaced boolean return with false for org/apache/myfaces/shared/view/SwitchableOutputStream::isReady → NO_COVERAGE |
return true; |
| 96 | } | |
| 97 | ||
| 98 | @Override | |
| 99 | public void setWriteListener(WriteListener wl) | |
| 100 | { | |
| 101 |
1
1. setWriteListener : negated conditional → NO_COVERAGE |
if (_responseSwitch.isEnabled()) |
| 102 | { | |
| 103 |
1
1. setWriteListener : removed call to jakarta/servlet/ServletOutputStream::setWriteListener → NO_COVERAGE |
_delegate.setWriteListener(wl); |
| 104 | } | |
| 105 | } | |
| 106 | | |
| 107 | } | |
Mutations | ||
| 45 |
1.1 |
|
| 47 |
1.1 |
|
| 54 |
1.1 |
|
| 56 |
1.1 |
|
| 63 |
1.1 |
|
| 65 |
1.1 |
|
| 72 |
1.1 |
|
| 74 |
1.1 |
|
| 81 |
1.1 |
|
| 83 |
1.1 |
|
| 90 |
1.1 |
|
| 92 |
1.1 2.2 |
|
| 95 |
1.1 |
|
| 101 |
1.1 |
|
| 103 |
1.1 |


1.2 Create a dataframe with identities and group memberships of individuals
# Specify number of individuals and groups (or clusters)
n_inds <- 50
n_groups <- 4
# Create IDs for all individuals and assign random social groups to individuals
set.seed(1209)
individual_df <- tibble(
Ind = paste0("ind_", str_pad(1:n_inds, width = nchar(n_inds), pad = "0")),
Group = sample(x = paste0("group_", letters[1:n_groups]),
size = n_inds,
replace = T))
# Create a dataframe with all possible combinations of individuals except 'self-relationships'
network_df <- expand.grid(Ind_A = individual_df$Ind,
Ind_B = individual_df$Ind,
stringsAsFactors = F) %>%
left_join(select(individual_df, Ind_A = Ind, Ind_A_Group = Group),
by = "Ind_A") %>%
left_join(select(individual_df, Ind_B = Ind, Ind_B_Group = Group),
by = "Ind_B") %>%
filter(Ind_A != Ind_B)
# Limit the dataframe to one row per dyad for an undirected network
network_df <- network_df %>%
arrange(Ind_A, Ind_B) %>%
mutate(dyad = if_else(Ind_A < Ind_B, paste0(Ind_A, "_", Ind_B),
paste0(Ind_B, "_", Ind_A))) %>%
distinct(dyad, .keep_all = T)
head(network_df)
## Ind_A Ind_B Ind_A_Group Ind_B_Group dyad
## 1 ind_01 ind_02 group_b group_a ind_01_ind_02
## 2 ind_01 ind_03 group_b group_c ind_01_ind_03
## 3 ind_01 ind_04 group_b group_b ind_01_ind_04
## 4 ind_01 ind_05 group_b group_d ind_01_ind_05
## 5 ind_01 ind_06 group_b group_a ind_01_ind_06
## 6 ind_01 ind_07 group_b group_b ind_01_ind_07
1.3 Assign values (or ‘weights’) to all dyadic relationships.
Here, I use 4 different scenarios:
1. Scenario (S1): Within-group relationships (wgr) are relatively strong in comparison to between-group relationships (bgr). Relationships of individuals between ‘close groups’ (bcgr) are intermediate.
2. Scenario (S2): Similar to S1, but differences between wgr, bcgr, and bgr are smaller.
3. Scenario (S3): Wgr are relatively strong in comparison to bgr. This scenario is identical to S1 except that there are no close groups.
4. Scenario (S4): Differences between wgr and bgr are smaller than in S3. This scenario is identical to S2 except that there are no close groups.
Thus, bgr are the same in all four scenarios, only bcgr and wgr are varied. Furthermore, wgr are the same for S1 and S3, and for S2 and S4 (see plot below).
To create the social networks, I sample values from beta distributions simulating an Association Index. Such an index is commonly used in animal behavioural research to assess relationships between individuals (see, e.g., the great book by Whitehead, 2008), and they range from 0 to 1. For example, individuals that never associate with each other would have an association index of 0, and two individuals that are always associated with each other have an index of 1.
# Set the parameters (i.e. shape parameters of the beta distribution) for all 4
# scenarios
bgr <- c(1, 8)
bcgr_1 <- c(3, 8)
wgr_1 <- wgr_3 <- c(8, 8)
bcgr_2 <- c(1.5, 8)
wgr_2 <- wgr_4 <- c(4, 8)
# Define function for plotting of beta distributions
plot_beta <- function(x, alpha_beta, main = "", xlab = "", ylab = "", ...){
alpha = alpha_beta[1]
beta = alpha_beta[2]
plot(x, dbeta(x, alpha, beta), type = "l",
yaxt = "n", xlab = "", ylab = "", bty = "n", ...)
title(ylab = ylab, line = 0)
title(xlab = xlab, line = 2)
title(main = main, line = 1)
axis(side = 2, label = F, lwd.ticks = F)
}
# Plot the distributions of social relationships according to these parameters
{
par(mfrow = c(4,3), mar = c(3, 2, 2, 1))
x <- seq(0, 1, length.out = 40)
# S1
plot_beta(x, bgr, main = "Between-group - S1",
ylab = "Prob. density function")
plot_beta(x, bcgr_1, main = "Between close-groups - S1")
plot_beta(x, wgr_1, main = "Within-group S1")
# S2
plot_beta(x, bgr, main = "Between-group - S2",
ylab = "Prob. density function")
plot_beta(x, bcgr_2, main = "Between close-groups - S2",
xlab = "Association Index")
plot_beta(x, wgr_2, main = "Within-group - S2")
# S3
plot_beta(x, bgr, main = "Between-group - S3",
ylab = "Prob. density function")
plot.new()
plot_beta(x, wgr_3, main = "Within-group - S3")
# S4
plot_beta(x, bgr, main = "Between-group - S4",
ylab = "Prob. density function",
xlab = "Association Index")
plot.new()
plot_beta(x, wgr_4, main = "Within-group - S4",
xlab = "Association Index")
}
These distributions can be used to get values for the strength of relationships. To do so, I first define a function to sample dyadic values from the different distributions depending on group membership of both individuals. Then, I use this function to get values for all dyads and for all scenarios. For S1 and S2, group A and B are defined as the close groups.
get_weights <- function(network_df, wgr, bgr, bcgr = NA, close_groups = NA){
# Create empty vector for all weights
weights = rep(NA_real_, time = nrow(network_df))
# Go through all dyads and sample from respective distribution, dependent on
# the group membership of both individuals
for(i in seq_along(weights)){
ind_A_group <- network_df[i, "Ind_A_Group"]
ind_B_group <- network_df[i, "Ind_B_Group"]
# Both individuals in same group
if(ind_A_group == ind_B_group){
weights[i] <- rbeta(n = 1, shape1 = wgr[1], shape2 = wgr[2])
}
# Individuals in different groups
if(ind_A_group != ind_B_group){
weights[i] <- rbeta(n = 1, shape1 = bgr[1], shape2 = bgr[2])
}
# If some groups are 'closer' to each other, use specified distributions for
# this kind of relationships
if(all(!is.na(bcgr)) & all(!is.na(close_groups)) &
ind_A_group != ind_B_group &
ind_A_group %in% close_groups &
ind_B_group %in% close_groups){
weights[i] <- rbeta(n = 1, shape1 = bcgr[1], shape2 = bcgr[2])
}
}
return(weights)
}
set.seed(1209)
network_df$S1 <- get_weights(network_df, wgr = wgr_1, bgr = bgr, bcgr = bcgr_1,
close_groups = c("group_a", "group_b"))
network_df$S2 <- get_weights(network_df, wgr = wgr_2, bgr = bgr, bcgr = bcgr_2,
close_groups = c("group_a", "group_b"))
network_df$S3 <- get_weights(network_df, wgr = wgr_3, bgr = bgr)
network_df$S4 <- get_weights(network_df, wgr = wgr_4, bgr = bgr)
As the last step for part 1 of this post, I will illustrate the created networks using the ggraph
package (look here for an introduction to this package by the author)
set.seed(1209)
clustered_network_plot <- network_df %>%
pivot_longer(cols = matches("S\\d"),
names_to = "Scenario",
values_to = "weight") %>%
select(from = Ind_A, to = Ind_B, weight, Scenario) %>%
filter(weight >= 0.3) %>%
as_tbl_graph() %>%
activate(nodes) %>%
left_join(distinct(individual_df, name = Ind, group = Group),
by = "name") %>%
ggraph(., layout = "fr") +
geom_edge_arc(aes(width = weight),
alpha = 0.4, strength = 0.1) +
scale_edge_width(name = "Association Index",
range = c(0.2, 1)) +
geom_node_point(aes(fill = group, shape = group),
size = 2) +
scale_fill_brewer(type = "qual", palette = 2) +
scale_shape_manual(values = c(21, 22, 23, 24)) +
facet_edges(~Scenario) +
theme_graph()
clustered_network_plot
As modeled above, S1 and S3 are very similar, except that group A and B are closer to each other in S1. S2 and S4 have both weaker within-group relationships compared to their counterparts S1 and S3, respectively. Thus, I have four different networks with different degrees of clustering, and in two of these networks, two of the four groups are closer to each other than to the other groups.
In the next post, I will use different algorithms from the igraph
package to check how well these clusters can be detected.


All the King's Men
All the King's Men is a movie starring Sean Penn, Jude Law, and Kate Winslet. Based on the Robert Penn Warren novel. The life of populist Southerner Willie Stark, a political creature loosely based on Governor Huey Long of Louisiana.


---
layout:post
categories:toeza
tags:toeza
title:How to Play Pitch
date:2016-12-07 14:32:45 +0800
---
Edit Article
How to Play Pitch
Community Q&A
This game is rumored to have been invented by a bored hunting party in the 1800s. Pitch is a game that revolves around betting and trick-taking to try to score the most points. Learn the basic guidelines of Pitch by reading on.
Steps
1
Pitch requires at least 3 people. The dealer shuffles and then deals out six cards to each player, in the pattern of 1, then 2, then 3 cards per deal.
http://pad2.whstatic.com/images/thumb/9/99/Play-Pitch-Step-1-preview-Version-2.jpg/550px-Play-Pitch-Step-1-preview-Version-2.jpg
http://pad1.whstatic.com/images/thumb/9/99/Play-Pitch-Step-1-preview-Version-2.jpg/300px-Play-Pitch-Step-1-preview-Version-2.jpg
/4/43/Play Pitch Step 1 Version 2.360p.mp4
2
Now everyone has to bid.  The bidding starts with the person to the left of the dealer, and goes in a circle. You can bid 2, 3, or 4 cards. The bid represents the number of points that you think you will get in this hand. If you aren't confident at all, you may pass, unless you are the last to bid (i.e. the dealer) and everyone else has passed, in which case you have to bid at least 2.
http://pad2.whstatic.com/images/thumb/2/2d/Play-Pitch-Step-2-preview-Version-2.jpg/550px-Play-Pitch-Step-2-preview-Version-2.jpg
http://pad1.whstatic.com/images/thumb/2/2d/Play-Pitch-Step-2-preview-Version-2.jpg/300px-Play-Pitch-Step-2-preview-Version-2.jpg
/e/e0/Play Pitch Step 2 Version 2.360p.mp4
3
Once someone has placed a bid, you have to match them, surpass them, or pass on your turn. That is, you cannot bid 2 if 3 has already been bid. The point of bidding is to figure out who is the most confident in his or her hand, because that is the person who is going to get to choose the trump suit.
http://pad2.whstatic.com/images/thumb/1/18/Play-Pitch-Step-3-preview-Version-2.jpg/550px-Play-Pitch-Step-3-preview-Version-2.jpg
http://pad2.whstatic.com/images/thumb/1/18/Play-Pitch-Step-3-preview-Version-2.jpg/300px-Play-Pitch-Step-3-preview-Version-2.jpg
/d/db/Play Pitch Step 3 Version 2.360p.mp4
4
What to bid depends on what your hand is, in relation to the points of pitch. The points that you can get in pitch are these: high of trump, low of trump, jack of trump, and game. "High" is the highest trump card played, "low" is the lowest trump card played, "jack" is the jack of trump, and "game" has to do with how many face cards you end up with.
http://pad2.whstatic.com/images/thumb/4/42/Play-Pitch-Step-4-preview-Version-2.jpg/550px-Play-Pitch-Step-4-preview-Version-2.jpg
http://pad1.whstatic.com/images/thumb/4/42/Play-Pitch-Step-4-preview-Version-2.jpg/300px-Play-Pitch-Step-4-preview-Version-2.jpg
/7/78/Play Pitch Step 4 Version 2.360p.mp4
5
Which suit becomes trump depends on who bids the highest, because whoever bids the highest gets to throw down first, and the first card that they throw down becomes the trump suit. Therefore, if you have the ace of spades, the 2 of spades, and the jack of spades, you probably want to bid 4, because then you will get to make "spades" the trump suit and you will probably be able to get 4 points.
http://pad2.whstatic.com/images/thumb/0/0b/Play-Pitch-Step-5-preview-Version-2.jpg/550px-Play-Pitch-Step-5-preview-Version-2.jpg
http://pad2.whstatic.com/images/thumb/0/0b/Play-Pitch-Step-5-preview-Version-2.jpg/300px-Play-Pitch-Step-5-preview-Version-2.jpg
/2/20/Play Pitch Step 5 Version 2.360p.mp4
6
Remember, whoever has bid the highest gets to throw down first. Whichever is the first card that they throw becomes the trump suit. Play continues to the left. Everyone throws down one card. The winner of the "hand" is the person who has thrown either the highest card in suit, or the highest trump card. Trump can be played anytime. Trump always beats "in suit."
http://pad1.whstatic.com/images/thumb/b/b3/Play-Pitch-Step-6-preview-Version-2.jpg/550px-Play-Pitch-Step-6-preview-Version-2.jpg
http://pad1.whstatic.com/images/thumb/b/b3/Play-Pitch-Step-6-preview-Version-2.jpg/300px-Play-Pitch-Step-6-preview-Version-2.jpg
/5/5c/Play Pitch Step 6 Version 2.360p.mp4
7
The winner of the round gets to take all of the cards that he has won. When everyone is out of cards (which should happen concurrently), the cards are tallied up to see who gets points.
http://pad2.whstatic.com/images/thumb/7/7b/Play-Pitch-Step-7-preview-Version-2.jpg/550px-Play-Pitch-Step-7-preview-Version-2.jpg
http://pad1.whstatic.com/images/thumb/7/7b/Play-Pitch-Step-7-preview-Version-2.jpg/300px-Play-Pitch-Step-7-preview-Version-2.jpg
/c/c7/Play Pitch Step 7 Version 2.360p.mp4
8
Points are assigned as follows.
1 point to the lowest trump card played
http://pad3.whstatic.com/images/thumb/f/f4/Play-Pitch-Step-8Bullet1-preview-Version-2.jpg/550px-Play-Pitch-Step-8Bullet1-preview-Version-2.jpg
http://pad3.whstatic.com/images/thumb/f/f4/Play-Pitch-Step-8Bullet1-preview-Version-2.jpg/300px-Play-Pitch-Step-8Bullet1-preview-Version-2.jpg
/b/ba/Play Pitch Step 8Bullet1 Version 2.360p.mp4
1 point to the highest trump card played
http://pad2.whstatic.com/images/thumb/f/fb/Play-Pitch-Step-8Bullet2-preview-Version-2.jpg/550px-Play-Pitch-Step-8Bullet2-preview-Version-2.jpg
http://pad3.whstatic.com/images/thumb/f/fb/Play-Pitch-Step-8Bullet2-preview-Version-2.jpg/300px-Play-Pitch-Step-8Bullet2-preview-Version-2.jpg
/3/31/Play Pitch Step 8Bullet2 Version 2.360p.mp4
1 point to the jack of trump
http://pad3.whstatic.com/images/thumb/7/7e/Play-Pitch-Step-8Bullet3-preview-Version-2.jpg/550px-Play-Pitch-Step-8Bullet3-preview-Version-2.jpg
http://pad1.whstatic.com/images/thumb/7/7e/Play-Pitch-Step-8Bullet3-preview-Version-2.jpg/300px-Play-Pitch-Step-8Bullet3-preview-Version-2.jpg
/a/ab/Play Pitch Step 8Bullet3 Version 2.360p.mp4
1 point to "game" (the person with the highest number, if you count the 10 card of any suit as 10 and each jack as 1, queen as 2, king as 3, ace as 4)
http://pad3.whstatic.com/images/thumb/8/82/Play-Pitch-Step-8Bullet4-preview-Version-2.jpg/550px-Play-Pitch-Step-8Bullet4-preview-Version-2.jpg
http://pad3.whstatic.com/images/thumb/8/82/Play-Pitch-Step-8Bullet4-preview-Version-2.jpg/300px-Play-Pitch-Step-8Bullet4-preview-Version-2.jpg
/9/9e/Play Pitch Step 8Bullet4 Version 2.360p.mp4
9
If the highest initial bidder (the person who threw the trump at the beginning of the game) has come up with the points that he bid, he gets those points. If not, he gets negative those points. Meanwhile, anyone else who scores points gets them free of charge (i.e., if the bidder bid 3, and he got high low and game, he gets 3 points. The person who got jack gets 1 point. If the bidder bid 3, and got high and low, he gets negative three points. Whoever got jack gets a point, whoever got game gets a point.)
http://pad3.whstatic.com/images/thumb/d/d8/Play-Pitch-Step-9-preview-Version-2.jpg/550px-Play-Pitch-Step-9-preview-Version-2.jpg
http://pad3.whstatic.com/images/thumb/d/d8/Play-Pitch-Step-9-preview-Version-2.jpg/300px-Play-Pitch-Step-9-preview-Version-2.jpg
/c/cf/Play Pitch Step 9 Version 2.360p.mp4


Booking App
Home
(current)
My Bookings
All Bookings
My Profile
Users
Login
Register
Hello
[[${#request.remoteUser}]]
Logout
Add user
Id
Username
Password
Role
Enabled?
Assigned bookings
Show user bookings
View
Edit
Delete
Show user bookings
View
Edit
Delete


Includes common JavaScript examples that you can copy and paste into your own site.
Sometimes referred to as a "Jump Menu", this dropdown menu eliminates the need for a separate "go" button - it takes you straight to the requested URL as soon as you select it.
This quick tutorial shows you how to automatically open the print diaglog box whenever a user comes to a page.
Open up an alert box message to alert your users to something important.
Let your users confirm that an action should take place before JavaScript runs it.
Allows your users to provide input, so that you can customize their experience.
Display a message in the status bar whenever a user hovers over a link (or other).
Learn how to create a URL redirection with this JavaScript redirect code.
Code that refreshes the current page. Includes refresh timer.
Use JavaScript to create popup windows and popup window function.
How to use JavaScript to create image rollovers.


Claire Davies
About me
Portfolio
Contact
Contact
Email
Email me
Phone
Call me
LinkedIn
Find me on Linked In
Github
Find me on Github
Twitter
Find me on Twitter
Facebook
Find me on Facebook