Datasets are available at http://rtg.isi.edu/many-eng/data/v1/
train.raw.tsv.gz # Training data in raw form, before cleaning, deduping and tokenization
train.v1.eng.tok.gz # English training data, after cleaning and tokenization
train.v1.src.tok.gz # Source training data, after cleaning and tokenization
train.v1.lang.gz # lang ID of source side sentences
train.v1.prov.gz # provenance of record (to see where where this record)
train.v1.tok.stats.tsv # stats such as sentence and token count per language
devs-combo-shuf10k-raw+tok.tgz # 10K sentences for validation, randomly sampled from all dev sets
devtests-raw+tok.tgz # all the dev and test data; both raw and tokenized
citations.bib # BibTeX of articles which published the datasets collected in this work
prep.tgz # scripts to prepare datasets from square 1.
train.v1.{eng.tok,src.tok,lang,prov}
are plain text files after running gunzip.
They should have same number of lines. Line number is the way to cross-reference between them.
You may also prepare these datasets from scratch or revise cleaning mechanisms starting from train.raw.tsv.gz
. The prep.tgz
file has datatprep.ipynb
notebook that contains steps to download, tokenize, deduplicate and filter our bad records.
Statistics
| ISO 639-3 | Name | Sentences | SourceTokens | EnglishTokens |
|---|---|---|---|---|
Total |
473,791,285 |
9,001,777,125 |
9,072,884,192 |
|
FRA |
French |
33,010,111 |
1,001,694,594 |
862,394,235 |
RUS |
Russian |
25,564,367 |
640,353,439 |
682,207,974 |
ARA |
Arabic |
22,679,389 |
588,552,279 |
673,442,592 |
ZHO |
Chinese |
20,057,876 |
827,184,155 |
563,720,365 |
TUR |
Turkish |
37,720,743 |
282,136,509 |
386,742,077 |
SRP |
Serbian |
33,880,099 |
279,793,956 |
343,470,174 |
HEB |
Hebrew |
25,841,585 |
224,902,346 |
283,316,533 |
NLD |
Dutch |
12,428,300 |
278,665,986 |
281,604,016 |
POR |
Portuguese |
10,954,498 |
279,392,943 |
264,796,337 |
DEU |
German |
12,119,459 |
245,035,715 |
254,126,788 |
ITA |
Italian |
10,095,386 |
244,588,092 |
245,359,909 |
SPA |
Spanish |
9,776,966 |
229,401,449 |
212,893,081 |
SWE |
Swedish |
8,024,230 |
156,259,227 |
175,706,578 |
DAN |
Danish |
7,682,343 |
163,476,497 |
173,310,159 |
FIN |
Finnish |
8,187,935 |
131,239,231 |
172,686,863 |
POL |
Polish |
8,289,276 |
151,588,493 |
169,532,813 |
ELL |
Modern Greek (1453-) |
6,835,717 |
155,615,617 |
154,230,888 |
NOR |
Norwegian |
10,860,768 |
126,923,739 |
142,425,026 |
HUN |
Hungarian |
6,785,904 |
124,670,924 |
140,421,813 |
SLV |
Slovenian |
6,227,413 |
123,184,373 |
135,429,495 |
BOS |
Bosnian |
12,903,765 |
108,980,163 |
134,352,300 |
SLK |
Slovak |
5,689,766 |
111,471,118 |
125,492,209 |
EST |
Estonian |
5,788,575 |
94,125,966 |
120,585,810 |
LIT |
Lithuanian |
5,139,565 |
95,332,259 |
113,401,294 |
LAV |
Latvian |
4,460,210 |
88,412,493 |
104,312,482 |
FAS |
Persian |
8,054,223 |
96,700,032 |
103,579,635 |
JPN |
Japanese |
5,379,355 |
111,898,280 |
95,783,174 |
VIE |
Vietnamese |
6,186,692 |
112,645,134 |
91,410,645 |
UKR |
Ukrainian |
4,446,827 |
66,084,956 |
75,462,511 |
CES |
Czech |
3,986,495 |
64,539,275 |
74,129,349 |
MLT |
Maltese |
3,079,369 |
85,936,755 |
71,180,461 |
KOR |
Korean |
3,907,008 |
124,773,196 |
67,101,857 |
IND |
Indonesian |
3,441,203 |
63,578,787 |
64,369,133 |
CAT |
Catalan |
3,151,150 |
66,838,920 |
60,317,575 |
RON |
Romanian |
2,871,321 |
52,945,536 |
51,780,651 |
BUL |
Bulgarian |
2,755,198 |
47,511,112 |
50,192,767 |
THA |
Thai |
4,003,627 |
55,716,180 |
49,463,563 |
GLE |
Irish |
1,770,628 |
48,936,403 |
45,855,008 |
HRV |
Croatian |
2,304,149 |
34,755,332 |
39,315,927 |
HIN |
Hindi |
2,211,381 |
41,452,435 |
38,163,209 |
MKD |
Macedonian |
1,898,346 |
29,456,395 |
31,284,559 |
EUS |
Basque |
2,101,130 |
24,427,549 |
30,827,665 |
SQI |
Albanian |
1,659,043 |
28,953,259 |
28,389,962 |
URD |
Urdu |
1,121,988 |
28,181,194 |
26,194,588 |
TGL |
Tagalog |
1,307,417 |
28,950,146 |
26,087,793 |
BEN |
Bengali |
1,469,860 |
22,481,515 |
23,509,544 |
GLG |
Galician |
1,270,160 |
23,281,744 |
22,762,444 |
AFR |
Afrikaans |
1,164,819 |
22,720,174 |
21,574,598 |
CEB |
Cebuano |
1,177,127 |
23,461,502 |
21,304,716 |
EPO |
Esperanto |
1,273,333 |
20,025,116 |
20,887,797 |
SWA |
Swahili |
975,456 |
17,407,097 |
19,155,309 |
ZUL |
Zulu |
964,117 |
13,671,887 |
18,412,040 |
MSA |
Malay |
1,945,672 |
16,671,082 |
18,053,859 |
TAM |
Tamil |
1,020,167 |
11,400,283 |
17,989,394 |
XHO |
Xhosa |
993,668 |
13,026,040 |
17,543,214 |
MAL |
Malayalam |
1,042,337 |
10,594,525 |
17,246,958 |
ILO |
Iloko |
898,926 |
17,814,296 |
17,022,059 |
SIN |
Sinhala |
1,141,931 |
11,643,363 |
16,436,631 |
MLG |
Malagasy |
826,222 |
17,981,469 |
16,408,357 |
HIL |
Hiligaynon |
807,375 |
17,432,476 |
15,442,425 |
SNA |
Shona |
763,546 |
11,391,280 |
15,229,553 |
NYA |
Nyanja |
778,089 |
12,958,088 |
14,921,565 |
TSN |
Tswana |
780,798 |
20,008,782 |
14,855,070 |
TSO |
Tsonga |
757,853 |
17,309,341 |
14,474,201 |
AMH |
Amharic |
669,145 |
9,765,847 |
14,326,330 |
ISL |
Icelandic |
1,112,770 |
10,987,587 |
13,281,910 |
AZE |
Azerbaijani |
693,153 |
10,806,686 |
12,639,115 |
KAT |
Georgian |
677,998 |
7,474,496 |
11,906,197 |
MAR |
Marathi |
625,462 |
8,315,779 |
11,844,853 |
MYA |
Burmese |
510,083 |
12,713,472 |
11,545,908 |
EWE |
Ewe |
588,735 |
12,826,778 |
11,227,502 |
SRN |
Sranan Tongo |
546,788 |
14,002,996 |
10,719,800 |
TAH |
Tahitian |
547,403 |
16,474,812 |
10,587,464 |
NSO |
Pedi |
555,777 |
13,718,112 |
10,567,895 |
LIN |
Lingala |
536,198 |
10,804,478 |
10,179,883 |
TWI |
Twi |
537,268 |
11,294,035 |
10,174,586 |
TEL |
Telugu |
557,715 |
6,533,017 |
9,246,609 |
KIN |
Kinyarwanda |
488,086 |
8,493,687 |
9,135,649 |
BIS |
Bislama |
476,064 |
11,972,512 |
9,034,190 |
BCL |
Central Bikol |
451,274 |
9,946,706 |
8,765,221 |
NEP |
Nepali |
444,058 |
5,427,354 |
8,183,887 |
LOZ |
Lozi |
411,874 |
9,495,543 |
7,872,336 |
GAA |
Ga |
409,659 |
9,284,738 |
7,868,224 |
IBO |
Igbo |
415,234 |
10,075,710 |
7,737,716 |
YOR |
Yoruba |
411,461 |
12,671,491 |
7,668,947 |
PAN |
Panjabi |
394,938 |
6,569,439 |
7,564,168 |
HYE |
Armenian |
382,378 |
5,779,847 |
7,504,431 |
KAN |
Kannada |
327,475 |
4,029,042 |
7,429,653 |
TAT |
Tatar |
378,375 |
6,070,274 |
7,401,723 |
PAP |
Papiamento |
381,796 |
8,155,628 |
7,213,489 |
BEM |
Bemba (Zambia) |
381,297 |
6,526,989 |
7,171,421 |
TPI |
Tok Pisin |
383,675 |
9,120,242 |
7,162,905 |
GUJ |
Gujarati |
420,729 |
4,899,065 |
6,961,346 |
SMO |
Samoan |
364,010 |
9,262,113 |
6,940,694 |
RUN |
Rundi |
364,103 |
6,521,655 |
6,836,527 |
FIJ |
Fijian |
357,673 |
7,837,220 |
6,726,164 |
EFI |
Efik |
332,589 |
7,312,421 |
6,298,566 |
TIR |
Tigrinya |
320,856 |
4,953,825 |
6,288,908 |
TON |
Tonga (Tonga Islands) |
323,838 |
11,087,182 |
6,085,262 |
LUE |
Luvale |
317,092 |
4,717,517 |
6,023,708 |
HAU |
Hausa |
295,829 |
6,459,154 |
5,881,574 |
LUA |
Luba-Lulua |
292,212 |
5,517,519 |
5,532,234 |
KIR |
Kirghiz |
283,308 |
3,984,657 |
5,499,207 |
TOI |
Tonga (Zambia) |
291,857 |
4,344,007 |
5,468,385 |
GUW |
Gun |
286,899 |
6,650,627 |
5,431,468 |
PAG |
Pangasinan |
282,341 |
5,602,136 |
5,351,754 |
WAR |
Waray (Philippines) |
281,941 |
6,216,918 |
5,338,684 |
PIS |
Pijin |
263,681 |
5,313,880 |
5,010,374 |
SWC |
Congo Swahili |
271,892 |
4,583,791 |
4,937,615 |
TGK |
Tajik |
286,675 |
4,184,663 |
4,873,294 |
SAG |
Sango |
250,019 |
6,554,737 |
4,779,729 |
SOM |
Somali |
161,865 |
3,646,152 |
4,573,785 |
MAH |
Marshallese |
233,516 |
5,757,879 |
4,448,457 |
OSS |
Ossetian |
225,664 |
3,811,618 |
4,404,414 |
TUM |
Tumbuka |
232,540 |
3,622,880 |
4,347,800 |
HMO |
Hiri Motu |
227,759 |
4,781,868 |
4,314,100 |
LUG |
Ganda |
224,749 |
3,731,957 |
4,261,136 |
BEL |
Belarusian |
290,072 |
3,469,541 |
4,206,848 |
PON |
Pohnpeian |
218,908 |
4,397,432 |
4,185,579 |
TLL |
Tetela |
222,225 |
4,233,529 |
4,185,359 |
LAT |
Latin |
203,175 |
2,912,205 |
4,180,355 |
KQN |
Kaonde |
219,170 |
3,727,122 |
4,097,908 |
YAP |
Yapese |
212,548 |
6,219,777 |
4,078,280 |
ISO |
Isoko |
215,449 |
4,917,558 |
4,047,680 |
CHK |
Chuukese |
207,347 |
4,363,629 |
4,031,326 |
NIU |
Niuean |
214,222 |
5,416,864 |
3,993,808 |
UMB |
Umbundu |
212,228 |
3,988,296 |
3,939,817 |
GIL |
Gilbertese |
203,252 |
4,762,950 |
3,888,542 |
KON |
Kongo |
206,234 |
4,417,086 |
3,883,443 |
VEN |
Venda |
204,407 |
5,057,268 |
3,782,533 |
LUB |
Luba-Katanga |
197,423 |
3,541,419 |
3,742,176 |
HAT |
Haitian |
197,201 |
4,438,519 |
3,630,101 |
KAL |
Kalaallisut |
191,660 |
2,206,906 |
3,610,449 |
ZNE |
Zande (Individual) |
190,082 |
4,401,103 |
3,602,098 |
OCI |
Occitan (Post 1500) |
182,542 |
3,606,108 |
3,536,378 |
LUS |
Lushai |
187,503 |
4,290,199 |
3,534,861 |
CRS |
Seselwa Creole French |
188,361 |
3,847,882 |
3,528,139 |
MOS |
Mossi |
186,434 |
4,706,515 |
3,517,104 |
TIV |
Tiv |
184,113 |
4,810,668 |
3,469,806 |
NDS |
Low German |
185,909 |
2,927,867 |
3,456,271 |
MFE |
Morisyen |
181,560 |
4,068,226 |
3,367,397 |
FRY |
Western Frisian |
174,498 |
2,726,426 |
3,360,333 |
MON |
Mongolian |
169,290 |
2,406,026 |
3,330,866 |
TVL |
Tuvalu |
172,371 |
4,970,984 |
3,302,688 |
YUA |
Yucateco |
168,299 |
3,524,830 |
3,301,268 |
KWY |
San Salvador Kongo |
169,875 |
2,964,934 |
3,119,715 |
WLS |
Wallisian |
154,488 |
3,981,535 |
2,871,012 |
ORM |
Oromo |
155,084 |
2,646,041 |
2,858,967 |
GUG |
Paraguayan Guaraní |
143,391 |
2,151,216 |
2,742,729 |
ZAI |
Isthmus Zapotec |
146,783 |
2,741,722 |
2,741,357 |
KUR |
Kurdish |
111,126 |
3,090,640 |
2,729,572 |
AYM |
Aymara |
138,760 |
1,939,507 |
2,710,890 |
KHM |
Khmer |
150,117 |
2,966,056 |
2,683,112 |
TZO |
Tzotzil |
140,124 |
2,993,791 |
2,679,819 |
BCI |
Baoulé |
142,169 |
3,685,710 |
2,597,887 |
SND |
Sindhi |
86,214 |
2,580,903 |
2,566,710 |
QUE |
Quechua |
134,194 |
1,739,523 |
2,543,319 |
LUO |
Luo (Kenya And Tanzania) |
136,625 |
2,603,306 |
2,502,410 |
LUN |
Lunda |
134,578 |
1,857,219 |
2,482,581 |
QUZ |
Cusco Quechua |
127,408 |
1,649,454 |
2,450,616 |
RND |
Ruund |
133,631 |
2,443,228 |
2,446,692 |
UZB |
Uzbek |
137,566 |
2,233,702 |
2,360,392 |
DIV |
Dhivehi |
85,159 |
2,441,892 |
2,350,351 |
WAL |
Wolaytta |
120,608 |
1,844,136 |
2,325,431 |
UIG |
Uighur |
84,928 |
2,088,135 |
2,239,573 |
SSW |
Swati |
116,170 |
1,690,313 |
2,238,351 |
TUK |
Turkmen |
121,578 |
1,730,753 |
2,231,716 |
QUY |
Ayacucho Quechua |
113,702 |
1,402,781 |
2,164,966 |
NYK |
Nyaneka |
116,364 |
1,753,649 |
2,133,198 |
TDT |
Tetun Dili |
112,041 |
2,385,376 |
2,107,083 |
BZS |
Brazilian Sign Language |
110,679 |
2,044,945 |
2,065,232 |
KWN |
Kwangali |
106,595 |
1,709,040 |
1,939,056 |
KAZ |
Kazakh |
248,822 |
1,652,871 |
1,906,753 |
KEK |
Kekchí |
63,350 |
2,231,030 |
1,836,968 |
KUA |
Kuanyama |
99,227 |
1,932,349 |
1,830,081 |
NDO |
Ndonga |
99,817 |
1,864,378 |
1,810,583 |
MRI |
Maori |
62,963 |
2,151,493 |
1,807,107 |
PCK |
Paite Chin |
61,173 |
1,773,303 |
1,799,998 |
PES |
Iranian Persian |
64,142 |
1,508,974 |
1,791,906 |
PLT |
Plateau Malagasy |
60,810 |
1,843,559 |
1,789,347 |
DJE |
Zarma |
60,515 |
1,924,044 |
1,780,607 |
LTZ |
Luxembourgish |
92,860 |
1,400,718 |
1,744,759 |
KIK |
Kikuyu |
94,242 |
1,714,356 |
1,737,121 |
NZI |
Nzima |
92,884 |
1,798,852 |
1,685,594 |
TOP |
Papantla Totonac |
86,769 |
1,345,448 |
1,620,933 |
KMB |
Kimbundu |
90,341 |
1,960,969 |
1,617,965 |
BAK |
Bashkir |
88,618 |
1,216,200 |
1,580,575 |
ARG |
Aragonese |
82,038 |
1,641,632 |
1,535,954 |
TSC |
Tswa |
84,311 |
1,911,340 |
1,534,506 |
FAO |
Faroese |
75,612 |
1,194,153 |
1,534,477 |
JSL |
Japanese Sign Language |
83,773 |
2,223,227 |
1,528,544 |
ISE |
Italian Sign Language |
79,874 |
1,497,912 |
1,527,368 |
GYM |
Ngäbere |
78,796 |
1,624,979 |
1,459,454 |
JAV |
Javanese |
73,185 |
1,177,647 |
1,442,806 |
ASM |
Assamese |
94,568 |
1,027,775 |
1,390,206 |
ZLM |
Malay (Individual) |
72,676 |
1,139,427 |
1,372,948 |
VMW |
Makhuwa |
72,847 |
1,181,569 |
1,328,856 |
ACH |
Acoli |
73,172 |
1,496,706 |
1,325,711 |
CHV |
Chuvash |
68,211 |
1,032,279 |
1,302,667 |
BRE |
Breton |
129,742 |
1,301,922 |
1,286,455 |
MCO |
Coatlán Mixe |
66,222 |
1,102,029 |
1,263,381 |
MFS |
Mexican Sign Language |
63,494 |
1,247,858 |
1,253,416 |
TOG |
Tonga (Nyasa) |
67,113 |
1,053,514 |
1,231,614 |
MAM |
Mam |
57,254 |
1,424,153 |
1,171,359 |
RAR |
Rarotongan |
66,762 |
1,613,321 |
1,170,921 |
ADA |
Adangme |
63,021 |
1,669,121 |
1,131,992 |
NNO |
Norwegian Nynorsk |
139,111 |
1,113,937 |
1,116,261 |
CAB |
Garifuna |
59,416 |
1,016,417 |
1,095,937 |
NCJ |
Northern Puebla Nahuatl |
59,251 |
963,782 |
1,092,104 |
ARZ |
Egyptian Arabic |
54,590 |
927,189 |
1,089,748 |
DHV |
Dehu |
58,875 |
1,504,920 |
1,078,197 |
WUU |
Wu Chinese |
46,633 |
1,437,243 |
1,075,055 |
DJK |
Eastern Maroon Creole |
52,628 |
1,458,098 |
1,038,818 |
GUC |
Wayuu |
53,537 |
826,821 |
985,121 |
CAK |
Kaqchikel |
46,427 |
1,293,345 |
962,624 |
SEH |
Sena |
52,334 |
856,758 |
945,244 |
CYM |
Welsh |
99,826 |
1,055,852 |
937,929 |
KAM |
Kamba (Kenya) |
51,054 |
959,249 |
932,972 |
SOP |
Songe |
51,070 |
938,990 |
927,422 |
QVI |
Imbabura Highland Quichua |
50,527 |
672,711 |
921,493 |
NYN |
Nyankole |
50,379 |
806,471 |
912,254 |
BAR |
Bavarian |
58,409 |
796,255 |
908,588 |
RSL |
Russian Sign Language |
44,582 |
702,400 |
856,169 |
SID |
Sidamo |
46,851 |
686,888 |
847,841 |
ORI |
Oriya |
49,192 |
698,991 |
832,456 |
IDO |
Ido |
46,163 |
763,729 |
831,713 |
LMO |
Lombard |
39,461 |
864,899 |
827,408 |
YAO |
Yao |
43,689 |
675,341 |
791,700 |
MGR |
Mambwe-Lungu |
43,911 |
731,912 |
785,222 |
KRI |
Krio |
42,349 |
999,510 |
752,221 |
MWL |
Mirandese |
31,518 |
742,141 |
746,747 |
HMN |
Hmong |
41,806 |
906,741 |
729,196 |
NGL |
Lomwe |
39,339 |
596,790 |
693,966 |
KSS |
Southern Kisi |
37,693 |
773,744 |
655,897 |
NCX |
Central Puebla Nahuatl |
36,422 |
523,049 |
654,865 |
KOO |
Konzo |
36,378 |
575,840 |
642,178 |
CJK |
Chokwe |
35,767 |
601,420 |
627,383 |
TCF |
Malinaltepec Me’Phaa |
34,679 |
847,824 |
627,050 |
BBC |
Batak Toba |
35,181 |
574,823 |
619,966 |
TOJ |
Tojolabal |
33,805 |
667,730 |
606,099 |
NIA |
Nias |
34,280 |
582,906 |
604,629 |
SRM |
Saramaccan |
34,739 |
848,933 |
597,203 |
IBA |
Iban |
34,577 |
614,600 |
591,325 |
NCH |
Central Huasteca Nahuatl |
31,018 |
475,377 |
561,258 |
FON |
Fon |
31,273 |
865,700 |
552,748 |
KAB |
Kabyle |
38,018 |
758,336 |
550,414 |
KSW |
S’Gaw Karen |
26,363 |
1,264,404 |
545,235 |
IBG |
Ibanag |
30,270 |
568,962 |
537,232 |
NGU |
Guerrero Nahuatl |
29,768 |
462,975 |
535,371 |
URH |
Urhobo |
29,347 |
593,673 |
530,354 |
NDC |
Ndau |
30,369 |
488,763 |
527,840 |
KBP |
Kabiyè |
29,066 |
618,571 |
521,923 |
WES |
Cameroon Pidgin |
28,159 |
642,670 |
499,592 |
MAU |
Huautla Mazatec |
27,544 |
496,580 |
499,460 |
BAS |
Basa (Cameroon) |
27,771 |
616,191 |
496,676 |
BUM |
Bulu (Cameroon) |
27,996 |
624,348 |
494,140 |
CTU |
Chol |
26,462 |
547,357 |
478,157 |
CNH |
Hakha Chin |
27,733 |
554,298 |
477,786 |
BTX |
Batak Karo |
27,295 |
436,554 |
470,088 |
NBA |
Nyemba |
27,317 |
553,352 |
469,851 |
LAO |
Lao |
22,217 |
697,242 |
462,713 |
NYU |
Nyungwe |
24,491 |
419,713 |
427,580 |
ABK |
Abkhazian |
23,161 |
292,717 |
423,050 |
PUS |
Pushto |
28,260 |
483,360 |
421,907 |
CHR |
Cherokee |
15,746 |
287,938 |
416,623 |
COP |
Coptic |
15,706 |
256,370 |
416,296 |
DOP |
Lukpa |
15,711 |
558,508 |
416,290 |
SYR |
Syriac |
15,747 |
217,478 |
415,892 |
QUW |
Tena Lowland Quichua |
15,674 |
292,905 |
415,461 |
USP |
Uspanteco |
15,583 |
500,341 |
412,979 |
QUC |
K’Iche' |
15,575 |
616,986 |
412,280 |
ROM |
Romany |
16,048 |
422,362 |
411,993 |
AMU |
Guerrero Amuzgo |
15,533 |
566,676 |
411,225 |
JAK |
Jakun |
15,513 |
564,458 |
411,137 |
NHG |
Tetelcingo Nahuatl |
15,459 |
408,868 |
409,271 |
TZH |
Tzeltal |
22,481 |
529,093 |
408,029 |
SHI |
Tachelhit |
15,288 |
637,003 |
404,390 |
CNI |
Asháninka |
15,264 |
331,249 |
404,004 |
WOL |
Wolof |
15,230 |
402,534 |
403,295 |
OKE |
Okpe (Southwestern Edo) |
22,471 |
458,573 |
401,423 |
CJP |
Cabécar |
15,155 |
608,344 |
400,614 |
FSE |
Finnish Sign Language |
21,671 |
298,224 |
400,110 |
GBI |
Galela |
15,023 |
624,914 |
398,145 |
SSP |
Spanish Sign Language |
21,242 |
387,212 |
395,815 |
PCM |
Nigerian Pidgin |
22,001 |
465,750 |
394,764 |
PPK |
Uma |
14,576 |
660,598 |
384,278 |
BHW |
Biak |
22,261 |
366,474 |
381,127 |
PSO |
Polish Sign Language |
20,433 |
312,201 |
379,785 |
CMN |
Mandarin Chinese |
44,110 |
487,138 |
374,935 |
CHQ |
Quiotepec Chinantec |
14,251 |
912,859 |
366,313 |
DIK |
Southwestern Dinka |
13,319 |
383,777 |
353,980 |
OJB |
Northwestern Ojibwa |
13,318 |
290,036 |
353,940 |
CHA |
Chamorro |
14,539 |
316,758 |
350,061 |
QUG |
Chimborazo Highland Quichua |
20,272 |
247,947 |
349,776 |
CSL |
Chinese Sign Language |
17,874 |
494,654 |
348,101 |
JIV |
Shuar |
12,910 |
272,452 |
342,885 |
AGR |
Aguaruna |
12,778 |
295,678 |
338,609 |
ACU |
Achuar-Shiwiar |
12,347 |
349,234 |
328,050 |
AKE |
Akawaio |
12,346 |
493,819 |
326,593 |
CCE |
Chopi |
17,935 |
346,295 |
303,153 |
CHW |
Chuwabu |
17,988 |
252,729 |
299,706 |
GSG |
German Sign Language |
16,400 |
268,254 |
298,220 |
ARN |
Mapudungun |
16,737 |
275,559 |
296,456 |
BSN |
Barasana-Eduria |
11,180 |
681,542 |
291,888 |
TTJ |
Tooro |
16,442 |
252,981 |
280,979 |
SUN |
Sundanese |
15,850 |
250,374 |
272,390 |
KBH |
Camsá |
10,287 |
384,331 |
272,175 |
LAM |
Lamba |
14,846 |
240,797 |
271,580 |
DUA |
Duala |
15,351 |
444,826 |
269,185 |
HNE |
Chhattisgarhi |
52,059 |
322,484 |
263,135 |
XMF |
Mingrelian |
12,946 |
169,159 |
262,169 |
KMR |
Northern Kurdish |
14,798 |
273,245 |
260,963 |
DYU |
Dyula |
14,886 |
322,319 |
258,596 |
HSH |
Hungarian Sign Language |
13,877 |
214,890 |
256,618 |
AED |
Argentine Sign Language |
12,390 |
248,120 |
251,486 |
NAV |
Navajo |
14,626 |
229,364 |
248,195 |
TYV |
Tuvinian |
12,979 |
197,520 |
245,669 |
RMN |
Balkan Romani |
14,527 |
257,259 |
241,449 |
FCS |
Quebec Sign Language |
13,034 |
253,315 |
239,624 |
TSS |
Taiwan Sign Language |
12,298 |
357,723 |
239,608 |
BTS |
Batak Simalungun |
14,255 |
233,806 |
238,303 |
GLV |
Manx |
11,006 |
261,914 |
232,828 |
NIJ |
Ngaju |
13,158 |
213,322 |
222,299 |
CSE |
Czech Sign Language |
11,655 |
179,085 |
210,357 |
WLN |
Walloon |
41,887 |
301,028 |
210,120 |
BIN |
Bini |
11,635 |
261,717 |
208,326 |
SXN |
Sangir |
11,668 |
228,088 |
195,463 |
KVK |
Korean Sign Language |
9,330 |
321,614 |
194,428 |
RMS |
Romanian Sign Language |
10,434 |
198,109 |
193,459 |
KAC |
Kachin |
10,930 |
270,098 |
184,701 |
SVK |
Slovakian Sign Language |
10,141 |
159,092 |
182,557 |
AMI |
Amis |
9,156 |
186,011 |
175,520 |
UDM |
Udmurt |
9,394 |
147,593 |
173,612 |
MNI |
Manipuri |
7,281 |
127,875 |
162,599 |
TMH |
Tamashek |
5,363 |
168,471 |
152,620 |
HER |
Herero |
8,179 |
151,589 |
141,558 |
GSS |
Greek Sign Language |
7,090 |
137,633 |
140,185 |
ALZ |
Alur |
7,567 |
154,509 |
133,119 |
BZJ |
Belize Kriol English |
6,905 |
136,165 |
119,827 |
IKU |
Inuktitut |
5,244 |
66,528 |
113,112 |
POT |
Potawatomi |
4,113 |
108,987 |
110,373 |
MXV |
Metlatónoc Mixtec |
5,924 |
176,367 |
105,471 |
PDT |
Plautdietsch |
6,019 |
115,997 |
104,913 |
SME |
Northern Sami |
18,433 |
96,152 |
100,433 |
INA |
Interlingua (International Auxiliary Language Association) |
12,194 |
101,705 |
99,401 |
ISH |
Esan |
5,221 |
112,815 |
91,400 |
KEA |
Kabuverdianu |
5,217 |
102,331 |
90,402 |
TSZ |
Purepecha |
4,939 |
79,259 |
89,766 |
GLA |
Scottish Gaelic |
8,444 |
108,564 |
87,714 |
TLH |
Klingon |
12,602 |
76,817 |
87,087 |
JBO |
Lojban |
11,470 |
88,384 |
83,024 |
CSN |
Colombian Sign Language |
3,428 |
71,580 |
70,847 |
ALT |
Southern Altai |
3,764 |
52,407 |
70,386 |
PSR |
Portuguese Sign Language |
3,655 |
70,060 |
69,174 |
TOH |
Gitonga |
3,898 |
78,079 |
65,345 |
YUE |
Yue Chinese |
5,681 |
77,996 |
62,414 |
FSL |
French Sign Language |
2,862 |
58,931 |
56,227 |
AST |
Asturian |
9,261 |
59,964 |
54,602 |
FIL |
Filipino |
2,125 |
51,507 |
47,398 |
SRD |
Sardinian |
5,836 |
50,985 |
43,786 |
SCO |
Scots |
853 |
40,927 |
41,327 |
ECS |
Ecuadorian Sign Language |
2,019 |
38,677 |
39,731 |
FUR |
Friulian |
5,791 |
42,727 |
37,760 |
YID |
Yiddish |
4,039 |
32,533 |
33,128 |
MEN |
Mende (Sierra Leone) |
1,668 |
36,531 |
28,675 |
GOM |
Goan Konkani |
722 |
24,148 |
26,834 |
LIM |
Limburgan |
4,491 |
25,040 |
24,410 |
LFN |
Lingua Franca Nova |
3,443 |
26,131 |
24,227 |
COR |
Cornish |
4,105 |
24,498 |
23,815 |
MAI |
Maithili |
4,256 |
23,102 |
20,698 |
VSL |
Venezuelan Sign Language |
958 |
17,798 |
18,472 |
CBK |
Chavacano |
2,423 |
17,255 |
16,912 |
ILE |
Interlingue |
2,570 |
16,439 |
16,599 |
VOL |
Volapük |
2,338 |
12,510 |
15,481 |
DTP |
Kadazan Dusun |
1,831 |
12,814 |
12,803 |
MIN |
Minangkabau |
330 |
11,492 |
11,998 |
TET |
Tetum |
406 |
11,359 |
10,648 |
PAM |
Pampanga |
1,448 |
8,955 |
10,276 |
ZSM |
Standard Malay |
1,158 |
9,170 |
10,106 |
PRL |
Peruvian Sign Language |
529 |
8,562 |
9,567 |
ZIB |
Zimbabwe Sign Language |
356 |
9,497 |
9,249 |
CRH |
Crimean Tatar |
1,361 |
8,351 |
8,996 |
KHA |
Khasi |
1,277 |
9,156 |
8,623 |
ASE |
American Sign Language |
538 |
8,038 |
8,382 |
BFI |
British Sign Language |
384 |
7,005 |
8,302 |
ARQ |
Algerian Arabic |
919 |
5,587 |
7,531 |
BOD |
Tibetan |
1,029 |
17,081 |
6,956 |
ZPA |
Lachiguiri Zapotec |
359 |
6,326 |
6,549 |
LZH |
Literary Chinese |
531 |
5,024 |
6,379 |
GOS |
Gronings |
986 |
4,727 |
4,963 |
GRC |
Ancient Greek (To 1453) |
568 |
3,778 |
4,845 |
NST |
Tase Naga |
769 |
5,773 |
4,794 |
CSG |
Chilean Sign Language |
329 |
4,320 |
4,734 |
GOR |
Gorontalo |
111 |
4,034 |
4,651 |
MZY |
Mozambican Sign Language |
244 |
4,364 |
4,447 |
CKB |
Central Kurdish |
1,040 |
4,332 |
4,400 |
ANG |
Old English (Ca. 450-1100) |
993 |
4,273 |
4,088 |
CSB |
Kashubian |
892 |
4,280 |
4,070 |
OTA |
Ottoman Turkish (1500-1928) |
622 |
3,564 |
4,032 |
KAS |
Kashmiri |
701 |
3,855 |
3,743 |
SAT |
Santali |
101 |
3,263 |
3,604 |
HOC |
Ho |
631 |
3,038 |
3,520 |
ZZA |
Zaza |
505 |
2,895 |
3,194 |
COS |
Corsican |
75 |
2,984 |
2,880 |
DZO |
Dzongkha |
449 |
8,250 |
2,871 |
INL |
Indonesian Sign Language |
206 |
2,459 |
2,814 |
DIQ |
Dimli (Individual) |
74 |
1,924 |
2,669 |
GRN |
Guarani |
229 |
1,883 |
2,577 |
SWH |
Swahili (Individual) |
369 |
1,826 |
2,522 |
WAE |
Walser |
512 |
2,416 |
2,483 |
LAD |
Ladino |
371 |
2,196 |
2,412 |
ACE |
Achinese |
446 |
2,783 |
2,409 |
ASF |
Auslan |
149 |
2,413 |
2,322 |
AKA |
Akan |
61 |
2,214 |
2,225 |
JAM |
Jamaican Creole English |
61 |
2,060 |
2,166 |
ORV |
Old Russian |
313 |
1,749 |
2,144 |
PMS |
Piemontese |
263 |
2,626 |
2,133 |
GSW |
Swiss German |
220 |
1,914 |
2,052 |
XAL |
Kalmyk |
268 |
1,624 |
2,041 |
CSF |
Cuba Sign Language |
117 |
1,816 |
1,946 |
ZSL |
Zambian Sign Language |
96 |
2,299 |
1,915 |
INS |
Indian Sign Language |
208 |
1,754 |
1,905 |
NAN |
Min Nan Chinese |
88 |
2,352 |
1,894 |
MAX |
North Moluccan Malay |
268 |
1,981 |
1,857 |
PRG |
Prussian |
213 |
1,526 |
1,717 |
GOT |
Gothic |
207 |
4,340 |
1,698 |
BXR |
Russia Buriat |
44 |
1,221 |
1,658 |
TCY |
Tulu |
47 |
1,265 |
1,541 |
SAH |
Yakut |
65 |
1,042 |
1,537 |
FRP |
Arpitan |
473 |
1,820 |
1,485 |
KAU |
Kanuri |
285 |
2,936 |
1,453 |
BVL |
Bolivian Sign Language |
98 |
1,188 |
1,391 |
NOV |
Novial |
187 |
1,268 |
1,296 |
HRX |
Hunsrik |
214 |
1,300 |
1,247 |
AWA |
Awadhi |
248 |
1,249 |
1,246 |
AVK |
Kotava |
157 |
933 |
1,221 |
PIH |
Pitcairn-Norfolk |
39 |
1,425 |
1,195 |
PYS |
Paraguayan Sign Language |
90 |
971 |
1,150 |
NEW |
Newari |
38 |
993 |
1,101 |
HIF |
Fiji Hindi |
45 |
777 |
1,044 |
MZN |
Mazanderani |
47 |
770 |
1,002 |
BHO |
Bhojpuri |
55 |
858 |
908 |
SAN |
Sanskrit |
150 |
725 |
887 |
HAW |
Hawaiian |
94 |
824 |
874 |
DTY |
Dotyali |
24 |
874 |
804 |
PDC |
Pennsylvania German |
65 |
706 |
734 |
RUE |
Rusyn |
113 |
479 |
683 |
KRL |
Karelian |
135 |
655 |
682 |
DSB |
Lower Sorbian |
37 |
471 |
677 |
SHN |
Shan |
150 |
1,926 |
652 |
EXT |
Extremaduran |
65 |
588 |
628 |
CHO |
Choctaw |
107 |
595 |
624 |
FKV |
Kven Finnish |
56 |
528 |
622 |
QYA |
Quenya |
100 |
423 |
581 |
GLK |
Gilaki |
12 |
268 |
521 |
TPW |
Tupí |
87 |
520 |
518 |
TZL |
Talossan |
108 |
480 |
483 |
MHR |
Eastern Mari |
69 |
379 |
482 |
RMY |
Vlax Romani |
10 |
522 |
467 |
NOG |
Nogai |
80 |
326 |
464 |
NPI |
Nepali (Individual) |
98 |
380 |
457 |
EGL |
Emilian |
81 |
499 |
456 |
GCF |
Guadeloupean Creole French |
78 |
464 |
446 |
LDN |
Láadan |
76 |
464 |
430 |
SFS |
South African Sign Language |
30 |
380 |
428 |
MWW |
Hmong Daw |
74 |
497 |
408 |
LIJ |
Ligurian |
52 |
419 |
385 |
AFB |
Gulf Arabic |
69 |
303 |
370 |
KSH |
Kölsch |
23 |
385 |
358 |
SGS |
Samogitian |
43 |
199 |
356 |
MGM |
Mambae |
33 |
282 |
307 |
PNT |
Pontic |
5 |
300 |
301 |
MYV |
Erzya |
33 |
239 |
300 |
NAP |
Neapolitan |
29 |
299 |
249 |
IKE |
Eastern Canadian Inuktitut |
43 |
138 |
245 |
HSB |
Upper Sorbian |
36 |
194 |
235 |
LLD |
Ladin |
20 |
225 |
227 |
FRM |
Middle French (Ca. 1400-1600) |
17 |
207 |
220 |
ARY |
Moroccan Arabic |
41 |
148 |
216 |
ROH |
Romansh |
16 |
205 |
216 |
SMA |
Southern Sami |
44 |
178 |
216 |
PPL |
Pipil |
29 |
163 |
208 |
SHS |
Shuswap |
39 |
243 |
207 |
TLY |
Talysh |
43 |
148 |
207 |
PNB |
Western Panjabi |
31 |
204 |
194 |
PMY |
Papuan Malay |
41 |
189 |
186 |
SJN |
Sindarin |
31 |
157 |
186 |
SUX |
Sumerian |
36 |
203 |
186 |
SZL |
Silesian |
34 |
153 |
177 |
LIV |
Liv |
29 |
150 |
176 |
RIF |
Tarifit |
34 |
145 |
170 |
BVY |
Baybayanon |
23 |
157 |
163 |
MIQ |
Mískito |
66 |
165 |
158 |
FUV |
Nigerian Fulfulde |
29 |
133 |
157 |
AIN |
Ainu (Japan) |
26 |
117 |
154 |
NLV |
Orizaba Nahuatl |
14 |
137 |
154 |
GBM |
Garhwali |
34 |
162 |
144 |
HDS |
Honduras Sign Language |
12 |
94 |
139 |
NON |
Old Norse |
13 |
134 |
136 |
ALN |
Gheg Albanian |
25 |
133 |
134 |
Acknowledgements
All the data consolidated in this work are retrieved from various sources and we do not own the dataset. If you use this dataset, please cite all the articles in citations.bib
file.
We are enabling this derived dataset to be easily accessible, with the intention to accelerate the research of language technologies to low resource languages. However, if you view this derived dataset as a violation of intellectual property rights, please let us know, so we will be happy to remove it from the corpus.


