About
Help
Contact
HOME
MOBILES & GADGETS
FASHION
ELECTRONICS
GROCERY
SPORTS
find items...
Hot Sales ❯
Checkout
find items...
HOME
MOBILES & GADGETS
FASHION
ELECTRONICS
GROCERY
SPORTS
×
Find Items Here
Item
Supermarket
(Optional)
Location
(Optional)
Find Item
Check Out
Check Out
Check Out
Check Out
Check Out
❮
❯
Hot Sales
TRENDYOL Cable Knit Sweater Stone
AED 79
Shaklan Supermarket
Location : International City
TRENDYOL Cable Knit Sweater Stone
AED 85
Spinneys Supermarket
Location : Deira
TRENDYOL Cable Knit Sweater Stone
AED 82
Sun City Supermarket
Location : Business Bay
Apple iPhone 12 Pro - 128GB, 6.1-Inch, 5G
AED 5,050
Spinneys Supermarket
Location : Deira
Apple iPhone 12 Pro - 128GB, 6.1-Inch, 5G
AED 5,080
Gift City Supermarket
Location : Al quoz 4
Apple iPhone 12 Pro - 128GB, 6.1-Inch, 5G
AED 5,099
Shaklan Supermarket
Location : International City
Xiaomi Mi 1S Electric Scooter
AED 1380
Spinneys Supermarket
Location : Al quoz 4
Xiaomi Mi 1S Electric Scooter
AED 1399
Day By Day Supermarket
Location : Jumira
Xiaomi Mi 1S Electric Scooter
AED 1379
Shaklan Supermarket
Location : International City
PlayStation 5 Standard Edition Console
AED 3958
Shaklan Supermarket
Location : Business Bay
PlayStation 5 Standard Edition Console
AED 3999
Spinneys Supermarket
Location : Deira
PlayStation 5 Standard Edition Console
AED 3989
Sun City Supermarket
Location : Jumira
No results matched your search...
Home
FASHION
ArdeneSolid Design Joggers Red
AED140.00
Shaklan Supermarket
Al Quoz 2
ArdeneSolid Design Joggers Red
AED145.00
Gift City Supermarket
Business Bay
ArdeneSolid Design Joggers Red
AED139.00
Spinneys Supermarket
Jumira
PUMA Rebel Black-Nrgy T-shirt
AED 100.00
Spinneys Supermarket
International City
PUMA Rebel Black-Nrgy T-shirt
AED 95.00
Gift City Supermarket
Business Bay
PUMA Rebel Black-Nrgy T-shirt
AED 88.00
Sun city Supermarket
Al quoz 3
trendyol Bunny Print Pyjama Pants
AED 90.00
Spinneys Supermarket
Jumira
trendyol Bunny Print Pyjama Pants
AED 87.00
Shaklan Supermarket
International City
trendyol Bunny Print Pyjama Pants
AED 92.00
Day By Day Supermarket
Deira
trendyolLapel Collar Pyjama Set Navy
AED 78.00
Spinneys Supermarket
Deira
trendyolLapel Collar Pyjama Set Navy
AED 75.00
Sun city Supermarket
Jumira
trendyolLapel Collar Pyjama Set Navy
AED 76.00
Day By Day Supermarket
Al quoz 3
High StreetsCrew Neck Short Sleeve
AED170.00
Shaklan Supermarket
International City
High StreetsCrew Neck Short Sleeve
AED168.00
Sun city Supermarket
Al quoz 3
High StreetsCrew Neck Short Sleeve
AED165.00
Day By Day Supermarket
Business Bay
Tommy Jeans Short Sleeve T-Shirt
AED180.00
Sun city Supermarket
International City
Tommy Jeans Short Sleeve T-Shirt
AED168.00
Day By Day Supermarket
Business Bay
Tommy Jeans Short Sleeve T-Shirt
AED175.00
Shaklan Supermarket
Jumira
NikeSportswear T-Shirt
AED 168.00
Gift City Supermarket
International City
NikeSportswear T-Shirt
AED 160.00
Sun city Supermarket
Jumira
NikeSportswear T-Shirt
AED 165.00
Shaklan Supermarket
Deira
Jordan Camo Fleece Trousers
AED 399.00
Gift City Supermarket
Al quoz 3
Jordan Camo Fleece Trousers
AED 420.00
Shaklan Supermarket
Jumira
Jordan Camo Fleece Trousers
AED 450.00
Day By Day Supermarket
International City
MOBILES
Apple iPhone 12 Mini 64GB 5G
AED 700
Shaklan Supermarket
Al Quoz 4
Apple iPhone 12 Mini 64GB 5G
AED 695
Sun city Supermarket
Al quoz 3
Apple iPhone 12 Mini 64GB 5G
AED 680
Sun city Supermarket
Deira
Apple iPhone 12 Mini 64GB 5G
AED 709
Sun city Supermarket
Al quoz 3
Apple iPhone 11
AED 849
Shaklan Supermarket
Al Quoz 4
Apple iPhone 11
AED 869
Sun City Supermarket
Al Quoz 3
Apple iPhone 11
AED 859
Gift City Supermarket
Al Quoz 1
Apple iPhone 11
AED 855
Day by Day Supermarket
Al Quoz 2
Samsung Galaxy A21s 4GB RAM
AED 1250
Day by Day Supermarket
Deira
Samsung Galaxy A21s 4GB RAM
AED 1200
Shaklan Supermarket
Al Quoz 4
Samsung Galaxy A21s 4GB RAM
AED 1100
Shaklan Supermarket
Al Quoz 3
Samsung Galaxy A21s 4GB RAM
AED 1300
Shaklan Supermarket
Al Quoz 2
Samsung Galaxy Note20 Dual SIM
AED 4750
Shaklan city Supermarket
Al quoz 2
Samsung Galaxy Note20 Dual SIM
AED 4780
Sun city Supermarket
Al quoz 4
Samsung Galaxy Note20 Dual SIM
AED 4790
Gift city Supermarket
Deira
HUAWEI P30 Pro Dual SIM
AED 2810
Sun city Supermarket
Al quoz 3
HUAWEI P30 Pro Dual SIM
AED 2780
Shaklan Supermarket
Al quoz 1
HUAWEI P30 Pro Dual SIM
AED 2790
Gity Supermarket
Al quoz 4
Nokia 6.2 Dual SIM
AED 720
Gity Supermarket
Deira
Nokia 6.2 Dual SIM
AED 710
Shaklan Supermarket
Al quoz 3
Nokia 6.2 Dual SIM
AED 699
Sun city Supermarket
Al quoz 1
Nokia 6.2 Dual SIM
AED 695
Day by Day Supermarket
Al quoz 3
ELECTRONICS
T500 Series 5 Smart Watch
AED 299
Shaklan Supermarket
Al quoz 3
T500 Series 5 Smart Watch
AED 295
Gity Supermarket
Al quoz 2
T500 Series 5 Smart Watch
AED 300
Sun city Supermarket
Al quoz 1
T500 Series 5 Smart Watch
AED 290
Day By Day Supermarket
Deira
ThinkPad E15 Laptop With 15.6-Inch
AED 2800
Sun city Supermarket
Al quoz 3
ThinkPad E15 Laptop With 15.6-Inch
AED 2800
Gity Supermarket
Al quoz 2
ThinkPad E15 Laptop With 15.6-Inch
AED 2799
Day By Day Supermarket
Al quoz 1
ThinkPad E15 Laptop With 15.6-Inch
AED 2750
Shaklan Supermarket
Deira
DELL XPS 13.3 Inch Display
AED 2799
Gift City Supermarket
Al quoz 2
DELL XPS 13.3 Inch Display
AED 2790
Sun city Supermarket
Jumira
DELL XPS 13.3 Inch Display
AED 3000
Shaklan Supermarket
Deira
DELL XPS 13.3 Inch Display
AED 2999
Spinneys Supermarket
Al quoz 3
SonyCyberShot Camera
AED 2800
Gift City Supermarket
International City
SonyCyberShot Camera
AED 2800
Shaklan Supermarket
Business Bay
SonyCyberShot Camera
AED 2800
Spinneys Supermarket
Deira
SonyCyberShot Camera
AED 2800
Sun city Supermarket
Al quoz 3
Sony PlayStation 4
AED 2800
Day By Day Supermarket
Al quoz 4
Sony PlayStation 4
AED 2850
Sun city Supermarket
Deira
Sony PlayStation 4
AED 2840
Shaklan Supermarket
Business Bay
Sony PlayStation 4
AED 2870
Spinneys Supermarket
International City
GROCERY
Ariel Laundry Detergent Powder 9kg
AED65.00
Shaklan Supermarket
Business Bay
Ariel Laundry Detergent Powder 9kg
AED70.00
Sun city Supermarket
Al quoz 3
Ariel Laundry Detergent Powder 9kg
AED68.00
Spinneys Supermarket
International City
BritanniaGood Day Cashew Cookies
AED15.00
Sun city Supermarket
Al quoz 3
BritanniaGood Day Cashew Cookies
AED16.00
Spinneys Supermarket
Jumira
BritanniaGood Day Cashew Cookies
AED17.00
Gift city Supermarket
Business Bay
LU Granola Extra Cookies
AED22.00
Sun city Supermarket
Al quoz 3
LU Granola Extra Cookies
AED25.00
Shaklan Supermarket
Jumira
LU Granola Extra Cookies
AED24.00
Spinneys Supermarket
Al quoz 1
CadburyBournvita Chocolate Drink
AED23.00
Spinneys Supermarket
Al quoz 4
CadburyBournvita Chocolate Drink
AED21.00
Sun city Supermarket
Al quoz 3
CadburyBournvita Chocolate Drink
AED22.00
Gift city Supermarket
Al quoz 1
Red BullEnergy Drink
AED15.00
Gift city Supermarket
Al quoz 2
Red BullEnergy Drink
AED12.00
Sun city Supermarket
Al quoz 3
Red BullEnergy Drink
AED10.00
Spinneys Supermarket
Deira
Tide Pack Of 2 Power Gel
AED23.00
Gift city Supermarket
Al quoz 3
Tide Pack Of 2 Power Gel
AED22.00
Sun city Supermarket
International City
Tide Pack Of 2 Power Gel
AED24.00
Day By Day Supermarket
Jumira
SPORTS
SkyLandTubeless Electric Scooter
AED850.00
Gift city Supermarket
Al quoz 3
SkyLandTubeless Electric Scooter
AED830.00
Shaklan Supermarket
Jumira
SkyLandTubeless Electric Scooter
AED800.00
Day By Day Supermarket
Al quoz 4
Body SculptureAb Wheel
AED25.00
Sun city Supermarket
Al quoz 3
Body SculptureAb Wheel
AED27.00
Spinneys Supermarket
Business Bay
Body SculptureAb Wheel
AED30.00
Shaklan Supermarket
Al quoz 1
Asquare Skating Shoes
AED150.00
Sun city Supermarket
Al quoz 3
Asquare Skating Shoes
AED 166.00
Spinneys Supermarket
Jumira
Asquare Skating Shoes
AED 145.00
Shaklan Supermarket
Al quoz 4
MOGOOEpsilon Alloy Bike
AED 1050.00
Shaklan Supermarket
Business Bay
MOGOOEpsilon Alloy Bike
AED 1095.00
Spinneys Supermarket
Deira
MOGOOEpsilon Alloy Bike
AED 1100.00
Sun city Supermarket
Jumira


