|
Item/Handle
|
Number of views
|
|
The Audacity of Holiness: Orthodox Jewish Women's Theater in Israel (Rutlinger-Reiner, Reina) (10192/28912)
|
165
|
|
Gargantua. (10192/3930)
|
157
|
|
In Search of American Jewish Culture (Whitfield, Stephen J.) (10192/26630)
|
115
|
|
Generation Exodus: The Fate of Young Jewish Refugees from Nazi Germany (Lacqueur, Walter) (10192/27651)
|
103
|
|
La nymphe égérie ou la statue du silence. (10192/4213)
|
102
|
|
Gender and American Jews: Patterns in Work, Education, and Family in Contemporary Life (Hartman, Harriet et al) (10192/26090)
|
101
|
|
Brandeis University: A Host at Last (Sachar, Abram L.) (10192/26652)
|
101
|
|
Brave New Judaism: When Science and Scripture Collide (Wahrman, Miryam Z.) (10192/28391)
|
96
|
|
American Dreams and Nazi Nightmares: Early Holocaust Consciousness and Liberal America, 1957-1965 (Fermaglich, Kirsten) (10192/27691)
|
75
|
|
Double or Nothing? Jewish Families and Mixed Marriage (Fishman, Sylvia Barack) (10192/27692)
|
74
|
|
http://bir.brandeis.edu/handle/10192/23867
|
73
|
|
http://bir.brandeis.edu/handle/10192/28430
|
64
|
|
http://bir.brandeis.edu/handle/10192/27670
|
59
|
|
http://bir.brandeis.edu/handle/10192/22989
|
59
|
|
http://bir.brandeis.edu/handle/10192/23002
|
56
|
|
http://bir.brandeis.edu/handle/10192/24198
|
54
|
|
http://bir.brandeis.edu/handle/10192/3334
|
51
|
|
http://bir.brandeis.edu/handle/10192/26154
|
51
|
|
http://bir.brandeis.edu/handle/10192/23380
|
51
|
|
http://bir.brandeis.edu/handle/10192/22974
|
51
|
|
http://bir.brandeis.edu/handle/10192/26651
|
50
|
|
http://bir.brandeis.edu/handle/10192/27694
|
49
|
|
http://bir.brandeis.edu/handle/10192/2151
|
49
|
|
http://bir.brandeis.edu/handle/10192/24317
|
49
|
|
http://bir.brandeis.edu/handle/10192/27693
|
47
|
|
http://bir.brandeis.edu/handle/10192/28850
|
47
|
|
http://bir.brandeis.edu/handle/10192/26151
|
47
|
|
http://bir.brandeis.edu/handle/10192/23819
|
47
|
|
http://bir.brandeis.edu/handle/10192/26014
|
46
|
|
http://bir.brandeis.edu/handle/10192/28819
|
46
|
|
http://bir.brandeis.edu/handle/10192/4724
|
46
|
|
http://bir.brandeis.edu/handle/10192/22999
|
46
|
|
http://bir.brandeis.edu/handle/10192/22971
|
46
|
|
http://bir.brandeis.edu/handle/10192/24
|
45
|
|
http://bir.brandeis.edu/handle/10192/27394
|
45
|
|
http://bir.brandeis.edu/handle/10192/4527
|
45
|
|
http://bir.brandeis.edu/handle/10192/3033
|
45
|
|
http://bir.brandeis.edu/handle/10192/27346
|
45
|
|
http://bir.brandeis.edu/handle/10192/27374
|
45
|
|
http://bir.brandeis.edu/handle/10192/23957
|
45
|
|
http://bir.brandeis.edu/handle/10192/27443
|
44
|
|
http://bir.brandeis.edu/handle/10192/27546
|
44
|
|
http://bir.brandeis.edu/handle/10192/27388
|
44
|
|
http://bir.brandeis.edu/handle/10192/25993
|
44
|
|
http://bir.brandeis.edu/handle/10192/27348
|
44
|
|
http://bir.brandeis.edu/handle/10192/25911
|
44
|
|
http://bir.brandeis.edu/handle/10192/27527
|
43
|
|
http://bir.brandeis.edu/handle/10192/4591
|
43
|
|
http://bir.brandeis.edu/handle/10192/27503
|
43
|
|
http://bir.brandeis.edu/handle/10192/27431
|
43
|
|
http://bir.brandeis.edu/handle/10192/26653
|
43
|
|
http://bir.brandeis.edu/handle/10192/27375
|
43
|
|
http://bir.brandeis.edu/handle/10192/27370
|
43
|
|
http://bir.brandeis.edu/handle/10192/4844
|
43
|
|
http://bir.brandeis.edu/handle/10192/23007
|
42
|
|
http://bir.brandeis.edu/handle/10192/27376
|
42
|
|
http://bir.brandeis.edu/handle/10192/23882
|
42
|
|
http://bir.brandeis.edu/handle/10192/3199
|
42
|
|
http://bir.brandeis.edu/handle/10192/23800
|
42
|
|
http://bir.brandeis.edu/handle/10192/22986
|
42
|
|
http://bir.brandeis.edu/handle/10192/24297
|
41
|
|
http://bir.brandeis.edu/handle/10192/22949
|
41
|
|
http://bir.brandeis.edu/handle/10192/27389
|
41
|
|
http://bir.brandeis.edu/handle/10192/28663
|
41
|
|
http://bir.brandeis.edu/handle/10192/3505
|
40
|
|
http://bir.brandeis.edu/handle/10192/26852
|
40
|
|
http://bir.brandeis.edu/handle/10192/27402
|
39
|
|
http://bir.brandeis.edu/handle/10192/22951
|
39
|
|
http://bir.brandeis.edu/handle/10192/4530
|
39
|
|
http://bir.brandeis.edu/handle/10192/27382
|
39
|
|
http://bir.brandeis.edu/handle/10192/5029
|
39
|
|
http://bir.brandeis.edu/handle/10192/27347
|
39
|
|
http://bir.brandeis.edu/handle/10192/4998
|
39
|
|
http://bir.brandeis.edu/handle/10192/3674
|
38
|
|
http://bir.brandeis.edu/handle/10192/24237
|
38
|
|
http://bir.brandeis.edu/handle/10192/27650
|
38
|
|
http://bir.brandeis.edu/handle/10192/4394
|
38
|
|
http://bir.brandeis.edu/handle/10192/23677
|
38
|
|
http://bir.brandeis.edu/handle/10192/23799
|
38
|
|
http://bir.brandeis.edu/handle/10192/23797
|
38
|
|
http://bir.brandeis.edu/handle/10192/23780
|
38
|
|
http://bir.brandeis.edu/handle/10192/22950
|
38
|
|
http://bir.brandeis.edu/handle/10192/27395
|
38
|
|
http://bir.brandeis.edu/handle/10192/4526
|
38
|
|
http://bir.brandeis.edu/handle/10192/23818
|
38
|
|
http://bir.brandeis.edu/handle/10192/23017
|
37
|
|
http://bir.brandeis.edu/handle/10192/4346
|
37
|
|
http://bir.brandeis.edu/handle/10192/22948
|
37
|
|
http://bir.brandeis.edu/handle/10192/10
|
37
|
|
http://bir.brandeis.edu/handle/10192/26150
|
37
|
|
http://bir.brandeis.edu/handle/10192/28510
|
37
|
|
http://bir.brandeis.edu/handle/10192/28670
|
37
|
|
http://bir.brandeis.edu/handle/10192/27544
|
36
|
|
http://bir.brandeis.edu/handle/10192/4228
|
36
|
|
http://bir.brandeis.edu/handle/10192/26015
|
36
|
|
http://bir.brandeis.edu/handle/10192/3064
|
36
|
|
http://bir.brandeis.edu/handle/10192/25892
|
36
|
|
http://bir.brandeis.edu/handle/10192/2723
|
36
|
|
http://bir.brandeis.edu/handle/10192/26210
|
36
|
|
http://bir.brandeis.edu/handle/10192/4485
|
35
|
|
http://bir.brandeis.edu/handle/10192/1557
|
35
|
|
http://bir.brandeis.edu/handle/10192/3176
|
35
|
|
http://bir.brandeis.edu/handle/10192/2851
|
35
|
|
http://bir.brandeis.edu/handle/10192/2297
|
35
|
|
http://bir.brandeis.edu/handle/10192/24427
|
35
|
|
http://bir.brandeis.edu/handle/10192/22481
|
34
|
|
http://bir.brandeis.edu/handle/10192/24386
|
34
|
|
http://bir.brandeis.edu/handle/10192/24260
|
34
|
|
http://bir.brandeis.edu/handle/10192/27290
|
34
|
|
http://bir.brandeis.edu/handle/10192/4621
|
34
|
|
http://bir.brandeis.edu/handle/10192/22979
|
34
|
|
http://bir.brandeis.edu/handle/10192/23212
|
33
|
|
http://bir.brandeis.edu/handle/10192/23014
|
33
|
|
http://bir.brandeis.edu/handle/10192/23440
|
33
|
|
http://bir.brandeis.edu/handle/10192/4435
|
33
|
|
http://bir.brandeis.edu/handle/10192/23070
|
33
|
|
http://bir.brandeis.edu/handle/10192/4607
|
33
|
|
http://bir.brandeis.edu/handle/10192/2754
|
33
|
|
http://bir.brandeis.edu/handle/10192/4616
|
33
|
|
http://bir.brandeis.edu/handle/10192/23871
|
33
|
|
http://bir.brandeis.edu/handle/10192/26317
|
33
|
|
http://bir.brandeis.edu/handle/10192/26326
|
33
|
|
http://bir.brandeis.edu/handle/10192/24470
|
32
|
|
http://bir.brandeis.edu/handle/10192/44
|
32
|
|
http://bir.brandeis.edu/handle/10192/2871
|
32
|
|
http://bir.brandeis.edu/handle/10192/2879
|
32
|
|
http://bir.brandeis.edu/handle/10192/28818
|
32
|
|
http://bir.brandeis.edu/handle/10192/28817
|
32
|
|
http://bir.brandeis.edu/handle/10192/23878
|
32
|
|
http://bir.brandeis.edu/handle/10192/23170
|
32
|
|
http://bir.brandeis.edu/handle/10192/23001
|
31
|
|
http://bir.brandeis.edu/handle/10192/22956
|
31
|
|
http://bir.brandeis.edu/handle/10192/28820
|
31
|
|
http://bir.brandeis.edu/handle/10192/27242
|
31
|
|
http://bir.brandeis.edu/handle/10192/23861
|
31
|
|
http://bir.brandeis.edu/handle/10192/4886
|
31
|
|
http://bir.brandeis.edu/handle/10192/23006
|
30
|
|
http://bir.brandeis.edu/handle/10192/23918
|
30
|
|
http://bir.brandeis.edu/handle/10192/3061
|
30
|
|
http://bir.brandeis.edu/handle/10192/25991
|
30
|
|
http://bir.brandeis.edu/handle/10192/22882
|
30
|
|
http://bir.brandeis.edu/handle/10192/2478
|
30
|
|
http://bir.brandeis.edu/handle/10192/28590
|
30
|
|
http://bir.brandeis.edu/handle/10192/24400
|
30
|
|
http://bir.brandeis.edu/handle/10192/2729
|
30
|
|
http://bir.brandeis.edu/handle/10192/22995
|
30
|
|
http://bir.brandeis.edu/handle/10192/22997
|
30
|
|
http://bir.brandeis.edu/handle/10192/22981
|
30
|
|
http://bir.brandeis.edu/handle/10192/22984
|
30
|
|
http://bir.brandeis.edu/handle/10192/23130
|
29
|
|
http://bir.brandeis.edu/handle/10192/23607
|
29
|
|
http://bir.brandeis.edu/handle/10192/23015
|
29
|
|
http://bir.brandeis.edu/handle/10192/3630
|
29
|
|
http://bir.brandeis.edu/handle/10192/30
|
29
|
|
http://bir.brandeis.edu/handle/10192/22840
|
29
|
|
http://bir.brandeis.edu/handle/10192/24197
|
29
|
|
http://bir.brandeis.edu/handle/10192/22969
|
29
|
|
http://bir.brandeis.edu/handle/10192/2845
|
29
|
|
http://bir.brandeis.edu/handle/10192/2873
|
29
|
|
http://bir.brandeis.edu/handle/10192/23091
|
29
|
|
http://bir.brandeis.edu/handle/10192/28470
|
29
|
|
http://bir.brandeis.edu/handle/10192/23028
|
29
|
|
http://bir.brandeis.edu/handle/10192/23050
|
29
|
|
http://bir.brandeis.edu/handle/10192/22985
|
29
|
|
http://bir.brandeis.edu/handle/10192/22572
|
29
|
|
http://bir.brandeis.edu/handle/10192/28390
|
28
|
|
http://bir.brandeis.edu/handle/10192/23018
|
28
|
|
http://bir.brandeis.edu/handle/10192/23011
|
28
|
|
http://bir.brandeis.edu/handle/10192/27073
|
28
|
|
http://bir.brandeis.edu/handle/10192/22839
|
28
|
|
http://bir.brandeis.edu/handle/10192/18
|
28
|
|
http://bir.brandeis.edu/handle/10192/27100
|
28
|
|
http://bir.brandeis.edu/handle/10192/2043
|
28
|
|
http://bir.brandeis.edu/handle/10192/25031
|
28
|
|
http://bir.brandeis.edu/handle/10192/27170
|
28
|
|
http://bir.brandeis.edu/handle/10192/23090
|
28
|
|
http://bir.brandeis.edu/handle/10192/28592
|
28
|
|
http://bir.brandeis.edu/handle/10192/23870
|
28
|
|
http://bir.brandeis.edu/handle/10192/23026
|
28
|
|
http://bir.brandeis.edu/handle/10192/23023
|
28
|
|
http://bir.brandeis.edu/handle/10192/22991
|
28
|
|
http://bir.brandeis.edu/handle/10192/22993
|
28
|
|
http://bir.brandeis.edu/handle/10192/28471
|
28
|
|
http://bir.brandeis.edu/handle/10192/23131
|
27
|
|
http://bir.brandeis.edu/handle/10192/23009
|
27
|
|
http://bir.brandeis.edu/handle/10192/23244
|
27
|
|
http://bir.brandeis.edu/handle/10192/27079
|
27
|
|
http://bir.brandeis.edu/handle/10192/60
|
27
|
|
http://bir.brandeis.edu/handle/10192/2964
|
27
|
|
http://bir.brandeis.edu/handle/10192/3169
|
27
|
|
http://bir.brandeis.edu/handle/10192/27730
|
27
|
|
http://bir.brandeis.edu/handle/10192/23817
|
27
|
|
http://bir.brandeis.edu/handle/10192/25470
|
27
|
|
http://bir.brandeis.edu/handle/10192/22988
|
27
|
|
http://bir.brandeis.edu/handle/10192/2507
|
27
|
|
http://bir.brandeis.edu/handle/10192/22977
|
27
|
|
http://bir.brandeis.edu/handle/10192/22976
|
27
|
|
http://bir.brandeis.edu/handle/10192/3567
|
26
|
|
http://bir.brandeis.edu/handle/10192/3540
|
26
|
|
http://bir.brandeis.edu/handle/10192/3648
|
26
|
|
http://bir.brandeis.edu/handle/10192/24117
|
26
|
|
http://bir.brandeis.edu/handle/10192/26050
|
26
|
|
http://bir.brandeis.edu/handle/10192/8
|
26
|
|
http://bir.brandeis.edu/handle/10192/22965
|
26
|
|
http://bir.brandeis.edu/handle/10192/22967
|
26
|
|
http://bir.brandeis.edu/handle/10192/11
|
26
|
|
http://bir.brandeis.edu/handle/10192/27105
|
26
|
|
http://bir.brandeis.edu/handle/10192/5027
|
26
|
|
http://bir.brandeis.edu/handle/10192/22787
|
26
|
|
http://bir.brandeis.edu/handle/10192/4736
|
26
|
|
http://bir.brandeis.edu/handle/10192/28593
|
26
|
|
http://bir.brandeis.edu/handle/10192/28450
|
26
|
|
http://bir.brandeis.edu/handle/10192/23877
|
26
|
|
http://bir.brandeis.edu/handle/10192/24217
|
26
|
|
http://bir.brandeis.edu/handle/10192/23857
|
26
|
|
http://bir.brandeis.edu/handle/10192/22980
|
26
|
|
http://bir.brandeis.edu/handle/10192/25270
|
26
|
|
http://bir.brandeis.edu/handle/10192/28690
|
26
|
|
http://bir.brandeis.edu/handle/10192/24177
|
25
|
|
http://bir.brandeis.edu/handle/10192/23523
|
25
|
|
http://bir.brandeis.edu/handle/10192/24059
|
25
|
|
http://bir.brandeis.edu/handle/10192/23757
|
25
|
|
http://bir.brandeis.edu/handle/10192/75
|
25
|
|
http://bir.brandeis.edu/handle/10192/22837
|
25
|
|
http://bir.brandeis.edu/handle/10192/26610
|
25
|
|
http://bir.brandeis.edu/handle/10192/22963
|
25
|
|
http://bir.brandeis.edu/handle/10192/4836
|
25
|
|
http://bir.brandeis.edu/handle/10192/22676
|
25
|
|
http://bir.brandeis.edu/handle/10192/25730
|
25
|
|
http://bir.brandeis.edu/handle/10192/27058
|
25
|
|
http://bir.brandeis.edu/handle/10192/28809
|
25
|
|
http://bir.brandeis.edu/handle/10192/4893
|
25
|
|
http://bir.brandeis.edu/handle/10192/23025
|
25
|
|
http://bir.brandeis.edu/handle/10192/23027
|
25
|
|
http://bir.brandeis.edu/handle/10192/25574
|
25
|
|
http://bir.brandeis.edu/handle/10192/26311
|
25
|
|
http://bir.brandeis.edu/handle/10192/24553
|
25
|
|
http://bir.brandeis.edu/handle/10192/23322
|
24
|
|
http://bir.brandeis.edu/handle/10192/23003
|
24
|
|
http://bir.brandeis.edu/handle/10192/23004
|
24
|
|
http://bir.brandeis.edu/handle/10192/62
|
24
|
|
http://bir.brandeis.edu/handle/10192/26051
|
24
|
|
http://bir.brandeis.edu/handle/10192/26091
|
24
|
|
http://bir.brandeis.edu/handle/10192/58
|
24
|
|
http://bir.brandeis.edu/handle/10192/52
|
24
|
|
http://bir.brandeis.edu/handle/10192/26832
|
24
|
|
http://bir.brandeis.edu/handle/10192/23421
|
24
|
|
http://bir.brandeis.edu/handle/10192/2849
|
24
|
|
http://bir.brandeis.edu/handle/10192/28665
|
24
|
|
http://bir.brandeis.edu/handle/10192/22513
|
24
|
|
http://bir.brandeis.edu/handle/10192/4705
|
24
|
|
http://bir.brandeis.edu/handle/10192/28410
|
24
|
|
http://bir.brandeis.edu/handle/10192/23171
|
24
|
|
http://bir.brandeis.edu/handle/10192/28570
|
24
|
|
http://bir.brandeis.edu/handle/10192/24552
|
24
|
|
http://bir.brandeis.edu/handle/10192/25809
|
24
|
|
http://bir.brandeis.edu/handle/10192/23703
|
23
|
|
http://bir.brandeis.edu/handle/10192/23012
|
23
|
|
http://bir.brandeis.edu/handle/10192/27560
|
23
|
|
http://bir.brandeis.edu/handle/10192/23647
|
23
|
|
http://bir.brandeis.edu/handle/10192/65
|
23
|
|
http://bir.brandeis.edu/handle/10192/67
|
23
|
|
http://bir.brandeis.edu/handle/10192/22924
|
23
|
|
http://bir.brandeis.edu/handle/10192/6
|
23
|
|
http://bir.brandeis.edu/handle/10192/26019
|
23
|
|
http://bir.brandeis.edu/handle/10192/23569
|
23
|
|
http://bir.brandeis.edu/handle/10192/4353
|
23
|
|
http://bir.brandeis.edu/handle/10192/22966
|
23
|
|
http://bir.brandeis.edu/handle/10192/22968
|
23
|
|
http://bir.brandeis.edu/handle/10192/22962
|
23
|
|
http://bir.brandeis.edu/handle/10192/28666
|
23
|
|
http://bir.brandeis.edu/handle/10192/4813
|
23
|
|
http://bir.brandeis.edu/handle/10192/2548
|
23
|
|
http://bir.brandeis.edu/handle/10192/3866
|
23
|
|
http://bir.brandeis.edu/handle/10192/27241
|
23
|
|
http://bir.brandeis.edu/handle/10192/25751
|
23
|
|
http://bir.brandeis.edu/handle/10192/3844
|
23
|
|
http://bir.brandeis.edu/handle/10192/22788
|
23
|
|
http://bir.brandeis.edu/handle/10192/25492
|
23
|
|
http://bir.brandeis.edu/handle/10192/25598
|
23
|
|
http://bir.brandeis.edu/handle/10192/22596
|
23
|
|
http://bir.brandeis.edu/handle/10192/22998
|
23
|
|
http://bir.brandeis.edu/handle/10192/25370
|
23
|
|
http://bir.brandeis.edu/handle/10192/3684
|
22
|
|
http://bir.brandeis.edu/handle/10192/23500
|
22
|
|
http://bir.brandeis.edu/handle/10192/23654
|
22
|
|
http://bir.brandeis.edu/handle/10192/55
|
22
|
|
http://bir.brandeis.edu/handle/10192/22926
|
22
|
|
http://bir.brandeis.edu/handle/10192/9
|
22
|
|
http://bir.brandeis.edu/handle/10192/26633
|
22
|
|
http://bir.brandeis.edu/handle/10192/26703
|
22
|
|
http://bir.brandeis.edu/handle/10192/23420
|
22
|
|
http://bir.brandeis.edu/handle/10192/26012
|
22
|
|
http://bir.brandeis.edu/handle/10192/27010
|
22
|
|
http://bir.brandeis.edu/handle/10192/22662
|
22
|
|
http://bir.brandeis.edu/handle/10192/25157
|
22
|
|
http://bir.brandeis.edu/handle/10192/3171
|
22
|
|
http://bir.brandeis.edu/handle/10192/28668
|
22
|
|
http://bir.brandeis.edu/handle/10192/25992
|
22
|
|
http://bir.brandeis.edu/handle/10192/28806
|
22
|
|
http://bir.brandeis.edu/handle/10192/27237
|
22
|
|
http://bir.brandeis.edu/handle/10192/25605
|
22
|
|
http://bir.brandeis.edu/handle/10192/4722
|
22
|
|
http://bir.brandeis.edu/handle/10192/23862
|
22
|
|
http://bir.brandeis.edu/handle/10192/21868
|
22
|
|
http://bir.brandeis.edu/handle/10192/28591
|
22
|
|
http://bir.brandeis.edu/handle/10192/23280
|
22
|
|
http://bir.brandeis.edu/handle/10192/24510
|
22
|
|
http://bir.brandeis.edu/handle/10192/25597
|
22
|
|
http://bir.brandeis.edu/handle/10192/25594
|
22
|
|
http://bir.brandeis.edu/handle/10192/25591
|
22
|
|
http://bir.brandeis.edu/handle/10192/24951
|
22
|
|
http://bir.brandeis.edu/handle/10192/25803
|
22
|
|
http://bir.brandeis.edu/handle/10192/22975
|
22
|
|
http://bir.brandeis.edu/handle/10192/23005
|
21
|
|
http://bir.brandeis.edu/handle/10192/23008
|
21
|
|
http://bir.brandeis.edu/handle/10192/23000
|
21
|
|
http://bir.brandeis.edu/handle/10192/25510
|
21
|
|
http://bir.brandeis.edu/handle/10192/24490
|
21
|
|
http://bir.brandeis.edu/handle/10192/74
|
21
|
|
http://bir.brandeis.edu/handle/10192/22901
|
21
|
|
http://bir.brandeis.edu/handle/10192/27094
|
21
|
|
http://bir.brandeis.edu/handle/10192/48
|
21
|
|
http://bir.brandeis.edu/handle/10192/26070
|
21
|
|
http://bir.brandeis.edu/handle/10192/26010
|
21
|
|
http://bir.brandeis.edu/handle/10192/26952
|
21
|
|
http://bir.brandeis.edu/handle/10192/1726
|
21
|
|
http://bir.brandeis.edu/handle/10192/2808
|
21
|
|
http://bir.brandeis.edu/handle/10192/22652
|
21
|
|
http://bir.brandeis.edu/handle/10192/25870
|
21
|
|
http://bir.brandeis.edu/handle/10192/1749
|
21
|
|
http://bir.brandeis.edu/handle/10192/25798
|
21
|
|
http://bir.brandeis.edu/handle/10192/25650
|
21
|
|
http://bir.brandeis.edu/handle/10192/25984
|
21
|
|
http://bir.brandeis.edu/handle/10192/27231
|
21
|
|
http://bir.brandeis.edu/handle/10192/28807
|
21
|
|
http://bir.brandeis.edu/handle/10192/28805
|
21
|
|
http://bir.brandeis.edu/handle/10192/4702
|
21
|
|
http://bir.brandeis.edu/handle/10192/1399
|
21
|
|
http://bir.brandeis.edu/handle/10192/25608
|
21
|
|
http://bir.brandeis.edu/handle/10192/24711
|
21
|
|
http://bir.brandeis.edu/handle/10192/4667
|
21
|
|
http://bir.brandeis.edu/handle/10192/4669
|
21
|
|
http://bir.brandeis.edu/handle/10192/23021
|
21
|
|
http://bir.brandeis.edu/handle/10192/23020
|
21
|
|
http://bir.brandeis.edu/handle/10192/22990
|
21
|
|
http://bir.brandeis.edu/handle/10192/25053
|
21
|
|
http://bir.brandeis.edu/handle/10192/4875
|
21
|
|
http://bir.brandeis.edu/handle/10192/28472
|
21
|
|
http://bir.brandeis.edu/handle/10192/22987
|
21
|
|
http://bir.brandeis.edu/handle/10192/22983
|
21
|
|
http://bir.brandeis.edu/handle/10192/23937
|
20
|
|
http://bir.brandeis.edu/handle/10192/3680
|
20
|
|
http://bir.brandeis.edu/handle/10192/23724
|
20
|
|
http://bir.brandeis.edu/handle/10192/23919
|
20
|
|
http://bir.brandeis.edu/handle/10192/24157
|
20
|
|
http://bir.brandeis.edu/handle/10192/23400
|
20
|
|
http://bir.brandeis.edu/handle/10192/3428
|
20
|
|
http://bir.brandeis.edu/handle/10192/23629
|
20
|
|
http://bir.brandeis.edu/handle/10192/22605
|
20
|
|
http://bir.brandeis.edu/handle/10192/22807
|
20
|
|
http://bir.brandeis.edu/handle/10192/26993
|
20
|
|
http://bir.brandeis.edu/handle/10192/23460
|
20
|
|
http://bir.brandeis.edu/handle/10192/22724
|
20
|
|
http://bir.brandeis.edu/handle/10192/23697
|
20
|
|
http://bir.brandeis.edu/handle/10192/4378
|
20
|
|
http://bir.brandeis.edu/handle/10192/22718
|
20
|
|
http://bir.brandeis.edu/handle/10192/37
|
20
|
|
http://bir.brandeis.edu/handle/10192/22835
|
20
|
|
http://bir.brandeis.edu/handle/10192/26011
|
20
|
|
http://bir.brandeis.edu/handle/10192/26611
|
20
|
|
http://bir.brandeis.edu/handle/10192/22964
|
20
|
|
http://bir.brandeis.edu/handle/10192/22818
|
20
|
|
http://bir.brandeis.edu/handle/10192/22816
|
20
|
|
http://bir.brandeis.edu/handle/10192/22953
|
20
|
|
http://bir.brandeis.edu/handle/10192/22959
|
20
|
|
http://bir.brandeis.edu/handle/10192/22811
|
20
|
|
http://bir.brandeis.edu/handle/10192/4532
|
20
|
|
http://bir.brandeis.edu/handle/10192/25971
|
20
|
|
http://bir.brandeis.edu/handle/10192/3724
|
20
|
|
http://bir.brandeis.edu/handle/10192/5025
|
20
|
|
http://bir.brandeis.edu/handle/10192/22632
|
20
|
|
http://bir.brandeis.edu/handle/10192/1896
|
20
|
|
http://bir.brandeis.edu/handle/10192/5038
|
20
|
|
http://bir.brandeis.edu/handle/10192/26790
|
20
|
|
http://bir.brandeis.edu/handle/10192/27739
|
20
|
|
http://bir.brandeis.edu/handle/10192/4748
|
20
|
|
http://bir.brandeis.edu/handle/10192/25916
|
20
|
|
http://bir.brandeis.edu/handle/10192/4884
|
20
|
|
http://bir.brandeis.edu/handle/10192/28574
|
20
|
|
http://bir.brandeis.edu/handle/10192/22992
|
20
|
|
http://bir.brandeis.edu/handle/10192/23052
|
20
|
|
http://bir.brandeis.edu/handle/10192/1594
|
20
|
|
http://bir.brandeis.edu/handle/10192/22973
|
20
|