Hemtjänst is made with 💛 in 🇸🇪. All components are open source and licensend under the Apache 2 License.


| Class | ActionController::Routing::RouteBuilder |
| In: |
vendor/rails/actionpack/lib/action_controller/routing.rb
|
| Parent: | Object |
| optional_separators | [RW] | |
| separators | [RW] |
# File vendor/rails/actionpack/lib/action_controller/routing.rb, line 787 787: def initialize 788: self.separators = Routing::SEPARATORS 789: self.optional_separators = %w( / ) 790: end
Takes a hash of defaults and a hash of requirements, and assigns them to the segments. Any unused requirements (which do not correspond to a segment) are returned as a hash.
# File vendor/rails/actionpack/lib/action_controller/routing.rb, line 863 863: def assign_route_options(segments, defaults, requirements) 864: route_requirements = {} # Requirements that do not belong to a segment 865: 866: segment_named = Proc.new do |key| 867: segments.detect { |segment| segment.key == key if segment.respond_to?(:key) } 868: end 869: 870: requirements.each do |key, requirement| 871: segment = segment_named[key] 872: if segment 873: raise TypeError, "#{key}: requirements on a path segment must be regular expressions" unless requirement.is_a?(Regexp) 874: if requirement.source =~ %r{\A(\\A|\^^)|(\\Z|\\z|\$)\Z} 875: raise ArgumentError, "Regexp anchor characters are not allowed in routing requirements: #{requirement.inspect}" 876: end 877: segment.regexp = requirement 878: else 879: route_requirements[key] = requirement 880: end 881: end 882: 883: defaults.each do |key, default| 884: segment = segment_named[key] 885: raise ArgumentError, "#{key}: No matching segment exists; cannot assign default" unless segment 886: segment.is_optional = true 887: segment.default = default.to_param if default 888: end 889: 890: ensure_required_segments(segments) 891: route_requirements 892: end
Construct and return a route with the given path and options.
# File vendor/rails/actionpack/lib/action_controller/routing.rb, line 914 914: def build(path, options) 915: # Wrap the path with slashes 916: path = "/#{path}" unless path[0] == ?/ 917: path = "#{path}/" unless path[-1] == ?/ 918: 919: segments = segments_for_route_path(path) 920: defaults, requirements, conditions = divide_route_options(segments, options) 921: requirements = assign_route_options(segments, defaults, requirements) 922: 923: route = Route.new 924: route.segments = segments 925: route.requirements = requirements 926: route.conditions = conditions 927: 928: if !route.significant_keys.include?(:action) && !route.requirements[:action] 929: route.requirements[:action] = "index" 930: route.significant_keys << :action 931: end 932: 933: route 934: end
Split the given hash of options into requirement and default hashes. The segments are passed alongside in order to distinguish between default values and requirements.
# File vendor/rails/actionpack/lib/action_controller/routing.rb, line 845 845: def divide_route_options(segments, options) 846: options = options.dup 847: requirements = (options.delete(:requirements) || {}).dup 848: defaults = (options.delete(:defaults) || {}).dup 849: conditions = (options.delete(:conditions) || {}).dup 850: 851: path_keys = segments.collect { |segment| segment.key if segment.respond_to?(:key) }.compact 852: options.each do |key, value| 853: hash = (path_keys.include?(key) && ! value.is_a?(Regexp)) ? defaults : requirements 854: hash[key] = value 855: end 856: 857: [defaults, requirements, conditions] 858: end
Makes sure that there are no optional segments that precede a required segment. If any are found that precede a required segment, they are made required.
# File vendor/rails/actionpack/lib/action_controller/routing.rb, line 897 897: def ensure_required_segments(segments) 898: allow_optional = true 899: segments.reverse_each do |segment| 900: allow_optional &&= segment.optional? 901: if !allow_optional && segment.optional? 902: unless segment.optionality_implied? 903: warn "Route segment \"#{segment.to_s}\" cannot be optional because it precedes a required segment. This segment will be required." 904: end 905: segment.is_optional = false 906: elsif allow_optional & segment.respond_to?(:default) && segment.default 907: # if a segment has a default, then it is optional 908: segment.is_optional = true 909: end 910: end 911: end
# File vendor/rails/actionpack/lib/action_controller/routing.rb, line 796 796: def interval_regexp 797: Regexp.new "(.*?)(#{separators.source}|$)" 798: end
A factory method that returns a new segment instance appropriate for the format of the given string.
# File vendor/rails/actionpack/lib/action_controller/routing.rb, line 818 818: def segment_for(string) 819: segment = case string 820: when /\A:(\w+)/ 821: key = $1.to_sym 822: case key 823: when :action then DynamicSegment.new(key, :default => 'index') 824: when :id then DynamicSegment.new(key, :optional => true) 825: when :controller then ControllerSegment.new(key) 826: else DynamicSegment.new key 827: end 828: when /\A\*(\w+)/ then PathSegment.new($1.to_sym, :optional => true) 829: when /\A\?(.*?)\?/ 830: returning segment = StaticSegment.new($1) do 831: segment.is_optional = true 832: end 833: when /\A(#{separator_pattern(:inverted)}+)/ then StaticSegment.new($1) 834: when Regexp.new(separator_pattern) then 835: returning segment = DividerSegment.new($&) do 836: segment.is_optional = (optional_separators.include? $&) 837: end 838: end 839: [segment, $~.post_match] 840: end
Accepts a "route path" (a string defining a route), and returns the array of segments that corresponds to it. Note that the segment array is only partially initialized—the defaults and requirements, for instance, need to be set separately, via the assign_route_options method, and the optional? method for each segment will not be reliable until after assign_route_options is called, as well.
# File vendor/rails/actionpack/lib/action_controller/routing.rb, line 806 806: def segments_for_route_path(path) 807: rest, segments = path, [] 808: 809: until rest.empty? 810: segment, rest = segment_for rest 811: segments << segment 812: end 813: segments 814: end