Victor Oyare Oko
About
Education
Work Experience
Projects
Skills & Interests
Honors
ENTREPRENEURSHIP
PDF RESUME
VICTOR
OKO
Columbia University
· Technology Management
Determined, Passionate for Tech, Driven by Intellectual Curiosity
EDUCATION
Columbia University
MS Technology Management
HBCU Fellow
September 2020 - August 2021
Harvard Business School Online
CORe - Certificate of Readiness
Business Analytics, Economics, Accounting & Finance
May 2020 - August 2020
Morgan State University
BS Electrical Engineering
Graduated with Honors - Magna Cum Laude
Deans List
3.7 GPA
January 2017 - May 2020
Work Experience
DevOps Intern
Alliance Bernstein
Streamlined deployment process by developing CI/CD infrastructure like Jenkins & Docker to improve operational efficiency.
Managed Git repositories for DevOps environment: Version control & build automation with Jenkins.
June 2020 - July 2020
Infrastructure Engineer Intern
Alliance Bernstein
Implemented & configured LAN on two new floors providing connectivity for 526 employees
Performed testing and checkouts to ensure operation and resiliency.
Drew Nashville infrastructure network diagram for the new floor which aided planning, controlling & organizing.
June 2019 - August 2019
Electrical Engineer
Stanley Black & Decker
Designed and built a wireless inductive charging device prototype, allowing company to take advantage of a growing market.
Lead team to design & build a remote-control flashlight; finished working prototype 3 weeks before the deadline.
Placed 3rd in Intern Innovation Challenge
June 2018 - August 2018
Technical Projects
Electrical & Computer Engineering Projects
Class Projects
Designed a robot to move toward a light source. Utilized logic gates, MOSFETs and op-amp.
Built a circuit that detected two claps to turn on an LED. Utilized op-amp, timer, flip-flop, relay & transistor.
Built a Line-Follower robot in Java.
Built a Baxandall tone control circuit with Bass and Treble cuts.
May 2018 - May 2019
Data Engineering and Predictive Analytics (D.E.P.A) Lab
Research Projects
Built a vest prototype using transducers, to cure a lung disease
Designed a system to locate a beacon placed in employee gloves to determine location in building using Bluetooth & Wi-Fi.
Developed a unique classifier to visually recognize a skin disease using IBM Watson Visual Recognition in python.
January 2018 - Present
Design Portfolio
Skills & Interests
Skills & Interests
Project Management
Product Developement
DevOps
Machine Learning
Java & C++
Graphic Design / Product Design
Workflow
Cross Functional Teams
Agile Development & Scrum
Honors & Leadership
Columbia University HBCU Fellowship 2020
NSBE Leadership Award 2019
IBM Enterprise Design Thinking Practitioner 2019
Six Sigma White Belt Certification 2018
Martin D. Jenkins Scholarship 2017 - 2020
Grow with Google Schlp.: Front-End Web Dev 2018
Golden Key International Honor Society 2018
Parren J. Mitchell Honors Transfer Scholarship 2017
Senator - National Society of Black Engineers (NSBE) 2018 - 2020
Communication Chair - Morgan State IEEE 2019 - 2020
Fellow - University Innovation Fellows 2018 - 2020
Mentor - TMCF Vivian Burey Marshall Academy 2019
ENTREPRENEURSHIP & Innovation
urConvey - Co-founder 2020
1
st
Place - NBA "Innovate the Future" Competition 2020
4
th
Place - Unum HBCU Innovation Challenge 2019
3
rd
Place - BE Smart Innovation Challenge 2019
5
th
Place - Black Enterprise (BE) Smart Hackathon 2019
3
rd
Place - TMCF Moguls in the Making 2019
2
nd
Place - TMCF The Pitch Competition 2018
3
rd
Place - Stanley Black & Decker Intern Innovation Challenge 2018