I am a senior at Lewis University and captain of the women's golf team. 🏌 My major is chemistry and I have minors in physics and math. I am staying an extra year to pursue my masters degree and use my extra year of eligibility for golf. My family lives in Augusta, GA, and my dad works at the nuclear power plant near there. I have two dogs named Diesel and Torque. 🐕 🐕
I enjoy hiking. I like going to new places in nature and exploring, and incorporating exercise into that is also something that I enjoy.
I accidentally pulled a fire alarm in Shiel Hall once.


Red9_CoreUtils¶
Red9_CoreUtils is the backbone of much of the systems, used to filter, find and process nodes on mass withing Maya as well as containing a lot of core functions for dealing with data.
The FilterNode and FilterSettings classes are used throughout the pack, in fact any time the tools process a hierarchy it’s these classes that deal with it.
Core Functions
nodeNameStrip (node) |
Simple method to strip any |Path and :Namespaces: from a given object DagPath ie Ns:Rig|Ns:Leg|Ns:Foot == Foot |
prioritizeNodeList (*args, **kws) |
Simple function to force the order of a given nList such that nodes in the given priority list are moved to the front of the list. |
sortNumerically (data) |
Sort the given data in the way that humans expect. |
stringReplace (text, replace_dict) |
Replace words in a text that match a key in replace_dict with the associated value, return the modified text. |
matchNodeLists (nodeListA, nodeListB[, …]) |
Matches 2 given NODE LISTS by node name via various methods. |
getBlendTargetsFromMesh (node[, asList, …]) |
quick func to return the blendshape targets found from a give mesh’s connected blendshape’s |
processMatchedNodes ([nodes, filterSettings, …]) |
HUGELY IMPORTANT CALL FOR ALL ANIMATION FUNCTIONS |
matchNodeLists (nodeListA, nodeListB[, …]) |
Matches 2 given NODE LISTS by node name via various methods. |
timeOffset_addPadding ([pad, padfrom, scene, …]) |
simple wrap of the timeoffset class which will add padding into the animation curves on the selected object by shifting keys |
timeOffset_collapse ([scene, timerange, mRigs]) |
Light wrap over the TimeOffset call to manage collapsing time |
decodeString (val) |
From configObj the return is a string, we want to encode it back to it’s original state so we pass it through this |
floatIsEqual (a, b[, tolerance, allowGimbal]) |
compare 2 floats with tolerance. |
valueToMappedRange (value, currentMin, …) |
Acts like the setRange node but code side we have a min max range, lets say 0.5 - 15 and we want to map the range to a new range say 0-1 and return where the value given is in that new range |
distanceBetween (nodeA, nodeB) |
simple calculation to return the distance between 2 objects |
Core Classes
FilterNode_Settings () |
Simple concept, this settings object is passed into the filterNode Calls and is used to setup how hierarchies are processed and filtered. |
FilterNode ([roots, filterSettings]) |
FilterNode is a class for managing, searching and filtering nodes with the scene. |
MatchedNodeInputs ([nodes, filterSettings, …]) |
Class to process and match input nodes for most of the Hierarchy/Anim functions that work on carefully managed matched pairs of nodes. |
LockChannels () |
Simple UI to manage the lock and key status of nodes |
TimeOffset ([cache_object]) |
A class for dealing with time manipulation inside Maya. |
MatrixOffset () |
Given 2 transforms calculate the difference as a Matrix and apply that as an offset matrix to a given list of nodes. |
-
logging_is_debug
()¶
-
nodeNameStrip
(node)¶ Simple method to strip any |Path and :Namespaces: from a given object DagPath ie Ns:Rig|Ns:Leg|Ns:Foot == Foot
-
prioritizeNodeList
(*args, **kws)¶ Simple function to force the order of a given nList such that nodes in the given priority list are moved to the front of the list.
Parameters: - inputlist – main input list
- priorityList – list which is used to prioritize/order the main nList
- regex – Switches from regex search to simple exact node name
- prioritysOnly – return just the priorityList matches or the entire list sorted
Note
Known issue, if regex=True and you have 2 similar str’s in the priority list then there’s a chance that matching may be erratic…
>>> priorityList=['upperLip','l_upperLip'] >>> nodes=['|my|dag|path|jaw',|my|dag|path|l_upperLip','|my|dag|path|upperLip','|my|dag|path|lowerLip'] >>> returns: ['|my|dag|path|l_upperLip','|my|dag|path|upperLip',|my|dag|path|jaw,'|my|dag|path|lowerLip]
as in regex ‘l_upperLip’==’upperLip’ as well as ‘upperLip’==’upperLip’. Really in regex you’d need to be more specific: priorityList=[‘^upperLip’,’l_upperLip’]
-
sortNumerically
(data)¶ Sort the given data in the way that humans expect.
>>> data=['Joint_1','Joint_2','Joint_9','Joint_10','Joint_11','Joint_12'] >>> >>> # standard gives us: >>> data.sort() >>> ['Joint_1', 'Joint_10', 'Joint_11', 'Joint_12', 'Joint_2', 'Joint_9'] >>> >>> # sortNumerically gives us: >>> sortNumerically(data) >>> ['Joint_1', 'Joint_2', 'Joint_9', 'Joint_10', 'Joint_11', 'Joint_12']
-
sorted_nicely
(items)¶ Sort the given iterable in the way that humans expect.
-
common_suffix
(test_list, suggested=True)¶ from a list of strings return the common suffix. Note that all of the strings given have to share the same suffix else we return None
Parameters: suggested – if True and not all strings share the same common suffix then we suggest a suffix based on the percentage of matches >>> test_list = ['pelvis_drv', 'spine_01_drv', 'spine_02_drv', 'spine_03_drv'] >>> common_suffix(test_list) # return '_drv'
-
common_prefix
(test_list, suggested=True)¶ from a list of strings return the common prefix. Note that all of the strings given have to share the same prefix else we return None
Parameters: - test_list – list of strings we’re going to test
- suggested – if True and not all strings share the same common prefix then we suggest a prefix based on the percentage of matches
>>> test_list = ['bob_pelvis_drv', 'bob_spine_01_drv', 'bob_spine_02_drv', 'bob_spine_03_drv'] >>> common_prefix(test_list) # return 'bob_'
-
stringReplace
(text, replace_dict)¶ Replace words in a text that match a key in replace_dict with the associated value, return the modified text. Only whole words are replaced. Note that replacement is case sensitive, but attached quotes and punctuation marks are neutral.
Parameters: replace_dict –
-
removeNameSpace_fromDag
(dagpath)¶ from a given DagPath remove any namespaces - used in the poseCompare to only compare the native hierarchies
-
decodeString
(val)¶ From configObj the return is a string, we want to encode it back to it’s original state so we pass it through this
-
validateString
(strText, fix=False, illegals=['-', '#', '!', ' ', '@'])¶ Function to validate that a string has no illegal characters
Parameters: - strText – text to validate
- fix – if True then we replace illegals with ‘_’
- illegals – now allow you to pass in what you consider illegals, default=[‘-‘, ‘#’, ‘!’, ‘ ‘, ‘@’]
-
filterListByString
(input_list, filter_string, matchcase=False, os_basename=False)¶ Generic way to filter a list by a given string input. This is so that all the filtering used in the UI’s is consistent. Used by the poseSaver, facialUI, MetaUI and many others.
see : https://docs.python.org/3.3/howto/regex.html , http://www.pyregex.com , or search for Regex cheat sheets
Parameters: - iniput_list – list of strings to be filtered
- filter_string – string to use in the filter, supports comma separated search strings eg : ‘brows,smile,funnel’
- matchcase – whether to match or ignore case sensitivity
- os_basename – if True and the list is a list of full os paths, we strip filter just the filename, path and ext stripped off
Note
this is a Regex search but it’s carefully managed under the hood.
- ‘attack knife’ : yield matches with ‘attack’ and ‘knife’ in the string in that order, similar to ‘attack*.*knife in windows, compiles to (‘attack.*knife’)
- ‘knife+attack’ : yield matches where order does not matter but the string has to contain both ‘attack’ and ‘knife’
- ‘attack..knife’ would yield matches with ‘attack12knife’ 2 wildcards between the params (dots are wildcards in regex), compiles to (‘attack..knife’)
- ‘attack.*knife’ would yield matches with ‘attack_big_massive_knife’ because of the .* is multiple wildcards between the search params, compiles to (‘attack.*knife’)
- ‘attack,knife’ would yield matches with either ‘attack’ and ‘knife’ in the string, compiles to (‘attack|knife’) with the ‘|’ or operator
- ‘attack|knife’ same as above
- ‘attack$’ would match ‘we_attack’ but not ‘they_attacked’ as the $ is used here as the end of the search string
- ^attack’ would match ‘attack_then’ but not ‘they_attack’ as the ^ clamps to the front of the string
-
nodes_in_hierarchy
(rootNode, nodes=[], nodeType=None)¶ check to see if a given set of nodes (shortname matched) are found in the given hierarchy and return the matches
Parameters: - rootNode – rootNode of the hierarchy to search
- nodes – nodes to find from their shortName
- nodeType – nodeTypes within the hierarchy to search
-
nodes_are_constrained
(src, target)¶ Parameters: - src – the node that would be the driver of the constraint
- target – the node we think is being driven
return any constraints between the source and target object if found. This checks the target for child constraints, then checks the target list for those constraints to see if the src is in the list, if so it’s added to the return
-
parent
(children, parent=None, *args, **kws)¶ this is a simple parent call but includes a base check. It’s simply wrapping Maya’s parent call but doing the check to see if the children are already parented to the given node, and if so, just returning the full path of the children
Parameters: - children – [] children to parent / check parenting
- parent – parent to move the child under
Return type: the newly parented full dag path
-
class
FilterNode_Settings
¶ Bases:
object
Simple concept, this settings object is passed into the filterNode Calls and is used to setup how hierarchies are processed and filtered. This is class is used through out Red in conjunction with the filterNode class.
default settings bound:
- nodeTypes: [] - search for given Maya nodeTypes’
- searchAttrs: [] - search for given attributes on nodes
- searchPattern: [] - search for nodeName patterns
- hierarchy: False - full hierarchy process
- metaRig: False - ??Do we do this here?? {‘MetaClass’,’functCall’}
- filterPriority: [] - A way of re-ordering the hierarchy lists
- incRoots: True - process rootNodes in the filters
- transformClamp: True - clamp any nodes found to their transforms
- infoBlock: ‘’
- prefix: ‘’ - know prefix thats been used on these nodes
- suffix: ‘’ - known suffix thats been used on these nodes
- rigData: {}
-
filterIsActive
()¶ the filter is deemed to be active if any of the filterSettings would produce a hierarchy search.
-
printSettings
()¶ pretty print the filterSettings data
-
resetFilters
(rigData=True)¶ reset the MAIN filter args only
Parameters: rigData – this is a cached attr and not fully handled by the UI hence the option NOT to reset, used by the UI presetFill calls
-
setByDict
(data)¶ set the filetrSettings via a dict correctly formatted, used to pull the data back from an MRig that has this data bound to it
Parameters: data – dict of data formatted as per the filterSettings keys. this is a new function allowing a dict of data to be passed into the object from a config file or mNode directly
-
write
(filepath)¶ write the filterSettings attribute out to a ConfigFile
Parameters: filepath – file path to write the configFile out to
-
read
(filepath)¶ Read a given ConfigFile and fill this object instance with the data
Parameters: filepath – file path to write the configFile out to Note
If filepath doesn’t exists or you pass in just the short name of the config you want to load then we try and find a matching config in the default presets dir in Red9
-
class
FilterNode
(roots=None, filterSettings=None)¶ Bases:
object
FilterNode is a class for managing, searching and filtering nodes with the scene. If the arg roots[] is given then the code filters the hierarchy’s of these roots. If roots is not given then the functions will search globally at a scene level.
Note that the main call, ProcessFilter() is only part of this class, there are many other specific filtering functions for finding nodes in your Maya scene.
This is a crucial class and used extensively in Red9 where ever hierarchies are in need of filtering. Used in conjunction with a FilterNode_Settings object which,if not given, gets bound to self.settings.
>>> flt = FilterNode(rootNode) >>> flt.settings.nodeTypes=['nurbsCurve'] >>> filt.settings.searchPattern=['Ctrl'] >>> filt.ProcessFilter()
The above makes a filterNode class, we pass in our hierarchies rootNode (string), then set the internal settings to filter the hierarchy for all child nurbsCurves who’s name includes ‘Ctrl’. Finally the ProcessFilter runs the main call.
Note
the searchPattern is a compiled Regex search but it’s managed under the hood.
- ‘attack knife’ : would yield matches with ‘attack and knife in the string, similar to ‘attack*.*knife in windows, compiles to (‘attack.*knife’)
- ‘attack..knife’ : would yield matches with ‘attack12knife’ 2 wildcards between the params (dots are wildcards in regex), compiles to (‘attack..knife’)
- ‘attack.*knife’ : would yield matches with ‘attack_big_massive_knife’ because of the .* is multiple wildcards between the search params, compiles to (‘attack.*knife’)
- ‘attack,knife’ : would yield matches with either ‘attack’ and ‘knife’ in the string, compiles to (‘attack|knife’) with the ‘|’ or operator
- ‘attack|knife’ : same as above
- ‘attack$’ : would match ‘we_attack’ but not ‘they_attacked’ as the $ is used here as the end of the search string
- ^attack’ : would match ‘attack_then’ but not ‘they_attack’ as the ^ clamps to the front of the string
Parameters: - roots – Given root nodes in the Maya scene to search from. If a root is NOT given then the filter codes default to scanning all scene nodes.
- filterSettings – This expects a FilterNode_Settings Object to be passed in. This in turn holds all the filtering parameters used by the main lsIntersector call all other calls use given params so can be called directly.
-
rootNodes
¶
-
processMode
¶
-
static
knownShapes
()¶
-
getObjectSetMembers
(objSet)¶ return objectSet members in long form
Parameters: objSet – set to inspect and return the memebers from
-
lsHierarchy
(incRoots=False, transformClamp=False)¶ Simple wrapper of the listRelatives, BUT with the option to include the rootNodes and select the results
Also if a single rootNode is passed, and it’s of type ‘character’ then the code will return the characterMembers instead
Parameters: - incRoots – include the given rootNodes in the filter
- transformClamp – clamp all searches so that any shape style node returns it’s parent transform
TODO: objectSet modifications need testing!!!!!
-
lsSearchNodeTypes
(nodeTypes, nodes=None, incRoots=True, transformClamp=False)¶ Main filter function wraps the cmds.listRelatives but replicates the mel listTransforms function in that it’s capable of just returning the transform nodes of the given nodeTypes for example, when filtered for meshes, we might not want the shape node This now has complex handling for dealing with CharcterSets and SelectionSets
Parameters: - nodeTypes – Maya NodeTypes passed into the listRelatives wrapper
- nodes – optional - allows you to pass in a list to process if required
- incRoots – Include the given root nodes in the search, default=True Valid only if the Class is in ‘Selected’ processMode only.
- transformClamp – Clamp the return to the Transform nodes. Ie, mesh normally would return the shape node, this clamps the return to it’s Transform node, default=False
Returns: a list of nodes who type match the given search list
TODO: Add the ability to use the NOT: operator in this, so for example, nodeTypes=transform would return all mesh nodes too, or rather the transform from a mesh, maybe you’d want to clamp that and prevent mesh transforms being returned? Is this even reasonable???
-
lsMeshes
()¶ Filter for Meshes : from a start node find all mesh nodes in the hierarchy
-
lsTransforms
()¶ Filter for Transforms : from a start node find all transform nodes in the hierarchy
-
lsJoints
()¶ Filter for Joints : from a start node find all Joints nodes in the hierarchy
-
lsLocators
()¶ Filter for Locators : from a start node find all Locators nodes in the hierarchy
-
lsIkData
()¶ Filter for IKData : from a start node find all ikHandle & ikEffector nodes in the hierarchy
-
lsNurbsCurve
()¶ Filter for NurbsCurve : from a start node find all NurbsCurve nodes in the hierarchy
-
lsConstraintsAll
()¶ Filter for All Constraint Nodes : from a start node find all Constraint nodes in the hierarchy
-
lsOrientConstraint
()¶ Filter for OrientConstraint : from a start node find all OrientConstraint nodes in the hierarchy
-
lsPointConstraint
()¶ Filter for PointConstraint : from a start node find all PointConstraint nodes in the hierarchy
-
lsParentConstraint
()¶ Filter for ParentConstraint : from a start node find all ParentConstraint nodes in the hierarchy
-
static
lsAnimCurves
(nodes=None, safe=False, allow_ref=False)¶ Search for animationCurves. If no nodes are passed in to process then this is a simple one liner, BUT if you pass in a selection of nodes to process then it’s a lot harder. This code has to traverse the history and connection lists to find any animCurves that are in the nodes graph. This passes over character sets and animLayers to find all animCurve data. Note that this has no filter for excluding curves of type eg: setDrivens etc will need post filtering from the returns in many cases
Parameters: - nodes – optional given node list, return animData in the nodes history
- safe – optional ‘bool’, only return animCurves which are safe to modify, this will strip out SetDrivens, Clips curves etc..
- allow_ref – if False and “safe” we remove all references animCurves, else we leave them in the return
-
lsSearchAttributes
(searchAttrs, nodes=None, incRoots=True, returnValues=False)¶ Search for nodes that have a given attr or any attrs from a given list[] :param searchAttrs: list or string of attributes to search for on all child nodes
NOTE: new operators ‘NOT:’ and ‘=’Parameters: - nodes – optional - allows you to pass in a list to process if required
- returnValues – If found return the Value of the Attrs along with the node - switches return type to tuple. default=False
- incRoots – Include the given root nodes in the search, default=True Valid only if the Class is in ‘Selected’ processMode only.
Return type: list[] or dict{} of nodes whos attributes include any of the given attrs[]
Returns: Nodes that have the search attr/attrs. If returnValue is given as a keyword then it will return a dict in the form {node,attrValue}
Note
If the searchAttrs has an entry in the form NOT:searchAttr then this will be forcibly excluded from the filter. Also you can now do myAttr=2.33 to only pass if the attr is equal similarly NOT:myAttr=2.33 will exclude if the value is equal see the “..Red9 estsRed9_CoreUtilTests.py” for live unittest examples
Note
current Implementation DOES NOT allow multiple attr tests as only 1 val per key in the excludeAttrs and includeAttrs is currently supported!!
-
lsSearchNamePattern
(searchPattern, nodes=None, incRoots=True)¶ Search for nodes who’s name match the given search patterns
Parameters: - searchPattern – string/list patterns to match node names against (includes a ‘NOT:’ operator)
- nodes – optional - allows you to pass in a list to process if required
- incRoots – Include the given root nodes in the search, default=True Valid only if the Class is in ‘Selected’ processMode only.
Note
If the searchPattern has an entry in the form NOT:searchtext then this will be forcibly excluded from the filter. ie, My_L_Foot_Ctrl will be excluded with the following pattern [‘Ctrl’,’NOT:My’] where Ctrl finds it, but the ‘NOT:My’ tells the filter to skip it if found
-
lsCharacterSets
()¶ Get any characterSets from the given rootNode (single only). If rootNode[0] is of type ‘character’ then it will just return itself. If not will test all children of the root for links to characterSets and return those found.
-
lsCharacterMembers
()¶ From self.characterSets return all it’s node members. If characterSets attr hasn’t been set then it will invoke a test on the RootNode down through it’s hierarchy to find all characterSet links. Not that this now processes subCharacterSets too
##### THIS NEEDS WORK TO RETURN THE MEMBERS IN THE CORRECT ORDER #####
-
lsMetaRigControllers
(walk=True, incMain=True)¶ very light wrapper to handle MetaData in the FilterSystems. This is hard coded to find CTRL markered attrs and give back the attached nodes
Parameters: - walk – walk the found systems for subSystems and process those too
- incMain – Like the other filters we allow the given top node in the hierarchy to be removed from processing. In a MetaRig this is the CTRL_Main controller which should be Top World Space
-
ProcessFilter
()¶ Depricated Function: Replace the ‘P’ in the function call but not depricating it just yet as too much code both internally and externally relies on this method
-
processFilter
()¶ Uses intersection to allow you to process multiple search flags for more accurate filtering. Uses the FilterNode_Settings object for all args such that:
Parameters: - settings.nodeTypes – nodetypes to search for on child nodes
- settings.searchAttrs – attribute to search for on child nodes
- settings.searchPattern – name pattern to match on child nodes
- settings.transformClamp – Clamp the return to the Transform nodes.
- settings.incRoots – Include the given root nodes in the search.
Returns: all nodes which match ALL the given keyword filter searches
-
getBlendTargetsFromMesh
(node, asList=True, returnAll=False, levels=4, indexes=False)¶ quick func to return the blendshape targets found from a give mesh’s connected blendshape’s
Parameters: - node – node to inspect for blendShapes, or the blendshape itself
- asList – return as a straight list of target names or a dict of data
- returnAll – if multiple blendshapes are found do we return all, or just the first
- levels – same as the ‘levels’ flag in listHistory as that’s ultimately what grabs the blendShape nodes here
- indexes – return the data as a tuple (index, plug(weight[index]), blendtarget )
-
getBlendTargetIndex
(blendNode, targetName)¶ given a blendshape node return the weight index for a given targetName
Parameters: - blendNode – blendShape node to inspect
- targetName – target Alias Name of the channel we’re trying to find the index for
-
matchNodeLists
(nodeListA, nodeListB, matchMethod='stripPrefix', returnfails=False, prefix='', suffix='', **kws)¶ Matches 2 given NODE LISTS by node name via various methods.
Parameters: - nodeListA – list of nodes
- nodeListB – list of nodes
- returnfails – if True we return [matchedData, unmatched] so that we can pass the unmatched list for further processing
- matchMethod –
default ‘stripPrefix’
- matchMethod=”index” : no intelligent matching, just purely zip the lists together in the order they were given
- matchMethod=”indexReversed” : no intelligent matching, just purely zip the lists together in the reverse order they were given
- matchMethod=”base” : match each element by exact name (shortName) such that Spine==Spine or REF1:Spine==REF2:Spine
- matchMethod=”stripPrefix” : match each element by a relaxed naming convention allowing for prefixes one side such that RigX_Spine == Spine
- matchMethod=”stripSuffix” : match each element by a relaxed naming convention allowing for suffixes one side such that Spine_DRV == Spine
- matchMethod=”commonPrefix” : match each element by a relaxed naming convention allowing for prefixes such that RigX_Spine == Spine. This tries to ID a single prefix on either
- side and uses those as the keys for the match. “stripPrefix” method falls over if you have multiple nodes where nodeA.endswith(nodeB) ie:/ spine_04 == drv_spine_04 but also spine_04 == drv_leg_spine_04
- matchMethod=”commonSuffix” : match each element by a relaxed naming convention allowing for suffixes such that Spine_DRV == Spine. This tries to ID a single suffix on either
- side and uses those as the keys for the match. “stripSuffix” method falls over if you have multiple nodes where nodeA.endswith(nodeB) ie:/ spine_04 == spine_04_drv but also spine_04 == spine_04_leg_drv
- matchMethod=”mirrorIndex” : match via the nodes MirrorMarker
- matchMethod=”metaData” : match the nodes based on their wiring connections to the MetaData framework
Returns: matched pairs of tuples for processing [(a1,b2),[(a2,b2)]
-
processMatchedNodes
(nodes=None, filterSettings=None, toMany=False, matchMethod='stripPrefix')¶ HUGELY IMPORTANT CALL FOR ALL ANIMATION FUNCTIONS
PreProcess the given ‘nodes’ and ‘filterSettings’(optional) via a MatchedNodeInput OBJECT that has an attribute self.MatchedPairs We’re going to use this throughout the code such that: nodeList.MatchedPairs = [(ObjA,ObjB),(ObjC,ObjD) …..]
Parameters: - nodes – Given Nodes for processing
- filterSettings – as all other functions, this is the main hierarchy filter
- toMany – Return a MatchedPairs where the first node in each tuple is the first selected node, ie, used to cast data from the first node to all subsequent nodes [(ObjA,ObjB),(ObjA,ObjC),(ObjA,ObjD) ….
- matchMethod – method used in the name matchProcess
Returns: MatchNodeInputs class object
Note
the filterSettings object now has “.prefix” and “.suffix” settings which can be used in the match calls for a more accurate stripPrefix or stripSuffix call. This allows you to match against a known / given prefix / suffix string on the hierarch nodes to match
-
class
MatchedNodeInputs
(nodes=None, filterSettings=None, matchMethod='stripPrefix', returnfails=False)¶ Bases:
object
Class to process and match input nodes for most of the Hierarchy/Anim functions that work on carefully managed matched pairs of nodes.
Parameters: - nodes – root nodes to start the filtering process from
- matchMethod – Method of matching each nodePair based on nodeName
- filterSettings –
This is a FilterSettings_Node object used to pass all the filter types into the FilterNode code within. Internally the following is true:
- settings.nodeTypes: list[] - search nodes of type
- settings.searchAttrs: list[] - search nodes with Attrs of name
- settings.searchPattern: list[] - search for a given nodeName searchPattern
- settings.hierarchy: bool - process all children from the roots
- settings.incRoots: bool - include the original root nodes in the filter
Returns: list of matched pairs [(a1,b2),[(a2,b2)]
Note
with all the search and hierarchy keywords OFF the code performs a Dumb zip, no matching and no Hierarchy filtering, just zip the given nodes into selected pairs obj[0]>obj[1], obj[2]>obj[3] etc
-
processMatchedPairs
()¶ Filter selected roots for hierarchy matching using a FilterNode and it’s settings object if one was passed in to the main class. This uses the ProcessFilter() method for powerful pre-filtering before passing the results into the matchNodeLists func.
Return type: tuple Returns: a matched pair list of nodes
-
class
LockChannels
¶ Bases:
object
Simple UI to manage the lock and key status of nodes
-
saveChannelMap
(filepath=None, nodes=None, hierarchy=True, serializeNode=None)¶ WE HAVE TO LOCK THE ATTRIBUTE!! why, 32k Maya string character Limits kick in and truncates the data unless the attr is locked out
-
loadChannelMap
(filepath=None, nodes=None, hierarchy=True, serializeNode=None)¶ From a given chnMap file restore the channelBox status for all attributes found that are in the map file. ie, keyable, hidden, locked
Parameters: - filepath – filepath to the map to load
- nodes – nodes to load the data onto, if hierarcchy=True this is the rootNode
- hierarchy – process all child nodes of the nodes passed in
- serializeNode – if Meta then this is used to serialize the attrMap to the node itself
Note
Here we’re dealing with 2 possible sets of data, either decoded by the ConfigObj decoder or a JSON deserializer and there’s subtle differences in the dict thats returned hence the decodeString() calls
-
static
processState
(nodes, attrs=None, mode=None, hierarchy=False, userDefined=False, attrKws={}, suppress_errors=True)¶ Easy wrapper to manage channels that are keyable / locked in the channelBox.
Parameters: - nodes – nodes to process
- attrs – set() of attrs, or ‘all’
- mode – ‘lock’, ‘unlock’, ‘hide’, ‘unhide’, ‘fullkey’, ‘lockall’
- hierarchy – process all child nodes, default is now False
- usedDefined – process all UserDefined attributes on all nodes
- attrKws – if mode=None then these are the flags passed to the setAttr command to control the node states, ie: {‘keyable’:True, ‘lock’:False, ‘channelBox’:True}
- suppress_errors – Tue by default, if a node doesn’t have one one of the attrs we’re trying to lock suppress the errors
>>> r9Core.LockChannels.processState(nodes, attrs=["sx", "sy", "sz", "v"], mode='lockall') >>> >>> # note: if attrs='all' we now set it to the following for ease: >>> ["tx", "ty", "tz", "rx", "ry", "rz", "sx", "sy", "sz", "v", "radius"]
-
-
timeOffset_addPadding
(pad=None, padfrom=None, scene=False, mRigs=False)¶ simple wrap of the timeoffset class which will add padding into the animation curves on the selected object by shifting keys
Parameters: - pad – amount of padding frames to add
- padfrom – frame to pad from
- scene – offset the entire scene
-
timeOffset_collapse
(scene=False, timerange=None, mRigs=False)¶ Light wrap over the TimeOffset call to manage collapsing time
Parameters: - scene – offset the entire scene or just selected
- timerange – specific timerange to collapse else we use the r9 timerange get call
-
timeOffset_collapseUI
()¶ collapse time confirmation UI
-
class
TimeOffset
(cache_object=None)¶ Bases:
object
A class for dealing with time manipulation inside Maya.
>>> offset=100 >>> >>> #build a filterSettings object up, in this case we're loading a current one. >>> flt=r9Core.FilterNode_Settings() >>> flt.read(os.path.join(r9Setup.red9Presets(),'Red9_DevRig.cfg')) >>> flt.incRoots=True >>> flt.printSettings() >>> >>> r9Core.TimeOffset.fromSelected(offset, filterSettings=flt, flocking=False, randomize=False)
-
classmethod
fullScene
(offset, timelines=False, timerange=None, ripple=True, startfrm=False)¶ Process the entire scene and time offset all suitable nodes
Parameters: - offset – number of frames to offset
- timelines – offset the playback timelines
- timerange – only offset times within a given timerange
- ripple – manage the upper range of data and ripple them with the offset
- startfrm – this turns the offset arg into a new target start frame for the animation, calculating the offset for you such that timerange[0] starts at the offset frm value, only works if timerange is passed in
-
classmethod
fromSelected
(offset, nodes=None, filterSettings=None, flocking=False, randomize=False, timerange=None, ripple=True, mRigs=False, startfrm=False, currentSystem=False)¶ Process the current selection list and offset as appropriate.
Parameters: - offset – number of frames to offset
- nodes – nodes to offset (or root of the filterSettings)
- flocking – whether to successively increment nodes during offset
- randomize – whether to add a random factor to each successive nodes offset
- timerange – only offset times within a given timerange
- ripple – manage the upper range of data and ripple them with the offset
- mRigs – if True then the nodes to be used are resolved via mRig.getChildren but for all mRigs wired to the given nodes
- startfrm – this turns the offset arg into a new target start frame for the animation, calculating the offset for you such that timerange[0] starts at the offset frm value, only works if timerange is passed in
- filterSettings – this is a FilterSettings_Node object used to pass all the filter types into the FilterNode code. Internally the following is true:
- currentSystem –
mRigs flag only: if True we check for the mSystemRoot attr (bool) on mNodes and if set, we skip the node and all childnodes from that node. Why?? The mSystsmRoot attr is a marker to denote the root of a given mRig system, by respecting this we clamp searches to the current system and prevent walking into the connected child sub-system. Primarily used in ProPack to stop facial nodes being returned and processed as part of the connected body rig.
- settings.nodeTypes: list[] - search nodes of type
- settings.searchAttrs: list[] - search nodes with Attrs of name
- settings.searchPattern: list[] - search for a given nodeName searchPattern
- settings.hierarchy: bool - process all children from the roots
- settings.incRoots: bool - include the original root nodes in the filter
-
classmethod
animCurves
(offset, nodes=None, timerange=None, ripple=True, safe=True, allow_ref=False)¶ Shift Animation curves. If nodes are fed in to process then we do a number of aggressive searches to find all linked animation data.
Parameters: - offset – amount to offset the curves
- nodes – nodes to offset if given
- timerange – if timerange given [start,end] then we cut the keys in that range before shifting associated keys. Now we could just use the keyframe(option=’insert’) BUT this has a MAJOR crash bug!
- ripple – manage the upper range of keys and ripple them with the offset
- safe – optional ‘bool’, only return animCurves which are safe to modify, this will strip out SetDrivens, Clips curves etc..
- allow_ref – if False and “safe” we remove all references animCurves, else we leave them in the return
-
static
timelines
(offset)¶ Shift the main playback timelines and CurrentFrame
-
classmethod
sound
(offset, mode='Scene', audioNodes=None, timerange=None, ripple=True)¶ Offset Audio nodes.
Parameters: - offset – amount to offset the sounds nodes by
- mode – either process entire scene or selected
- audioNodes – optional, given nodes to process
- timerange – optional timerange to process (outer bounds only)
- ripple – when shifting nodes ripple the offset to sounds after the range, if ripple=False we only shift audio that starts in the bounds of the timerange
-
classmethod
animClips
(offset, mode='Scene', clips=None, timerange=None, ripple=True)¶ Offset Trax Clips
Parameters: - offset – amount to offset the sounds nodes by
- mode – either process entire scene or selected
- clips – optional, given clips to offset
- timerange – optional timerange to process (outer bounds only)
- ripple – when shifting nodes ripple the offset to clips after the range, if ripple=False we only shift clips that starts in tghe bounds of the timerange
-
classmethod
metaNodes
(offset, timerange=None, ripple=True, mNodes=None)¶ Offset special handling for MetaNodes. Inspect the metaNode and see if the ‘timeOffset’ method has been implemented and if so, call it.
Parameters: - offset – amount to offset the sounds nodes by
- timerange – optional timerange to process (outer bounds only)
- ripple – when shifting nodes ripple the offset to clips after the range, if ripple=False we only shift clips that starts in the bounds of the timerange
Note
each timeOffset function implemented within a MetaClass must now return ALL Maya nodes (dag path) that were processed by it (other than itself) so that these can be flagged as processed and removed from the standard nodeType handlers in the TimeOffset class
-
classmethod
-
floatIsEqual
(a, b, tolerance=0.01, allowGimbal=True)¶ compare 2 floats with tolerance.
Parameters: - a – value 1
- b – value 2
- tolerance – compare with this tolerance default=0.001
- allowGimbal – allow values differences to be divisible by 180 compensate for gimbal flips
-
valueToMappedRange
(value, currentMin, currentMax, givenMin, givenMax)¶ Acts like the setRange node but code side we have a min max range, lets say 0.5 - 15 and we want to map the range to a new range say 0-1 and return where the value given is in that new range
-
timeIsInRange
(baseRange=(), testRange=(), start_inRange=True, end_inRange=True)¶ test that a given testRange [start,end], falls within the bounds of a baseRange [start,end] Used to test if timeRanges fall within a baseRange
Parameters: - baseRange – base time range to test against
- testRange – range to test against the baseRange, do these times fall within the baseRange?
- start_inRange – check is the testRange[0] value falls fully in the baseRange
- end_inRange – check is the testRange[1] value falls fully in the baseRange
Note
if you pass in baseRange as (None, 100) then we only validate against the end time regardless of the flags. if we pass in baseRange as (10, None) we only validate against the start time regardless of the flags. else we validate that testRange is fully within the baseRanges times
-
distanceBetween
(nodeA, nodeB)¶ simple calculation to return the distance between 2 objects
-
getClosestNode
(target, nodelist)¶ From a list of transforms find the node that is closest to the target node and return
Parameters: - target – the node we’re trying to find the closest match too
- nodelist – list of nodes we’re going to test against
-
convertUnits_internalToUI
(value, unit)¶ convert units to Maya’s internal ‘cm’ unit for the API to use when loading linear data
-
convertUnits_uiToInternal
(value, unit)¶ convert units from Maya’s internal / base ‘cm’ to a given unit, multiplying up to suit
-
class
MatrixOffset
¶ Bases:
object
Given 2 transforms calculate the difference as a Matrix and apply that as an offset matrix to a given list of nodes.
>>> matrixOffset = MatrixOffset() >>> matrixOffset.setOffsetMatrix('inputA','inputB') >>> applyOffsetMatrixToNodes(nodesToOffset)
-
static
get_MDagPath
(node)¶
-
setOffsetMatrix
(inputA, inputB)¶ from 2 transform return an offsetMatrix between them
Parameters: - inputA – MayaNode A
- inputB – MayaNode B
-
classmethod
nodesAreEquivalent
(inputA, inputB)¶ do the 2 nodes passed in have an equivalant inclusiveMatrix? ie, are they in the same worldSpace!
Parameters: - inputA – nodeA
- inputB – nodeB
-
applyOffsetTransformsToNodes
(nodes, matrix=None, inversed=False)¶ simple move function called to shift the given nodes against the offsetMatrix
-
applyOffsetMatrixToNodes
(nodes, matrix=None, inversed=False)¶ offset all the given nodes by the given MMatrix object
Parameters: - nodes – Nodes to apply the offset Matrix too
- matrix – Optional OpenMaya.MMatrix to transform the data by
Note
this doesn’t deal with joints as for that we need to rotate by the inverse of the jointOrient matrix, after the rotation matrix
-
static


About the data
Unpaywall is powered by a database of 100 million scholarly papers. Of these, about 16 million have links to fulltext open access, making it the largest open database of legal Open Access (by summer of 2018, we'll have around 18 million). It's also the most accurate: all records are keyed by DOI, and precision (98%) and recall (75%) of OA detection lead the industry (see our PeerJ paper for more on these numbers). We harvest OA content from over 50,000 unique sources including open repositories, OA journals, Hybrid journals, and services like DOAJ and Crossref.
There are lots of ways you can use the Unpaywall dataset in your own projects, depending on what you're trying to do:
- Librarians: can integrate Unpaywall into their SFX, 360 Link, or Primo link resolvers, so library users can read OA copies in cases where there's no subscription access. Over 1000 libraries worldwide are now using this now.
- Institutional Repository managers can use Unpaywall data to find OA resources that faculty have posted online, without depositing in their IR. These can be automatically ingested, significantly increasing IR coverage without needing to convince faculty to deposit. Repositories of all sizes have used Unpaywall data in this way. SwePub (national repository of Sweden) added 75,000 new OA records, increasing number of OA records by over 30%, while the smaller the Carleton University IR added 1000 OA records, doubling their fulltext coverage. There are a few good ways to access our data for this use case: downloading the complete dataset, check lists of records by DOI, or taking advantage of Unpaywall's integration into the Dimensions and Web of Science.
- OA researchers can use Unpaywall to answer research questions about the current and historical state of open access. There are several ways to access the data for research: you can use the open API, or the R API wrapper, check a list of DOIs, or download the complete dataset. A particularly easy way to get started with research is to use Dimensions or Web of Science, which both have Unpaywall data integrated into their databases. That's the approach used by this recent paper. You might also check out the the canonical reference paper for the dataset, which gives a good overview of the data as a whole.
- Enterprise users should check out our SLA in order to download and use the Unpaywall dataset for commercial projects. Once you've done that, we can help you set up a mirror database that allows you to keep an always-current version of Unpaywall's data hosted on your own servers. You can also use the API for any use (commercial or otherwise) for free.


We provide you the caffeine, food, and mentors from some of the world’s best IT companies to help you.
After the 48 hours are over you get the chance to present your work, we will give away some epic prizes to the top three teams chosen by our judging panel.
Get Tickets!
Q: What is a hackathon?
A: During a hackathon you have 24 to 48 hours to work with a small team on something new and exciting. You will compete with other teams, but in the end everyone is a winner!
Q: What can I make?
A: Anything! A website, an application or you can work with hardware as well! See below about hardware hacks.
Q: Does this cost money?
A: Nope. It is completely free!
Q: Do I have to know how to code?
A: No, as long as you want to work with others to help develop yours, or someone else’s idea! Generally, we need developers, designers and entrepreneurs.
Q: Is food provided?
A: More food will be there than you can imagine.
Q: Can I sleep there?
A: There will be a sleeping area, but you should bring a sleeping bag if you really wish to sleep. If you are traveling a long distance to be with us, contact us after you register and we will do our best to accommodate you.
Q: Can I do hardware hacks?
A: Yes of course! We provide Arduinos, Raspberry Pis and many other hardware devices you can borrow to hack on! We also are able to provide a varitey of tools and other equipment. If there's something you particually want, get in touch after registration so we can try to get hold of it!
Q: Can I bring _____?
A: Probably, yes. For rather obscure, large or potentially dangerous items please get in touch first to check as we don't want to dissapoint on the day.


Cooking with Elif
Home
Recepten
Filmpjes
Foto's
Food is for eating,
and good food is
to be enjoyed...
I think food is
actually very
beautiful in itself.


Create a New Project
__Project_Name__
_MUST BE 5 CHARACTERS LONG__
__THIS IS A REQUIRED FIELD__
__SERVER_ERROR__
Project Organism
_Warning: new organism_
Project Description
Project Wiki URL
__THIS IS A REQUIRED FIELD__
_Settings_
_Use samples from cart_
_The following samples cannot be added_
_sample_
_Assemble_
_RUN_SISTR_
_WRITE_BACK_TO_SAMPLE_METADATA_


Full name
email
password
test table with merged cells
Average
Red eyes
height
weight
Males
1.9
0.003
40%
Fmales
1.7
0.002
43%


Example of a zoom constrained view.
This map has a view that is constrained between zoom levels 9 and 13. This is done using the minZoom and maxZoom view options.
minZoom
maxZoom
See the zoom-constrained.js source for details.


|
WUT Velma robot API
|
Functions | |
| def | getMarkerModelName (size_cm, marker_id) |
| def | getMeshFilename (size_cm) |
| def | getMaterialFilename (marker_id) |
| def | generateModelConfig (size_cm, marker_id) |
| def | generateSdf (size_cm, marker_id) |
| def | generateMesh (size_cm, marker_id) |
| def | createMaterialFile (path, size_cm, marker_id) |
| def | createMarkerGazeboModel (path, size_cm, marker_id) |
| def scripts.create_gazebo_ar_markers.createMarkerGazeboModel | ( | path, | |
| size_cm, | |||
| marker_id | |||
| ) |
Definition at line 261 of file create_gazebo_ar_markers.py.
| def scripts.create_gazebo_ar_markers.createMaterialFile | ( | path, | |
| size_cm, | |||
| marker_id | |||
| ) |
Definition at line 257 of file create_gazebo_ar_markers.py.
| def scripts.create_gazebo_ar_markers.generateMesh | ( | size_cm, | |
| marker_id | |||
| ) |
Definition at line 117 of file create_gazebo_ar_markers.py.
| def scripts.create_gazebo_ar_markers.generateModelConfig | ( | size_cm, | |
| marker_id | |||
| ) |
Definition at line 71 of file create_gazebo_ar_markers.py.
| def scripts.create_gazebo_ar_markers.generateSdf | ( | size_cm, | |
| marker_id | |||
| ) |
Definition at line 86 of file create_gazebo_ar_markers.py.
| def scripts.create_gazebo_ar_markers.getMarkerModelName | ( | size_cm, | |
| marker_id | |||
| ) |
Definition at line 62 of file create_gazebo_ar_markers.py.
| def scripts.create_gazebo_ar_markers.getMaterialFilename | ( | marker_id | ) |
Definition at line 68 of file create_gazebo_ar_markers.py.
| def scripts.create_gazebo_ar_markers.getMeshFilename | ( | size_cm | ) |
Definition at line 65 of file create_gazebo_ar_markers.py.


Bookbuzz: try another pair of dates
{{flashMessage|safe}}
Set start date:
Set end date:
show chart
temp stuff here:


Bless the Child *1/2 Rated on a 4-star scale Screening venue: Odeon (Liverpool City Centre) Released in the UK by Buena Vista International on January 5, 2001; certificate 18; 107 minutes; country of origin USA; aspect ratio 2.35:120
Directed by Chuck Russell; produced by Mace Neufeld. Written by Clifford Green, Ellen Green, Tom Rickman; based on the novel by Cathy Cash Spellman. Photographed by Peter Menzies Jr; edited by Alan Heim.
CAST..... Kim Basinger..... Maggie O'Connor Jimmy Smits..... John Travis Holliston Coleman..... Cody Rufus Sewell..... Eric Stark Angela Bettis..... Jenna Christina Ricci..... Cherry
After winning an Oscar for "L.A. Confidential", Kim Basinger had a baby and took a rest from movies for three years. This is not a great way to return. "Bless the Child" is yet another shoddy and uninteresting movie about dark forces -- throw it onto the pile with "Stigmata" and "Book of Shadows: Blair Witch 2".
Basinger stars as Maggie O'Connor, a psychiatric nurse left to raise her young niece Cody (Holliston Coleman) when her heroin-addicted sister Jenna (Angela Bettis) skips town.
The first half of the movie involves Basinger's raising of the child; it's dumb in its hammy dialogue and cliched, obvious scenes of creepy noises coming from nowhere clear, but so familiar it's somewhat involving, and contains the potential to turn into good pulp fiction. Structural elements are stolen from "The Exorcist", and hey, if you're gonna steal, steal from the best.
Ah, but it turns to vinegar.   Several moments defy common sense, such as one in which a cult defector sits in a cafe giving Basinger information, and in run a bunch of Satanists who give the defector chase and don't think to touch Basinger at all.
It's funny at times -- how could it not be when one of the baddies is a ludicrously stone-faced Mrs. Danvers clone, the climax takes place in a cobweb-filled haunted house, and at one point knitting needles are used as murder weapons?
One other thing -- the special effects are terrible. They look like pieces of cartoon superimposed over live action. Five years ago movie visuals were so perfect that mentioning them in reviews seemed redundant.  A sign, perhaps, that the digital revolution ain't all it's cracked up to be?
COPYRIGHT 2001 Ian Waldron-Mantgani
The UK Critic is located at www.ukcritic.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


This page doesn't support iframe noooooooo
Save written data
MATH 241
STAT 200
ASTR 330
ASTR 350
LING 402
DANC 201
Extracurriculars
Other


Keep the Internet open, fair, and affordable for everyone. Tell the FCC: Do Not Repeal Net Neutrality.
Post your comments here by Monday July 17th


Welcome,
Teresa
Belcorp Skin Care Experience
Virtual treatment
This is the Belcorp Skin experience that recommend you a customize treatment according your skin needs with this information you will provide us a better understanding of your skin and the kind of weather your skin will be exposed to…
Let us know a Little more about yourself…
Teresa
Let’s see how your skin is doing…
We’ve detected:
-
Skin dryness
-
Sunspots


| 1 |
Camera and Face detection |
Open and use the front and back camera of multiple platforms to detect faces using Haar Classifier |
|
|
Vu Luong, Arjun Khurana |
10 Nov – 16 Nov |
| 1.1 |
macOS Sierra (Macbook Pro) |
Load the camera and face detection algorithm written in C++ in Xcode |
Front camera loaded successfully and detected the user’s face as well as faces from advertisements |
Yes |
Vu Luong |
10 Nov |
| 1.2 |
iOS 10.1.1 (iPhone 6 and 7+) |
Load the camera and face detection algorithm written in Objective C in Xcode |
Same as 1.1 |
Yes |
Vu Luong |
12 Nov |
| 1.3 |
Android 6.0 (Google Nexus 5) |
Load the application written in Java and JavaCV in Eclipse on to the device |
Failed to load the application onto the device after multiple attempts, possible cause due to faulty installation. Hence, Android is no longer the platform for development. |
No |
Vu Luong, Arjun Khurana |
13 Nov – 16 Nov |
| 2 |
Recognising shapes and texts |
Using OpenCV and Tesseract OCR |
|
|
Vu Luong, Hyojong Kim |
20 Nov - 21 Nov |
| 2.1 |
Shape detection |
The app should be able to recognize rectangular shapes using Harris corner detection |
Successfully recognise shapes of different sizes |
Yes |
Vu Luong |
20 Nov |
| 2.2 |
Text detection |
Using Tesseract OCR to recognise text on different surfaces |
Successfully recognise dark color text printed on paper and on well lit images. Takes a long time to recognise text with unique fonts, colours and sizes |
Yes |
Vu Luong, Hyojong Kim |
21 Nov |
| 3 |
Make request to server |
Making get/post requests that allow the app to have the database access |
|
|
Vu Luong, Hyojong Kim |
21 Nov - 27 Nov |
| 3.1 |
User profile |
Using User object received from customer to generate temporary(persistent) user profile |
Successfully requested user profile. |
Yes |
Vu Luong, Hyojong Kim |
21 Nov - 24 Nov |
| 3.2 |
Advertisement data |
Supplying coordinate from iPhone GPS system and receiving the intended area code and its advertisement |
GPS coordinate and area code retrieval success, advertisement sometimes unable to load |
No |
Vu Luong, Hyojong Kim |
24 Nov - 27 Nov |
| 4 |
Saving data |
Saving user profile data onto the local device and server |
|
|
Vu Luong, Hyojong Kim |
24 Nov - 02 Dec |
| 4.1 |
Device storage |
Use local databases such as SQLite to create a persistent database |
Successfully saved |
Yes |
Vu Luong |
24 Nov - 02 Dec |
| 4.2 |
Server |
Making post request based on user activities and save a history of user activities |
User activities recorded on server |
Yes |
Hyojong Kim |
27 Nov - 02 Dec |


Welcome to the hotel search site
The atmosphere in Chania has a touch of Florence and Venice.
The top 3 popular hotel list below
4330 Geary Blvd, San Francisco, CA
You can book the popular hotel here
Hotel1
Hotel2
Hotel3
Leave a message for additional info
Drop a note.
San Francisco, US
Phone: +00<PHONE_NUMBER>
Email: mail@mail.com


07-06-2011 ZwWdP
|
Zeit |
Interpret |
Titel |
|
20 h |
Andrew Gold |
Thank You For Being A Friend |
|
|
David Bowie |
Golden Years (KCRW Remix) |
|
|
The Brigadier |
A Holiday Romance |
|
|
Benni Hemm Hemm |
Beginning End |
|
|
The Divine Comedy |
Beside The Railway Tracks |
|
|
Röksopp |
Eple |
|
|
Tony Clarke (The In Crowd) |
The Entertainer |
|
|
Dorothy Ashby |
Cause I Need It |
|
|
Young Dreams |
Expectations |
|
|
The Beatles |
You Won't See Me |
|
|
Pugwash |
Apples |
|
|
Flash & The Pan |
The African Shuffle |
|
|
The Autumn Defense |
The Sun In California |
|
|
The Bees |
Go Where You Wanna Go |
|
|
June and the Exit Wounds |
How much I really loved you |
|
|
The Bees |
Spelunking (Part 1) |
|
21 h |
George Harrison |
You |
|
|
Young Rascals |
Groovin' |
|
|
Josh Ottum |
Goin' Gone |
|
|
Modular |
La Pocion Del Dr. Hoffmann |
|
|
Bernard Estardy |
Monsieur Detour |
|
|
Mister Fusty |
Blankety Blank |
|
|
James Taylor Quartet |
Indian Summer |
|
|
Mello Cads |
Love Is All I Have To Give |
|
|
Andrew Gold |
Lonely Boy |
|
|
Never Andrew Gold |
Let Her Slip Away |
|
|
Paul Williams |
To Put Up With You |
|
|
The Simple Carnival |
Smitten |
|
|
Bertrand Burgalat |
Biscarosse |
|
|
The Buffoons |
Scarborough Fair |
|
|
Party Chambers |
Style Council |
|
22 h |
Mercury Rev |
Holes |
|
|
Mr. & Mrs. Muffins |
The Magic Cloud |
|
|
Josh Rouse |
Comeback |
|
|
Kate Bush |
This Woman's Work |
|
|
Till Brönner |
Bein' Green |
|
|
Brent Cash |
I Must Tell You Now |
|
|
Rufus Wainwright |
He Ain't Heavy He's My Brother |
|
|
Spiritualized |
Broken Heart |
|
|
The Beatles |
Something (Instrumental) |
|
|
Pete Aves |
Wayne And The Blind Man |
|
|
Nancy Sinatra |
Who Will Buy |
|
|
The Style Council |
Le Départ |


See: Description
| Interface | Description |
|---|---|
| ClusteringAlgorithm |
Interface for clustering algorithms.
|
| IncrementalClusteringAlgorithm |
Interface for clustering algorithms that are able to improve an existing
clustering.
|
| LayoutAlgorithm |
Interface for layout algorithms.
|
| QualityClusteringAlgorithm |
Interface for clustering algorithms that use a quality function.
|
| QualityLayoutAlgorithm |
Interface for layout algorithms that use a quality function.
|
| Class | Description |
|---|---|
| Clustering |
Clustering of the nodes in a network.
|
| ComponentsAlgorithm |
Algorithm for finding the connected components of a network.
|
| CPMClusteringAlgorithm |
Abstract base class for clustering algorithms that use the CPM quality
function.
|
| FastLocalMovingAlgorithm |
Fast local moving algorithm.
|
| GradientDescentVOSLayoutAlgorithm |
Gradient descent VOS layout algorithm.
|
| IncrementalCPMClusteringAlgorithm |
Abstract base class for incremental clustering algorithms that use the CPM
quality function.
|
| IterativeCPMClusteringAlgorithm |
Abstract base class for iterative clustering algorithms that use the CPM
quality function.
|
| Layout |
Layout of the nodes in a network.
|
| LeidenAlgorithm |
Leiden algorithm.
|
| LocalMergingAlgorithm |
Local merging algorithm.
|
| LouvainAlgorithm |
Louvain algorithm.
|
| Network |
Network.
|
| StandardLocalMovingAlgorithm |
Standard local moving algorithm.
|
| VOSLayoutAlgorithm |
Abstract base class for layout algorithms that use the VOS quality function.
|
The classes Network
,
Clustering
, and
Layout
represent the core data structures. The
classes LeidenAlgorithm
and
LouvainAlgorithm
represent the core algorithms
for network clustering. The class
GradientDescentVOSLayoutAlgorithm
represents the
core algorithm for network layout.


Complete the information below to register your bag tag and create an account:
Name
Address
Phone
Email
Submit
Error
Sorry there was an error submitting your information.
Success! Your information was submited successfully. Check out your info by scanning your tag.


INIT.SRV
INIT.SRV (\FBB).
This file is the next file that FBB looks into during startup. This file
will be found in the main FBB-directory. All basic data is collected from
this file. Use your standard ASCII-editor to edit the following lines:
(all lines starting with # are comments)
In WinFBB, INIT.SRV is created or updated with a small program called
INSTWFBB.COM. This program may also be run inside WinFBB, when WinFBB is
running, by clicking on Config at the top of the screen.
In LinFBB, INIT.SRV is created or updated with a small program called
INSTALL.SH.
In DosFBB, INIT.SRV is created or updated with a small program called
FBBSETUP.EXE.
This program is organized as pages of menus, and you can edit or change any
topic in your configuration. It is no longer necessary to edit the INIT.SRV
file manually.
The version of the software is now indicated in the first comment line. This
will allow further automatic updates.
# FBB7.00
#
# Callsign and H-address (Do not include SSID !)
LA1B.#BRG.NOR.EU
#
# SSID for the BBS
0
#
# Qra locator
JP20RH
#
# Qth (variable $c)
Bergen
#
In the above lines you must replace the callsign and H-address with your own
BBS-call and H-address. You also must replace the SSID, that is the number
after the callsign. In LA1B-6, the 6 is the SSID. If you do not want any
SSID, type 0 here. You also must replace the QRA-locator with your own
locator (ask some other ham for help on this, if you don't know the BBSs QRA-
locator. Do NOT use the value from this example-file ! You also must replace
the QTH (don't make it too long...). If the QTH-name is short, you might add
the QRA-locator here too, like I have done.
Next we have some filenames and path-names. These filenames and paths are
the same as used in the installation-procedure. If you did no changes in this
during installation, you will not need to change any of these now.
Note the syntax, and note that directory-names MUST end with a \
# Directory for files used by the BBS
C:\fbb\system\
#
# Directory for messages
C:\fbb\MAIL\
#
# Directory for binary-messages
C:\FBB\BINMAIL\
#
# Directory for users DOS
# Up to 8 drives may be specified, starting with drive A:
# In this example drive A and B are not used, and therefore replaced
# by a * each.
*,*,C:\fbb\users\,*,*,*,*,*
#
# Directory for Yapp-files
C:\fbb\users\yapp\
#
# Directory for DOCS
C:\FBB\DOCS\
#
That was not so difficult ?
Next, check the first-name of sysop, and the callsign of sysop. Here are
MINE :
# First-name of sysop
Per
#
# Sysops callsign
LA6CU
#
In the following line you CAN (not necessary) replace the ***** with a
callsign. If you do, that callsign will receive a copy of all SYSOP-messages
that arrives. You might want to put your own callsign there.
You may also include more than one callsign, separated by space.
# Callsign (and route if needed) that shall have copy of messages
# addressed to SYSOP
# (*** for no copy<EMAIL_ADDRESS>if route)
*****
#
No need to change this:
# Path and filename for import-file
\FBB\MAIL.in
#
Here you must first write the code for the kind of monitor you use, and then
you must have a number for how many minutes you want before the screen should
go blank, after no activity on the keyboard. In this example I have a CGA-
monitor, and my screen will go blank after 5 minutes since I last touched the
keyboard.
# Type video:0=CGA, 1=EGA, 2=VGA Time before screen-blank.
#
0 5
#
Complete log gives you a log-file for every week. If you write NO here, no
log-file will be made. The log-file will appear in the directory named LOG.
Direct video uses fast BIOS-calls if you answer OK. If you plan to use
Desqview or Windows (with DosFBB, that is..), you must change it to NO.
Indication of channels will normally be OK (that means that monitored
information on screen will be more complete, with callsign of user before
every frame from each user, etc).
# Complete log (OK or NO)
OK
#
# Direct video (OK or NO)
OK
#
# Indication of channels
OK
#
Next we have Test Mode (NO - OK). If you type OK, the BBS will start, but
will not access the TNC(s). Use this the first times, to make sure that
everything works fine. When you are sure that all is well, connect the TNC(s)
and change this to NO. Restart the FBB, and now the TNCs will be used, as
normal.
# Test-Mode (NO - OK)
OK
#
Forward type FBB is faster and more efficient than standard MBL-type
forward. Use this whenever possible (OK). If you type NO, FBB-type forward
will not be allowed. You may also use a parametre after OK/YES from this
list (add the ones you want):
1 : A space is mandatory before the @ in a send message command
2 : The length of the fields of a hierarchical address is not
tested to be 6 characters
4 : The header line of a message is not truncated to the space before
the 79th character
8 : Header MBL/RLI
16 : If there is no BBS field, the callsign of the BBS is sent to the PMS
32 : Deletes the DATA messages sent to SYSOP
64 : Don't use the BID recovered from headers and use a new one
128: Accepts forwarding only from pre-declared BBS
256: WP Messages are not held.
512: XForwarding protocol has priority on FBB protocol.
1024: Generation of an alternate BID like F6FBB-12345 (for dual BBS site)
2048: Checksum unvalidated on XFwd.
4096: Test of callsigns is less strict. Allows all "callsign" as long as
they have one figure (0-9) anywhere in the callsign.
# Use (when possible) forward type FBB
OK
#
(or, you may include a numer, like OK 2048 or whatever..)
The same goes for compressed forward. Compressed forward
is very much faster, and should always be used.
Parametre after "use compressed forwarding" give the options between
compressed protocols :
1 = FBB compressed forwarding
2 = XFWD compressed forwarding
"OK 3" allow both FBB and XFWD.
# Use (when possible) compressed forward
OK 3
#
Hroute update validation. If you type OK, the HROUTE look-up will be
validated. This takes some tens KB of memory. A route without hierarchical
extension will be changed to hierarchical route if found in the HROUTE.SYS
database. This database is automatically updated while receiving
headers.
# HROUTE look-up and database update validation
OK
#
Information query. This ensures that the user will give his information.
This will be helpful for the update of the white pages database. If "OK",
the user will prompted until he answers to the queries.
# User MUST give Name, HomeBBS, Qth and ZIPcode
OK
#
Next we have 'Masque'. This is a default value that is given to all new
users when they log on the BBS for the FIRST TIME. Select the things you want
for all new users, and the values for them. If you f.ex. want all new users
to get Paging, and be in Guest mode, add 32 and 64, and put the result 96 in
the file. If you want none of the things listed here, put in a 0. The "see-
all_mail" mask will be active only if the user has the "read-all-messages"
security code (see behind).
# First connection mask.
# 0 : disable mask.
# 1 : Excluded.
# 2 : Local.
# 4 : Expert.
# 8 : Sysop.
# 16 : BBS.
# 32 : Pagination on
# 64 : Guest.
# 128 : Modem.
# 256 : List/read all personal messages
# 512 : Request for unproto beacon-lists allowed
# 1024: Get list of new messages at each connect
# Add up the values for your choices.
1568
#
Next we have 'Security-codes'. Here we give 3 values. The first
says what ALL users are allowed to do. The next says what sysops
are allowed to do when they connect the BBS, and the third says
what a sysop is allowed to do after he has successfully performed
the SYS-command. The same applies here as above; choose the
values you want and add them up.
# Security-codes.
# All users can:
# 1 : Read all messages, including all personal messages.
# 2 : Kill all messages.
# 4 : Send SYS-command.
# 8 : Use remote-sysop commands (edit, forward etc).
# 16 : Edit labels in YAPP, FBBDOS, DOC.
# 32 : Can delete files in YAPP and FBBDOS.
# 64 : Have access to all gateways.
# 128: Run dos-programs (command DOS in FBBDOS).
# 256: Have access to the entire hard-disk.
# 512: Have access to command /A (stop BBS) and /R (reboot PC).
#
# All: Sysop: Sysop after successful SYS-command:
0 127 1023
#
Next we have warning-messages to sysop (mask):
# 1 : Less than 1MB in disk
# 2 : Error in system file (FORWARD, BBS, REJECT...)
# 4 : Server error/warning
# 8 : Ping-Pong warning
# 16 : No-route warning
# 32 : No NTS warning
# 64 : Message file not found
# 128 : Error in proposal
# 256 : Message rejected in remote BBS
# 512 : Message held in remote BBS
1023
Next we have the time for cleanup of messages. This should be done in a low-
traffic hour, as the BBS is completely shut down during cleanup. Type also
the timeout-values you want, the default values here should be OK. Put also
in the number of hours (+ or -) between the PCs local-time and UTC.
# Time (hour) for cleanup of messages
# (Forced disconnection of all links at housekeeping time+15 min.)
02
#
#
# Time-out for normal use (minutes) and during forward (minutes)
15 5
#
Max download-size (pr period) for Yapp and via modem, in kbytes. 0 0 will
disable it
#
100 500
#
# Hours +/- in relation to UTC
0
#
Type how many callsigns you want (maximum) in each mail-beacon (variable
$Q). If you precede the number by a B, also bulletins to local users (type BN
or BY) will be broadcast in the mail-beacon. Like this:
# Number of callsigns in mail-beacon
B20
#
Number of lines in scroll-buffer may be changed. Just remember that they use
a lot of memory (each line takes 160 bytes of memory, but can be in high
memory), so I advice you to use these values:
# Number of lines in scroll-buffer
# User Console Monitoring
1000 1000 1000
#
Leave this one alone:
# Text for forward-header (variables OK), appears LAST in the R:line.
# Please do not change the contents and the order of the fields except
# the FBB$E field which is only an information and can be removed.
# $c is the QTH as declared before in this file.
[$c] FBB$E $$:$R
#
Next you must decide how many BIDs to keep.
For WinFBB and LinFBB: Normally you will have enough memory. So you may
use the max. However, I found 10000 to be a good value.
For DosFBB: Depending on how much memory you have. 3000 is a good value,
but 10000 is better (hi).
# How many BIDs are saved (32000 max)
3000
#
Leave the next one alone. This one means that bulletins that are older
than (in this case) 30 days, will not be forwarded again from my BBS, and
will go directly to X-status. Be aware: a too low value here will cause
problems for other BBSs that you forward to..
# Lifetime for bulletins. Number of days from message is written
30
#
You should answer 1 for memory-cache, followed by the list of topics you
want to load into memory. The BBS will do these operations very
much faster.
#
# Use memory-cache ? 0=No, 1=Yes (preferred).
# and optional list of topics to put in memory-cache
#
# Topics : BID = Bulletins or messages identifiers
# MSG = Message lists
# HIE = Hierarchical information
# SCR = Screen buffers
# WPG = White Pages database
# REJ = Reject/hold information
# FWD = Forwarding information
#
1 BID MSG WPG HIE SCR REJ FWD
#
List of routes to send WP update messages. First, keep this line blank until
you have a WP network available, then give the route(s) to send your updates.
# List of routes to send WP messages
#
LA1B LA6CU
#
Zip code of the BBS. Give the post code area where is the BBS. Mandatory.
# ZipCode of the BBS
#
31120
#
Here you will give the parameters allowing the list of messages in unproto
mode. This list can be interpreted by some terminal softwares (as TPK) and
greatly reduce the traffic on the local frequency.
The first parameter is the maximum backward number. If a unproto user asks a
list which is lower than this number backward, he will be limited to this
parameter (IE: if the current message number is 20000 and a user asks the
list of the message 15000, he will be then limited to the 19500 if the
backward number is 500).
The second parameter is the speed of the unproto updates given in seconds.
The frames will be sent with this period.
The third parametre(s) have this meaning:
A = ACK messages
V = transit private messages
P = end-user private mail
M = subject is replaced by stars in private mail
(Bulletins are always displayed)
Any unauthorized message will be unproto like
12345 #
#
500 5 VPA
#
Leave this lines alone, unless you are absolutely sure you want to change
it:
# DRSI and TFPC interrupt (Hexadecimal, default FF and FE)
FF FE
Then you have two optional programs of batches which are called at the end
of the initialization, and just before shutdown. If you don't need them, keep
these lines empty.
#
# BBS-UP program (default empty)
#
# BBS-DW program (default empty)
#
You can change these colours if you like:
# Colour on texts :
#
# Black : 0 Dark grey : 8
# Blue : 1 Light blue : 9
# Green : 2 Light green : 10
# Cyan : 3 Light cyan : 11
# Red : 4 Light red : 12
# Magenta : 5 Light magenta : 13
# Brown : 6 Yellow : 14
# Light grey : 7 White : 15
#
#
# COULEUR FONDS
#
# Status (top)
1
# Bandeau (middle)
7
# Text (bottom)
0
# Menus
4
#
# Colour of characters
#
# Status (top)
7
# Bandeau (middle)
1
# Menus
14
# Text sent
10
# Text received
12
# UI (Headers)
15
# UI (traffic)
7
# Console
14
# Beacon
6
# Channel-marking
11
#
You may change these lines if you like. These are the servers that are
normally available in most FBB-BBSs, and they are automatically installed for
you from the diskettes. So you can leave them alone. Or you can disable them
with a # in front of each of these lines.
Two built-in servers already exist, but you MUST declare them in this file
to make them available. As they are built-in, the program-name MUST be
replaced with stars.
-----------
# List of "servers" :
#
# To Program-name Description
#
REQCFG ****** Request configuration
WP ****** WP server
REQDIR REQDIR Request directory-listings from other BBSs.
REQFIL REQFIL Request files from other BBSs.
NEWDOC NEWDOC Upgrade files under DOCS.
------
#
# End of file
#
Ok. That was the INIT.SRV file. This file is VERY important, so check and
double-check to make sure that you have it all OK. The best way to check
it, is by using INSTWFBB for WinFBB, INSTALL.SH for LinFBB or
FBBSETUP for DosFBB.
This page was last updated


Guidance
How Ofsted inspects the welfare and duty of care in the armed services.
MS Word Document , 636KB
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 346KB , 20 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
Ofsted inspects the impact, quality, effectiveness and management of welfare and duty of care in Armed Services’ training establishments.
The inspections are commissioned by the Minister of State for the Armed Forces and administered through the Directorate of Training, Education, Skills and Resettlement.
Ofsted’s remit and scope, and the aspects to be inspected, are specified in a memorandum of understanding and associated schedule agreed between the Minister for Defence Personnel, Welfare and Veterans (DPWV) and Her Majesty’s Chief Inspector of Education, Children’s Services and Skills (Ofsted).
Published: 20 August 2012


This is the official (prototype) page for the weekly Blissful Epidemic Lottery. Lovingly crafted by "DasMoose"


Bare is a bare HTML starter template for Bootstrap created by Start Bootstrap. This template features predefined file paths for Bootstrap and jQuery, so you can quickly create Bootstrap websites.
To begin using this template, choose one of the following options to get started:
npm i startbootstrap-bare
git clone https://github.com/BlackrockDigital/startbootstrap-bare.git
After downloading, simply edit the HTML and CSS files included with the template in your favorite text editor to make changes.  To preview the changes you make to the code, you can open the index.html
file in your web browser.
After installation, run npm install
and then run gulp dev
which will open up a preview of the template in your default browser, watch for changes to core template files, and live reload the browser when changes are saved. You can view the gulpfile.js
to see which tasks are included with the dev environment.
You must have npm and Gulp installed globally on your machine in order to use these features.
Start Bootstrap has a public Slack channel which is a great place to ask questions about this template and all things related to Start Bootstrap.
Click here to join the Slack channel!
Have a bug or an issue with this template? Open a new issue here on GitHub or leave a comment on the template overview page at Start Bootstrap.
Start Bootstrap is an open source library of free Bootstrap templates and themes. All of the free templates and themes on Start Bootstrap are released under the MIT license, which means you can use them for any purpose, even for commercial projects.
Start Bootstrap was created by and is maintained by David Miller, Owner of Blackrock Digital.
Start Bootstrap is based on the Bootstrap framework created by Mark Otto and Jacob Thorton.
Copyright 2013-2018 Blackrock Digital LLC. Code released under the MIT license.


The Bible.at is a new and simple way to make sure everyone can access the bible during talks. We'll keep you up to date with the latest features, fixes and improvement right here on the front page.
Coming Soon
- Church co-branding
- Expandable content to gain context
- Set saved default language
10th December 2015 - Additional Features
- Add sermon notes to church verses
- Redesign for card layout
- Addition of loading icons
- Added what's new messaging
- Add captcha to sign up
1st December 2015 - Initial release of Beta 0.1
You can start using the basic version on the web.


I’m originally from the serene Salt Spring Island, a small community off the coast of Vancouver Island, British Columbia. Post secondary school, I attended the University of Alberta for a biology degree with the intention of pursuing medicine. However, this career would be no more than a placeholder for me, evidenced by my lackluster performances in biology classes and the broad range of courses I took in my first two years: Latin, History, Psychology, Geology, Philosophy, etc. I continued exploring until I took an introductory Computing course and loved it; it was the first course I had taken at University where I was excited to do assignments, and delved deeper into the material on my own. I decided that even though I wasn’t sure where I would fit in, Computing was a field where I could fit in, and made for a practical choice.
Three years later, I graduated with a Bachelor of Science with specialization in Computing Science with Distinction and also completed a certificate in computer game development. I have a broad skill set in the discipline including programming in multiple languages, agile development, networks, web applications, video game development, 3D animation and graphics, algorithms, and more. After I graduated, I was employed by the University’s software engineering department to help develop an exercise game for seniors and rehabilitation and have since returned to British Columbia to continue in the field of Computing Science.
During my degree I realized that one of the most exciting applications of computing for me is video games. The possibility that someone could explore something I imagined or dreamt about, to the extent that it provokes emotion or enjoyment, is something I find to be incredibly beautiful. I also consider game development to be a field which draws upon many different elements, and favours people with a broad skillset - a skillset that I have. As luck would have it, the University of Alberta has a certificate program that involves taking courses either specifically about making games, or containing skills that transfer to game development.
I jumped at the chance to enrol in this program and because of it took courses on 3D graphics and animation, advanced games programming, understanding video games, video games in an educational context, and created two large scale games in teams with other programmers, artists, musicians, and writers. I hope there is a place for me in the games industry, but if not I know that because I have the tools to create and develop content on my own, creating video games will remain part of my life regardless of my employment.
Growing up, I had two major passions: sports and music. I’m a self taught guitar player and I’ve played the drums since I was four years old, both as a percussionist in my community concert band and a drummer here and there. I played soccer casually since elementary school and developed an intense interest in Basketball when I was in high school. Today I still enjoy these activities but only as a hobby. These days I like to play games such as Magic the Gathering and Hearthstone, solve puzzles, code up ideas or games, make jokes, and drink tea.
Something I’ve come to understand about myself is that I love developing skills and seeing myself improve; a core part of sports, music, and computing science. For this reason, my favourite thing is learning new information that inspires me, makes me think in a different way, or develops what I already know. I hope you have enjoyed this cursory glance into my life, and if you would like to talk or work together feel free to contact me.


Welcome to My Portfolio!
Featured Work
About Me
Hi there! I'm currently enrolled in the second year of the IT Web Programming concentration at Nova Scotia Community College. Developing meaningful applications for people is something I'm passionate about, and I'm always striving to improve myself wherever possible.
My experience in programming dates back to high school, where I discovered how prevalent it is in our daily lives. After graduating with an engineering diploma in 2016, I stumbled upon freeCodeCamp.com, which is ultimately what intrigued me to pursue a career in web development. During my studies at NSCC, I've had the opportunity to learn the following languages, tools, and frameworks:
Skills
Front End
Back End
Tools
Misc.
Currently learning React and Java Spring framework.