Application Data Exchange Assessment Framework and Functional Requirements for Mobile Health - Local Development build (v0.1.0). See the Directory of published versions
Application Data Exchange Assessment Framework and Functional Requirements for Mobile Health
Mobile apps and devices provide their own APIs and methods for collecting device
data that can be communicated to EHR, PHR and research endpoints. Much of this data
can (and has been) readily converted to FHIR resources. However, some limits have
been encountered which demonstrate that essential data needed to generate, interpret
and use the FHIR resources is sometimes missing. The purpose of this implementation
guide is document the functional requirements that can be used to assess devices,
applications, and FHIR profiles to ensure that the essential data needed for clinical,
patient and research uses is present in communications between applications.
Target Audience
The target audience for this document includes executive leaders, senior managers,
and development staff interested in integrating mobile health devices into the health
care eco-system.
This includes:
- Members of organizations developing standards or regulation supporting these capabilities
including:
- Public Health Agencies
- Quality Reporting Agencies
- Regulators and Law-makers
- Organizations developing or assessing the functionality of
- Electronic Health Record (EHR) systems,
- Personal Health Record (PHR) systems,
- Patient Engagement solutions,
- Mobile Health Devices, and
- Mobile Health Apps or infrastructure.
- Healthcare Institutions using, purchasing, or connecting to these systems to their
EHR systems.
- Health Information Exchange organizations facilitating such connections.
Scope of Work
The scope of this project is to develop the assessment framework and functional requirements
for consumer medical devices and applications required to support the exchange of
observations and other data in support of consumer health monitoring. This project
will focus on Observation resources related to:
- vital signs
- height,
- weight,
- blood pressure,
- O2 saturation,
- respiration and heart rate,
- physical activity (including sleep).
Out of Scope
This guide is focused on functional requirements. As such, it specifically leaves
out non-functional requirements addressing system performance and behavior. The
HL7 Mobile Health Application Functional Framework specification addresses many of
these issues.
Out of scope items include:
- Privacy and Security - Devices and applications are expected to operate in a secure
environment, but this specification provides no guidance in assessing the security
or privacy of these components.
- Reliability, Accuracy Precision - Devices and applications are expected to operate
reliably and produce results with adequate precision and accuracy, however, this
specification does not document how these are assessed.
- Performance, Scalability, Cost, Quality, et cetera.
Document Conventions
Explains Meaning of key words and other conventions or structures used in the document.
The phrases: SHALL, SHOULD, MAY, SHALL NOT, SHOULD NOT, NEED
NOT, when appearing in this document in BOLD UPPERCASE have the following meanings:
- SHALL
- An absolute requirement for all implementations.
- SHALL NOT
- An absolute prohibition against inclusion for all implementations.
- SHOULD/SHOULD NOT
- A best practice or recommendation to be considered by implementers within the
context of their particular implementation; there may be valid reasons to ignore
an item, but the full implications must be understood and carefully weighed before
choosing a different course.
MAY/NEED NOT: This is truly optional language for an implementation; can be
included or omitted as the implementer decides with no implications.
This are similar to the Conformance Language
used in HL7 FHIR and have the same meanings.
FHIR Resource names and field names will appear in text as Resource
. Field names
may be preceded by the encompassing resource as in Resource.field
or may simply
appear on their own as field
when the Resource can be understood from context.
Document Organization
- Overview
- Provides an overview of the challenges this implementation guide is trying to solve
and describes the technical environment and approach it uses to address these challenges.
- Use Cases
- Describes the four key use cases associated with this implementation guide.
- Actors
- Describes the systems and users that are affected by this implementation guide, and
their roles and responsibilities.
- Using This Guide
- Explains how implementers of solutions conforming to this guide, users of those systems,
and assessors of those systems can use this guide to facilitate integration of mobile
health devices and applications into their health inforamation technology solutions.
- Conformance
- Explains how to assert or communicate conformance to this guide.
- Functional Requirements
- Provides the functional requirements against which a device, system, or implementation
specification can be assessed.
- Resource Profiles
- Provides FHIR Resource profiles against which FHIR Resources can be assessed for conformance.
Click on any of the links above, head on over the table of contents,
or if you are looking for a specific artifact including sample resources,
check out the Artifact Index.
Downloads
You can also download:
Acknowledgements
HL7 would like to thank the following individuals and organizations for contributing
to this effort.
Individuals
- Ida Sim, MD, PhD, Co-Director,
Informatics & Research Innovation, UCSF Clinical and Translational Sciences Institute
- Simona Carini, MS, Programmer/Analyst,
UCSF
- Keith W. Boone, MBI, Informatics Adept,
Audacious Inquiry
- Christina Caraballo, Director,
Audacious Inquiry
- Nathan Botts, MA, PhD, Senior Study
Director, Westat
- Gora Datta, MS, CEO, CAL2CAL
- Frank Ploeg, Enterprise Architect, University
Medical Hospital Groningen
- Matthew Graham, BS, Technical
Specialist II, Mayo Clinic
- Lawrence Garber, MD, Medical
Director of Informatics, Reliant Medical Group
Organizations
Glossary
“When I use a word,” Humpty Dumpty said in rather a scornful tone, “it means just what I choose it to mean – neither more nor less.” - Lewis Carrol, Alice in Wonderland
The purpose of this Glossary is to ensure that the words and phrases are properly understood
in the context of this guide. It is not an attempt to standardize these terms for general
use.
- App
- Whether used alone, or with the adjective Mobile Health, App is simply a shortened
form of Application, but specifically means Mobile Health Application in the context
of this document. A Mobile Health Application is one that can be accessed via a mobile
devices such as a smart watch, smart phone or tablet. Such an App may also be accessible via
the Internet or a personal computer.
- Application
- In this guide, the term application refers to a collection of computer software which
provides some computing functionality to an end user. This functionality can be spread
across multiple computing devices or executed within a single computing devices.
While all Apps are also applications according to this guide, not all applications
may be considered to be Apps.
- Assessor
- An assessor is one who measures. In the context of this guide, an assessor is an individual
or organization who measures how well a device, app, application, system or implementation
guide measures up against the criteria specified in this guide.
- Mobile Computing Device
- Mobile computing devices are designed to be easily carried around (i.e., either worn
or carried in an possibly over-sized pocket), can perform general purpose computing on
behalf of a user, contain sensors that measure data about a user, and can connect wirelessly
to a network (e.g., via WiFi, Cellular, Bluetooth or other technology). The principle form
of input for a mobile device is generally a touch screen. These include devices such as
a smart watch, smart phone or tablet computer. Laptop computers (even 2-in-1 units)
are not considered in this guide to be a mobile computing device. While “mobile” in
the general sense, they aren’t the kind of thing that you can fit into an over-sized
pocket easily and usually rely on external keyboard input for certain tasks.
- Mobile Device
- Mobile Devices include sensors that measure data about a user or their environment
and can connect to mobile (or other) computing devices. Mobile computing devices are
considered to be mobile devices.
- Mobile Health
- Mobile Health is often used as an adjective to describe devices, applications,
data repositories and other systems used with mobile computing devices such as a smart watch,
smart phone, or tablet or wireless networks (WiFi, Cellular, Bluetooth or other).
- Regulated Health Device
- A regulated device is one which is subject to some form of regulatory health authority (e.g.,
in the US, the Food and Drug Administration (FDA)). Devices may also be subject to
other regulation (e.g., if they contain a radio transmitter, they may be regulated by
the FCC, they may be regulated by by authorities such as UL or CE), but in the context
of this guide, the term specifically addresses devices regulated by health authorities.
- Software
- Software is a collection computing instructions which tells a computing system
how to operate to perform some function. An application is a collection of software
components. This guide makes NO distinction between software and firmware (basically
read-only or unmodifiable software included in many computing devices). Today’s computing
platfoms include software known as a Basic Input Output System (BIOS) that in prior years was
not designed to be replaced or altered by the end-user. Most systems today now use
some form of non-volatile memory to store this software, which was previously known
as “firmware” because it couldn’t be easily changed (it still can’t be easily changed,
but that’s another story).
- SUT
- In conformity assessment, SUT is an acronym that means the System Under Test. In
the context of this guide, other specifications or implementation guides may also be tested.
- System
- A system is a collection of both hardware and software which provided computing capabilities
to an end user. It is distinct from “application” in that in includes both the application
and the computing components, whereas “application” includes only the software components.


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.apache.xerces.utils.CharDataChunk
This class provides the character buffers used by some of the reader classes. The instances of this class are reference counted and placed upon a free list for reallocation when no longer in use so that they are reclaimed faster and with less overhead than using the garbage collector.
| Field Summary | |
static int |
CHUNK_MASK
|
static int |
CHUNK_SHIFT
Chunk size constants The reader classes use the chunk size directly for better performance. |
static int |
CHUNK_SIZE
|
| Method Summary | |
int |
addString(int offset,
int length)
Add a range from this chunk to the StringPool |
int |
addSymbol(int offset,
int length,
int hashcode)
Add a range from this chunk to the StringPool as a symbol |
void |
append(XMLEntityHandler.CharBuffer charBuffer,
int offset,
int length)
Append data from a CharBuffer to this chunk. |
CharDataChunk |
chunkFor(int offset)
Return the instance that contains the specified offset. |
boolean |
clearPreviousChunk()
Clean the previous chunk reference. |
static CharDataChunk |
createChunk(StringPool stringPool,
CharDataChunk prev)
Public constructor (factory) If there are any free instances available, remove them from the free list and reinitialize them. |
boolean |
equalsString(int offset,
int length,
char[] strChars,
int strOffset,
int strLength)
Compare a range in this chunk and a range in a character array for equality |
CharDataChunk |
nextChunk()
Get the next chunk. |
void |
releaseChunk()
Release the reference to this chunk held by the reader that allocated this instance. |
void |
releaseString(int offset,
int length)
Release a string from this chunk |
void |
setCharArray(char[] data)
Set the character array for this instance. |
char[] |
toCharArray()
Get the character array of this instance. |
java.lang.String |
toString(int offset,
int length)
Return a range of characters as a String . |
| Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
| Field Detail |
public static final int CHUNK_SHIFT
public static final int CHUNK_SIZE
public static final int CHUNK_MASK
| Method Detail |
public static CharDataChunk createChunk(StringPool stringPool, CharDataChunk prev)
stringPool
- The string pool.prev
- The chunk that precedes this one, or null if this is
the first chunk.public CharDataChunk chunkFor(int offset)
offset
- The offset to find.public char[] toCharArray()
public void setCharArray(char[] data)
data
- The character data.public CharDataChunk nextChunk()
public boolean clearPreviousChunk()
true
if we cleared the previous chunk pointer;
otherwise false
if the pointer is already null.public void releaseChunk()
public int addString(int offset, int length)
StringPool
offset
- the offset of the first character to be addedlength
- the number of characters to addStringPool
handle that was added.public int addSymbol(int offset, int length, int hashcode)
StringPool
as a symboloffset
- the offset of the first character to be addedlength
- the number of characters to addhashcode
- hashcode to match to ensure uniquenessStringPool
handle that was added.public void append(XMLEntityHandler.CharBuffer charBuffer, int offset, int length)
CharBuffer
to this chunk.charBuffer
- the buffer to be appended.offset
- the offset of the first character to be appended.length
- the number of characters to append.public java.lang.String toString(int offset, int length)
String
.offset
- the offset of the first character to convert.length
- the number of characters to convert.String
public void releaseString(int offset, int length)
offset
- the offset of the first character to be releasedlength
- the number of characters to release.public boolean equalsString(int offset, int length, char[] strChars, int strOffset, int strLength)
offset
- the offset of the first character in the range in this chunklength
- the number of characters in the range to comparestrChars
- the character array to comparestrOffset
- the offset of the first character in the range in strCharsstrLength
- the number of characters to release.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Oral Talks presented at the Virtual Obseratories in Space and Solar Phyiscs Workshop
Aaron Roberts, VO Framework
Ray Walker, Historical Overview
Volodya Papitashvili, VOs and eGY
Chuck Holmes, What NASA Wants
Jim Thieman, the SPASE Data Model
Frank Hill, What's Inside the Small (VSO) Box
Aaron Roberts, A "Large Box" (VSPO)
Bob Bentley, Registries in a Grid Context (EGSO)
Neal Hurlburt, CoSEC and VO Services
Adam Szabo, Repositories and VxOs
Bobby Candey, SOAP and ftp Interfaces to Repositories
Posters
Listing of Posters as of 20 October 2004
Auden, Astrogrid, Solar and STP
Auden, SDO and Astrogrid
Dalla, Astrogrid, Solar System
Karimibadi, Data Mining
Hourcle, VSO Data Transfer
Morrison, VITMO
Narock, VHO
Pfister, ECHO (An "Earth Science VO")
Papitashvili, VGMO (Ground-based magnetometers)
Suarez-Sola, VSO Applications
eGY News
Fox, VSTO (NCAR Solar-Terrestrial)
Candey, SECAA Web Services (CDAWeb and ftp)
de La Beaujardiere, Geospatial Interoperability
McGuire, Multimission Active Archive
Vandegriff, Data Unification Service
Vandegriff, Data Unification Service, part 2
Darnell, MLSO (Solar oberservations)
Zhang, Automatic CME detection
North, Metadata Library
Green, ViRBO (Radiation Belts)
Fung, Magnetospheric State-Based Modeling and Analysis Tools
Byrnes, Holland Peer to Peer architecture