Greg Wilson / 2005-12-23
I finished rewriting the build system for the Software Carpentry course notes yesterday. Doing so was an extended form of procrastination: the system I built over the summer and used through the fall was adequate, but I wanted to clean a few things up, and then, well, I might as well make it easier for other instructors to add site-specific content, and make tables inclusions instead of inlining them, and mumble mumble mumble type type type...
Of course, none of this has actually advanced the content of the course one whit. I have over seventy tickets to close, ranging in size from making sure that a particular Make example does what I claim to rewriting the lecture on security. And diagrams: no one was happy with the isometric ones created this term (not least because they're kind of fuzzy), so I have over a hundred diagrams to re-do. In a perfect world, they'd be ready before I teach at the IASSE in mid-January. In this universe, I'll be happy if they're in place for the Essential Software Skills for Research Scientists workshop at the AAAS Annual Meeting on February 17.
We all do this. We all fold laundry instead of paying bills, or invent an antigravity drive when we're supposed to be studying for an Economics final. (OK, maybe that was just me.) But it seems particularly common among software developers, many of whom would rather spend two hours creating a new (not better, just new) serialization class hierarchy than take five minutes to center-align the titles at the top of the product's help page. One of the characters in Mark Costello's Big If (reviewed here) is a prime example: his company desperately needs him to add some new monsters to a video game, so he spends a week adding shadows to clouds.
But back to the build system... What I have is a set of XML files marked up with a homegrown tag set, and what I want is some HTML pages. The files are organized into several directories: the main page is in the root, while all of the lectures are in lec/, and site-specific content is in sub-directories underneath sites/. Each directory that contains source XML files may also contain img/, inc/, and tbl/ sub-directories; in turn, each of those has one sub-directory for each of the source files, which holds images, sample code inclusions, and tables.
The build system consists of the following tools:
A 500-line Makefile in the root directory that drives everything else. Roughly half of those lines are comments (which can be extracted and formatted as a wiki page to create on-line documentation). This Makefile includes another file called config.mk, in which users must specify the lectures they want to include in the course.
A Python script called linkages.py that scans the source files and builds a data structure that records such things as the order of lectures, where glossary terms are defined, the two-part numerical IDs of figures and tables, and so on. linkages.py writes this data structure directly to a file called tmp/linkages.tmp.py, which other tools then import. Persisting the data structure directly saved me from having to mess around with parsers or serializers. The clever bit (ahem) is that I only write it out if (a) the file doesn't already exist, or (b) the contents have changed. That way, if I change a source file in a way that doesn't affect cross-linkages, Make doesn't do a lot of unnecessary rebuilding.
Once the linkages file is up to date, preprocess.py kicks in. This script creates copies of the source files under the tmp/ directory (preserving the directory structure), and adds information to those copies to make XSLT's job easier. Among other things, it:
adds a unique file ID, and the path to the root of the build, to the lecture's root element;
copies content from table files into the lectures;
adds citation information to bibliography references;
does multi-column layout of length tables;
inserts figure and table counter values (the "4.2" in "Figure 4.2");
fills in cross-references between source files;
replaces the <lecturelist/> element with a point-form list of links to lectures;
fills in the <figlist> and <tbllist> tags with lists of figures and tables respectively;
links terms in the glossary back to their first uses;
inserts included program source files;
links to external references;
adds "previous" and "next" linkage information to lectures;
generates a syllabus; and
adds tracing information, such as file version numbers and the time the files were processed.
Each stage ought to be a filter of its own, and in fact I wrote them all that way to begin with. However, launching fifteen or more copies of the Python interpreter for each source file made the build rather slow; doing the piping internally reduced the time per source file from eight or nine seconds to less than a second.
util/individual.xsl is an XSL script that translates the filled-in XML lecture file into HTML. This script handles the outer skeleton directly, handing specific tasks like the bibliography and special lists to other XSL files that it includes.
A Python script called util/unify.py and an XSL script called util/unified.xsl work together to create a single-page version of the whole course. unify.py stitches the filled-in lecture files together; unified.xsl then applies the same transformations as individual.xsl, but formats hyperlinks differently (since they're all in-file).
I use another Python script called validate.py to check the internal consistency of the source files. Do any of them contain tabs or unprintable characters? Do all the required images, source files, and tables exist? I run this before checking in changes; it catches something about one time in five.
And then there are the minor tools:
util/fixentities.py replaces character entities with character codes (to work around a problem with Expat);
util/wiki.py extracts specially-formatted comments from Makefiles and XSL files, and docstrings from Python, to create wiki documentation pages; and
util/revdtd.py reverse engineers the actual DTD of either the source files, their filled-in counterparts, or the generated HTML files.
It's a lot of code; it was a lot of work; I'm pleased with how smoothly it all runs; and most of the time I spent building it should probably have gone into upgrading the actual content of the course. But small(ish) tasks are seductive: you can start work at 8:30, confident that you'll have something to show (even if only to yourself) by noon. Editing course notes, well, the payoff is usually a long way away, and may not come at all: people who read through the first, flawed, version of the notes probably aren't going to come back and tell you how much better the second version is.
That last observation is the key ingredient of my cure for procrastination: find some partners. I am always more productive when I'm working with people than I am on my own. Not only does a small team wander down fewer blind alleys than someone working alone, team members can keep each other honest, and give each other feedback and encouragement. They can also appreciate just how big an accomplishment it is to have replaced all the a's and b's in twenty-eight short examples of list manipulation with the names of minerals, beetles, and mathematicians.
It's now ten to eleven, and I've managed to fend off productivity for almost an hour. Should I look on eBay for a WACOM Cintiq tablet that I can afford? It'd make drawing diagrams much more fun. Or maybe I should try Nose: Miles Thibault says it's much friendlier than the unit testing framework in the Python standard library. Hm... A cup of tea will probably help me decide. A cup of tea, and a slice of toast with strawberry jam...
Read More ›


Here's a standard example of a linkselect plug-in. The box on the left contains the original HTML, while the box on the right shows the same element initialized with the Linkselect plug-in.
$("select.linkselect").linkselect();
This example is identical to the first example, except we've added a "title" attribute to the select element which is shown when the dropdown menu appears.
$("select.linkselect").linkselect();
Here's an example of the linkselect that is positioned on the right side of the screen. You can see that the linkselect will allow the value/link to wrap to multiple rows and the position of the dropdown is also positioned so that options remain in the in the X-axis viewpoint.
$("select.linkselect").linkselect();
The linkselect works by replacing the <select /> element with a hidden <input /> tag. The linkselect() plug-in provides a convenient API for getting and setting the value of the field.
// get value
$("#ex4_ls").linkselect("val");
// set value
$("#ex4_ls").linkselect("val", "Change Manager");
You can also easily enable or disable the linkselect field.
// disable field
$("#ex5_ls").linkselect("disable", true);
// enable field
$("#ex5_ls").linkselect("disable", false);
You can also programmatically open the linkselect dropdown. This is very useful if you want to add a hotkey to open the linkselect element.
// open/show dropdown
$("#ex6_ls").linkselect("open");
There are also blur/focus methods for setting focus on the field (or removing focus.) These functions come in handy if your application uses hotkeys to jump to different fields in your application.
// place focus in the field
$("#ex7_ls").linkselect("focus");
// blur of the field
$("#ex7_ls").linkselect("blur");
There are several callback options you can define to help customize the behavior of your linkselect() elements. The "change" callback allows you to add behavior to your linkselect elements by firing this callback every time the value changes (either manually by the user or by using the linkselect("val", value) API call.)
The example below will log each change to the linkselect() field to the "Change Log" box below.
$("#ex8_ls").linkselect({
change: function (li, value, text){
$('
' + value + ' | ' + text + '
').appendTo("#change_log");
}
});
The "format" option is a special callback you can define to easily add custom formatting to the options in the dropdown menu. This allows you to add custom HTML or change the classes for specific items. This is a great way to add emphasis to key options.
The example below adds the array position of each option tag to the output and highlights the "Customer Service" option.
$("#ex9_ls").linkselect({
format: function (html, value, label, pos){
if( value == "Service Desk" ) html = '' + html + '';
return '' + pos + '' + html;
}
});
The Linkselect can be fully customized by CSS. Use the buttons below to change the look and feel of the Linkselect elements on the page.
Default: jquery.linkselect.css
"Select" Style: jquery.linkselect.style.select.css
You can also use a placeholder text to show when no option has been selected
You can also manually trigger the linkselect change event.
$("#ex12_ls").linkselect({
style: style
, init: function (){
// trigger change events for the default value
this.change();
}
, change: function (li, value, text){
$('
' + value + ' | ' + text + '
').appendTo("#change_log_change");
}
});


pingouin.mwu¶
-
pingouin.
mwu
(x, y, alternative='two-sided', **kwargs)¶ Mann-Whitney U Test (= Wilcoxon rank-sum test). It is the non-parametric version of the independent T-test.
- Parameters
- x, yarray_like
First and second set of observations.
x
andy
must be independent.- alternativestring
Defines the alternative hypothesis, or tail of the test. Must be one of “two-sided” (default), “greater” or “less”. See
scipy.stats.mannwhitneyu()
for more details.- **kwargsdict
Additional keywords arguments that are passed to
scipy.stats.mannwhitneyu()
.
- Returns
- stats
pandas.DataFrame
'U-val'
: U-value'alternative'
: tail of the test'p-val'
: p-value'RBC'
: rank-biserial correlation'CLES'
: common language effect size
- stats
See also
Notes
The Mann–Whitney U test [1] (also called Wilcoxon rank-sum test) is a non-parametric test of the null hypothesis that it is equally likely that a randomly selected value from one sample will be less than or greater than a randomly selected value from a second sample. The test assumes that the two samples are independent. This test corrects for ties and by default uses a continuity correction (see
scipy.stats.mannwhitneyu()
for details).The rank biserial correlation [2] is the difference between the proportion of favorable evidence minus the proportion of unfavorable evidence.
The common language effect size is the proportion of pairs where
x
is higher thany
. It was first introduced by McGraw and Wong (1992) [3]. Pingouin uses a brute-force version of the formula given by Vargha and Delaney 2000 [4]:\[\text{CL} = P(X > Y) + .5 \times P(X = Y)\]The advantage is of this method are twofold. First, the brute-force approach pairs each observation of
x
to itsy
counterpart, and therefore does not require normally distributed data. Second, the formula takes ties into account and therefore works with ordinal data.When tail is
'less'
, the CLES is then set to \(1 - \text{CL}\), which gives the proportion of pairs wherex
is lower thany
.References
- 1
Mann, H. B., & Whitney, D. R. (1947). On a test of whether one of two random variables is stochastically larger than the other. The annals of mathematical statistics, 50-60.
- 2
Kerby, D. S. (2014). The simple difference formula: An approach to teaching nonparametric correlation. Comprehensive Psychology, 3, 11-IT.
- 3
McGraw, K. O., & Wong, S. P. (1992). A common language effect size statistic. Psychological bulletin, 111(2), 361.
- 4
Vargha, A., & Delaney, H. D. (2000). A Critique and Improvement of the “CL” Common Language Effect Size Statistics of McGraw and Wong. Journal of Educational and Behavioral Statistics: A Quarterly Publication Sponsored by the American Educational Research Association and the American Statistical Association, 25(2), 101–132. https://doi.org/10.2307/1165329
Examples
>>> import numpy as np >>> import pingouin as pg >>> np.random.seed(123) >>> x = np.random.uniform(low=0, high=1, size=20) >>> y = np.random.uniform(low=0.2, high=1.2, size=20) >>> pg.mwu(x, y, alternative='two-sided') U-val alternative p-val RBC CLES MWU 97.0 two-sided 0.00556 0.515 0.2425
Compare with SciPy
>>> import scipy >>> scipy.stats.mannwhitneyu(x, y, use_continuity=True, alternative='two-sided') MannwhitneyuResult(statistic=97.0, pvalue=0.0055604599321374135)
One-sided test
>>> pg.mwu(x, y, alternative='greater') U-val alternative p-val RBC CLES MWU 97.0 greater 0.997442 0.515 0.2425
>>> pg.mwu(x, y, alternative='less') U-val alternative p-val RBC CLES MWU 97.0 less 0.00278 0.515 0.7575
Passing keyword arguments to
scipy.stats.mannwhitneyu()
:>>> pg.mwu(x, y, alternative='two-sided', method='exact') U-val alternative p-val RBC CLES MWU 97.0 two-sided 0.004681 0.515 0.2425


A REVIEW OF "PAYBACK" by Ryan Ellis
An early winner in 1999 is "Payback". Now, any film with Mel Gibson taking credit as the star is a pretty solid bet to rake in a few bucks, but I didn't expect much from this picture. It's ironic that Mel's character in "Payback" is interested in raking in a few bucks of his own--all $70,000 of it. He stars as Porter (like Madonna or Fabio, it's just a one-word name), a street hood and petty thief. Well, if you can call stealing over $100,000 "petty thievery", that is. Regardless, Porter is essentially a scummy bad guy. Don't forget, the trailers said to "get ready to root for the bad guy". And root for him we do.  It's accompanied by some funky retro music. One of the great aspects of "Payback" is the soundtrack from the era of rather crappy music--the late 70s and early 80s. They never say when this film is set or even where, but the rotary telephones, clothes, and bad make-up indicate that it's from 15 or 20 years ago. Anyway, fresh from being stiffed by his cohort in the heist of $130,000, Porter sets out to retrieve his share of the money. Naturally, the double-crossing partner doesn't just hand over the money when they meet. He gave it to "The Outfit" to buy his way into their mob-like family. If he DID just hand over the money, the killing spree Porter goes on for the next hour of the film in trying to reclaim his $70,000 would never have existed and then where would we be? Director Brian Helgeland's screenplay is witty and revealing. There's a limited amount of needless wisecracking but constant development of the main characters, both Mel and Maria Bello. One of the refugees from "ER", Bello is well-cast as the hooker girlfriend. She is gorgeous (except for the hideous eye-shadow) and believable in the role. Helgeland, who made his debut in the big chair with this picture after co-writing an Oscar-winning screenplay for "L.A. Confidential" in 1997, makes full use of the dialogue and story and he has to. This is not a beautiful movie to look at since Helgeland chose to apply a washed-out look. There is nothing glamorous to show in the world of these slime-balls, but the dull look doesn't mean it's ever dull to watch. Not since "Pulp Fiction" have criminals and low-lifes been glorified in such a wonderful way. Some other highlights of "Payback" are a butt-kicking, S&M lovin' prostitute, several strong supporting performances (from David Paymer, Kris Kristofferson, and James Coburn among others), and that groovy music. Of course, the anchor of this movie is Mel Gibson, one of the top stars in the entire world. You gotta love the smarts and finality of the final effects sequence and Mel's closing lines. This film boasts a dizzyingly high death total and most of the deaths are courtesy of Porter. Still, we're supposed to "root for the bad guy" and we certainly do.
9/10
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


Accommodation
Hotel Room #1
- Beds: King Bed
- View: City
- Occupancy: 2 Person(s)
- Size: 35-40sqm
- Rates From: $110
Hotel Room #2
- Beds: King Bed
- View: City
- Occupancy: 2 Person(s)
- Size: 35-40sqm
- Rates From: $110
Hotel Room #3
- Beds: King Bed
- View: City
- Occupancy: 2 Person(s)
- Size: 35-40sqm
- Rates From: $110
Hotel Room #4
- Beds: King Bed
- View: City
- Occupancy: 2 Person(s)
- Size: 35-40sqm
- Rates From: $110
Hotel Room #5
- Beds: King Bed
- View: City
- Occupancy: 2 Person(s)
- Size: 35-40sqm
- Rates From: $110
Hotel Room #6
- Beds: King Bed
- View: City
- Occupancy: 2 Person(s)
- Size: 35-40sqm
- Rates From: $110


| Package | Description |
|---|---|
| javaslang | |
| javaslang.collection |
Purely functional collections based on Traversable.
|
| javaslang.concurrent |
This package contains basic building blocks creating fast, asynchronous, non-blocking parallel code.
|
| javaslang.control |
| Class and Description |
|---|
| Either
Either represents a value of two possible types.
|
| Match.MatchValue.Of |
| Option
Replacement for
Optional . |
| Try
An implementation similar to Scala's Try control.
|
| Try.CheckedSupplier
A Supplier which may throw.
|
| Class and Description |
|---|
| Match.MatchValue.Of |
| Option
Replacement for
Optional . |
| Class and Description |
|---|
| Match.MatchValue.Of |
| Option
Replacement for
Optional . |
| Try
An implementation similar to Scala's Try control.
|
| Try.CheckedFunction
A Function which may throw.
|
| Try.CheckedPredicate
A Predicate which may throw.
|
| Try.CheckedRunnable
A Runnable which may throw.
|
| Try.CheckedSupplier
A Supplier which may throw.
|
Copyright © 2016. All Rights Reserved.


Mercenary Redfoot:
Shall we open the box? This lock should be no problem for me... There we go... That was too easy. Now, what do we have here?
A gem...? Ah, a Fire Emerald! It's a rare and precious gemstone that gives off a red light when exposed to sunlight. You are very lucky! This will fetch a very good price at market.
Return


{# 405.html is used for 405 Method Not Allowed #} {%- extends "base/base.html" %} {% from "base/macros.html" import flash_alert %} {% set active_page = '405'|default('index') -%} {% block title %}405 Method Not Allowed{%- endblock title %} {% block content %}
The method is not allowed for the requested URL!
Please head back to safety...


Preparation time
over 2 hours
Cooking time
10 to 30 mins
Serves
Makes 6
For the delice, scoop out the flesh from eight passion fruit, place into a food processor and blend until the seeds become well pulped. Pour the juice through a fine sieve into a small saucepan, squeezing out as much of the liquid as possible. Discard the seeds.
Add the double cream and two tablespoons of the caster sugar. Place over a medium heat and bring to the boil, then reduce the heat to simmer until the sugar has just melted.
Place the egg yolks into a clean bowl and add the hot passion fruit mixture, whisking constantly.
Return the passion fruit mixture to the saucepan and cook for one minute, or until just thickened.
Add the soaked gelatine leaf and stir well to dissolve, then remove from the heat and allow to cool.
Meanwhile, in a separate clean bowl, whisk the egg white with the remaining tablespoon of sugar, until soft peaks form when the whisk is removed.
Place the whipped cream into a clean bowl. Add the cooled passion fruit mixture and gently fold together to vreate a mousse.
Add the beaten egg white and fold into the cream mixture.
Cut six rounds from the sponge cake using six 7.5cm/3in chefs' rings, leaving the sponge at the bottom.
Spoon in the mousse to fill each chefs' ring to just below the top, then place into the fridge to chill for 1-2 hours.
For the topping, scoop out the flesh from four passion fruit and pour through a sieve into a small saucepan, squeezing out as much of the juice as possible.
Add the caster sugar and water to the pan and place over a medium heat. Bring to the boil, then simmer until the sugar has dissolved.
Add the gelatine leaf and stir to dissolve. Remove the pan from the heat and allow to cool.
Remove the mousses from the fridge and carefully pour the passion fruit sauce over the top of the mousse, filling to the top of the rings. Return the rings to the fridge to cool for 30 minutes, or until the topping has set.
For the satumas, scoop the flesh from three passion fruit into a clean bowl. Add the satsuma segments and orange liqueur and stir gently.
To serve, place each delice into the centre of a plate. Use a mini-blowtorch to loosen the chefs' rings around the delice, then remove the ring. Spoon the satsumas around and serve.


{% extends "base.html" %}
{% block head %}
{# #}
{% endblock head %}
{% block page_menu %}
Schedule
Job List
{% endblock %}
{% block content %}
{% include "scheduling/snippets/page_menu.html" %}
<< Monday, August 3, 2008 >>
| Time |
Job |
Workers |
| 8:00 a.m. – 9:00 a.m. |
Cashier |
|
| 8:00 a.m. – 9:00 a.m. |
Storekeeper |
|
| 8:00 a.m. – 9:00 a.m. |
Storekeeper |
|
| 9:00 a.m. – 10:00 a.m. |
Cashier |
|
| 10:00 a.m. – 11:00 a.m. |
Cashier |
|
| 10:00 a.m. – 11:00 a.m. |
Cashier |
|
| 10:00 a.m. – 11:00 a.m. |
Cashier |
|
| 10:00 a.m. – 11:00 a.m. |
Storekeeper |
|
| 10:00 a.m. – 11:00 a.m. |
Storekeeper |
|
| 10:00 a.m. – 11:00 a.m. |
Cashier |
|
| 10:00 a.m. – 11:00 a.m. |
Cashier |
|
{% endblock content %}


Functionality overview
This section provides a high-level overview of the functionality provided by the interface defined in this specification. Refer to the API definition for a detailed description.
Future additions describes features that might be included in future versions of this specification.
Due to the modularity of the interface, almost every part of the library is
optional. The only mandatory function is psa_crypto_init()
.
Library management
Applications must call psa_crypto_init()
to initialize the library before
using any other function.
Key management
Applications always access keys indirectly via an identifier, and can perform operations using a key without accessing the key material. This allows keys to be non-extractable, where an application can use a key but is not permitted to obtain the key material. Non-extractable keys are bound to the device, can be rate-limited and can have their usage restricted by policies.
Each key has a set of attributes that describe the key and the policy for using
the key. A psa_key_attributes_t
object contains all of the attributes, which
is used when creating a key and when querying key attributes.
Each key has a lifetime that determines when the key material is destroyed. There are two types of lifetimes: volatile and persistent.
Volatile keys
A volatile key exists until it explicitly destroyed with psa_destroy_key()
or until the application terminates, which conceptually destroys all of its
volatile keys.
Conceptually, a volatile key is stored in RAM. Volatile keys have the
lifetime PSA_KEY_LIFETIME_VOLATILE
.
To create a volatile key:
- Populate a
psa_key_attributes_t
object with the required type, size, policy and other key attributes. - Create the key with
psa_import_key()
,psa_generate_key()
,psa_key_derivation_output_key()
orpsa_copy_key()
. If successful, these functions output a transient key identifier.
To destroy a volatile key, call psa_destroy_key()
with the key identifier.
Persistent keys
A persistent key exists until it explicitly destroyed with psa_destroy_key()
or until it is wiped by the reset or destruction of the device.
Each persistent key has a permanent key identifier, which acts as a name for the key. Within an application, the key identifier corresponds to a single key. The application specifies the key identifier when the key is created and when using the key.
Persistent keys can be stored in different storage areas; this is indicated
through different lifetime values. This specification defines a single lifetime
value PSA_KEY_LIFETIME_PERSISTENT
which corresponds to a default storage
area. Implementations can define alternative lifetime values corresponding to
different storage areas with different retention policies, or to secure elements
with different security characteristics.
To create a persistent key:
Populate a
psa_key_attributes_t
object with the key’s type, size, policy and other attributes.In the attributes object, set the desired lifetime and persistent identifier for the key.
Create the key with one of the key creation functions:
If successful, these functions output the key identifier that was specified by the application in step 2.
To access an existing persistent key: use the key identifier in any API that requires a key.
To remove cached copies of key material for persistent keys created with the
PSA_KEY_USAGE_CACHE
policy: call psa_purge_key()
with the key identifier.
To destroy a persistent key: call psa_destroy_key()
with the key identifier.
Destroying a persistent key permanently removes it from memory and storage.
The key lifetime and identifier are set when the key is created and cannot be changed without destroying the key first. If the original key permits copying, then the application can specify a different lifetime for the copy of the key.
Key identifiers
Key identifiers are integral values that act as permanent names for persistent
keys, or as transient references to volatile keys. Key identifiers use the
psa_key_id_t
type, and the range of identifier values is divided as follows:
PSA_KEY_ID_NULL
= 0
- Reserved as an invalid key identifier.
PSA_KEY_ID_USER_MIN
-
PSA_KEY_ID_USER_MAX
- Applications can freely choose persistent key identifiers in this range.
PSA_KEY_ID_VENDOR_MIN
-
PSA_KEY_ID_VENDOR_MAX
- Implementations can define additional persistent key identifiers in this range, and must allocate any volatile key identifiers from this range.
Key identifiers outside these ranges are reserved for future use.
Key identifiers are output from a successful call to one of
the key creation functions. For persistent keys, this is the same identifier
as the one specified in the key attributes used to create the key.
The key identifier remains valid until it is invalidated by passing it to
psa_destroy_key()
. A volatile key identifier must not be used after it has been
invalidated.
Valid key identifiers must have distinct values within the same application. If the implementation provides caller isolation, then key identifiers are local to each application. That is, the same key identifier in two applications corresponds to two different keys.
If an invalid key identifier is provided as a parameter in any function, the
function will return PSA_ERROR_INVALID_HANDLE
; except for the special case of
calling psa_destroy_key
(
PSA_KEY_ID_NULL
)
, which has no effect and always
returns PSA_SUCCESS
.
There must be a matching call to psa_destroy_key()
for each successful call
to a create a volatile key.
A call to psa_destroy_key()
destroys the key material, and will cause any active
operations that are using the key to fail. Therefore an application must not
destroy a key while an operation using that key is in progress, unless the
application is prepared to handle a failure of the operation.
Recommendations of minimum standards for key management
Most implementations provide the following functions:
psa_import_key()
. The exceptions are implementations that only give access to a key or keys that are provisioned by proprietary means, and do not allow the main application to use its own cryptographic material.psa_get_key_attributes()
and thepsa_get_key_xxx()
accessor functions. They are easy to implement, and it is difficult to write applications and to diagnose issues without being able to check the metadata.psa_export_public_key()
. This function is usually provided if the implementation supports any asymmetric algorithm, since public-key cryptography often requires the delivery of a public key that is associated with a protected private key.psa_export_key()
. However, highly constrained implementations that are designed to work only with short-term keys, or only with long-term non-extractable keys, do not need to provide this function.
Usage policies
All keys have an associated policy that regulates which operations are permitted
on the key. Each key policy is a set of usage flags and a specific algorithm
that is permitted with the key. The policy is part of the key attributes that
are managed by a psa_key_attributes_t
object.
The usage flags are encoded in a bitmask, which has the type
psa_key_usage_t
. Four kinds of usage flag can be specified:
- The extractable flag
PSA_KEY_USAGE_EXPORT
determines whether the key material can be extracted. - The copyable flag
PSA_KEY_USAGE_COPY
determines whether the key material can be copied into a new key, which can have a different lifetime or a more restrictive policy. - The cacheable flag
PSA_KEY_USAGE_CACHE
determines whether the implementation is permitted to retain non-essential copies of the key material in RAM. This policy only applies to persistent keys. See also Managing key material. - The other usage flags, for example,
PSA_KEY_USAGE_ENCRYPT
andPSA_KEY_USAGE_SIGN_MESSAGE
, determine whether the corresponding operation is permitted on the key.
In addition to the usage bitmask, a policy specifies which algorithm is permitted with the key. This specification only defines policies that restrict keys to a single algorithm, which is consistent with both common practice and security good practice.
A highly constrained implementation might not be able to support all the policies that can be expressed through this interface. If an implementation cannot create a key with the required policy, it must return an appropriate error code when the key is created.
Symmetric cryptography
This specification defines interfaces for the following types of symmetric cryptographic operation:
- Message digests, commonly known as hash functions.
- Message authentication codes (MAC).
- Symmetric ciphers.
- Authenticated encryption with associated data (AEAD).
For each type of symmetric cryptographic operation, the API includes:
- A pair of single-part functions. For example, compute and verify, or encrypt and decrypt.
- A series of functions that permit multi-part operations.
Single-part Functions
Single-part functions are APIs that implement the cryptographic operation in a single function call. This is the easiest API to use when all of the inputs and outputs fit into the application memory.
Some use cases involve messages that are too large to be assembled in memory, or require non-default configuration of the algorithm. These use cases require the use of a multi-part operation.
Multi-part operations
Multi-part operations are APIs which split a single cryptographic operation into a sequence of separate steps. This enables fine control over the configuration of the cryptographic operation, and allows the message data to be processed in fragments instead of all at once. For example, the following situations require the use of a multi-part operation:
- Processing messages that cannot be assembled in memory.
- Using a deterministic IV for unauthenticated encryption.
- Providing the IV separately for unauthenticated encryption or decryption.
- Separating the AEAD authentication tag from the cipher text.
Each multi-part operation defines a specific object type to maintain the state of the operation. These types are implementation-defined. All multi-part operations follow the same pattern of use:
Allocate: Allocate memory for an operation object of the appropriate type. The application can use any allocation strategy: stack, heap, static, etc.
Initialize: Initialize or assign the operation object by one of the following methods:
- Set it to logical zero. This is automatic for static and global
variables. Explicit initialization must use the associated
PSA_xxx_INIT
macro as the type is implementation-defined. - Set it to all-bits zero. This is automatic if the object was
allocated with
calloc()
. - Assign the value of the associated macro
PSA_xxx_INIT
. - Assign the result of calling the associated function
psa_xxx_init()
.
The resulting object is now inactive.
It is an error to initialize an operation object that is in active or error states. This can leak memory or other resources.
- Set it to logical zero. This is automatic for static and global
variables. Explicit initialization must use the associated
Setup: Start a new multi-part operation on an inactive operation object. Each operation object will define one or more setup functions to start a specific operation.
On success, a setup function will put an operation object into an active state. On failure, the operation object will remain inactive.
Update: Update an active operation object. The update function can provide additional parameters, supply data for processing or generate outputs.
On success, the operation object remains active. On failure, the operation object will enter an error state.
Finish: To end the operation, call the applicable finishing function. This will take any final inputs, produce any final outputs, and then release any resources associated with the operation.
On success, the operation object returns to the inactive state. On failure, the operation object will enter an error state.
An operation can be aborted at any stage during its use by calling the
associated psa_xxx_abort()
function. This will release any resources
associated with the operation and return the operation object to the inactive
state.
Any error that occurs to an operation while it is in an active state will
result in the operation entering an error state. The application must call the
associated psa_xxx_abort()
function to release the operation resources and
return the object to the inactive state.
Once an operation object is returned to the inactive state, it can be reused by calling one of the applicable setup functions again.
If a multi-part operation object is not initialized before use, the behavior is undefined.
If a multi-part operation function determines that the operation object is not in
any valid state, it can return PSA_ERROR_CORRUPTION_DETECTED
.
If a multi-part operation function is called with an operation object in the
wrong state, the function will return PSA_ERROR_BAD_STATE
and the operation
object will enter the error state.
It is safe to move a multi-part operation object to a different memory location, for example, using a bitwise copy, and then to use the object in the new location. For example, an application can allocate an operation object on the stack and return it, or the operation object can be allocated within memory managed by a garbage collector. However, this does not permit the following behaviors:
- Moving the object while a function is being called on the object. This is not safe. See also Concurrent calls.
- Working with both the original and the copied operation objects. This
requires cloning the operation, which is only available for hash operations
using
psa_hash_clone()
.
Each type of multi-part operation can have multiple active states. Documentation for the specific operation describes the configuration and update functions, and any requirements about their usage and ordering.
Message digests (Hashes)
The single-part hash functions are:
psa_hash_compute()
to calculate the hash of a message.psa_hash_compare()
to compare the hash of a message with a reference value.
The psa_hash_operation_t
multi-part operation
allows messages to be processed in fragments:
- Initialize the
psa_hash_operation_t
object to zero, or by assigning the value of the associated macroPSA_HASH_OPERATION_INIT
. - Call
psa_hash_setup()
to specify the required hash algorithm, callpsa_hash_clone()
to duplicate the state of activepsa_hash_operation_t
object, or callpsa_hash_resume()
to restart a hash operation with the output from a previously suspended hash operation. - Call the
psa_hash_update()
function on successive chunks of the message. - At the end of the message, call the required finishing function:
- To suspend the hash operation and extract a hash suspend state,
call
psa_hash_suspend()
. The output state can subsequently be used to resume the hash operation. - To calculate the digest of a message, call
psa_hash_finish()
. - To verify the digest of a message against a reference value, call
psa_hash_verify()
.
- To suspend the hash operation and extract a hash suspend state,
call
To abort the operation or recover from an error, call psa_hash_abort()
.
Message authentication codes (MACs)
The single-part MAC functions are:
psa_mac_compute()
to calculate the MAC of a message.psa_mac_verify()
to compare the MAC of a message with a reference value.
The psa_mac_operation_t
multi-part operation
allows messages to be processed in fragments:
- Initialize the
psa_mac_operation_t
object to zero, or by assigning the value of the associated macroPSA_MAC_OPERATION_INIT
. - Call
psa_mac_sign_setup()
orpsa_mac_verify_setup()
to specify the algorithm and key. - Call the
psa_mac_update()
function on successive chunks of the message. - At the end of the message, call the required finishing function:
- To calculate the MAC of the message, call
psa_mac_sign_finish()
. - To verify the MAC of the message against a reference value, call
psa_mac_verify_finish()
.
- To calculate the MAC of the message, call
To abort the operation or recover from an error, call psa_mac_abort()
.
Encryption and decryption
Note
The unauthenticated cipher API is provided to implement legacy protocols and for use cases where the data integrity and authenticity is guaranteed by non-cryptographic means. It is recommended that newer protocols use Authenticated encryption (AEAD).
The single-part functions for encrypting or decrypting a message using an unauthenticated symmetric cipher are:
psa_cipher_encrypt()
to encrypt a message using an unauthenticated symmetric cipher. The encryption function generates a random IV. Use the multi-part API to provide a deterministic IV: this is not secure in general, but can be secure in some conditions that depend on the algorithm.psa_cipher_decrypt()
to decrypt a message using an unauthenticated symmetric cipher.
The psa_cipher_operation_t
multi-part operation
permits alternative initialization parameters and allows messages to be
processed in fragments:
- Initialize the
psa_cipher_operation_t
object to zero, or by assigning the value of the associated macroPSA_CIPHER_OPERATION_INIT
. - Call
psa_cipher_encrypt_setup()
orpsa_cipher_decrypt_setup()
to specify the algorithm and key. - Provide additional parameters:
- When encrypting data, generate or set an initialization vector (IV),
nonce, or similar initial value such as an initial counter value. To
generate a random IV, which is recommended in most protocols, call
psa_cipher_generate_iv()
. To set the IV, callpsa_cipher_set_iv()
. - When decrypting, set the IV or nonce. To set the IV, call
psa_cipher_set_iv()
.
- When encrypting data, generate or set an initialization vector (IV),
nonce, or similar initial value such as an initial counter value. To
generate a random IV, which is recommended in most protocols, call
- Call the
psa_cipher_update()
function on successive chunks of the message. - Call
psa_cipher_finish()
to complete the operation and return any final output.
To abort the operation or recover from an error, call psa_cipher_abort()
.
Authenticated encryption (AEAD)
The single-part AEAD functions are:
psa_aead_encrypt()
to encrypt a message using an authenticated symmetric cipher.psa_aead_decrypt()
to decrypt a message using an authenticated symmetric cipher.
These functions follow the interface recommended by RFC 5116.
The encryption function requires a nonce to be provided. To generate a random
nonce, either call psa_generate_random()
or use the AEAD multi-part API.
The psa_aead_operation_t
multi-part operation
permits alternative initialization parameters and allows messages to be
processed in fragments:
- Initialize the
psa_aead_operation_t
object to zero, or by assigning the value of the associated macroPSA_AEAD_OPERATION_INIT
. - Call
psa_aead_encrypt_setup()
orpsa_aead_decrypt_setup()
to specify the algorithm and key. - Provide additional parameters:
- If the algorithm requires it, call
psa_aead_set_lengths()
to specify the length of the non-encrypted and encrypted inputs to the operation. - When encrypting, call either
psa_aead_generate_nonce()
orpsa_aead_set_nonce()
to generate or set the nonce. - When decrypting, call
psa_aead_set_nonce()
to set the nonce.
- If the algorithm requires it, call
- Call
psa_aead_update_ad()
zero or more times with fragments of the non-encrypted additional data. - Call
psa_aead_update()
zero or more times with fragments of the plaintext or ciphertext to encrypt or decrypt. - At the end of the message, call the required finishing function:
- To complete an encryption operation, call
psa_aead_finish()
to compute and return authentication tag. - To complete a decryption operation, call
psa_aead_verify()
to compute the authentication tag and verify it against a reference value.
- To complete an encryption operation, call
To abort the operation or recover from an error, call psa_aead_abort()
.
Having a multi-part interface to authenticated encryption raises specific issues.
Multi-part authenticated decryption produces partial results that are not
authenticated. Applications must not use or expose partial results of
authenticated decryption until psa_aead_verify()
has returned a success
status and must destroy all partial results without revealing them if
psa_aead_verify()
returns a failure status. Revealing partial results, either directly or indirectly through the application’s behavior, can compromise the
confidentiality of all inputs that are encrypted with the same key.
For encryption, some common algorithms cannot be processed in a streaming
fashion. For SIV mode, the whole plaintext must be known before the encryption
can start; the multi-part AEAD API is not meant to be usable with SIV mode. For
CCM mode, the length of the plaintext must be known before the encryption can
start; the application can call the function psa_aead_set_lengths()
to provide
these lengths before providing input.
Key derivation
A key derivation encodes a deterministic method to generate a finite stream of bytes. This data stream is computed by the cryptoprocessor and extracted in chunks. If two key derivation operations are constructed with the same parameters, then they produce the same output.
A key derivation consists of two phases:
- Input collection. This is sometimes known as extraction: the operation “extracts” information from the inputs to generate a pseudorandom intermediate secret value.
- Output generation. This is sometimes known as expansion: the operation “expands” the intermediate secret value to the desired output length.
The specification defines a multi-part operation API for key derivation that allows for multiple key and non-key outputs to be extracted from a single derivation operation object.
In an implementation with isolation, the intermediate state of the key derivation is not visible to the caller, and if an output of the derivation is a non-exportable key, then this key cannot be recovered outside the isolation boundary.
Applications use the psa_key_derivation_operation_t
type to create key
derivation operations. The operation object is used as follows:
- Initialize a
psa_key_derivation_operation_t
object to zero or toPSA_KEY_DERIVATION_OPERATION_INIT
. - Call
psa_key_derivation_setup()
to select a key derivation algorithm. - Call the functions
psa_key_derivation_input_bytes()
andpsa_key_derivation_input_key()
, orpsa_key_derivation_key_agreement()
to provide the inputs to the key derivation algorithm. Many key derivation algorithms take multiple inputs; thestep
parameter to these functions indicates which input is being provided. The documentation for each key derivation algorithm describes the expected inputs for that algorithm and in what order to pass them. - Optionally, call
psa_key_derivation_set_capacity()
to set a limit on the amount of data that can be output from the key derivation operation. - Call
psa_key_derivation_output_key()
to create a derived key, orpsa_key_derivation_output_bytes()
to export the derived data. These functions can be called multiple times to read successive output from the key derivation, until the stream is exhausted when its capacity has been reached. - Key derivation does not finish in the same way as other multi-part
operations. Call
psa_key_derivation_abort()
to release the key derivation operation memory when the object is no longer required.
To recover from an error, call psa_key_derivation_abort()
to release the key
derivation operation memory.
A key derivation operation cannot be rewound. Once a part of the stream has been output, it cannot be output again. This ensures that the same part of the output will not be used for different purposes.
Example of the symmetric cryptography API
Here is an example of a use case where a master key is used to generate both a message encryption key and an IV for the encryption, and the derived key and IV are then used to encrypt a message.
- Derive the message encryption material from the master key.
- Initialize a
psa_key_derivation_operation_t
object to zero or toPSA_KEY_DERIVATION_OPERATION_INIT
. - Call
psa_key_derivation_setup()
withPSA_ALG_HKDF
as the algorithm. - Call
psa_key_derivation_input_key()
with the stepPSA_KEY_DERIVATION_INPUT_SECRET
and the master key. - Call
psa_key_derivation_input_bytes()
with the stepPSA_KEY_DERIVATION_INPUT_INFO
and a public value that uniquely identifies the message. - Populate a
psa_key_attributes_t
object with the derived message encryption key’s attributes. - Call
psa_key_derivation_output_key()
to create the derived message key. - Call
psa_key_derivation_output_bytes()
to generate the derived IV. - Call
psa_key_derivation_abort()
to release the key derivation operation memory.
- Initialize a
- Encrypt the message with the derived material.
- Initialize a
psa_cipher_operation_t
object to zero or toPSA_CIPHER_OPERATION_INIT
. - Call
psa_cipher_encrypt_setup()
with the derived message encryption key. - Call
psa_cipher_set_iv()
using the derived IV retrieved above. - Call
psa_cipher_update()
one or more times to encrypt the message. - Call
psa_cipher_finish()
at the end of the message.
- Initialize a
- Call
psa_destroy_key()
to clear the generated key.
Asymmetric cryptography
This specification defines functions for asymmetric cryptography, including asymmetric encryption, asymmetric signature, and two-way key agreement.
Asymmetric encryption
Asymmetric encryption is provided through the functions
psa_asymmetric_encrypt()
and psa_asymmetric_decrypt()
.
Hash-and-sign
The signature and verification functions psa_sign_message()
and
psa_verify_message()
take a message as one of their inputs and perform a
hash-and-sign algorithm.
The functions psa_sign_hash()
and psa_verify_hash()
take a message hash as
one of their inputs. This is useful for signing pre-computed hashes, or for
implementing hash-and-sign using a multi-part hash operation
before signing the resulting hash. To determine which
hash algorithm to use, call the macro PSA_ALG_GET_HASH()
on the
corresponding signature algorithm.
Some hash-and-sign algorithms add padding to the message hash before completing the signing operation. The format of the padding that is used depends on the algorithm used to construct the signature.
Key agreement
This specification defines two functions for a Diffie-Hellman-style key agreement where each party combines its own private key with the peer’s public key.
The recommended approach is to use a key derivation
operation with the psa_key_derivation_key_agreement()
input function, which calculates a shared secret for the key derivation
function.
Where an application needs direct access to the shared secret, it can call
psa_raw_key_agreement()
instead. Note that in general the shared secret is not
directly suitable for use as a key because it is biased.
Randomness and key generation
We strongly recommended that implementations include a random generator, consisting of a cryptographically secure pseudo-random generator (CSPRNG), which is adequately seeded with a cryptographic-quality hardware entropy source, commonly referred to as a true random number generator (TRNG). Constrained implementations can omit the random generation functionality if they do not implement any algorithm that requires randomness internally, and they do not provide a key generation functionality. For example, a special-purpose component for signature verification can omit this.
It is recommended that applications use psa_generate_key()
,
psa_cipher_generate_iv()
or psa_aead_generate_nonce()
to generate
suitably-formatted random data, as applicable. In addition, the API includes a
function psa_generate_random()
to generate and extract arbitrary random data.


Please verify the min and max values of level:{{level}} of scale!
| Consequence Rating | Financial Impact | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{description.impact}} |
Min and Max value(€)
|
||||||||||
|
|||||||||||
|
OK
|
| Likelihood Rating | Descriptor | Definition | Indicative Frequency |
|---|---|---|---|
| 5 | Almost certain | The consequence is expected to occur on an annual basis | Every year or more frequently |
| 4 | Likely | The event has occurred several times or more throughout history of the organization | Every three years |
| 3 | Possible | The event might occur once in the organization | Every ten years |
| 2 | Unlikely | The event does occur from time to time | Every thirty years |
| 1 | Very Unlikely | Heard of something like that occurring elsewhere | Every 100 years |
| Vulnerability | Rating | Descriptor | Definition |
|---|---|---|---|
| 5 | Extreme | ||
| 4 | High | ||
| 3 | Elevated | ||
| 2 | Moderated | ||
| 1 | Low |
Click on color to change the level of the cell({{selectedRow}}, {{selectedColumn}})!
This became the new limit value for selected level (low, medium, high).


Exit
Quit Pegaesys
Select eXit
from the
File Menu.
You are prompted for
Save
if drawing has changed.


All Classes
-
All Classes Interface Summary Class Summary Enum Summary Class Description Alix An Alix object is a wrapper around a Lucene index with lexical tools, to be shared across a complex application (ex: web servlet).Alix.FSDirectoryType AlixReuseStrategy Reuse strategy ofAnalyzer.TokenStreamComponents
in Alix: no cache for indexation, reuse for query parsing.AnalyzerReuseControl This analyzer wrap another and allow to force itsAnalyzer.ReuseStrategy
.BinaryInts Data structure to write and read ints in a binary form suited for stored fieldStoredField(String, BytesRef)
,Document.getBinaryValue(String)
or binary fieldsBinaryDocValuesField
,BinaryDocValues
.BinaryUbytes Data structure to write and read unsigned bytes (0-255) in a binary form suited for stored fieldStoredField(String, BytesRef)
,Document.getBinaryValue(String)
or binary fieldsBinaryDocValuesField
,BinaryDocValues
.BitsFromQuery A query giving results as bits.Calcul Chain A mutable string implementation that grows on the right (Appendable
, but also, on the leftChain.prepend(char)
.ChainRoller Efficient Object to handle a sliding window of mutable String (Chain), Works like a circular array that you can roll on a token line.Char Efficient character categorizer, faster than Character.is*(), optimized for tokenizer in latin scripts.CharsAtt An implementation of LuceneCharTermAttribute
designed to be an efficient key in an HashMap, and with tools for char manipulation (ex: capitalize).CharsAttWin Used in a Lucene Analyzer, a LIFO stack of terms to keep trace of tokens for compounds.CharsDic A dictionary optimized for lucene analysis usingCharsAtt
as key.CharsLemAtt CharsLemAttImpl CharsOrthAtt A recast of CharsAttCharsOrthAttImpl CustomCharTermAttribute
used to normalize an orthographic form of a token.CollectorBits Collect found document as a set of docids in a bitSet.CombineMaps Classe de méthodes qui combinent les nouvelles données des auteurs/dates/titres aux données déjà existantes Les méthodes de la classe ont besoin de la map de stats auteur/date déjà existante et de la liste des stats par titre Après utilisation, la map des données statistiques pour chaque auteur est mise à jour, sous forme de map combinéeCompound A mutable String used to merge compunds words.Cooc A co-occurrences scanner in aTextField
of a lucene index.Corpus This object handle information of a “corpus” : a set of docId in a lucene index.CorpusQuery Query with a document iterator backed on a BitSet (the corpus).CsvReader A light fast csv parser without Strings, especially to load jar resources.DicBalance Merge two dictionaries entries and keep countsDicBytes A dictionary of terms with frequencies, for lucene.DicFreq A specialized table for a dictionary of terms, with an int code, an int counter, and an int tag.DicVek A data structure for sparse matrix of terms, optimized for cosine similarity.Dir Static tools to deal with directories (and files).Doc Tools to display a documentDocType Alix types of documents.DoubleList EnumOption ExportData Facet A dedicated dictionary for facets, to allow similarity scores.FrAnalyzer Analysis scenario for French in Alix.FrDics Preloaded word List for lucene indexation inHashMap
.FrDics.LexEntry FrDics.NameEntry Freqs FrTokenizer A Lucene tokenizer for XML/html (and French).FrTokenLem A lucene token filter adding other channels to the token stream an orthographic form (normalized) in aCharsOrthAtt
a lemma in aCharsLemAtt
a pos as a lucene int flagFlagsAttribute
(according to the semantic ofTag
Globs Taken from jdk7 if there is one day a problem with windows globs inDir.ls(String)
.HiliteFormatter Creates a formatted snippet from the top passages.IntIntMap An efficient int-int Map implementation, encoded in a long array for key and value.IntList A mutable list of ints.IntOMap<E> An efficient int-Object Map implementation. source: http://java-performance.info/implementing-world-fastest-java-int-to-int-hash-map/IntPair A mutable pair of ints.IntRoller Efficient Object to handle a sliding window of ints.IntSeries Retrieve all values of an int field, store it in docId order, calculate some statistics.IntTuple A non mutable list of ints, designed to be a good key in an Hashmap.IntVector A mutable list of ints with useful metadata, for example to calculate average.JarResolver Jsp Jsp toolbox.Lexer Rules to correct an occurrence chain according to context.Lexik Preloaded list of words Lists are not too big, should not be a problem for memory.Lexik.LexEntry Lexik.NameEntry Load LongTuple A fixed list of longs, useful in arrays to be sorted.Marker A light hiliter using a Lucene analyzer and a compiled automaton, designed for short texts (ex: show found words when searching in titles).MetaAnalyzer MetaTokenizer Mime ML Some useful tools to deal with “Markup Languages” (xml, but also html tag soup)Occ A Token in a text flow with different properties.OccChain A specialized data structure for word flow.OccList A sequence of mutable Occs.OccRoller A sliding window of tokensOffsets Data structure to write and read the “offsets” of a document Offsets are start and end index of tokens in the source CharSequence (the text).Profiler Queries La classe contient les méthodes qui ramassent les fichiers, appellent le tokenizer et appellent le classe de compilation des données Les méthodes de la classe ont besoin des demandes de l'utilisateur, et modifient au fur et à mesure la map des données pour chaque auteur Après utilisation, la map des données statistiques pour chaque auteur est mise à jourQuery A query builder of Occ events TODO document query syntax Possible backtracking silences "A A B B", "A * B" » will not fire 2x Idea, the shortest path size (**=0, OR=shortest)Rail A flatten version of a term vector for a document field.Roller Efficient Object to handle a sliding window, on different types, works like a circular array.SAXIndexer An XML parser allowing to ndex XML or HTMTL.Scale Handle data to display results as a chronology, according to subset of an index, given as a bitset.Scale.Tick A row of data for a crossing axisScorer Interface for a scorer, similar to tf-idf.ScorerBM25 ScorerOccs ScorerTf ScorerTfidf ScorerTheme SimilarityOccs SimilarityTheme SparseMat A sparse matrix to record vectorsSparseMat.Counter SrcFormat StemTrie A Trie of words to store compounds expressions with different propertiesTag Jeu d’étiquettes morphosyntaxique pour le français.Tag.TagFilter A filter for different pos code, implemented as aBitSet
;TermList An object to store lucene terms with a frequency indice.Test TestEnd An always false test, especially used as a default end of chain testTestGap Zero or n words, except sentence punctuationTestLem TestOr Do not works well for now, no backtracking of things like that (A B, A C) will not find "A C" TODO: a query compilator, transforming (A B, D B, A C, D C) » (A (B, C), D (B, C))TestOrth TestOrthTag TestOrthTagPrefix TestStop Zero or more stop wordsTestTag TestTagPrefix TestTerm TestTrue An always true test, any word, for example "*"TokenCompound Plug behind TokenLemTokenFlagFilter A token Filter selecting tokens by flag values.TokenLemCloud A final token filter before indexation, to plug after a lemmatizer filter, providing most significant tokens for word cloud.TokenLemFull A token Filter to plug after a TokenLem filter, overriding positions with lemma and POSTokenStats A token filter counting tokens.Top<E> A queue to select the top elements according to a float score.Top.Entry<E> A mutable pair (rank, Object), used in the data array of the top queue.TopTerms An iterator for sorted list of termsTxtIndexer A txt indexerUserInterface Classe d'interface utilisation (les demandes sont faites et les queries enregistrées) Les informations de base d'entrée tsv de l'utilisateur sont enregistrées dans cette classeWordLinks Collect cooccurrences data from texts, according to Stefan Evert. 2005, The Statistics of Word Cooccurrences, Word Pairs and Collocations. and Gambette & Véronis 2009 Visualising a Text with a Tree Cloud, allowing to draw dendrograms or networks.WordsAutomatonBuilder Because Lucene DaciukMihovAutomatonBuilder is final and can't be extended...XMLIndexer A worker for parallel lucene indexing.


About Me
Photo of me:
Am a Sage Certified consultant on both the ERP and HRMs systems with a proven record on;
Scoping and Analysis, Pre-sales Consulting, Implementation and Training, Project Management and System Support.
I joined Moringa to sharpen my skills on web development applications after seeing the raising need of intergrations of various softwares related to what i do.
Director
Currently holding the director of Operations position.Some of the clients that are currently linked to our services include;
Metropol Group of Companies,International Energy Technik(IET), PG Bison Limited, Jetlak Foods Limited and Egis Limited
.
Head Of Support
Handling Software related issues, 2019
More on Sage....
Sage is a robust and all round product.Its Primary the main reason why i have come to enjoy the IT industry.
Senior Consultant-Sage
Handling Consulting matters on Sage products
This included;
- Project implementation
- Go live Support
- Pre-sales


Data File
(uploaded)
Id
Original Filename
Upload Timestamp
Status
Content Type
Size
Parse
Parsed
Data Lines
page
of
page size
5
10
20
50
Id
Seq
Text


Examples demonstrating issues with rigid CSS styles.
I turned the corner
I turned the corner and saw {{hero.name}}. I waved and continued on my way.
{{hero.name}} is
{{hero.name}} is , and {{trait}} .
hero.id
in the
is caught by the p-span CSS:
Id: ({{hero.id}}) Name: {{hero.name}}
hero.id
in the <ng-container>
is unaffected by the p-span CSS:
hero.id
in the <ng-template *ngIf> disappears:
hero.id
in the <ng-template [ngIf]>
is unaffected by the p-span CSS:
Examples demonstrating issues with layout-sensitive elements such as <select> and
.
<select> with
<select> with <ng-container>
Options with <ng-container>
Options with
| Directive | Type | Description |
|---|---|---|
| NgClass | A | Add or remove multiple CSS classes. |
| xxx | S | div with *ngIf formats crazy. |
| yyy | S | div with *ngIf formats crazy. |
| NgFor | S | Repeat the template for each item in a list. |
| NgIf | S | Add or remove DOM elements. |
| NgStyle | A | Add or remove multiple style attributes. |
| NgSwitch | S | Include in DOM if case matches the switch value. |
<ng-container>Inside ng-container</ng-container>
<ng-content>this is an Angular parse error</ng-content>
Demo of </ng-content>


{{exception.message}}
Error 500 - Internal Server Error
A team of highly trained monkeys has been dispatched to deal with this situation.


Welcome to Pat's Salmon Cookie Store.
A cookie inspired by Seattle's two signatue icons. Cookies made into the shape of a salmon that has a just a hint
of fishy goodness. Find a store near you, or get them delivered to your doorstep.
Hours Of Operation
All Locations open Monday-Saturday
6am-8pm
Locations
Seattle Pat's Salmon Cookies
123 Pikes Place Way
Seattle, WA 98222
Japan Pat's Salmon Cookies
345 Center Gai Rd
Tokyo, Japan
United Arab Emirates Pat's Salmon Cookies
111 Dubai Al Ain Rd
Dubai, the United Arab Emirates
France Pat's Salmon Cookies
222 Avenue De L'Opera
Paris, France
Peru Pat's Salmon Cookies
333 Av. Republica de Venezuela
Lima, Peru


This page aims to make it easy to create a ContactInfo string which is in accordance with this specification. The generator creates a single output line that can easily be copied into your relay's torrc configuration file. After changing your torrc you have to reload your tor daemon.


63
The LORD's Day of Vengeance
1 Who is this who comes from Edom,
in crimsoned garments from Bozrah,
he who is splendid in his apparel,
marching in the greatness of his strength?
“It is I, speaking in righteousness,
mighty to save.”
2 Why is your apparel red,
and your garments like his who treads in the winepress?
3 “I have trodden the winepress alone,
and from the peoples no one was with me;
I trod them in my anger
and trampled them in my wrath;
their lifeblood spattered on my garments,
and stained all my apparel.
4 For the day of vengeance was in my heart,
and my year of redemption had come.
5 I looked, but there was no one to help;
I was appalled, but there was no one to uphold;
so my own arm brought me salvation,
and my wrath upheld me.
6 I trampled down the peoples in my anger;
I made them drunk in my wrath,
and I poured out their lifeblood on the earth.”
The LORD's Mercy Remembered
7 I will recount the steadfast love of the LORD,
the praises of the LORD,
according to all that the LORD has granted us,
and the great goodness to the house of Israel
that he has granted them according to his compassion,
according to the abundance of his steadfast love.
8 For he said, “Surely they are my people,
children who will not deal falsely.”
And he became their Savior.
9 In all their affliction he was afflicted,
and the angel of his presence saved them;
in his love and in his pity he redeemed them;
he lifted them up and carried them all the days of old.
10 But they rebelled
and grieved his Holy Spirit;
therefore he turned to be their enemy,
and himself fought against them.
11 Then he remembered the days of old,
of Moses and his people.
Where is he who brought them up out of the sea
with the shepherds of his flock?
Where is he who put in the midst of them
his Holy Spirit,
12 who caused his glorious arm
to go at the right hand of Moses,
who divided the waters before them
to make for himself an everlasting name,
13 who led them through the depths?
Like a horse in the desert,
they did not stumble.
14 Like livestock that go down into the valley,
the Spirit of the LORD gave them rest.
So you led your people,
to make for yourself a glorious name.
Prayer for Mercy
15 Look down from heaven and see,
from your holy and beautiful habitation.
Where are your zeal and your might?
The stirring of your inner parts and your compassion
are held back from me.
16 For you are our Father,
though Abraham does not know us,
and Israel does not acknowledge us;
you, O LORD, are our Father,
our Redeemer from of old is your name.
17 O LORD, why do you make us wander from your ways
and harden our heart, so that we fear you not?


What is Capture the Block?
A capture the block (CTB) contest is a special kind of cybersecurity competition designed to challenge its participants to solve computer security problems and/or capture and defend computer systems. The game consists of a series of challenges where participants
must reverse engineer, break, hack, decrypt, or do whatever it takes to solve the challenge. The challenges are all set up with the intent of being hacked, making it an excellent, legal way to get hands-on experience.


Full Stack Web Developer with a background in QA Engineering, Software Development and Systems Administration.
Find Out MoreFull Stack Developer with a background in QA Engineering, Software Development and Systems Administration.
Conducted research and QA for an open source Java EE application server Glassfish for one of the largest IT service companies for 7 years. Communicated effectively with team members in Sydney and overseas customers using bilingual skill to deliver quality products on time within a tight schedule.
Motivated to be creative at work and exceed customers’ expectations.
Passionate about continuous learning and completed an intensive Coding Boot Camp at the University of Sydney in 2020, scoring A+ grades in HTML5, CSS3, JavaScript, jQuery, Bootstrap, Node.js Express.js and React.
Excited to leverage skills in automated testing and debugging to release quality software products for your organisation.
Get Started!
Here are some of the works I created for the Coding Boot Camp Sydney.
Watch this space as more works will be added soon...
The Dashboard presents the Covid-19 statistics in a graph format. Stay Home Tracker motivates people to stay home by recording the number of hours spent outside of home.
"Your idea of having a tracker/feed is the USP - Unique selling point of your project. " Harshpreet Singh WahlaScored A+ grade. React, Bootstrap, Express, chart.js, react-day-picker, passport.js, axios, MongoDB, Node.js.
Github repo DemoDiscover and create sophisticated cocktails. Cocktails can be searched and provides instructions on how to prepare it. Shows Cocktail bars in Google Map using their API.
Developed for Coding Boot Camp group work and Scored A+ grade. jQuery, Ajax and Google Map.
Github repo DemoA user can view and search a list of employee's information.
"Both filter and sort works. Great work!" Sandesh Pathak
Scored A+ grade. React and Ajax
Github repo DemoThis is a Mobile Budget Tracker application which allows for offline access using Web browser's IndexedDB and PWA technology. A user is able to add expenses and deposits to their budget with or without a connection. When entering transactions offline, data is saved in Web browser's IndexedDB. The total is populated in server's MongoDB when brought back online.
Scored A+ grade.
Github repo DemoReact-based Google Books Search app. A user can search and save books to consider which one to puchase later.
React, Express and MongoDB. Scored A+ grade.
Github repo DemoShows weather forecast for next 5 days using data from Open Weather API. Your current location is detected by Geolocation API.
"Awesome work. I do not have any feedback except that everything looks smooth and works as it should. Great job on adding all the extra functionalities." Sandesh Pathak
Geolocation, jQuery, localStorage and Ajax. Scored A+ grade.
Github repo DemoA CLI application that manages Employee database. Developed with Node.js, Inquier.js, MySQL.
Scored A+ grade.
Github repo DemoThis is a command line application which generates a software engineering team table in html. The application will create an HTML file that displays a nicely formatted team roster based on the information provided by the user.
The app includes Unit Test tool written in Jest as well. Node.js, Inquirer.js, EJS, Bootstrap, JestScored A+ grade.
Github repo DemoGiven various drawing commands from within a text area, the application draws them in real-time onto an SVG element. This application has been built by React.
Github repo Demo


Pre Game
Match Number
Team Number
Alliance Colour
Red
Blue
Auto
Auto Line
Yes
No
Switch
+
-
Scale
+
-
Cubes Collected
+
-
Teleop
Cubes Collected
+
-
Switch
+
-
Scale
+
-
Exchange
+
-
Endgame
Climb
Yes
No
Support Other Robot
Two
One
None
Other
Fouls
+
-
Tech Fouls
+
-
Cards Received
Red
Yellow
None
Comments
I'm Done


Vaccination Records as Mobile as You
All Your Vaccines Saved in One Place!
With Vax & Track you never need to worry about losing your vaccination records or calling around to different health care providers. Your records are all always at your fingerprints.
View, download, and share your child's vaccination records with ease.
Let health care work for you!
Grant your doctor's office access to upload and manage your vaccination records.
This application is an academic project and is not HIPAA compliant do not submit actual PHI to this application!


Anyone who has visited any public place must monitor their symptoms and follow the health recommendations :
Standard precautions are guidelines issued for the care of patients in hospitals but are common sense for everyone and should be used to prevent disease transmission in all walks of life. They require you to always have a barrier between any infectious substance and your skin, eyes, gums or the inside of your nose.
Precaution 1
Wash your hand often with soap under warm running water for at
least 20 seconds, especially when you come in from outside.
Handwashing with soap removes germs from hands. This helps
prevent infections because:
People frequently touch their eyes, nose, and mouth without even
realizing it.
Precaution 2
Use alcohol-based disinfectant on your hands if soap and water are not available.
Using hand sanitizer reduces microbial counts and kills many harmful germs that could infect workers with the flu and other viruses.

- If you use a tissue, dispose of it as soon as possible and wash your hands afterwards.
Precaution 4
If you are sick, avoid contact with more vulnerable people, including older adults and people with a weak immune system or a chronic disease.
Some people are more likely than others to become severely ill, which means that they may require hospitalization, intensive care, or a ventilator to help them breathe, or they may even die.
Precaution 5
Avoid direct contact when you greet someone, such as shaking hands, and use alternative ways to greet people.
Social distancing should be practiced in combination with other everyday preventive actions to reduce the spread of COVID-19
Precaution 6
If you must go out, stay at least 2 meters (around 6 feet) away from people who do not live in your household.
It is safest to avoid crowded places and gatherings where it may be difficult to stay at least 6 feet away
Precaution 7
stay at least 2 metres away from other people, or wear a face mask covering in public when physical distancing is not possible, such as in public transit.
Travel increases your chances of getting and spreading COVID-19. Before you travel, learn if coronavirus is spreading in your local area or in any of the places you are going.
Precaution 8
Limit your travel as much as possible.
Anyone who is sick — even if they don't know for sure they have coronavirus (COVID-19) — should stay home unless they need medical care. This helps prevent the illness from spreading to other people.


Action/Reaction.
A visual response to user activity ensures that the user is aware of the effect they are having on the interface and underlying system.
Input/Response.
When a system receives new input, that change is reflected in the interface in order to provide an informative response to the user.
Latency of Experience.
The lower the latency of the interface experience, the more closely connected the user feels with the underlying system.


Data Visualization for Aircraft Strikes
This is a website application that charts aircraft strike data.
Select an airport and bar charts will show or update, displaying statistics on various dimensions of the data. Read more about it at github.com/abdulmajidnaveed/datacharts.
Visit abdulmajidnaveed.github.io/datacharts/ to try it out.
Online Media


An ADT is:
A collection of values is a data type, not an ADT.
It can't be a data structure, since an ADT is more like the interface for a data structure.
An implementation for a data structure in a program is close, but not really it. An ADT is more abstract than an actual program.


U3.W7: Technical Blog
Covering Loops in Ruby vs Loops in Javascript
February 8th, 2015
Looping is an extremely helpful tool when you are attempting to run the same chunk of code on multiple values. The easiest way to do that is to create an array (I'm going to operate that you understand an array to be a set of information within [] brackets, that corrolate to an index.). When you have that information in an array, whether you are working in Ruby or in Javascript, you have the ability to loop through that information in a multitude of different ways. You just have to go about it a little differently depending on the language that you are in.
There are some looping methods that are shared. The "while" and "until" looping method is one of those. For both Ruby and Javascript, you can use a while or an until loop where you write a block of code that should be implemented on each aspect of the array "while" a certain condition is true, or a "until" a certain condition is true.
There is another way of looping that Ruby and Javascript share that requires completely different syntax. That is the "for" loop. In Ruby, you declare a variable, in a certain array or range , and then return (or print) the result of the block of code you want to use on each value. It looks like this:
for value in [1,2,3,4,5,6,7,8,9,10] print "#{value} " endThe syntax in Javascript is a bit different. You must declare everything up front, and essentially create the loop yourself.
for (var i = 0; i < 9; i++) { console.log(i); }This is generally the case for Javascript looping methods; you need to declare variables and explain to the loop exactly how it should be incrementally looping through any values, while the Ruby loops just need to be told their constraints.
I'm obviously no expert at these languages yet, but the one major difference that I've come across between Ruby and Javascript is Ruby's "each" iterator. When using .each, Ruby loops automatically through an entire array (or hash). It's perfect, because the only thing you need to specify is the code you want to use on every element of the array or hash. As far as my research tells me, there is no such equivalent in Javascript; you have to tell your loops exactly how many times you want them to iterate over the array.


Key: = Must support, = QICore-defined extension, = Is-Modifier
| Field | Card. | Type and Description |
|---|---|---|
| blob |
0..1
|
base64Binary
|
| contentType |
0..1
|
code
|
| onBehalfOf[x] |
0..1
|
Uri | Practitioner | RelatedPerson | Patient | Device | Organization
|
| type |
1..*
|
List<Code>
|
| when |
1..1
|
DateTime
|
| who[x] |
1..1
|
Uri | Practitioner | RelatedPerson | Patient | Device | Organization
|
Key: = Must support, = QICore-defined extension, = Is-Modifier