Select All
This is an inbox layout.
Check one item
Hold down your CTRL key
Check a lower item
Everything in between should also be set to checked
Try to do it without any libraries
Just regular JavaScript
Good Luck!
Don't forget to tweet your result!


Mazda 3 voted Women’s World Car of the Year 2019
by Staff WriterMazda 3 took top honours and also won the Best Family Car Award; Korean carmaker did well for itself, winning two categories of awards.
The Mazda 3 has been named the Women’s Car of the Year 2019. The announcement was made at the Dubai International Motor Show. The Women’s World Car of the Year's all-woman jury comprised 41 jurors from 34 countries, including Autocar India’s Renuka Kirpalani.
In addition to winning the top honour, the Mazda 3 was adjudged the Family Car of the Year as well. Kia Motors also received recognition in two categories, with the XCeed being named Urban Car of the Year, and the Soul EV winning the Green Car Award. The BMW 8 Series was named the Luxury Car of the Year, the Porsche 911 won the Performance Car Award while the Range Rover Evoque was announced as the SUV/Crossover of the Year.
| Women's World Car of the Year 2019 finalists | |||
| Category | Winner | Finalist | Finalist |
| Urban | Kia XCeed | Renault Clio | Skoda Scala |
| Family | Mazda 3 | Toyota Corolla | BMW 3 Series |
| Green | Kia Soul EV | Audi e-tron | Tesla Model 3 |
| Luxury | BMW 8 Series | Porsche Cayenne Coupe | BMW X7 |
| Performance | Porsche 911 | Mercedes-AMG A35/45 | Toyota GR Supra |
| SUV/Crossover | Range Rover Evoque | Citroen C5 Aircross | Lexus UX |
The Holly Reich Dream Car award – dedicated to the memory of a former WWCOTY panellist – was won by the Porsche Taycan. This award is presented to the judges’ dream car, which they would love to own.
The finalists for the Woman of Worth Award – introduced in 2018 – included racing driver and television presenter, the late Jessi Combs; Mary Barra (CEO and chairman of General Motors) and Linda Jackson (CEO of Citroën). Citroën’s Jackson was announced as the winner. Addressing the event from France, Jackson said, “Beyond my person I believe that it rewards the success of Citroën's renewal, which I have undertaken for the past five years with my teams, passionate women and men whom I would like to thank warmly. This prize is also theirs! This award also has a very special dimension for me in this year of Citroën's Centenary.”
The Women’s World Car of the Year Awards came into being in 2009 and has grown every year since. Judges rate cars on the criteria women typically base their car-buying decisions on. Safety, value-for-money, aesthetic appearance, storage space, child-friendliness, ease of driving, colour, sex appeal, and environmental footprint are some of the parameters that the cars are judged on.
Previous winners of the WWCOTY include the Volvo XC40 in 2018, Hyundai Ioniq in 2017, the Jaguar F-Pace in 2016, Volvo XC90 in 2015, the Mercedes-Benz S-class in 2014 and the Ford Fiesta EcoBoost in 2013.
Also see:
BMW 8 Series Gran Coupe review
Kia Soul EV review
Porsche 911 India review


Date: 25 February 2016.
I'm experimenting with the pomodoro technique, which I have heard of but not used before. I'm also planning my days quite carefully, so I know what I'm trying to achieve each day. I spare 15minutes each day, planning the next day. This makes it easier for me to muck in without hesitation
I found the concept of making small habits over time to achieve big changes, interesting. In particular the use of existing behaviours to trigger those habits.
The same applies to 'think big' 'start small'. In a sense this is almost agile thinking. Breaking large tasks in to small rolling jobs, to make the process smoother and easier to achieve.
Ask me again in 3 months
I'm going to continue with habit creation, specifically using behavioural triggers.


Styling inputs based on require attribute
Feedback form
First name:
Last name:
Email address (include if you want a response):
Submit
Custom styled radio inputs with usage of generated content and state pseudo class
Choose your favourite fruit
Cherry
Banana
Strawberry
Choose your favourite fruit
Cherry
Banana
Strawberry
Styled form with usage of generated content and require pseudo class
Feedback form
Required fields are labelled with "required".
First name:
Last name:
Email address (include if you want a response):
Submit
Form styling with addition of form constraint validation pseudo classes
Feedback form
Required fields are labelled with "required".
First name:
Last name:
Age (must be 12+):
Email address (include if you want a response):
Submit
Form styling with usage of enabled/disabled pseudo classes
Shipping address
Name:
Address:
Zip/postal code:
Billing address
Same as shipping address:
Name:
Address:
Zip/postal code:
Submit
Form styling with usage of read-write/read-only pseudo classes
Check shipping details
Name:
Address:
23 Elastic Way, Viscous, Bright Ridge, CA
Zip/postal code:
Final instructions
Send confirmation by SMS?
Any special instructions?
Amend details
Submit


See the network of named entities in your text documents.
Upload several text files and this application will detect the named entities
(people, places, organizations, etc.) in each file, showing a graph of
the shared entities between the several documents.
The application can optionally use a MongoDB server (set in the Configuration menu)
to cache the results of the named entity recognition computations.


In C++ it is possible to accept command-line arguments.
To pass command-line arguments into your program, C++ have a special argument list for main( ), which looks like this:
int main(int argc, char* argv[]) {
...
}
The first argument (argc) is the number of elements in the array, which is the second argument (argv). The second argument is always an array of char*, because the arguments are passed from the command line as character arrays (an array can be passed only as a pointer). Each whitespace-delimited cluster of characters on the command line is turned into a separate array argument. The following program (download) prints out all its command-line arguments by stepping through the array:
#include <iostream>
using namespace std;
int main(int argc, char* argv[]) {
cout << "argc = " << argc << endl;
for(int i = 0; i < argc; i++)
cout << "argv[" << i
<< "] = " << argv[i] << endl;
return 0;
}
You’ll notice that argv[0] is the path and name of the program itself. This allows the program to discover information about itself. It also adds one more to the array of program arguments, so a common error when fetching command-line arguments is to grab argv[0] when you want argv[1].
You are not forced to use argc and argv as identifiers in main( ), those identifiers are only conventions (but it will confuse people if you don’t use them). Also, there is an alternate way to declare argv:
int main(int argc, char** argv) {
...
}
Both forms are equivalent.
All you get from the command-line is character arrays; if you want to treat an argument as some other type, you are responsible for converting it inside your program. To facilitate the conversion to numbers, there are some helper functions in the Standard C library, declared in <cstdlib>. The simplest ones to use are atoi( ), atol( ), and atof( ) to convert an ASCII character array to an int, long, and double, respectively. Here’s an example using atoi( ) (the other two functions are called the same way):
#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char* argv[]) {
for(int i = 1; i < argc; i++)
cout << atoi(argv[i]) <<
endl;
return 0;
}
In this program, you can put any number of arguments on the command line. You’ll notice that the for loop starts at the value 1 to skip over the program name at argv[0]. Also, if you put a floating-point number containing a decimal point on the command line, atoi( ) takes only the digits up to the decimal point. If you put non-numbers on the command line, these come back from atoi( ) as zero.


I will try to give the most complete description I can give about me first mushroom experiance. I'm 16 years old, female. My friend Jane is also 16 years old. I have experimented with only alcohol and pot before. I would call myself very inexperianced with psychoactives. At the time, I was taking St. John's Wort just because I had been feeling crummy lately.
My friend ran over to my house at around 1. I whipped out the bag of shrooms (an 1/8 of an ounce) and we simply ate then plain, Chewed on them and swallowed. The mushrooms, I suspect were of poor quality. The caps were very small and most of the bag was composed of crushed caps and dust. Oh well. We both found the to be fairly good tasting. I ate about 2/3 of the bag and she ate the rest. Looking at our piles it was very clear to see that I had much more than she did. I was really excited, expecting an incredible experiance. My friend was tired from the run over, and didn't seem as apprehensive as I was.
 We had no idea what to expect at all. Every couple minutes we would check for eye dilation or anything physical signs out of the norm because her parents were at home.
When we were almost there, she was telling my how heavy she felt. She said her hands and feet felt like rubber. She kept staring and moving her hands around. She told me that they were huge. I wondered why nothing was happening to me yet. We approached the base of her hill ( my friend lives on this huge hill!) We looked up at it in awe. It seemed so big, and the trees on top of the hill seemed so tall and old and wise. It looked like a fairy tale picture.
By now, I felt different. I'm positive I wasn't tripping but I felt different in a way I couldn't explain. I was mush less aware of my surroundings, just walking. The walk to her house seemed to take no time at all. My friend could hardly walk up the hill and she said it took great effort. When we got to her house, we manuvered by her parents fine and went into her basement to watch a movie. We both sat on the coach and watched a movie. It was really funny and I felt like I was laughing in slow motion, but I didn't really want to watch the movie. My friend completely stopped talking to me. I looked around the dark basement at different objects, and everything, the walls the furniture, looked like it was breathing. ( if that makes any sense)
After the movie we went out side. It was BEAUTIFUL! It looked like a story book. The colors were so bright, the sky, her lawn, the flowers, everything was so pretty.
Jane said me 'I figured it out! I couldn't quite tell what it felt like, but it's like we are on tv! See the screen!' (and I just laughed at her. I thought it was so cool how she was tripping. But I really didn't feel anything special. I was felt relaxed, everything was good) so I asked her where the screen was, and she pointed into the sky, and I just laughed at how cool the idea seemed. But she thought I was making fun of her and she got really depressed. We just chilled on her lawn, honestly I was happy just sitting there with her. She got very depressed though. I wanted her to explain what she was going through.
She said that, we were all in big domes. And she got mildly upset that I couldn't see the domes that were so apparent to her. She said that there were people outside of the domes that were controlling us and laughing at us. Then the people turned into robots. She said she couldn't actually see them but she could feel them. Her 5 little bothers and sisters kept running up to us. We were supposed to be watching them. They kept demanding things, and she said she felt powerless. When they talked they did seem very powerful, and it was like we couldn't do anything about it. Her youngest sister, who is four, went up to jane and said something. Jane stared back at her for a couple minutes and said, 'are you god?'. To me, her sister seemed very evil, and she kept laughing, but it was very entertaining to hear her laugh and talk about nothing at four year olds to.
I ask jane what was happening now and she said that half her lawn turn black and white. I asked her what half. Then jane drew a line in between us, saying that on my side it was colorful, and on her side it was black and white. She seemed very depressed.  We went up to her pool deck and lied down in the sun (it was a gorgeous day) and she was crying and telling me that the domes were getting small, she said that the dome was around her house now. And pretty soon, it would only be around her family, then only around her and me, and then eventually only around her. She was crying, so I told her...'well damn, I'll be in the dome right next to you, you can call me anytime!' and she said she couldn't.
I couldn't believe how hard she was getting hit. I felt basically normal, except extremely GOOD! So I talked to her and tried to make her feel better. We talked about her family and alot of things she had on her mind. At no point was she tweaking out though. When we were coming down she apologized for not talking to me before, and telling me to go away. She said that she couldn't talk because she had no control, and talking was just so overwhelming for her at the time.
I went to the dentist at four, still tripping a little. My mother picked me up and I had no problem talking to her. One thing jane and I talked about was our mothers.  Since then I haven't had negative feeling about me mother and I talk to her much more now. I feel like our relationship is better.
When the dentist gave me novacaine, I started cracking up (laughing) I thought it was histerical. After I went back to my friends house, as I promised I would, and we just chilled. The come down was awesome. After it totally wore off, I felt great! There was no hang-over effect at all!!! With pot, I had gotten extreme depression and mental cloudiness for 2-3 days after being high. It left us both with a sense of wellbeing.
I was surprised when jane told me that she loved the experiance and wanted to do it again, because it seemed like a miserable time for her. We both are in love with this drug, and are so glad we found it. We don't have the desire to drink anymore, and we both hate smoking weed. We decided it is the 'best drug in the world'. I can't wait to do it again.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Ant & Dec address Chris Ramsey's controversial Let's Get Ready To Rhumble dance on Strictly
The Newcastle comedian performed a couple's choice street/commercial dance to the hit, recorded by the TV stars when they were known as PJ & Duncan, their characters in Byker Grove
by James Rodger, https://www.facebook.com/jamesrodgerjournalistChris Ramsey has thrilled Ant & Dec with a routine to Let's Get Ready To Rhumble on Strictly Come Dancing.
The Newcastle comedian performed a couple's choice street/commercial dance to the hit, recorded by the TV stars when they were known as PJ & Duncan, their characters in Byker Grove.
He dressed in a matching tracksuit and bucket hat with partner Karen Hauer, performing a routine so dynamic it left his wife Rosie in tears.
After the routine, judge Craig Revel Horwood deadpanned: "That was sick," while Motsi Mabuse said it was his best dance to date.
Declan Donnelly tweeted: "Well I never thought I'd hear #LetsGetReadyToRhumble on #Strictly!
"Oh @IAmChrisRamsey, you nailed it man! What a belter!"
The comments from Ant & Dec come after Strictly fans were left furious over what they perceived as generous marking from the judges.
One fumed: "Fun dance, but think they overmark the street dance as they don’t know technically what they are looking for #Strictly ."
 an unimpressed social media user added.
Another quizzed: "What is that street dance c*** on #Strictly ? Ridic."
Karim Zeroual topped the leaderboard with 39 points after kicking off the show with an impressive quickstep, set inside a tailor's shop.
Head judge Shirley Ballas gave him a standing ovation, saying: "That was an absolutely a brilliant way to start the show, your frame was exquisite.
"You were absolutely in control, that is one of the best quicksteps I've seen."
RuPaul's Drag Race star Michelle Visage also impressed with her paso doble performed while wearing a dramatic red cape, which was pulled off by partner Giovanni Pernice halfway through the routine to reveal a matador outfit.
Footballer Alex Scott also impressed with her American smooth to Marvin Gaye and Tammi Terrell's Ain't No Mountain High Enough, which she performed with Kevin Clifton while her partner Neil Jones recovers from injury.
Rehearsal footage showed Jones on crutches, breaking the news to his partner that he has a grade one strain and ahead of the performance, Clifton said: "We are doing this for Neil, he's been there every step of the way and we just want to do him proud."
Revel Horwood told her "this accidental partnership is working wonders", while Mabuse praised her "huge improvement in everything".
However, EastEnders actress Emma Barton ended up at the bottom of the leaderboard after failing to win over the judges with her rumba.
Mabuse said: "In some moments I could see the intention, I just feel like you're still searching.
"You have to keep pushing, but I can see your potential," while Ballas criticised Barton's timing, to the frustration of her partner Anton Du Beke.
Viscountess Emma Weymouth also struggled as she danced a samba to I Don't Care by Ed Sheeran and Justin Bieber, set on a rooftop bar.
Revel Horwood told her: "We certainly got the energy, but technically I thought it was a little bit sloppy."
Strictly Come Dancing continues at 7.15pm on Sunday.


Table of Contents
- Team
- Player
Team
Overall
Game
Most Points in a Win
Most Points in a Loss
| Record | Year | Team | Opponent |
|---|---|---|---|
| 295 | 2017 | Yale A | Michigan A |
| 295 | 2013 | Penn A | Yale A |
| 290 | 2012 | Penn A | Yale A |
| 285 | 2019 | Columbia A | Minnesota A |
| 285 | 2010 | Penn A | Chicago A |
| 280 | 2016 | MIT A | Yale A |
| 280 | 2014 | Chicago A | Yale A |
| 275 | 2017 | Stanford A | Michigan A |
| 275 | 2017 | Stanford A | Chicago A |
| 275 | 2016 | Berkeley A | Michigan A |
Most Tossups in a Game
| Record | Year | Team | Opponent |
|---|---|---|---|
| 20 | 2014 | Virginia A | Stanford A |
| 19 | 2019 | Columbia A | Caltech A |
| 19 | 2016 | Berkeley A | New College of Florida |
| 19 | 2015 | Virginia A | Notre Dame B |
| 19 | 2010 | VCU A | Maryland B |
| 19 | 2007 | UCLA | Tennessee-Chattanooga |
| 19 | 2006 | Brown A | Athens State B |
Most Negs in a Game
Most Bonus Points in a Game
Most Total Points in a Game
| Record | Year | Game |
|---|---|---|
| 655 | 2014 | Virginia A (660) vs. Stanford A (-5) |
| 630 | 2016 | Chicago A (460) vs. Dartmouth A (170) |
| 625 | 2017 | Michigan A (350) vs. Stanford A (275) |
| 620 | 2016 | Michigan A (560) vs. Minnesota A (60) |
| 620 | 2014 | Virginia A (435) vs. North Carolina (185) |
| 620 | 2012 | Yale A (330) vs. Penn A (290) |
| 615 | 2014 | Penn A (395) vs. Michigan A (220) |
| 610 | 2015 | Virginia A (610) vs. Notre Dame B (0) |
| 610 | 2008 | Chicago A (395) vs. Maryland A (215) |
| 605 | 2017 | Michigan A (310) vs. Yale A (295) |
| 605 | 2016 | Chicago A (555) vs. Berkeley B (50) |
| 605 | 2014 | Penn A (385) vs. Maryland A (220) |
| 605 | 2014 | Virginia A (510) vs. Illinois A (95) |
| 605 | 2013 | Yale A (310) vs. Penn A (295) |
Tournament
Highest Tournament PPG
| Record | Year | Team |
|---|---|---|
| 458.16 | 2014 | Virginia A |
| 405.25 | 2016 | Michigan A |
| 403.00 | 2016 | Chicago A |
| 387.00 | 2015 | Virginia A |
| 376.32 | 2014 | Penn A |
| 371.90 | 2015 | Penn A |
| 368.95 | 2010 | Stanford A |
| 368.12 | 2012 | Yale A |
| 364.33 | 2017 | Maryland A |
| 352.63 | 2010 | Minnesota A |
Most Tournament Tossups Per Game
| Record | Year | Team |
|---|---|---|
| 15.00 | 2014 | Virginia A |
| 13.75 | 2016 | Michigan A |
| 13.65 | 2016 | Chicago A |
| 13.30 | 2015 | Virginia A |
| 13.26 | 2010 | Stanford A |
| 13.25 | 2007 | Chicago A |
| 12.95 | 2014 | Penn A |
| 12.90 | 2015 | Penn A |
| 12.79 | 2010 | Minnesota A |
| 12.62 | 2012 | Yale A |
Most Tournament Negs Per Game
| Record | Year | Team |
|---|---|---|
| 4.08 | 2007 | Maryland A |
| 3.56 | 2010 | Maryland A |
| 3.27 | 2006 | Michigan A |
| 3.24 | 2018 | Berkeley B |
| 3.18 | 2015 | NYU |
| 3.12 | 2013 | Berkeley A |
| 3.12 | 2018 | Rutgers |
| 3.09 | 2011 | Chicago A |
| 3.09 | 2008 | Maryland A |
| 3.08 | 2011 | Michigan A |
Highest Tournament PPB
| Record | Year | Team |
|---|---|---|
| 21.02 | 2014 | Virginia A |
| 20.34 | 2017 | Michigan A |
| 20.34 | 2018 | Yale A |
| 20.29 | 2016 | Chicago A |
| 20.22 | 2016 | Michigan A |
| 19.89 | 2017 | Maryland A |
| 19.75 | 2012 | Yale A |
| 19.74 | 2015 | Virginia A |
| 19.67 | 2014 | Penn A |
| 19.59 | 2015 | Penn A |
Prelims
Highest Prelims PPG
| Record | Year | Team |
|---|---|---|
| 484.55 | 2014 | Virginia A |
| 458.00 | 2016 | Chicago A |
| 441.82 | 2015 | Virginia A |
| 435.00 | 2014 | Penn A |
| 429.09 | 2015 | Penn A |
| 428.00 | 2016 | Michigan A |
| 427.50 | 2012 | Yale A |
| 408.33 | 2017 | Maryland A |
| 399.38 | 2013 | Virginia A |
| 396.25 | 2013 | Illinois A |
Most Prelims Tossups Per Game
| Record | Year | Team |
|---|---|---|
| 15.64 | 2014 | Virginia A |
| 15.10 | 2016 | Chicago A |
| 14.90 | 2014 | Penn A |
| 14.82 | 2015 | Virginia A |
| 14.64 | 2015 | Penn A |
| 14.50 | 2013 | Illinois A |
| 14.40 | 2016 | Michigan A |
| 14.33 | 2012 | Yale A |
| 14.29 | 2017 | Chicago A |
| 14.18 | 2015 | Chicago A |
Playoffs (Top Bracket Only)
Highest Playoffs PPG
Top bracket only
| Record | Year | Team |
|---|---|---|
| 421.88 | 2014 | Virginia A |
| 391.67 | 2016 | Michigan A |
| 368.89 | 2016 | Chicago A |
| 364.00 | 2010 | Stanford A |
| 351.25 | 2017 | Michigan A |
| 345.62 | 2017 | Maryland A |
| 339.44 | 2012 | Yale A |
| 322.00 | 2018 | Yale A |
| 320.00 | 2014 | Penn A |
| 320.00 | 2015 | Virginia A |
Most Playoffs Tossups Per Game
Top bracket only
| Record | Year | Team |
|---|---|---|
| 14.12 | 2014 | Virginia A |
| 13.22 | 2016 | Michigan A |
| 12.80 | 2010 | Stanford A |
| 12.78 | 2016 | Chicago A |
| 12.25 | 2007 | Chicago A |
| 12.00 | 2005 | Chicago A |
| 12.00 | 2005 | Michigan A |
| 11.89 | 2012 | Yale A |
| 11.88 | 2017 | Maryland A |
| 11.88 | 2014 | Yale A |
All-Time
Most Points at ACF Nationals
| Record | Team |
|---|---|
| 71,215 | Chicago A |
| 55,185 | Maryland A |
| 54,535 | Michigan A |
| 53,645 | Yale A |
| 49,795 | Virginia A |
| 48,995 | Illinois A |
| 45,915 | Penn A |
| 44,215 | Harvard A |
| 43,840 | Stanford A |
| 43,305 | Minnesota A |
Most Appearances at ACF Nationals
| Record | Team |
|---|---|
| 15 | Chicago A |
| 15 | Chicago B |
| 14 | Maryland A |
| 13 | Harvard A |
| 13 | Illinois A |
| 13 | Michigan A |
| 13 | Rutgers |
| 13 | Virginia A |
| 12 | VCU A |
| 11 | Chicago C |
| 11 | Minnesota A |
| 11 | Yale A |
Undergraduate
Game
Most Points in a Game
Most Tossups in a Game
Tournament
Highest Points Per Game
| Record | Year | Team |
|---|---|---|
| 352.63 | 2010 | Minnesota A |
| 344.74 | 2016 | Maryland A |
| 330.25 | 2014 | Yale A |
| 300.75 | 2016 | Berkeley A |
| 291.84 | 2014 | Harvard A |
| 278.33 | 2019 | Berkeley A |
| 272.06 | 2018 | Berkeley A |
| 260.62 | 2017 | Berkeley A |
| 253.67 | 2019 | Michigan State |
| 250.62 | 2018 | Oklahoma |
Most Tossups Per Game
| Record | Year | Team |
|---|---|---|
| 12.79 | 2010 | Minnesota A |
| 12.47 | 2016 | Maryland A |
| 12.10 | 2014 | Yale A |
| 11.40 | 2016 | Berkeley A |
| 11.11 | 2014 | Harvard A |
| 10.87 | 2019 | Berkeley A |
| 10.53 | 2019 | Michigan State |
| 10.44 | 2018 | Oklahoma |
| 10.29 | 2018 | Berkeley A |
| 10.29 | 2016 | Oklahoma |
Highest PPB
| Record | Year | Team |
|---|---|---|
| 18.52 | 2010 | Minnesota A |
| 18.48 | 2016 | Maryland A |
| 18.06 | 2014 | Yale A |
| 17.37 | 2018 | Berkeley A |
| 17.35 | 2014 | Harvard A |
| 17.02 | 2016 | Berkeley A |
| 16.63 | 2019 | Berkeley A |
| 16.59 | 2017 | Berkeley A |
| 15.75 | 2015 | Yale A |
| 15.30 | 2015 | Harvard A |
Division II
Game
Most Points in a Game
Most Tossups in a Game
Tournament
Highest Points Per Game
| Record | Year | Team |
|---|---|---|
| 237.35 | 2016 | Oklahoma |
| 204.44 | 2010 | State College A |
| 192.65 | 2016 | Virginia A |
| 185.62 | 2016 | MIT B |
| 179.00 | 2014 | North Carolina |
| 169.17 | 2008 | Minnesota A |
| 163.33 | 2015 | Northwestern |
| 162.22 | 2015 | MIT B |
| 156.00 | 2019 | Harvard B |
| 155.38 | 2017 | MIT B |
Most Tossups Per Game
| Record | Year | Team |
|---|---|---|
| 10.29 | 2016 | Oklahoma |
| 9.61 | 2010 | State College A |
| 8.65 | 2016 | Virginia A |
| 8.50 | 2016 | MIT B |
| 8.20 | 2014 | North Carolina |
| 8.00 | 2015 | Northwestern |
| 7.80 | 2019 | Harvard B |
| 7.75 | 2008 | Minnesota A |
| 7.72 | 2015 | MIT B |
| 7.57 | 2019 | Illinois B |
Highest PPB
| Record | Year | Team |
|---|---|---|
| 13.97 | 2016 | Oklahoma |
| 13.33 | 2016 | Virginia A |
| 12.99 | 2014 | North Carolina |
| 12.69 | 2008 | Minnesota A |
| 12.46 | 2016 | MIT B |
| 12.31 | 2010 | State College A |
| 12.01 | 2015 | MIT B |
| 11.74 | 2015 | Northwestern |
| 11.71 | 2019 | Harvard B |
| 11.33 | 2017 | MIT B |
Player
Overall
Game
Most Points in a Game
Most Tossups in a Game
Most Negs in a Game
Tournament
Most Points Per Game
| Record | Year | Player | Team |
|---|---|---|---|
| 97.00 | 2006 | Jerry Vinokurov | Brown A |
| 93.68 | 2010 | Andrew Yaphe | Stanford A |
| 91.67 | 2007 | Matt Weiner | VCU A |
| 91.47 | 2013 | John Lawrence | London |
| 87.33 | 2017 | Jordan Brownstein | Maryland A |
| 87.11 | 2014 | Matt Bollinger | Virginia A |
| 85.26 | 2016 | Jordan Brownstein | Maryland A |
| 85.00 | 2007 | Seth Kendall | Kentucky |
| 83.33 | 2007 | Ryan Westbrook | Wayne State |
| 83.25 | 2015 | Auroni Gupta | UCSD A |
Most Tossups Per Game
| Record | Year | Player | Team |
|---|---|---|---|
| 10.80 | 2006 | Jerry Vinokurov | Brown A |
| 9.95 | 2010 | Andrew Yaphe | Stanford A |
| 9.58 | 2007 | Matt Weiner | VCU A |
| 9.47 | 2013 | John Lawrence | London |
| 9.42 | 2007 | Ryan Westbrook | Wayne State |
| 9.30 | 2015 | Auroni Gupta | UCSD A |
| 9.20 | 2017 | Jordan Brownstein | Maryland A |
| 9.16 | 2014 | Matt Bollinger | Virginia A |
| 9.05 | 2016 | Jordan Brownstein | Maryland A |
| 8.83 | 2007 | Seth Kendall | Kentucky |
Most Negs Per Game
| Record | Year | Player | Team |
|---|---|---|---|
| 2.67 | 2007 | Chris Ray | Maryland A |
| 2.64 | 2019 | Justin French | UCLA |
| 2.50 | 2011 | Trevor Davis | Carnegie Mellon |
| 2.33 | 2011 | Evan Adams | VCU A |
| 2.22 | 2010 | Chris Ray | Maryland A |
| 2.20 | 2006 | Jerry Vinokurov | Brown A |
| 2.17 | 2007 | Ryan Westbrook | Wayne State |
| 2.17 | 2007 | Will Turner | Michigan A |
| 2.13 | 2009 | Trevor Davis | Carnegie Mellon |
| 2.11 | 2014 | Andrew Kiss | Notre Dame A |
| 2.11 | 2014 | Dylan Minarik | Northwestern |
Prelims
Most Points Per Game
| Record | Year | Player | Team |
|---|---|---|---|
| 99.09 | 2015 | Auroni Gupta | UCSD A |
| 98.33 | 2005 | Matt Weiner | VCU A |
| 96.25 | 2007 | Matt Weiner | VCU A |
| 91.67 | 2017 | Jordan Brownstein | Maryland A |
| 91.25 | 2013 | John Lawrence | London |
| 90.77 | 2010 | Andrew Yaphe | Stanford A |
| 90.62 | 2007 | Mike Sorice | Illinois A |
| 89.55 | 2014 | Matt Bollinger | Virginia A |
| 88.00 | 2016 | Jordan Brownstein | Maryland A |
| 86.67 | 2012 | Ike Jose | Illinois A |
Playoffs (top bracket only)
Most Points Per Game
| Record | Year | Player | Team |
|---|---|---|---|
| 103.00 | 2010 | Andrew Yaphe | Stanford A |
| 85.00 | 2017 | Jordan Brownstein | Maryland A |
| 83.75 | 2014 | Matt Bollinger | Virginia A |
| 82.50 | 2007 | Matt Weiner | VCU A |
| 82.22 | 2016 | Jordan Brownstein | Maryland A |
| 69.44 | 2012 | Eric Mukherjee | Penn A |
| 67.22 | 2013 | Matt Bollinger | Virginia A |
| 66.00 | 2010 | Eric Mukherjee | Penn A |
| 66.00 | 2018 | Jacob Reed | Yale A |
| 65.00 | 2015 | Matt Bollinger | Virginia A |
Career
Most Career Points
| Record | Player | App. | Teams |
|---|---|---|---|
| 8,600 | Chris Ray | 12 | Chicago, Maryland, Ohio State |
| 8,115 | Eric Mukherjee | 9 | Brown, Penn |
| 7,850 | John Lawrence | 10 | Chicago, London, Yale |
| 6,100 | Matt Bollinger | 5 | Virginia |
| 5,800 | Auroni Gupta | 6 | Michigan, UCSD |
| 5,435 | Will Nediger | 6 | Michigan |
| 5,280 | Rafael Krichevsky | 8 | Columbia |
| 5,205 | Jerry Vinokurov | 6 | Berkeley, Brown |
| 5,100 | Shan Kothari | 7 | Michigan State, Minnesota |
| 4,885 | Charles Hang | 8 | WUSTL |
Most ACF Nationals Appearances
| Record | Player | Teams |
|---|---|---|
| 12 | Chris Ray | Maryland, Chicago, Ohio State |
| 10 | John Lawrence | Yale, London, Chicago |
| 9 | Eric Mukherjee | Brown, Penn |
| 8 | Charles Hang | WUSTL |
| 8 | Evan Adams | VCU, Virginia, NYU |
| 8 | Kevin Koai | Stanford, Yale, Columbia |
| 8 | Rafael Krichevsky | Columbia |
| 7 | James Lasker | Penn, Chicago |
| 7 | Michael Coates | Chicago, Berkeley |
| 7 | Ray Luo | Berkeley, UCLA |
| 7 | Sam Bailey | Chicago, Minnesota |
| 7 | Sean Smiley | VCU, William and Mary |
| 7 | Selene Koo | Chicago |
| 7 | Shan Kothari | Michigan State, Minnesota |
| 7 | Stephen Liu | Harvard, Stanford |
Most Points Per Game (min. 25 G)
| Record | Player | G | Teams |
|---|---|---|---|
| 82.06 | Andrew Yaphe | 34 | Stanford |
| 79.70 | Matt Weiner | 33 | VCU |
| 72.62 | Matt Bollinger | 84 | Virginia |
| 65.89 | Jerry Vinokurov | 79 | Berkeley, Brown |
| 64.79 | Jordan Brownstein | 72 | Maryland |
| 64.68 | Jakob Myers | 31 | Michigan State |
| 58.85 | Neil Gurram | 39 | MIT |
| 58.60 | Mike Sorice | 82 | Illinois |
| 58.45 | Henry Gorman | 42 | Rice |
| 58.00 | Auroni Gupta | 100 | UCSD, Michigan |
Most Negs Per Game (min. 25 G)
| Record | Player | G | Teams |
|---|---|---|---|
| 1.80 | Ryan Westbrook | 35 | Michigan, Wayne State |
| 1.68 | Jordan Palmer | 47 | Toronto, Ottawa |
| 1.65 | Trevor Davis | 100 | Carnegie Mellon, Alberta |
| 1.58 | Jerry Vinokurov | 79 | Berkeley, Brown |
| 1.57 | Dylan Minarik | 68 | Northwestern |
| 1.56 | Chris Ray | 190 | Maryland, Chicago, Ohio State |
| 1.42 | Raynor Kuang | 31 | Harvard |
| 1.39 | Sam Braunfeld | 98 | Berkeley, Rutgers |
| 1.38 | Auroni Gupta | 100 | UCSD, Michigan |
| 1.33 | Andrew Kiss | 54 | Notre Dame |
| 1.33 | Matt Weiner | 33 | VCU |


Sample web site
Physical path = /pages/home.html
Identification
Identity
{{identity}}
Username
{{username}}
Purposes
{{purposes}}
Claims
{{claims}}
Username
Password
New password
Reset token
{{outcome}}


--- layout: page title: Lean Prover Zulip Chat Archive permalink: archive/141825kbb/07384fin2rec.html ---
@Scott Morrison
https://github.com/semorrison/kbb/blame/master/src/modular_group.lean#L76-L80


|
Elektra
0.8.22
|
Elektra has many different aspects to explore. Not all parts are needed by everyone. In this document we classify which parts should be read by whom.
Read this first to get the basic concepts of Elektra.
For these tutorials we assume you want to elektrify your application, that means, you want your application to participate in the global key database Elektra provides.
For these tutorials we assume that you want to work with the configuration of applications already somehow integrated with Elektra.
For these tutorials we assume that you maintain upstream packages.
These tutorials provide additional information on how to install and set up specific plugins and tools.


Use this page to generate global or page-specific floatbox options.
Set preferences the way you want them,
click one of the 'generate' buttons to get a global or page-specific options definition,
and then paste the generated code from the text area as described in the message above the text area.
See the configurator section of the instructions for more details
and the tooltipped help on each form field for information about the available settings.
Note that there are many item-specific options that are not usually set globally and are therefore not in this configurator.


cubeventures wiki
website version:1.0.7
know the latest
go to home
what's new
version 1.0.0
added the start and the plains
a new 'coming soon' picture is here!
added the regular skin.
ideas
for version 1.1
might add the levels The elder's tale,the volcanoes,the city,christmas,the mountains
adding mounts like the city buggy.
added accessory christmas hat(will be free at christmas)
adding the 'new!'page.
and more to come!


Go to the source code of this file.
Accept a new connection.
If the socket is in blocking mode, this function will not return until a connection is actually received.
The connected argument points to a valid sfTcpSocket pointer in case of success (the function returns sfSocketDone), it points to a NULL pointer otherwise.
- Parameters
-
| listener | TCP listener object |
| connected | Socket that will hold the new connection |
- Returns
- Status code
Create a new TCP listener.
- Returns
- A new sfTcpListener object
Destroy a TCP listener.
- Parameters
-
| listener | TCP listener to destroy |
Get the port to which a TCP listener is bound locally.
If the socket is not listening to a port, this function returns 0.
- Parameters
-
| listener | TCP listener object |
- Returns
- Port to which the TCP listener is bound
Tell whether a TCP listener is in blocking or non-blocking mode.
- Parameters
-
| listener | TCP listener object |
- Returns
- sfTrue if the socket is blocking, sfFalse otherwise
Start listening for connections.
This functions makes the socket listen to the specified port, waiting for new connections. If the socket was previously listening to another port, it will be stopped first and bound to the new port.
- Parameters
-
| listener | TCP listener object |
| port | Port to listen for new connections |
- Returns
- Status code
Set the blocking state of a TCP listener.
In blocking mode, calls will not return until they have completed their task. For example, a call to sfTcpListener_accept in blocking mode won't return until a new connection was actually received. In non-blocking mode, calls will always return immediately, using the return code to signal whether there was data available or not. By default, all sockets are blocking.
- Parameters
-
| listener | TCP listener object |
| blocking | sfTrue to set the socket as blocking, sfFalse for non-blocking |


"""Orchestrator for building wheels from InstallRequirements. """ import logging import os.path import re import shutil from typing import Any, Callable, Iterable, List, Optional, Tuple from pip._vendor.packaging.utils import canonicalize_name, canonicalize_version from pip._vendor.packaging.version import InvalidVersion, Version from pip._internal.cache import WheelCache from pip._internal.exceptions import InvalidWheelFilename, UnsupportedWheel from pip._internal.metadata import get_wheel_distribution from pip._internal.models.link import Link from pip._internal.models.wheel import Wheel from pip._internal.operations.build.wheel import build_wheel_pep517 from pip._internal.operations.build.wheel_legacy import build_wheel_legacy from pip._internal.req.req_install import InstallRequirement from pip._internal.utils.logging import indent_log from pip._internal.utils.misc import ensure_dir, hash_file, is_wheel_installed from pip._internal.utils.setuptools_build import make_setuptools_clean_args from pip._internal.utils.subprocess import call_subprocess from pip._internal.utils.temp_dir import TempDirectory from pip._internal.utils.urls import path_to_url from pip._internal.vcs import vcs logger = logging.getLogger(__name__) _egg_info_re = re.compile(r'([a-z0-9_.]+)-([a-z0-9_.!+-]+)', re.IGNORECASE) BinaryAllowedPredicate = Callable[[InstallRequirement], bool] BuildResult = Tuple[List[InstallRequirement], List[InstallRequirement]] def _contains_egg_info(s): # type: (str) -> bool """Determine whether the string looks like an egg_info. :param s: The string to parse. E.g. foo-2.1 """ return bool(_egg_info_re.search(s)) def _should_build( req, # type: InstallRequirement need_wheel, # type: bool check_binary_allowed, # type: BinaryAllowedPredicate ): # type: (...) -> bool """Return whether an InstallRequirement should be built into a wheel.""" if req.constraint: # never build requirements that are merely constraints return False if req.is_wheel: if need_wheel: logger.info( 'Skipping %s, due to already being wheel.', req.name, ) return False if need_wheel: # i.e. pip wheel, not pip install return True # From this point, this concerns the pip install command only # (need_wheel=False). if req.editable or not req.source_dir: return False if req.use_pep517: return True if not check_binary_allowed(req): logger.info( "Skipping wheel build for %s, due to binaries " "being disabled for it.", req.name, ) return False if not is_wheel_installed(): # we don't build legacy requirements if wheel is not installed logger.info( "Using legacy 'setup.py install' for %s, " "since package 'wheel' is not installed.", req.name, ) return False return True def should_build_for_wheel_command( req, # type: InstallRequirement ): # type: (...) -> bool return _should_build( req, need_wheel=True, check_binary_allowed=_always_true ) def should_build_for_install_command( req, # type: InstallRequirement check_binary_allowed, # type: BinaryAllowedPredicate ): # type: (...) -> bool return _should_build( req, need_wheel=False, check_binary_allowed=check_binary_allowed ) def _should_cache( req, # type: InstallRequirement ): # type: (...) -> Optional[bool] """ Return whether a built InstallRequirement can be stored in the persistent wheel cache, assuming the wheel cache is available, and _should_build() has determined a wheel needs to be built. """ if req.editable or not req.source_dir: # never cache editable requirements return False if req.link and req.link.is_vcs: # VCS checkout. Do not cache # unless it points to an immutable commit hash. assert not req.editable assert req.source_dir vcs_backend = vcs.get_backend_for_scheme(req.link.scheme) assert vcs_backend if vcs_backend.is_immutable_rev_checkout(req.link.url, req.source_dir): return True return False assert req.link base, ext = req.link.splitext() if _contains_egg_info(base): return True # Otherwise, do not cache. return False def _get_cache_dir( req, # type: InstallRequirement wheel_cache, # type: WheelCache ): # type: (...) -> str """Return the persistent or temporary cache directory where the built wheel need to be stored. """ cache_available = bool(wheel_cache.cache_dir) assert req.link if cache_available and _should_cache(req): cache_dir = wheel_cache.get_path_for_link(req.link) else: cache_dir = wheel_cache.get_ephem_path_for_link(req.link) return cache_dir def _always_true(_): # type: (Any) -> bool return True def _verify_one(req, wheel_path): # type: (InstallRequirement, str) -> None canonical_name = canonicalize_name(req.name or "") w = Wheel(os.path.basename(wheel_path)) if canonicalize_name(w.name) != canonical_name: raise InvalidWheelFilename( "Wheel has unexpected file name: expected {!r}, " "got {!r}".format(canonical_name, w.name), ) dist = get_wheel_distribution(wheel_path, canonical_name) dist_verstr = str(dist.version) if canonicalize_version(dist_verstr) != canonicalize_version(w.version): raise InvalidWheelFilename( "Wheel has unexpected file name: expected {!r}, " "got {!r}".format(dist_verstr, w.version), ) metadata_version_value = dist.metadata_version if metadata_version_value is None: raise UnsupportedWheel("Missing Metadata-Version") try: metadata_version = Version(metadata_version_value) except InvalidVersion: msg = f"Invalid Metadata-Version: {metadata_version_value}" raise UnsupportedWheel(msg) if (metadata_version >= Version("1.2") and not isinstance(dist.version, Version)): raise UnsupportedWheel( "Metadata 1.2 mandates PEP 440 version, " "but {!r} is not".format(dist_verstr) ) def _build_one( req, # type: InstallRequirement output_dir, # type: str verify, # type: bool build_options, # type: List[str] global_options, # type: List[str] ): # type: (...) -> Optional[str] """Build one wheel. :return: The filename of the built wheel, or None if the build failed. """ try: ensure_dir(output_dir) except OSError as e: logger.warning( "Building wheel for %s failed: %s", req.name, e, ) return None # Install build deps into temporary directory (PEP 518) with req.build_env: wheel_path = _build_one_inside_env( req, output_dir, build_options, global_options ) if wheel_path and verify: try: _verify_one(req, wheel_path) except (InvalidWheelFilename, UnsupportedWheel) as e: logger.warning("Built wheel for %s is invalid: %s", req.name, e) return None return wheel_path def _build_one_inside_env( req, # type: InstallRequirement output_dir, # type: str build_options, # type: List[str] global_options, # type: List[str] ): # type: (...) -> Optional[str] with TempDirectory(kind="wheel") as temp_dir: assert req.name if req.use_pep517: assert req.metadata_directory assert req.pep517_backend if global_options: logger.warning( 'Ignoring --global-option when building %s using PEP 517', req.name ) if build_options: logger.warning( 'Ignoring --build-option when building %s using PEP 517', req.name ) wheel_path = build_wheel_pep517( name=req.name, backend=req.pep517_backend, metadata_directory=req.metadata_directory, tempd=temp_dir.path, ) else: wheel_path = build_wheel_legacy( name=req.name, setup_py_path=req.setup_py_path, source_dir=req.unpacked_source_directory, global_options=global_options, build_options=build_options, tempd=temp_dir.path, ) if wheel_path is not None: wheel_name = os.path.basename(wheel_path) dest_path = os.path.join(output_dir, wheel_name) try: wheel_hash, length = hash_file(wheel_path) shutil.move(wheel_path, dest_path) logger.info('Created wheel for %s: ' 'filename=%s size=%d sha256=%s', req.name, wheel_name, length, wheel_hash.hexdigest()) logger.info('Stored in directory: %s', output_dir) return dest_path except Exception as e: logger.warning( "Building wheel for %s failed: %s", req.name, e, ) # Ignore return, we can't do anything else useful. if not req.use_pep517: _clean_one_legacy(req, global_options) return None def _clean_one_legacy(req, global_options): # type: (InstallRequirement, List[str]) -> bool clean_args = make_setuptools_clean_args( req.setup_py_path, global_options=global_options, ) logger.info('Running setup.py clean for %s', req.name) try: call_subprocess(clean_args, cwd=req.source_dir) return True except Exception: logger.error('Failed cleaning build dir for %s', req.name) return False def build( requirements, # type: Iterable[InstallRequirement] wheel_cache, # type: WheelCache verify, # type: bool build_options, # type: List[str] global_options, # type: List[str] ): # type: (...) -> BuildResult """Build wheels. :return: The list of InstallRequirement that succeeded to build and the list of InstallRequirement that failed to build. """ if not requirements: return [], [] # Build the wheels. logger.info( 'Building wheels for collected packages: %s', ', '.join(req.name for req in requirements), # type: ignore ) with indent_log(): build_successes, build_failures = [], [] for req in requirements: cache_dir = _get_cache_dir(req, wheel_cache) wheel_file = _build_one( req, cache_dir, verify, build_options, global_options ) if wheel_file: # Update the link for this. req.link = Link(path_to_url(wheel_file)) req.local_file_path = req.link.file_path assert req.link.is_wheel build_successes.append(req) else: build_failures.append(req) # notify success/failure if build_successes: logger.info( 'Successfully built %s', ' '.join([req.name for req in build_successes]), # type: ignore ) if build_failures: logger.info( 'Failed to build %s', ' '.join([req.name for req in build_failures]), # type: ignore ) # Return a list of requirements that failed to build return build_successes, build_failures


I get it. systemd
is really complex and confusing. A lot of people, including
myself, learn best by example. I'm basically just a glorified script kiddie.
You want to put your.service
file in the directory returned by
pkg-config systemd --variable systemdsystemunitdir
. Any time you add,
edit, or remove files under here, you must call systemctl daemon-reload
or systemd will complain.
ExecStart
and ExecStop
are executed directly, not via a shell. systemd
has a shitty parameter expansion feature
and it might make you think that it supports all of your shell's features.
Protip: it doesn't.
If you want something complex, put it into a shell script with a shebang)
and execute the absolute path. Bash, Python, and PHP files prefixed with a
shebang work wonders here! Call the absolute path and make sure your script is
executable (chmod +x
).
You want to make sure your programs aren't running as root if they don't need
to. Fill out the User=
field in the [Service]
section. Make sure to adduser
the name if you've
haven't already. DynamicUser=
sounds good but you're probably going to have all kinds of trouble with
filesystem permissions and systemd
adds a bunch of other "oh yeahs" in an
effort to fix up security problems (because systemd
doesn't follow the Unix
principle of "do one thing and do it well").
  The -l
tells systemd
not to truncate your logs for the
same reason.
tmux
with systemd
is a pretty handy piece of duct tape for programs that
want a terminal window that you want to have available at startup.
Start a TMUX session as my user at boot and echo hello world
into it.
Some programs write log to stdout or stderr and don't have a way to configure a log file. Some other programs are interactive.
tmux
is a pretty handy wrapper for stuff like that. I particularly like
to have a tmux
session for such a program with one pane running that
program in one window while piping the stdout and stderr through tee
to
some log files. Another scenario I've seen work well is to pipe the output
directly to a log file and have another pane or two to just tail
those
files.
sshfs
is cool. Use systemd
to mount ssh
/sftp
-accessible stuff at boot.
 Some of the more
useful options:
_netdev
: tells systemd that it's a network mount.
That's important so that it doesn't hang at boot when trying to mount
things more the network interfaces are online.Port=22
: connect to the SSH server on this TCP port.reconnect
: sshfs
will automatically reconnect if the
connection dies.ServerAliveInterval=15
: after 15 seconds of no network activity,
send a ping to the server on the ssh protocol.ServerAliveCountMax=3
: after 3 missed ssh-protocol pings,
consider the connection to be dead.IdentityFile=/path/to/secret/key
: authorize using the specified
encryption key. I'm not sure how to specify a passphrase to unlock
it if one is necessary. I believe the key will be accessed using
the root user.sshfs
to work in two "modes". The first mode
allows the local access to the remote only by the user who set up
the connection. The second allows access based on matching the
UID/GID of the local and remote; no mapping is done, so there's a
one-to-one exact match.allow_other
: opt-in to the kernel's FUSE driver to perform UID/GID permission validation.
You might also need to set user_allow_other
in /etc/fuse.conf
.At my local /mnt/remote/fsroot
-> mount the ssh-remote
user@<IP_ADDRESS>:/
-> authorized by SSH key at
<EMAIL_ADDRESS>.
x11vnc
is a server daemon to mirror your X11 display over VNC. It doesn't
come with a systemd service though. So here's mine.
Want to add your own examples? Create a pull request.


Almost 750,000 fin whales were killed in the Southern Hemisphere between 1904 and 1979 The current population in the North Atlantic probably exceeds 46,000 right now.
The fin whale is the world's second largest animal after the blue whale. They can dive to depths of 230 meters and make low-frequency noises (infrasound) which can be as loud as 188 decibels. These sounds cannot be heard by humans, but can be detected by other fin whales up to 850 km away. When it comes to ecology the fin-whale likes to move up to high latitude feeding grounds during the spring and summer and returns to the southerly temperate waters for mating and calving during the autumn and winter. This species either swims alone or in pairs but the usual group is sized to about 6-7 individuals of a group of 300. They feed by filtering planktonic crustaceans (krill), fish and squid through their baleen plates. They can also take in large volumes of water and food because their pleated grooves in their throats expand. As their mouths close in water is expelled through their baleen palates which traps the food on the inside near the tongue to be swallowed. The Fin-whale mostly habitats open oceans or in shallow coastal waters. Their global distribution occurs in the north pacific, north Atlantic, Indian and Artic oceans and the Mediterranean. But you will rarely see them in the tropical or polar seas. They are placed in 2 main populations which are in the Southern and Northern Hemispheres. They are highly important since they are at the top of the food chain and have an important role in the overall health of the marine environment. Due to commercial Whaling and subsequent decline of the blue whale almost 750,000 fin whales were reported taken from the southern hemisphere alone between 1904-1979. Although commercial whaling is now banned scientists fear that it’s too late for the species to recover. Now we reportedly have fewer than 15,000 fin whales in the southern hemisphere with 40,000 in the northern hemisphere. What IWC is doing to protect the species is by keeping their habitats untouched and to prevent commercial whaling from continuing to decline the remaining fin-wales.
Resulting from poisoning by the diclofenac, a veterinary drug given to livestock which is toxic to vultures, brought declining birth rates there are only 12,000 — 38,000 left and on the decline.
This species of bumble bee is the first native bee species to be listed as endangered in the continental U.S with a population decine of 95% thanks to human activity.
In China, it's vary rare to find these tigers in the wild. There are only around 1,200 giant cats from the Indochinese family left in the world thanks to human hunting and deforestation.