Contextify
LogOut
Dashboard
Profile
Articles
Profile Update
Username:
Firstname:
Lastname:
Email Id:
Password:
Update


Honors
- María de Maeztu Research Scholarship recipient, 2019: Awarded this highly competitive grant to conduct research at Perception Lab, IRI (selected from a pool of 200+ applicants from across the world)
- Got recognized as most responsive in Spotlight awards for my research and execution at Tesco Technology (2018).
- Head Organizer of DLE 2017: More than 5000+ students participated in this all-India inter-collegiate fest,
- Secured 99.93% All India Percentile in Joint Entrance Examination.
- Recipient of Inspire Scholarship (awarded to top 1% in Higher Secondary School Certificate by Ministry of Human Resource and Development, Government of India).


The Alan Turing Institute
Expected and unexpected
Deciding what events affect the financial markets can sometimes be easy. The fact that the value of Pound dropped following Brexit is likely a causation. The fact that the value of Pound went up following the return of the astronaut Tim Peake is certainly a pure coincidence. Sometimes, making a good guess can be a lot harder. For example, would Brexit affect the FTSE index? In this article, you get to make your guess!
In the time of fake news, can you be sure that an article like this show you genuine events and prices, rather than making the story up? To leave no doubt, this article is created using The Gamma project, which lets you trace the data back to the originl source. We're using events from Wikipedia and exchange rates published by the Bank of England and you can check, on your own, that this is the case!
Exploring the events of 2016
First, let's talk about transparency. If you wanted to check that the dates and descriptions of events in an ordinary article are accurate, you would have to do this by hand, perhaps by going to the Wikipedia page 2016 in the United Kingdom and then check the dates of events in a chart, one by one. You do not need to do any of that in this article, because we fetch the events directly from Wikipedia and we invite you to explore how we do it!
When you load this page, we run the following TheGamma
script to get 2016 events in the UK from Wikipedia, choose those mentioning Jeremy
Corbyn and show them in a table. If you click on scrapeDatedLists
in
the editor, you will see the source Wikipedia page. If you then replace Jeremy Corbyn
with Theresa May and click "refresh the output", we'll fetch the events of your choice,
so you can see we are not cheating!
How Brexit affected the pound?
Before Brexit, £1 was worth $1.46. After Brexit, £1 was worth $1.28. How exactly did the drop happen? Has the pound started losing value in advance, before the vote on June 24, or did the drop happen after the vote? And has the value recovered after Theresa May became Prime Minister-designate?
The following visualization shows the important events side-by-side with the exchange rate between pound sterling and US dollar. If you click "open source code", you can see our data sources - the events come from Wikipedia and exchange rate is obtained from the Bank of England.
Guess what events matter
If you see the events on a chart, it is easy to make a guess about what the trends might have been and what the effect of the events was. But can you guess which events matter will make the price go down or up on your own? In this section, you get to try. We show you a line charting the price, but you have to guess how it aligns with the events. To get started, click on the charts and then drag up or down with your cursor or fingers.
Gold price during financial crisis
First, let's go back to the financial crisis of 2008. In uncertain times, gold is one of the commodities that people purchase and that gain in price. Did people expect the crash and start buying gold before the crash, or did the price of gold start rising after? Here are a couple of events that may (or may not) have had effect on the price of gold:
Can you move the line representing the price of gold to the right position in the following chart? We loaded the price for a bit before May 2008 and a bit after April 2009, but you need to guess how the events align with the price!
Effect of Brexit on London Stock Exchange
For our second example, we will agian use Brexit. This time, we look at the effect on FTSE rather than on the value of pound. The FTSE 100 index is calculated based on the share prices of the 100 largest companies traded at the London Stock Exchange. This includes a mix of international and British companies such as BP, Tesco, Barclays or EasyJet. Guess how the following events align wth the FTSE price:
Are we suggesting that the succesfull return of British astronaut Tim Peake had an effect on the value of FTSE? If you did not know what the events are and looked just on the chart with labels, perhaps you might think it does. The lesson is simple - guessing which events really matter requires human judgement!


@import _root_.musicsvc.models.{Recording, Performer} @import _root_.musicsvc.controllers.RecordingData @import helper._ @(r: Recording, ps: Seq[Performer], modeReadOnly: Boolean, recordingForm: Form[RecordingData])(implicit messages: Messages) @main("Classic Music Service") {
| @input(recordingForm("title"), '_label -> "Title:", '_showConstraints -> false, '_showErrors -> true) { (id, name, value, args) => } @input(recordingForm("composer"), '_label -> "Composer:", '_showConstraints -> false, '_showErrors -> true) { (id, name, value, args) => } @input(recordingForm("year"), '_label -> "Recording Year:", '_showConstraints -> false, '_showErrors -> true) { (id, name, value, args) => } | } |
|
-- No Performers yet --
|


Instacart is a grocery ordering and delivery service app, which aims to make the process of ordering groceries more convenient for grocery stores and shoppers. The purpose of this competition is to make predictions about which products are likely to be reordered by the same customers.
Reasons why this competition could benefit the company include finding ways to optimize the company's recommendation system, improving inventory and staffing infrastructures, and acquiring better insights about longer term customers who rely on Instacart as part of their regular shopping routines.
Click here to see more information on our final results and presentation.
The data is separated into six csv files, which describe the different aspects of the products hosted on the website. It is a random sample of over 3 million grocery orders from over 200,000 instacart users. We will use R Statistical Software to analyze the data.
The files provide a combination of categorical data, both ordinal and nominal pertaining to the features of the actual goods being ordered such as “dairy,” “produce,” “organic,” etc. There are several other variables including the store aisle, and the sequence of orders which are placed in the basket, day of the week, time of the day, and relative time (in days) between orders for each user. Also notice, in the data set titled 'order_products_train' (as well as 'order_products_prior') there are columns labeled 'reordered' which have values of either 0 or 1. We will use these columns are our response variables, which represent 0 for items that are not reordered, and 1 for items that are reordered.
library(data.table)
library(dplyr)
library(ggplot2)
library(knitr)
library(DT)
library(openxlsx)
library(tidyr)
aisles <- read.csv('data/aisles.csv', header=TRUE)
departments <- read.csv('data/departments.csv', header=TRUE)
products <- read.csv('data/products.csv',header=TRUE)
order_products_train <- read.csv('data/order_products__train.csv', header=TRUE)
order_products_prior <- read.csv('data/order_products__prior.csv', header=TRUE)
orders <- read.csv('data/orders.csv', header=TRUE)
head(products, n=10)
length(unique(products$product_id)) # 49688 total products
head(order_products_train, n=15)
head(orders, n=5)
Recode to convert character variables to factors
orders <- orders %>% mutate(order_hour_of_day = as.numeric(order_hour_of_day), eval_set = as.factor(eval_set))
products <- products %>% mutate(product_name = as.factor(product_name))
aisles <- aisles %>% mutate(aisle = as.factor(aisle))
departments <- departments %>% mutate(department = as.factor(department))
By simply looking at a few histograms, you can spot out some of the stand out groups that have more observations that the rest.
orders %>%
ggplot(aes(x=order_dow)) +
geom_histogram(stat="count",fill="slateblue")
orders %>%
ggplot(aes(x=days_since_prior_order)) +
geom_histogram(stat="count",fill="slateblue")
mostcommon <- order_products_train %>%
group_by(product_id) %>%
summarize(count = n()) %>%
top_n(10, wt = count) %>%
left_join(select(products,product_id,product_name),by="product_id") %>%
arrange(desc(count))
head(mostcommon, n=10)
mostcommon %>%
ggplot(aes(x=reorder(product_name,-count), y=count))+
geom_bar(stat="identity",fill="slateblue")+
theme(axis.text.x=element_text(angle=90, hjust=1),axis.title.x = element_blank())
item_reorders <- order_products_train %>%
group_by(product_id) %>%
summarize(proportion_reordered = mean(reordered), n=n()) %>%
filter(n>40) %>%
top_n(10,wt=proportion_reordered) %>%
arrange(desc(proportion_reordered)) %>%
left_join(products,by="product_id")
head(data.frame(item_reorders), n=15)
item_reorders %>%
ggplot(aes(x=reorder(product_name,-proportion_reordered), y=proportion_reordered))+
geom_bar(stat="identity",fill="slateblue")+
theme(axis.text.x=element_text(angle=90, hjust=1),axis.title.x = element_blank())+coord_cartesian(ylim=c(0.85,0.95))
reorder.table<- order_products_train %>%
count(reordered) %>%
mutate(prop = prop.table(n))
as.data.frame(reorder.table)
reorder <- order_products_train %>%
group_by(reordered) %>%
summarize(count = n()) %>%
mutate(proportion = count/sum(count))
reorder %>%
ggplot(aes(x=reordered,y=count, fill=reordered))+
geom_bar(stat="identity")
power.users <- order_products_prior %>%
group_by(order_id) %>%
summarize(reordered.prop = mean(reordered),n=n()) %>%
right_join(filter(orders,order_number>2), by="order_id")
# take out first order
# for each order, calculating reordered.prop, then joining with orders table to add reordered.prop, and n
# n = number of products in a single order
power.users2 <- power.users %>%
filter(eval_set =="prior") %>%
group_by(user_id) %>%
summarize(orders_total = sum(reordered.prop==1,na.rm=T), percent_equal = orders_total/n()) %>%
filter(percent_equal == 1) %>%
arrange(desc(orders_total))
# lists users with 100% reorders in the order of highest number of total orders
head(power.users2, n=10)
head(power.users)
power.order.numbers <- filter(power.users, user_id == 99753)$order_id
power.products <- order_products_prior %>%
filter(order_id %in% power.order.numbers) %>%
left_join(products, by="product_id")
head(power.products, n=10)[,1:5]
power.order.numbers <- filter(power.users, user_id == 55331)$order_id
power.products <- order_products_prior %>%
filter(order_id %in% power.order.numbers) %>%
left_join(products, by="product_id")
head(power.products, n=10)[,1:5]
Now that we have a better picture about the data we're working with, we can begin to use our best judgement to train models based on our historical data and test the models to see which ones work best on unseen data.
The code below represent a few attempts at fitting logistic regression to the data using the predictor variable of department, as well as K Nearest Neighbor regression.
orders_train <- merge(order_products_train, orders, by='order_id')
orders_train <- merge(orders_train, products, by='product_id')
head(orders_train, n=10)[,-11:-12]
orders_test <- subset(orders, eval_set=='test')
deptfit = glm((reordered>0)~department_id, family = 'binomial', data=orders_train)
summary(deptfit)
orders_train$department_id <- as.factor(orders_train$department_id)
deptfit = glm((reordered>0)~department_id, family = 'binomial', data=orders_train)
summary(deptfit)
orders_train$order_dow <- as.factor(orders_train$order_dow)
dow_fit = glm((reordered>0)~order_dow, family='binomial', data=orders_train)
summary(dow_fit)
library(MASS)
library(class)
knn.pred=knn(orders_train, orders_test, orders_train$reordered, k=1)
mean(orders_train$reordered!=knn.pred)
library(boot)
set.seed(17)
cv.error.10=rep(0,10)
for (i in 1:10){
deptfit = glm((reordered>0)~department_id, family = binomial, data=orders_train)
cv.error.10[i] = cv.glm(orders_test, deptfit, K=10)$delta[1]
}
cv.error.10


PRIVACY POLICY - WORLD CARROT MUSEUM
What is this Privacy Policy for?
This privacy policy is for this website - www.carrotmuseum.co.uk - and served by Paragon Internet Group Ltd t/a Vidahost - http://vidahost.co.uk and governs the privacy of its users who choose to use it.
The policy sets out the different areas where user privacy is concerned and outlines the obligations & requirements of the users, the website and website owners. Furthermore the way this website processes, stores and protects user data and information will also be detailed within this policy.
The Website
This website and its owners take a proactive approach to user privacy and ensure the necessary steps are taken to protect the privacy of its users throughout their visiting experience. This website complies to all UK national laws and requirements for user privacy.
Use of Cookies
This website uses cookies to better the users experience while visiting the website. Where applicable this website uses a cookie control system allowing the user on their first visit to the website to allow or disallow the use of cookies on their computer / device. This complies with recent legislation requirements for websites to obtain explicit consent from users before leaving behind or reading files such as cookies on a user's computer / device.
Cookies are small files saved to the user's computers hard drive that track, save and store information about the user's interactions and usage of the website. This allows the website, through its server to provide the users with a tailored experience within this website.
Users are advised that if they wish to deny the use and saving of cookies from this website on to their computers hard drive they should take necessary steps within their web browsers security settings to block all cookies from this website and its external serving vendors.
This website uses tracking software to monitor its visitors to better understand how they use it. This software is provided by Google Analytics which uses cookies to track visitor usage. The software will save a cookie to your computers hard drive in order to track and monitor your engagement and usage of the website, but will not store, save or collect personal information. You can read Google's privacy policy here for further information [ http://www.google.com/privacy.html ].
Other cookies may be stored to your computers hard drive by external vendors when this website uses referral programs, sponsored links or adverts. Such cookies are used for conversion and referral tracking and typically expire after 30 days, though some may take longer. No personal information is stored, saved or collected.
Contact & Communication
Users contacting this website and/or its owners do so at their own discretion and provide any such personal details requested at their own risk. Your personal information is kept private and stored securely until a time it is no longer required or has no use, as detailed in the Data Protection Act 1998. Every effort has been made to ensure a safe and secure form to email submission process but advise users using such form to email processes that they do so at their own risk.
This website and its owners use any information submitted to provide you with further information to assist you in answering any questions or queries you may have submitted.
External Links
Although this website only looks to include quality, safe and relevant external links, users are advised adopt a policy of caution before clicking any external web links mentioned throughout this website. (External links are clickable text / banner / image links to other websites.
The owners of this website cannot guarantee or verify the contents of any externally linked website despite their best efforts. Users should therefore note they click on external links at their own risk and this website and its owners cannot be held liable for any damages or implications caused by visiting any external links mentioned.
Adverts and Sponsored Links
This website may contain sponsored links and adverts. These will typically be served through our advertising partners, to whom may have detailed privacy policies relating directly to the adverts they serve.
Clicking on any such adverts will send you to the advertisers website through a referral program which may use cookies and will track the number of referrals sent from this website. This may include the use of cookies which may in turn be saved on your computers hard drive. Users should therefore note they click on sponsored external links at their own risk and this website and its owners cannot be held liable for any damages or implications caused by visiting any external links mentioned.
Social Media Platforms
Communication, engagement and actions taken through external social media platforms that this website and its owners participate on are custom to the terms and conditions as well as the privacy policies held with each social media platform respectively.
Users are advised to use social media platforms wisely and communicate / engage upon them with due care and caution in regard to their own privacy and personal details. This website nor its owners will ever ask for personal or sensitive information through social media platforms and encourage users wishing to discuss sensitive details to contact them through primary communication channels such as by telephone or email.
This website may use social sharing buttons which help share web content directly from web pages to the social media platform in question. Users are advised before using such social sharing buttons that they do so at their own discretion and note that the social media platform may track and save your request to share a web page respectively through your social media platform account.
Shortened Links in Social Media
This website and its owners through their social media platform accounts may share web links to relevant web pages. By default some social media platforms shorten lengthy urls [web addresses] (this is an example: http://bit.ly/zyVUBo).
Users are advised to take caution and good judgement before clicking any shortened urls published on social media platforms by this website and its owners. Despite the best efforts to ensure only genuine urls are published many social media platforms are prone to spam and hacking and therefore this website and its owners cannot be held liable for any damages or implications caused by visiting any shortened links.
Resources & Further Information
Data Protection Act 1998
Privacy and Electronic Communications Regulations 2003
Privacy and Electronic Communications Regulations 2003 - The Guide
Twitter Privacy Policy
Facebook Privacy Policy
Google Privacy Policy
Linkedin Privacy Policy
Mailchimp Privacy Policy
Web Design Wales
Website Privacy Policy Template
v.2.0 April 2013 Edited & customised by: WORLD CARROT MUSEUM 51 CLAYTON HALL ROAD BD20 7TA


Mumbai needs to encourage the walk-to-work culture. Here’s why
The concept of walk-to-work, where housing, workplaces, and shopping centres are in the vicinity of each other, is fast becoming popular in major cities. For a city like Mumbai, where so many people spend hours commuting to work, this ‘one change’ would make a huge difference.
Honking, traffic snarls, and high stress levels — this is exactly what commuting to work looks like for most Indian professionals, especially those living in metro cities. There are several reasons that contribute to this mess: growing population, socio-economic parameters, poor road infrastructure, and a weak transport network.
There are several solutions to address this issue, one of them being the introduction of a ‘walk-to-work’ culture. What this means is that residences are not too far from commercial spaces. Office-goers, therefore, save time, money, and energy spent on commuting, and can focus on improving the quality of their lives.


Computer Science Engineering
Computer Science and Engineering encompasses the design and development of computational systems and their integration with computer hardware and software engineering.
Information Technology
IT or Information Technology deals with application of systems, especially computers and telecommunications, for storing, retrieving and transmitting information.
Electronics & Communication Engineering
The field of Electronics and Communication Engineering encompasses all areas of human life. Radio, television, telephones, computers, automobiles, office machinery and house-hold appliances, life saving medical equipments and space vehicles represent a mere sample in the wide spectrum of application of Electronics.
Electrical Engineering
Electrical Engineering is a core foundation field for the application in the area of Power Sector (Generation, Transmission & Distribution), its control and maintenance. This field has gain popularity now these days as the increase in demand of power has led to many solutions viz. NCER, Man-Machine Interface and Automation. It provides a multidisciplinary research areas for all the allied disciplines.
Electrical & Electronics Engineering
The Department of Electrical and Electronics Engineering is the youngest department at JSS Academy of Technical Education, Noida, established in the academic year 2014 with an intake of 60. It holds pride in equipping the young minds with a curriculum in Electrical and Electronics Engineering at the undergraduate level which lays a strong foundation of basic and advanced Electrical and Electronic Engineering concepts.
Mechanical Engineering
Mechanical Engineering is one of the major activities in the engineering profession and its principles are involved in the design, study, development and construction of nearly all of the physical devices and systems. Continued research and development have led to better machines and processes helping the mankind.


About billboard
To many, music is an art, a great source of pleasure, a way to relax.
But of course for majors producing artists, retailers either physical or online, and sometimes for artists themselves, music is mostly a business.
Since 1958, the billboard magazine establishes the so called “billboard hot 100” ranking of the top 100 best selling and most broadcasted singles for a given week.
This ranking is obviously closely watched by all stakeholders of the music industry, either to assess how successful they are as artists, which artist’s albums should be purchased to refurbish the stocks and put on the shelves, which song to broadcast on a more frequent basis or on which artist to spend more for future promotion campains.
What do successful singles have in common?
Since music is as much an industry as an art, we may wonder what most successful songs, i.e. those reaching the top of the charts, have in common. In this post we will only focus on “meta data”, i.e. information we can gather about the songs without considering at all the musical side of things.
For this purpose, we will examine a dataset containing the charts for year 2000. It contains the track name, the artist name, the song duration, the genre, the week it entered the charts, the week it reached its peak position, as well as the position for each week from the time it entered the charts until the week before it exited it.
Some of the questions we may want to answer are:
- is there a particular length that most succesful songs have in common?
- is there a particular month best suited to enter the charts to reach the top position?
- how long do songs remain at the top of the charts?
- how long do songs remain in the charts, regardless of their ranking?
- how long does it take for a song to reach its peak ranking?
In the remainder of this article, we will be searching for answers to these questions
Is there a particular length that most succesful songs have in common?
Let’s compare the distribution of the song duration for #1 songs and all billboard songs
What this graph shows is that the distribution of the song length, either #1 or all billboard is approximately the same, with a median of 240 seconds, i.e. 4 minutes. In other words there are as many songs that last less than 4 minutes than songs than last more. And most songs are quite concentrated around that value.
However there is a big no-no for a song that want to make it to the top of the charts: it shouldn’t last more than 270 seconds.
One interpretation we can make of this fact is that if a song is too long, it won’t be broadcasted as often as broadcasting time is limited. It will therefore reduce its chances to be heard often and sell more.
Is there a particular month best suited to enter the charts to reach the top position?
Let’s look at the distribution of top ranking reached for each song by month it entered the charts.
How to read this chart: let’s take month 6 (June): it shows that for the songs that entered the billboard on that month, they either made it to the top at some point (for 3 of them, based on the point darkness) or they didn’t make any better than 24 (as all other points are situated above the value 24 on y axis)
Any general interpretation of this graph is risky: there is too few data to be able to draw conclusions. However looking at similar data for multiple years may help give an idea of when it is best to launch a song on the market. Typically many record companies launch new albums from top selling artists early December to benefit from the Christmas/year end celebration sales boost.
How long do songs remain at the top of the charts?
Let’s look at the distribution of how long songs remain #1.
As expected, as hard as it may be reaching the top of the charts with only 17 songs making it in 2000, staying there is even harder. We observe a decline, with 5 songs staying at the top 1 week only, 4 staying 2 weeks, 3 staying 3 weeks and also 3 staying 4 weeks.
But there is a surprise with two songs staying 10 weeks at the top of the chart each, way more than any other songs mentionned before. So it means once you have passed the 5 weeks at the top, you chances to stay there much longer are good.
If this observation could be generalised to more years with the help of more data, then the advice to the record companies would be the following: if one of your songs makes it to #1, then advertise it as much as you can over the following 5 week of its reaching #1. At that point, if the song is still in #1, then it has probably become so popular that it will advertise by itself thanks to very frequent broadcasting and stay there much longer.
For those curious about who were these super singles of 2000 were:
- “Maria, Maria” by Santana
- “Independant women” by Destiny’s Child
How long do songs remain in the charts, regardless of their ranking?
Now let’s look at a similar graph, but for all songs in the billboard: how long do they stay in the billboard?
We observe a slow and steady decrease of number of songs until week 20, at which point there is a sudden drop. If this observation could be generalised to more years thanks to more data, maybe it would be linked to the fact that 20 weeks is a threshold after which listners get “tired” of a song. If a song hasn’t made a breakthrough during that time, then it is less likely to happen after 20 weeks, unless exceptional circumstances.
How long goes it take for a song to reach its peak ranking?
The graph below shows how many weeks it took for songs to reach their peak position in the billboard, regarless of which was this peak. The green bar shows the median, i.e. the number of weeks for which there are as many songs that took less time to reach their peak than there are songs that took more time.
The median, as well as most frequent value is 7 weeks.
Back to advertising, it means efforts should be concentrated on the first two months of entering the charts, roughly. After this period popularity typically declines.
Other considerations and next steps
The principal limitation of this study is that it is limited to a single year of data. Therefore any finding can be easily challenged as it does not necessarily represent a trend that holds true year after year.
Ideally, a next step would be to obtain similar data since the billboard was established in 1958 until today, and analyse evolution of the results above across the years.
From my quick observation of the billboard hot 100, there seems to be a trend over the year for singles to get longer. For instance in the sixties a single was typically 2 to 3 minutes long, whereas nowadays it lasts rather 3 to 4:30 minutes. Also it feels to me like in the past, songs reaching #1 used to stay longer there than in the recent years, where the turnover seems higher at the top of the chart.


Overview
Number of Tags
13
Critical Health Tags
2
Manage Tags
Add Tags
Click on search to find tags
on the local network
on the local network
Remove Tags
| Tag Name |
|---|
Update Tags
This is a collapsable card example using Bootstrap's built in collapse functionality. Click on the card header to see the card body collapse and expand!


zooplankton marine global indicators data biodiversity Aichi ecosystem specific ecosystems Ocean Target Targets Trends e.g. using {border-style Beaugrand observation px;} species #ffffff;} conservation ocean Edwards monitoring Biodiversity Plankton change climate Global developed environmental Marine regional Batten vulnerable Chiba Richardson existing indicators, information Essential biomass carbon development functional including indicator Mar. North assessment changes food generic pressures px; realm scientific trophic various {font-family Oceanogr., Panel Prog. Sci., analysis collab: community contribute develop diversity extent font-size genetic international relevant respective use Ecol. GOOS-Bio/Eco Goal Johns McQuatters-Gollop Zooplankton [], biological coral double; ecosystems, fish, higher impacted management natural network observing plankton policy pp. quality relevance sea shifts size species, taxonomic temporal variables "Trends (Fig. (Target Biological Convention EOVs Miloslavich Nations Pacific Peterson Reid Rombouts United Variables abundance border-color border-width doi:./j.pocean.... habitats impacts invasive networks projects proposed provide solid; spatial state target trend variability {font-style {font-weight BIP Challenge: Chang. Continuous Glob. IMBeR Indicators Keister Lindley List Mackas Nature, OSPAR O’Brien Rank Red Strength: acidification alien article available best birds/marine bold clearly composition courier; cover criteria current em; examine focused good health implementation indicate indicates indicators. level levels levels. live long-term mammals matching methods observations phytoplankton potential potentially progress project protocols pt;} resilience scale services spp. structure studies sustainable terms terrestrial transport turtles/sea used valuable


Query Browser for TCGA Breast Clinical Data
Age:
Less Than
Greater Than
Vital Status
Either
Living
Deceased
Tumor Status
Either
Tumor Free
With Tumor
Surgical Procedures
Any
Lumpectomy
Modified Radical Mastectomy
Simple Mastectomy
Histological Type
Any
Infiltrating Ductal Carcinoma
Infiltrating Lobular Carcinoma
Mixed Histology
Mucinous Carcinoma
Pathological Stage
Any
Stage I
Stage IA
Stage IB
Stage IIA
Stage IIB
Stage IIIA
Stage IIIB
Stage IIIC
Stage IV
Stage Tis
Stage X
Search


Compute A + B.
The input will consist of a series of pairs of integers A and B separated by a space, one pair of integers per line. The input will be terminated by EOF.
For each pair of input integers A and B, you must output the sum of A and B in one line.
1 2 10 5 100 20
3 15 120


Today, I've wondered how deep a path could be at maximum. I've guessed the file system may be limiting that, but perhaps also some tools that I use for basic operations like listing a folders contents would fail before. So I've created the following C-Snippet to test it:
#include <sys/stat.h>
#include <sys/types.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int i = 0;
int returnCode;
char *pathname;
void giveInformation() {
printf("return code\t\t: %i\n", returnCode);
printf("Created sub-directories\t: %i\n", i);
printf("length of pathname\t: %i\n", strlen(pathname));
if (strlen(pathname) <= 80) {
printf("Path\t\t\t: %s\n", pathname);
}
}
int main () {
pathname = "/home/moose/Desktop/Test";
char *ext = "/one";
returnCode = 0;
int maxDir = 1000000;
while(i < maxDir && returnCode == 0) {
char *newName = malloc(strlen(pathname)+strlen(ext)+1);
strcpy(newName, pathname);
strcat(newName, ext);
returnCode = mkdir(newName, 0777);
if (i != 0) {
// if you remove this line, your system gets very slow:
free(pathname);
}
pathname = newName;
i++;
}
giveInformation();
return 0;
}
Now run it:
$ time ./createDirectories
return code : -1
Created sub-directories : 1018
length of pathname : 4096
real 0m0.281s
user 0m0.004s
sys 0m0.180s
Ok, something went wrong at the end. Lets see what crashes when I enter this path in Gnome terminal
$ cd one/one/one .... one/
$ mkdir two
$ cd two
cd: error retrieving current directory: getcwd: cannot access
parent directories: File name too long
Strangely, it showed me a path /home/moose/.../one/one/one/one/tw$
. No, this is not a typo. It showed tw, not two. So, maybe the path can get only that long?
Now I created a folder called "three" and one called "this". I entered both of them with cd, both showed /home/moose/.../one/one/th
. So I guess this is a problem of Gnome Terminal and not a limitation of the file system.
Let's see what Nautilus does. I once got Nautilus to crash, I think I get it another time:
Contents, according to nautilus: 1,016 items, totalling 4.0 MB
Then I've opened the folder "one" and double clicked as fast as I could. CPU utilization: 100%, but no crash. And 995 items are left ☺ Now a single double click causes 100% CPU utilization for about 25 seconds.
When I use a single character for sub-directories, I get:
moose@pc07:~/Desktop/Test$ ./createDirectories
return code : -1
Created sub-directories : 2036
length of pathname : 4096
Number of directories in one directory
Do you know how many folders can fit into one folder? Well, lets find out:
#include <sys/stat.h>
#include <sys/types.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int i = 0;
int returnCode;
char *pathname;
/** http://stackoverflow.com/a/440240/562769 */
void gen_random(char *s, const int len) {
static const char alphanum[] =
"0123456789"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz";
for (int i = 0; i < len; ++i) {
s[i] = alphanum[rand() % (sizeof(alphanum) - 1)];
}
s[len] = 0;
}
void giveInformation() {
printf("return code\t\t: %i\n", returnCode);
printf("Created sub-directories\t: %i\n", i);
printf("length of pathname\t: %i\n", strlen(pathname));
if (strlen(pathname) <= 80) {
printf("Path\t\t\t: %s\n", pathname);
}
}
int main () {
pathname = "/home/moose/Desktop/Test/test/";
returnCode = 0;
int maxDir = 1000000;
while(i < maxDir && returnCode == 0) {
// get unique name
char *foldername = malloc(50+1);
gen_random(foldername, 50);
char *completePath = malloc(strlen(pathname)
+strlen(foldername)+1);
strcpy(completePath, pathname);
strcat(completePath, foldername);
returnCode = mkdir(completePath, 0777);
free(foldername);
free(completePath);
i++;
}
giveInformation();
return 0;
}
I've executed it and after eight minutes I canceled the execution.
$ ls | wc -l
378463
Ok, not a million folders, but 378.463 is also quite a lot. When I try to open this folder with Nautilus, I get 140% CPU utilization by Nautilus. Quite impressive, for only showing some folders.
You should probably not execute the script above, as deleting the folder isn't that easy.
By the way, I got a new error message that I didn't know before:


Using Alternative Actions
When creating a workflow, there are sometimes more than one possible action you'd like to take once you've found a file. A handy way of dealing with these alternative actions is by using modifier keys.
The workflow below has a secondary action (between the green File Filter and the lower yellow action, Reveal File in Finder), which is triggered when pressing the ⌥ (Alt) key when the result is shown in Alfred.
Adding alternative actions to your workflows
To add an alternative action, double-click the round marker along the connecting line after an input object to show the menu below.
Choose your hotkey combination and add the modifier subtext to jog your memory when you press the modifiers.
Controlling Window Behaviour
In Alfred 3, you can lay out and connect objects in any way you want. As such, we've added a Window Behaviour checkbox, allowing you to tell Alfred not to close the window between inputs. This prevents the Alfred window from flickering.
For an example of this, take a look at the Getting Started guides and examples in Alfred, which you can find under the [+] button at the bottom of the Workflows sidebar in Alfred's preferences.
The Dynamic File Search and Simple To-Do List workflows both use this option; You can see that the connection between the first two objects has a square marker, which indicates the window behaviour has been set to "Don't close". In circumstances where this box isn't checked, you'll see a round marker instead.
In the To-Do list example, this ensures that there is no window flicker between you typing your task and the second input where you select the list to which your task will be added.


{% load i18n %}
{% trans "Plese verify your email on Julython by following the link:" %} http://{{ domain }}{% url 'email_verify' uidb36=uid token=token %}


UK Ratings: ‘Ehd-e-Wafa’ tops Pakistani genre in weekly chart
by Raj BaddhanHum TV continued to dominate the Pakistani TV genre with its ‘Ehd-e-Wafa’ proving the biggest draw of the week, according to official BARB data for week ending Sunday 10th November 2019.
1. Ehd-E-Wafa (Hum TV)
Audience: 61,900 viewers
2. Ishq Zah-e-Naseeb (Hum TV)
Audience: 61,500 viewers
3. Yeh Dil Mera (Hum TV)
Audience: 58,800 viewers
4. Main Na Janu (Hum TV)
Audience: 49,200 viewers
5. Daasi (Hum TV)
Audience: 47,300 viewers


The restlos package provides algorithms for robust estimation of location (mean and mode) and scatter based on minimum spanning trees (pMST), self-organizing maps (Flood Algorithm), Delaunay triangulations (RDELA), and nested minimum volume convex sets (MVCH). The functions are also suitable for outlier detection.
| Version: | 0.2-2 |
| Depends: | R (≥ 3.2.1) |
| Imports: | som (≥ 0.3-5), rgl (≥ 0.95.1247), geometry (≥ 0.3-5), igraph (≥ 1.0.1), limSolve (≥ <IP_ADDRESS>) |
| Published: | 2015-08-11 |
| Author: | Steffen Liebscher and Thomas Kirschstein |
| Maintainer: | Steffen Liebscher <steffen.liebscher at wiwi.uni-halle.de> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| NeedsCompilation: | no |
| CRAN checks: | restlos results |
| Reference manual: | restlos.pdf |
| Package source: | restlos_0.2-2.tar.gz |
| Windows binaries: | r-devel: restlos_0.2-2.zip, r-release: restlos_0.2-2.zip, r-oldrel: restlos_0.2-2.zip |
| OS X binaries: | r-release: restlos_0.2-2.tgz, r-oldrel: restlos_0.2-2.tgz |
| Old sources: | restlos archive |
Please use the canonical form https://CRAN.R-project.org/package=restlos to link to this page.


- runAltadorCouncil(WebDriver) - Static method in class NeoDailies
-
Collects the user's daily Altador Council reward.
- runAnchorManagement(WebDriver) - Static method in class NeoDailies
-
Performs the Anchor Management daily.
- runAppleBobbing(WebDriver) - Static method in class NeoDailies
-
Performs the Apple Bobbing daily.
- runBank(WebDriver) - Static method in class NeoDailies
-
First thing each day, goes to the bank and withdraws enough money to have 100k on hand.
- runBattledome(WebDriver) - Static method in class NeoDailies
-
Plays the battledome until the max neopoints and items per day are earned.
- runCheat(WebDriver) - Static method in class NeoDailies
-
Plays Cheat until the max neopoints per day are earned.
- runCliffhanger(WebDriver) - Static method in class NeoDailies
-
Plays Cliffhanger until the max games per day are played.
- runCoincidence(WebDriver) - Static method in class NeoDailies
-
Performs The Coincidence daily.
- runColtzansShrine(WebDriver) - Static method in class NeoDailies
-
Performs the Colzan's Shrine daily.
- runCrossword(WebDriver) - Static method in class NeoDailies
-
Answers the daily Faerie Crossword.
- runCupcake(WebDriver) - Static method in class NeoDailies
-
Adopts a Neopet whose birthday is today, gets the current day's cupcake, and abandons the pet.
- runDailyPuzzle(WebDriver) - Static method in class NeoDailies
-
Answers the Daily Puzzle.
- runDeleteItems(WebDriver) - Static method in class NeoDailies
-
Goes through the user's inventory and donates any items worth less than 100np according to JN.
- runDubloonTraining(WebDriver) - Static method in class NeoDailies
-
Trains the user's active pet's stats evenly (double its level) at the Swashbuckling Academy.
- runEmployment(WebDriver) - Static method in class NeoDailies
-
Grabs a Faerie Employment job.
- runExpellibox(WebDriver) - Static method in class NeoDailies
-
Plays Qasalan Expellibox.
- runFaeries(WebDriver) - Static method in class NeoDailies
-
Performs the user's daily faerie quest assuming they have the FQ cookie.
- runFishing(WebDriver) - Static method in class NeoDailies
-
Uses the user's active pet to perform the Fishing activity.
- runFoodClub(WebDriver) - Static method in class NeoDailies
-
Plays the Food Club.
- runForgottenShore(WebDriver) - Static method in class NeoDailies
-
Performs the Forgotten Shore daily.
- runFruitMachine(WebDriver) - Static method in class NeoDailies
-
Plays the Fruit Machine daily.
- runGeraptikuTomb(WebDriver) - Static method in class NeoDailies
-
Performs the Geraptiku Tomb daily.
- runGraveDanger(WebDriver) - Static method in class NeoDailies
-
Collects the user's previous Grave Danger reward, then uses the user's designated petpet to run it again.
- runGrumpyOldKing(WebDriver) - Static method in class NeoDailies
-
Performs the Grumpy Old King daily.
- runGuessMarrow(WebDriver) - Static method in class NeoDailies
-
Checks if the Marrow is ready to be guessed.
- runHealingSprings(WebDriver) - Static method in class NeoDailies
-
Checks if the user's pet is sick, hungry, or damaged.
- runIslandMystic(WebDriver) - Static method in class NeoDailies
-
Performs the Island Mystic daily (only useful for the avatar).
- runIslandTraining(WebDriver) - Static method in class NeoDailies
-
Trains the user's active pet's stats evenly (double its level) at the Mystery Island Training School.
- runJelly(WebDriver) - Static method in class NeoDailies
-
Performs the Giant Jelly daily.
- runKacheekSeek(WebDriver) - Static method in class NeoDailies
-
Plays Kacheek Seek until the user's pet is bored.
- runKikoPop(WebDriver) - Static method in class NeoDailies
-
Plays Kiko Pop.
- runKitchenQuest(WebDriver) - Static method in class NeoDailies
-
Starts a Kitchen Quest.
- runLabRay(WebDriver) - Static method in class NeoDailies
-
Zaps the user's chosen lab rat.
- runLottery(WebDriver) - Static method in class NeoDailies
-
Plays the Neopian Lottery the max games per day (20 tickets).
- runLunarPuzzle(WebDriver) - Static method in class NeoDailies
-
Answers the daily Lunar Puzzle.
- runMeteor(WebDriver) - Static method in class NeoDailies
-
Performs the Kreludor Meteor daily.
- runMonthlyFreeby(WebDriver) - Static method in class NeoDailies
-
When the new month rolls over, grabs the user's monthly freebies.
- runMoodImprove(WebDriver) - Static method in class NeoDailies
-
Checks if the user's active pet's mood is not "delighted!".
- runNeggCave(WebDriver) - Static method in class NeoDailies
-
Solves the Negg Cave puzzle daily.
- runNeoMail(WebDriver) - Static method in class NeoDailies
-
Checks if the user has any mail or notifications.
- RUNNING_ON_LAPTOP - Static variable in class NeoDailies
-
- runOmelette(WebDriver) - Static method in class NeoDailies
-
Performs the Giant Omelette daily.
- runPetPetBattles(WebDriver) - Static method in class NeoDailies
-
Plays PetPet Battles until the max games per day are played.
- runPotatoCounter(WebDriver) - Static method in class NeoDailies
-
Plays Potato Counter the max number of games per day.
- runPyramids(WebDriver) - Static method in class NeoDailies
-
Plays Pyramids until the max neopoints per day are earned.
- runScarab21(WebDriver) - Static method in class NeoDailies
-
Plays Scarab 21 until the max neopoints per day are earned.
- runSecondHandShoppe(WebDriver) - Static method in class NeoDailies
-
Grabs a (hopefully) non-garbage item from the Second Hand Shoppe.
- runShopOfOffers(WebDriver) - Static method in class NeoDailies
-
Collects the user's daily Shop of Offers reward.
- runShopTill(WebDriver) - Static method in class NeoDailies
-
Grabs any NPs in the user's shop till.
- runSolitaire(WebDriver) - Static method in class NeoDailies
-
Plays Solitaire until the max neopoints per day are earned.
- runStockItems(WebDriver, String) - Static method in class NeoDailies
-
Checks if the user has less than 30 items in their shop.
- runStocks(WebDriver) - Static method in class NeoDailies
-
Purchases 1000 shares of any stock currently at 15np per share.
- runStockSell(WebDriver) - Static method in class NeoDailies
-
Checks the user's stocks to find out if any are at 60np or above.
- runSymolHole(WebDriver) - Static method in class NeoDailies
-
Performs the Symol Hole daily.
- runTarla(WebDriver) - Static method in class NeoDailies
-
Visits Tarla's non-Toolbar daily.
- runTDMBGPOP(WebDriver) - Static method in class NeoDailies
-
Performs the TDMBGPOP daily.
- runTombola(WebDriver) - Static method in class NeoDailies
-
Performs the Tombola daily.
- runTrudysSurprise(WebDriver) - Static method in class NeoDailies
-
Plays Trudy's Surprise.
- runWiseOldKing(WebDriver) - Static method in class NeoDailies
-
Performs the Wise Old King daily.
- runWishingWell(WebDriver) - Static method in class NeoDailies
-
Place the max amount of Wishing Well wishes (7) for the minimum required amount (21np).


08 April 1999
Disease Outbreak Reported
The Ministry of Health has reported an outbreak of cholera in the municipality of Paranagua, Parana State. The cases occurred in the villages of Guarani and Araça. Up to 31 March, a total of 235 cases (205 confirmed) and 3 deaths had been reported. Strict investigative and control measures are being implemented, including inspection and training of food vendors and distribution of health education material.


A
Analysis
Toggle navigation
logout
Dashboard
Home
Users
User Id
Username
Name
Surname
Class
Type
T001
Kenntse0365
Kgosi
Kenntse
3B
Normal
T002
Johndoe
John
Doe
3C
Admin
T003
Jaindoe
Jain
Doe
1A
Normal
T004
Kgosimoeledi
Kgosi
Moeledi
2A
Normal
T005
KgosiKhumo
Kgosi
Khumo
3D
Normal
Students
ID
Class
Name
Gender
Class Teacher
S001
3B
Elias Bayona
Male
Class Teacher
S002
3C
David Modise
Male
Class Teacher
S003
3A
Alex Boldwin
Male
Class Teacher
S004
3A
Alexa Ramerez
Male
Class Teacher
S005
3C
Sanchez Molodi
Male
Class Teacher
Classes
Class Id
Class name
Number of students
Class Teacher
1A2018
1A
40
Jain Doe
1C2016
3C
40
John Doe
1B2016
3B
40
Kgosi Kennets
1D2016
3D
40
Kgosi Kgolo
1D2017
2D
40
Moeledi Diane
Assements
Exam Id
Exam name
MAT201703
Mathematics
Science201703
Integrated Scince
Cs201703
ComputerStudies
PE201703
Physical Education
ACC201703
Accounting
ENG201703
English
SET201703
Setswana
HE201703
Home Economics
×
Create user account
Name
Surname
User Type
Normal
Admin
Class
1A
1B
2A
2B
3A
3B
Subject
Agriculture
Art
Commerce and Book Keeping/Accounting
Commerce and Office Procedures
Computer Studies
Design and Technology
Home Economics
Integrated Science
Mathematics
Moral Education
Music
Physical Education
Religious Education
Setswana
Social Studies
Username
Password
×
Edit user account
Name
Surname
User Type
Normal
Admin
Class
1A
1B
2A
2B
3A
3B
Subject
Agriculture
Art
Commerce and Book Keeping/Accounting
Commerce and Office Procedures
Computer Studies
Design and Technology
Home Economics
Integrated Science
Mathematics
Moral Education
Music
Physical Education
Religious Education
Setswana
Social Studies
Username
Password
×
Register Student
Name
Surname
Gender
Male
Female
Class
1A
1B
2A
2B
3A
3B
Subjects
Agriculture
Art
Commerce and Book Keeping/Accounting
Commerce and Office Procedures
Computer Studies
Design and Technology
Home Economics
Integrated Science
Mathematics
Moral Education
Music
Physical Education
Religious Education
Setswana
Social Studies
×
Modify Student
Name
Surname
Gender
Male
Female
Class
1A
1B
2A
2B
3A
3B
Subjects
Agriculture
Art
Commerce and Book Keeping/Accounting
Commerce and Office Procedures
Computer Studies
Design and Technology
Home Economics
Integrated Science
Mathematics
Moral Education
Music
Physical Education
Religious Education
Setswana
Social Studies
×
Create Class
Name
Class Teacher
Jain Doe
John Doe
×
Modify Classes
Name
Class Teacher
Jain Doe
John Doe
×
Create Assement
Assement Name
Date:
Number of Papers:
Paper 1
Weight:
×
Modify Assement
Assement Name
Date:
Number of Papers:
Paper 1
Weight:


{% comment %} Render the questiongroup as table. The labels of the keys are used as table headers, each questiongroup takes up one row of the table. Important: The questiongroup must have the view_option "with_keys": true set. Also, the questions should be rendered with view_option "template": "value_only". {% endcomment %} {% if config.label %}
| {{ key }} | {% endif %} {% endfor %} {% for questiongroup in questiongroups %}||
|---|---|---|
| {{ question }} | {% elif forloop.counter == 2 %}{{ question }} | {% elif forloop.counter == 3 %}
{{ question }}
{% elif forloop.counter == 4 %}
{{ question }}
{% elif forloop.counter == 5 %}
{{ question }}
|
{% endif %}
{% endfor %}


Let $\Sigma$ be the alphabet of unicode characters and $\Sigma^*$ be the
language of all strings over $\Sigma$.
Definition (Scope-Set): A scope-set $s \subseteq \Sigma^*$ is a set of strings.
Given a scope-set $s$ we write $C(s)$ to denote the complete scope-set:
$$C(s) = s \cup \{ab \mid a* \in s \text{ and } ab \in \Sigma^*\}$$
Definition (Satisfiability):
A scope-set $s$ is said to satisfy $s'$ if $C(s') \subseteq \mathcal C(s)$,
denoted $s' \sqsubseteq s$.
Note,
$$ \begin{align} X &\sqsubseteq Y \quad \text{// } X \text{ is satisfied by } Y \\ \{\text{queue:create-task:*} \} &\sqsubseteq \{\text{queue:*}\}\\ \{\text{queue:*}, \text{auth:list-clients} \} &\sqsubseteq \{\text{queue:*}, \text{auth:*}\}\\ \{\text{auth:list-clients} \} &\sqsubseteq \{\text{queue:*}, \text{auth:list-clients} \}\\ &\phantom{\sqsubseteq \{} \text{// Separators are just eye-candy} \\ \{\text{queue:create}, \text{queue:d*} \} &\sqsubseteq \{\text{queue:*}\}\\ &\phantom{\sqsubseteq \{} \text{// But prefix must match} \\ \{\text{queue} \} &\not\sqsubseteq \{\text{queue:*}\}\\ &\phantom{\sqsubseteq \{} \text{// While any suffix is optional} \\ \{\text{queue:} \} &\sqsubseteq \{\text{queue:*}\}\\ &\phantom{\sqsubseteq \{} \text{// Expansion at end only} \\ \{\text{auth:list-clients} \} &\not\sqsubseteq \{\text{auth:*-clients}\} \\ \textit{required scopes} &\sqsubseteq \textit{possessed scopes} \text{ // in general} \end{align} $$
We have $C = (\textit{clientId}, \textit{accessToken})$ with scopes: $\{\text{queue:*}, \text{index:*}\}$
var taskcluster = require('taskcluster-client');
// Create client object with credentials
var queue = new taskcluster.Queue({credentials: C});
// Create task
await queue.createTask(taskcluster.slugid(), {
created: taskcluster.fromNowJSON(),
deadline: taskcluster.fromNowJSON('2 days 3 hours'),
provisionerId: 'aws-provisioner-v1',
workerType: 'tutorial',
payload: {...},
metadata: {...}
});
Docs it says createTask requires:
queue:create-task:<provisionerId>/<workerType>Hence, in this case we need:
queue:create-task:aws-provisioner-v1/tutorialWhich we have by $``\text{queue:*}``$.
We have $C = (\textit{clientId}, \textit{accessToken})$ with scopes: $\{\text{queue:*}, \text{index:*}\}$
var taskcluster = require('taskcluster-client');
// Create client object with credentials
var queue = new taskcluster.Queue({
credentials: C,
authorizedScopes: ['queue:create-task:aws-provisioner-v1/*']
});
// Create task
await queue.createTask(taskcluster.slugid(), {
// We've forced provisionerId using `authorizedScopes`
provisionerId: 'aws-provisioner-v1',
...
});
Useful when creating a task on behalf of a third-party.
We have $C = (\textit{clientId}, \textit{accessToken})$ with scopes: $\{\text{queue:*}, \text{index:*}\}$
var taskcluster = require('taskcluster-client');
// Create temporary credentials
var tempCreds = taskcluster.createTemporaryCredentials({
start: new Date(),
expiry: taskcluster.fromNow('4 hours'),
credentials: C,
scopes: ['queue:create-task:aws-provisioner-v1/*']
});
// Create client object with temporary credentials
var queue = new taskcluster.Queue({
credentials: tempCreds
});
// Create task
await queue.createTask(taskcluster.slugid(), {
// We've forced provisionerId using `scopes` given to temporary credentials
provisionerId: 'aws-provisioner-v1',
...
});
Only works because $\text{queue:*}$ satisfies the scope given.
task.scopes
(1)We have $C = (\textit{clientId}, \textit{accessToken})$ with scopes: $\{\text{queue:*}, \text{index:*}\}$
// Create task
await queue.createTask(taskcluster.slugid(), {
provisionerId: 'aws-provisioner-v1',
workerType: 'tutorial',
// Allows worker to know the creator have these scopes
scopes: ['index:insert-task:gecko.v1.*']
...
payload: {
features: {taskclusterProxy: true} // Start auth proxy
...
}
});
From docs createTask now requires:
queue:create-task:aws-provisioner-v1/tutorial index:insert-task:gecko.v1.*Docker-worker will use auth-proxy will use the authorizedScopes features to proxy requests.
task.scopes
(2)We have $C = (\textit{clientId}, \textit{accessToken})$ with scopes: $\{\text{queue:*}, \text{index:*}\}$
// Create task
await queue.createTask(taskcluster.slugid(), {
provisionerId: 'aws-provisioner-v1',
workerType: 'tutorial',
// Allows worker to know the creator have this scope
scopes: ['docker-worker:cache:jonasfj-*']
...
payload: {
cache: {
'jonasfj-cache': '/var/apt/cache/'
}
...
}
});
From docs createTask now requires:
queue:create-task:aws-provisioner-v1/tutorial docker-worker:cache:jonasfj-*To mount cache worker requires: $$ \{\text{docker-worker:cache:jonasfj-cache}\} \sqsubseteq \text{task.scopes} $$ Or it rejects the task.
Merely guidelines...
Service specific<service>:<action>:<resource>Role specific
- service: queue, index, auth, docker-worker - action: create-task, create-artifact, insert-task, list-clients - resource: <provisionerId>/<workerType>, <path>, <docker-image> * resource usually uses "/" as separator, * resource is sometimes omitted if not relevant.
assume:<role>:<qualifier>
- role: worker-type, scheduler-id, worker-id - qualifier: <provisionerId>/<workerType>, <schedulerId>/<taskGroupId>
Usually required by multiple API end-points.
Think of the scope
"assume:worker-type:aws-provisioner-v1/tutorial" as the authority to act as a
worker of this type.
We want a scope that limits the artifact size a client can upload.Solution:
queue:artifact-size:100mb
queue:artifact-size:500mb
queue:artifact-size:1gb
queue:artifact-size:5gb
queue:artifact-size:10gb
Downside, satisfiability doesn't follow semantics, e.g.
$$
\{\text{queue:artifact-size:100mb}\} \not\sqsubseteq \{\text{queue:artifact-size:1gb}\}
$$
Hence, client with the 1gb scope can't create temporary credentials with
the 500mb scope.
Downside, We cannot have continuous scopes.
Given $Y$ we cannot check if the client has some scope
"queue:artifact-size:X" where $Y \leq X$.
- docs.taskcluster.net/auth
- #taskcluster at irc.mozilla.org


Psalms 56:6
They gather themselves together, they hide themselves, they mark my steps, when they wait for my soul.


File generated from /Users/xenykr/Documents/project/Tellet/ssam/apps/ssam_telephony/.eunit/ssam_telephony_app.erl by COVER 2014-10-07 at 16:20:12 **************************************************************************** | %% ------------------------------------------------------------------------ | %% Copyright (c) 2014, Kook Maeng<EMAIL_ADDRESS>| %% | %% Permission to use, copy, modify, and/or distribute this software for any | %% purpose with or without fee is hereby granted, provided that the above | %% copyright notice and this permission notice appear in all copies. | %% | %% THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | %% WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | %% MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | %% ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | %% WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | %% ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | %% OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | %% ------------------------------------------------------------------------ | | -module(ssam_telephony_app). | | -behaviour(application). | | %% Application callbacks | -export([start/2, stop/1]). | | -include("ssam_telephony.hrl"). | | | %% =================================================================== | %% Application callbacks | %% =================================================================== | | start(_StartType, _StartArgs) -> 0..| ssam_telephony_sup:start_link(). | | stop(_State) -> 0..| ok.


The 17 Best Winter Cocktails You Need to Curl Up With RN
As we gear up for the final holiday season of the decade (!!!), there’s absolutely no reason for your cocktail knowledge to end at eggnog. But before you enroll in a last-minute mixology course or spiral into a Reddit hole, we’re here to help: We’ve rounded up 17 of the coziest, yummiest updates to your favorite cold-weather classics. Infuse your own vodka, level up with mulled rosé, or, heck, put marshmallow on top—whatever you choose, no longer will anyone have grounds to accuse you of being basic (“that’s basiqué to you”).


Arrays and Hashes are two data structures in the world of Ruby (and programming in general). The Array is a group of any type of object: strings, integers, even other arrays! An array is ordered and items can be called upon by their index number. The Hash is related to an array but the items that comprise a hash are a series of keys and values. A key is a name (usually a symbol) that is associated with a value that can be anything (string, integer, float, etc.). These pairs allow you to associate values with things other than just a series of sequential numbers. For example, if you had 5 mice and each had a number on its back (0-5), there would be no need to use a hash. An array would suffice because we could access the mice just based on the number on the back. But, if the mice were identified by say a random 5 digit number or an alphanumeric id, how would we store that info? The Hash allows the keys to be things other than numbers so we could store them there.
To define an array, I usually take the quick way and set the array name equal to a set of empty brackets:
array1 = []Then I can add elements to the array using the
array1 << thingmethod.
The hash can be defined similarly as above but should use curly braces instead of the standard bracket:
hash1 = {}To add key/value pairs to the hash at the time of creation the new style is shown below, keep in mind, all keys must be symbols for this style:
hash1 = { age: 27, name: "bob"}


This page can help you compare the results of the transmuxing performed by mux.js with a known, working file produced by another tool. You could use ffmpeg to transform an MPEG-2 transport stream into an FLV with a command like this:
ffmpeg -i input.ts -acodec copy -vcodec copy output.flv
This page only compares FLVs files. There is a similar utility for testing the mp4 conversion.
Inputs
Comparison
A diff of the structure of the two FLVs will appear here
once you've specified an input TS file and a known working
FLV.


if you would like to experience the best of online shopping for men, women and kids in India, you are at the right place. Shopivate is the ultimate destination for fashion and lifestyle, being host to a wide array of merchandise including clothing, footwear, accessories, jewellery, personal care products and more. It is time to redefine your style statement with our treasure-trove of trendy items. Our online store brings you the latest in designer products straight out of fashion houses. You can shop online at Shopivate from the comfort of your home and get your favourites delivered right to your doorstep.


backward combatability
`Prev `__
B
`Next `__
--------------
**backward combatability**: /bak´w@rd k@m·bat'@·bil'@·tee/, n.
[CMU, Tektronix: from backward compatibility] A property of hardware or
software revisions in which previous protocols, formats, layouts, etc.
are irrevocably discarded in favor of ‘new and improved’ protocols,
formats, and layouts, leaving the previous ones not merely deprecated
but actively defeated. (Too often, the old and new versions cannot
definitively be distinguished, such that lingering instances of the
previous ones yield crashes or other infelicitous effects, as opposed to
a simple “version mismatch” message.) A backwards compatible change, on
the other hand, allows old versions to coexist without crashes or error
messages, but too many major changes incorporating elaborate backwards
compatibility processing can lead to extreme `*software
bloat* <../S/software-bloat.html>`__. See also `*flag
day* <../F/flag-day.html>`__.
--------------
+------------------------------+----------------------------+------------------------+
| `Prev `__ | `Up <../B.html>`__ | `Next `__ |
+------------------------------+----------------------------+------------------------+
| backronym | `Home <../index.html>`__ | BAD |
+------------------------------+----------------------------+------------------------+


pkill "process_name"- Kill all processes which match their full command instead of just the process name:
pkill -f "command_name"- Force kill matching processes (can't be blocked):
pkill -9 "process_name"- Send SIGUSR1 signal to processes which match:
pkill -USR1 "process_name"- Kill the main `firefox` process to close the browser:
pkill --oldest "firefox"


Introduction
_config.yml
stores configuration data. Many of these options can be specified from the command line executable but it’s easier to specify them here so you don’t have to remember them.
Please stop and re-run jekyll serve
command after you change configuration file! Master configuration file contains global configurations and variable definitions that are read once at execution time. Changes made to config.yml
during automatic regeneration are not loaded until the next execution.
Relative URLs
If you’re deploying to server where your site is not going to be in root
directory, you should setup baseurl
variable.
For example, if your site is going to be stored on URL that looks like this http://example.com/project
, you’ll have to update your baseurl
variable and it should look like this:
doks:
baseurl: /project
Build site with environment variable! When you run jekyll serve
, your baseurl
variable shouldn’t render at all in any pages.
We’ll set Jekyll to only render baseurl
variable when its environment is set to production.
So then, how do you get the baseurl
variable to only show up on a production environment? When building your Jekyll project with jekyll build, you’ll want to prefix it with JEKYLL_ENV=production
so the complete command looks like this one: JEKYLL_ENV=production jekyll build
Color themes
Doks supports few color themes:
- blue (default)
- green
- purple
- red
- yellow
You can update your color_theme
variable in _config.yml
to see changes.
doks:
color_theme: green
Header
Logo with text
If you need logo as text, update text
variable and leave image
empty.
doks:
header:
logo:
text: Project name
image:
Logo with image
If you need logo as image, update image
variable and set it to true
and leave text
empty.
To set your custom logo image just upload it in place of logo.png
here
/doks-theme/assets/images/layout/logo.png
.
doks:
header:
logo:
text:
image: true
Recommended logo image size. Recommended logo image size is 400px x 178px. With this size you are sure you'll have retina ready logo image.
Navigation
To add new items in main navigation you have to setup nav
variable in _config.yml
. Add as many items as you need.
doks:
header:
nav:
- item_name: Item 1
item_url: /example-url-1
- item_name: Item 2
item_url: /example-url-2
Footer
Logo with text
If you need logo as text, update text
variable and leave image
empty.
doks:
footer:
content:
logo:
text: Project name
image:
Logo with image
If you need logo as image, update image
variable and set it to true
and leave text
empty.
To set your custom logo image just upload it in place of logo-footer.png
here /doks-theme/assets/images/layout/logo-footer.png
.
doks:
footer:
content:
logo:
text:
image: true
Recommended logo image size. Recommended logo image size is 400px x 178px. With this size you are sure you'll have retina ready logo image.
Copyright
If you need to setup new footer copyright text, update copyright
variable in your _config.yml
file.
doks:
footer:
content:
copyright: Copyright © 2017. - Project name <br>All rights reserved.
Social list
To properly setup social list update social_list
variable in _config.yml
. Add as many items as you need.
At the bottom of the “Getting Started” section you can find list of icons you can use in this list. Update network_name
variable to add proper icon.
doks:
footer:
social_list:
- network_name: facebook
profile_url: http://example.com
- network_name: twitter
profile_url: http://example.com
- network_name: instagram
profile_url: http://example.com
- network_name: youtube
profile_url: http://example.com
Google Analytics
To activate Google Analytics you have to update _config.yml
with GA tracking code. You can do that with tracking_code
variable.
doks:
google_analytics:
tracking_code: UA-XXXXXX-X
Build site with environment variable! When you run jekyll serve
, your Google Analytics tracking code shouldn’t render at all in any pages.
The reason for this is if you visit your Google Analytics account, you’ll see a bunch of visits from localhost:4000
or <IP_ADDRESS>:4000
depending on the type of operating system you’re developing your Jekyll project.
This can potentially muddy up your analytics, so to mitigate this problem, we’ll set Jekyll to only render Google Analytics when its environment is set to production.
So then, how do you get the analytics to only show up on a production environment? When building your Jekyll project with jekyll build, you’ll want to prefix it with JEKYLL_ENV=production
so the complete command looks like this one: JEKYLL_ENV=production jekyll build
Disqus comments
To activate Disqus commenting system you have to update _config.yml
with Disqus forum shortname. You can do that with disqus_forum_shortname
variable.
Comments are available only on default
page layout and you have to enable them on new pages with comments: true
variable.
doks:
comments:
disqus_forum_shortname:
Build site with environment variable! When you run jekyll serve
, your Disqus commenting system shouldn’t render at all in any pages.
We’ll set Jekyll to only render Disqus commenting system when its environment is set to production.
So then, how do you get the Disqus commenting system to only show up on a production environment? When building your Jekyll project with jekyll build, you’ll want to prefix it with JEKYLL_ENV=production
so the complete command looks like this one: JEKYLL_ENV=production jekyll build
Favicon
To change favicon just replace /favicon.ico
with your new icon. Make sure it is in .ico
format. Dimensions should be 16px x 16px.
Favicon .psd
file included! We've included .psd
file with pre-made favicon in /designs
folder of your theme.


Id: 171
Name: Jaguar
Status: Alive
Species: Human
Type:
Gender: Male
OriginName: Earth (Replacement Dimension)
OriginUrl: https://rickandmortyapi.com/api/location/20
LocationName: Earth (Replacement Dimension)
LocationUrl: https://rickandmortyapi.com/api/location/20
Image: https://rickandmortyapi.com/api/character/avatar/171.jpeg
Episode: ['https://rickandmortyapi.com/api/episode/24']
Url: https://rickandmortyapi.com/api/character/171
Created: 2017-12-29T17:25:38.138Z


lantern-like light leaking
throght the brise soleil in
the moonlight.
people of the world,strap
yourself in and hold on
tight.for you are about
to experience truly
hair-raising exeitement.


|
Komunikator
0.3
Jest to aplikacja przeznaczona na urządzenia z systemem operacyjnym Google Android. Dzięki niej użytkownicy będą mogli komunikować się między sobą, tworzyć konwersacje oraz dodawać znajomych.
|
Statyczne atrybuty publiczne | |
| static final int | action0 = 0x7f0d00c9 |
| static final int | action_bar = 0x7f0d006a |
| static final int | action_bar_activity_content = 0x7f0d0000 |
| static final int | action_bar_container = 0x7f0d0069 |
| static final int | action_bar_root = 0x7f0d0065 |
| static final int | action_bar_spinner = 0x7f0d0001 |
| static final int | action_bar_subtitle = 0x7f0d0048 |
| static final int | action_bar_title = 0x7f0d0047 |
| static final int | action_container = 0x7f0d00c6 |
| static final int | action_context_bar = 0x7f0d006b |
| static final int | action_divider = 0x7f0d00cd |
| static final int | action_image = 0x7f0d00c7 |
| static final int | action_menu_divider = 0x7f0d0002 |
| static final int | action_menu_presenter = 0x7f0d0003 |
| static final int | action_mode_bar = 0x7f0d0067 |
| static final int | action_mode_bar_stub = 0x7f0d0066 |
| static final int | action_mode_close_button = 0x7f0d0049 |
| static final int | action_text = 0x7f0d00c8 |
| static final int | actions = 0x7f0d00d6 |
| static final int | activity_chooser_view_content = 0x7f0d004a |
| static final int | add = 0x7f0d0025 |
| static final int | alertTitle = 0x7f0d005e |
| static final int | all = 0x7f0d0013 |
| static final int | always = 0x7f0d0040 |
| static final int | auto = 0x7f0d002c |
| static final int | beginning = 0x7f0d003e |
| static final int | bottom = 0x7f0d002d |
| static final int | buttonPanel = 0x7f0d0051 |
| static final int | cancel_action = 0x7f0d00ca |
| static final int | center = 0x7f0d002e |
| static final int | center_horizontal = 0x7f0d002f |
| static final int | center_vertical = 0x7f0d0030 |
| static final int | checkbox = 0x7f0d0061 |
| static final int | chronometer = 0x7f0d00d2 |
| static final int | clip_horizontal = 0x7f0d0039 |
| static final int | clip_vertical = 0x7f0d003a |
| static final int | collapseActionView = 0x7f0d0041 |
| static final int | contentPanel = 0x7f0d0054 |
| static final int | custom = 0x7f0d005b |
| static final int | customPanel = 0x7f0d005a |
| static final int | decor_content_parent = 0x7f0d0068 |
| static final int | default_activity_button = 0x7f0d004d |
| static final int | design_bottom_sheet = 0x7f0d008f |
| static final int | design_menu_item_action_area = 0x7f0d0096 |
| static final int | design_menu_item_action_area_stub = 0x7f0d0095 |
| static final int | design_menu_item_text = 0x7f0d0094 |
| static final int | design_navigation_view = 0x7f0d0093 |
| static final int | disableHome = 0x7f0d001a |
| static final int | edit_query = 0x7f0d006c |
| static final int | end = 0x7f0d0031 |
| static final int | end_padder = 0x7f0d00dc |
| static final int | enterAlways = 0x7f0d0020 |
| static final int | enterAlwaysCollapsed = 0x7f0d0021 |
| static final int | exitUntilCollapsed = 0x7f0d0022 |
| static final int | expand_activities_button = 0x7f0d004b |
| static final int | expanded_menu = 0x7f0d0060 |
| static final int | fill = 0x7f0d003b |
| static final int | fill_horizontal = 0x7f0d003c |
| static final int | fill_vertical = 0x7f0d0032 |
| static final int | fixed = 0x7f0d0045 |
| static final int | home = 0x7f0d0004 |
| static final int | homeAsUp = 0x7f0d001b |
| static final int | icon = 0x7f0d004f |
| static final int | icon_group = 0x7f0d00d7 |
| static final int | ifRoom = 0x7f0d0042 |
| static final int | image = 0x7f0d004c |
| static final int | info = 0x7f0d00d3 |
| static final int | item_touch_helper_previous_elevation = 0x7f0d0005 |
| static final int | largeLabel = 0x7f0d008d |
| static final int | left = 0x7f0d0033 |
| static final int | line1 = 0x7f0d00d8 |
| static final int | line3 = 0x7f0d00da |
| static final int | listMode = 0x7f0d0017 |
| static final int | list_item = 0x7f0d004e |
| static final int | masked = 0x7f0d00df |
| static final int | media_actions = 0x7f0d00cc |
| static final int | middle = 0x7f0d003f |
| static final int | mini = 0x7f0d003d |
| static final int | multiply = 0x7f0d0026 |
| static final int | navigation_header_container = 0x7f0d0092 |
| static final int | never = 0x7f0d0043 |
| static final int | none = 0x7f0d0016 |
| static final int | normal = 0x7f0d0018 |
| static final int | notification_background = 0x7f0d00d5 |
| static final int | notification_main_column = 0x7f0d00cf |
| static final int | notification_main_column_container = 0x7f0d00ce |
| static final int | parallax = 0x7f0d0037 |
| static final int | parentPanel = 0x7f0d0053 |
| static final int | pin = 0x7f0d0038 |
| static final int | progress_circular = 0x7f0d0006 |
| static final int | progress_horizontal = 0x7f0d0007 |
| static final int | radio = 0x7f0d0063 |
| static final int | right = 0x7f0d0034 |
| static final int | right_icon = 0x7f0d00d4 |
| static final int | right_side = 0x7f0d00d0 |
| static final int | screen = 0x7f0d0027 |
| static final int | scroll = 0x7f0d0023 |
| static final int | scrollIndicatorDown = 0x7f0d0059 |
| static final int | scrollIndicatorUp = 0x7f0d0055 |
| static final int | scrollView = 0x7f0d0056 |
| static final int | scrollable = 0x7f0d0046 |
| static final int | search_badge = 0x7f0d006e |
| static final int | search_bar = 0x7f0d006d |
| static final int | search_button = 0x7f0d006f |
| static final int | search_close_btn = 0x7f0d0074 |
| static final int | search_edit_frame = 0x7f0d0070 |
| static final int | search_go_btn = 0x7f0d0076 |
| static final int | search_mag_icon = 0x7f0d0071 |
| static final int | search_plate = 0x7f0d0072 |
| static final int | search_src_text = 0x7f0d0073 |
| static final int | search_voice_btn = 0x7f0d0077 |
| static final int | select_dialog_listview = 0x7f0d0078 |
| static final int | shortcut = 0x7f0d0062 |
| static final int | showCustom = 0x7f0d001c |
| static final int | showHome = 0x7f0d001d |
| static final int | showTitle = 0x7f0d001e |
| static final int | smallLabel = 0x7f0d008c |
| static final int | snackbar_action = 0x7f0d0091 |
| static final int | snackbar_text = 0x7f0d0090 |
| static final int | snap = 0x7f0d0024 |
| static final int | spacer = 0x7f0d0052 |
| static final int | split_action_bar = 0x7f0d0008 |
| static final int | src_atop = 0x7f0d0028 |
| static final int | src_in = 0x7f0d0029 |
| static final int | src_over = 0x7f0d002a |
| static final int | start = 0x7f0d0035 |
| static final int | status_bar_latest_event_content = 0x7f0d00cb |
| static final int | submenuarrow = 0x7f0d0064 |
| static final int | submit_area = 0x7f0d0075 |
| static final int | tabMode = 0x7f0d0019 |
| static final int | text = 0x7f0d00db |
| static final int | text2 = 0x7f0d00d9 |
| static final int | textSpacerNoButtons = 0x7f0d0058 |
| static final int | textSpacerNoTitle = 0x7f0d0057 |
| static final int | text_input_password_toggle = 0x7f0d0097 |
| static final int | textinput_counter = 0x7f0d0009 |
| static final int | textinput_error = 0x7f0d000a |
| static final int | time = 0x7f0d00d1 |
| static final int | title = 0x7f0d0050 |
| static final int | titleDividerNoCustom = 0x7f0d005f |
| static final int | title_template = 0x7f0d005d |
| static final int | top = 0x7f0d0036 |
| static final int | topPanel = 0x7f0d005c |
| static final int | touch_outside = 0x7f0d008e |
| static final int | transition_current_scene = 0x7f0d000b |
| static final int | transition_scene_layoutid_cache = 0x7f0d000c |
| static final int | up = 0x7f0d000d |
| static final int | useLogo = 0x7f0d001f |
| static final int | view_offset_helper = 0x7f0d000e |
| static final int | visible = 0x7f0d00de |
| static final int | withText = 0x7f0d0044 |
| static final int | wrap_content = 0x7f0d002b |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |


Coverage Summary for Class: LoginReply (it.polimi.ingsw.network.message)
| Class | Class, % | Method, % | Line, % |
|---|---|---|---|
| LoginReply | 100% (1/ 1) | 25% (1/ 4) | 50% (4/ 8) |
1 package it.polimi.ingsw.network.message;
2
3 import it.polimi.ingsw.model.Game;
4
5 /**
6 * Message used to confirm or discard a login request of a client.
7 */
8 public class LoginReply extends Message {
9
10 private static final long serialVersionUID = -1423312065079102467L;
11 private final boolean nicknameAccepted;
12 private final boolean connectionSuccessful;
13
14 public LoginReply(boolean nicknameAccepted, boolean connectionSuccessful) {
15 super(Game.SERVER_NICKNAME, MessageType.LOGIN_REPLY);
16 this.nicknameAccepted = nicknameAccepted;
17 this.connectionSuccessful = connectionSuccessful;
18 }
19
20 public boolean isNicknameAccepted() {
21 return nicknameAccepted;
22 }
23
24 public boolean isConnectionSuccessful() {
25 return connectionSuccessful;
26 }
27
28 @Override
29 public String toString() {
30 return "LoginReply{" +
31 "nickname=" + getNickname() +
32 ", nicknameAccepted=" + nicknameAccepted +
33 ", connectionSuccessful=" + connectionSuccessful +
34 '}';
35 }
36 }


According to the CDC nine people die every day because of distracted driving. Optifical is here to fix that.
Try the web demoOptifocal drive is a computer vision application aimed acurately identifying a driver and then proctoring their attention to ensure that they stay alert and focused. By using OpenCV, Dlib, PnP (perspective N point) and SciPy our model is capable of accurately identifying a single face out of many, monitoring their attention, and then taking action when their attention has {drifted}.
We are a team of {passionate} individuals interested in applying the latest technologies to solve challenging real world problems. We are currently working towards training our own Tensorflow deep learning model to more efficiently detect {whether or not someone is paying attention} across a broader range of environments and poses as well as applying more specific {categorizations}. Additionally we are also developing a cost efficient and easy to deploy hardware module that can be installed {anywhere as a digital proctor} {we are also currently optimizing our models to run fast on it as well}


Site
With a Site you publish released Applications and make them accessible from the internet through a REST api, or even better, by using any of the SDKs for rapid development towards your OOPSIE Site. Any released Application can be part of any Site that you have created. This means that you can reuse the applications models and orchestrate them in sites in any way you want. Lets assume you have created some awesome apps and put these in a Site and your customer was really satisfied. You then get the oppertunity to sell in this to another. Just go ahead an create (copy function pending) a new Site with the same configuration and deploy it. Now you will have two satisfied customers, or as many you like.
A site is totally isolated from other sites you have deployed and also within a Site the applications don’t “know” about each other. This is very powerful since you can have some applications inactive for upgrade while others are up running and serving your business, this is called micro service management.
Creating a Site
Hit the menu icon in the top left corner and navigate to the Sites view. Click the blue round button in the bottom right corner and give the new site a suitable name and click ok.
You will now see your new site slide in as a new row. Click the row and you will enter the Site View for the chosen site. Here you will see three panels and some buttons all used to manage your site.
Manage a site
In the General Settings panel you change the name of your site, choose a Production Site and set Origins. Changing name is pretty straight forward but lets talk about the other two properties you can edit.
Production Site
The Production Site listbox lists all available OOPSIE payment plans. At the moment only Free is available.
Origins
In the Origins box you enter url’s that has access to your site. E.g. http://example.com. You can also add a * (star) to allow all urls. Lets say you have a browser client that will access your OOPSIE site for data. The code for the client is fetched from the site http://myclientcode.com and you want only clients from this url to have access to your OOPSIE site data, then you enter the url http://myclientcode.com in the origins box. This is a browser security feature, Cross-Origin Resource Sharing, CORS.
Warning
This will not prevent other types of clients to access the OOPSIE site. You always want to secure your data using the authorization features provided by OOPSIE such as Api Keys or Site Users
Other properties
- Customer ID: Identifies the site owner when making requests to the production site.
- Site ID: Identifies the site when making requests to the production site.
- API url: The url of the produciton site. Shown when a production site is chosen.
These three properties is what you need when accessing the site using REST or any of the SDKs.
Adding An Application
Prerequisites
Create and release an Application
In the Applications panel click ADD APPLICATION and choose app and version. The chosen applications are listed and you can see if they are active or not. Initially apps are inactive and you need to deploy the site an then activate your app. Active means that the app and its resources are accessible from the internet.
Update Application Version
Prerequisites
Create and release an Application Deploy a Site with an application
In the Application panel all your deployed applications are listed. First, make sure that the application you want to upgrade, or downgrade for that matter, is deactivated. You deactivate by swiping the button so it turns red. Click the “UPDATE APPLICATION” button and choose a new version. If the version update could not be fullfilled you will be prompted about the why it could no be updated. Furthermore, in some cases a default value needs to be entered if any attribute is either changed or added. NOte that if you update to a version that has removed an attribute the data for that removed attribute will be lost.
NOT SUPPORTED UPDATES - The most important ones (Not all are listed)
- Changing the name of an attribute is not supported.
- Changing the data type of an attribute is not supported.
- Changing the key and/or value data type of collection attributes.
- Changing the type of a resource is not supported.
Deployment
If everything is configured properly you should be able to swipe the Deployed button and within seconds the site will be deployed, don’t forget to activate your apps if it is the first time you deploy the site. Your site is most likely not yet accessible since you probably configured your resources wiht the auth option on. You need to create an Api Key or Users.
Auth
In the upper right corner an Auth button is available, click to handle API Keys and Users and how these are handled by the site on a request.
-
The Only allow API Keys option tells the site that only requests with an api key can be handled, user requests will be rejected.
-
The Allowed users to register through API option tells the site that, when registering Users, only users with chosen Auths can be registered through API (SDK). A good idea is to NOT let the admin role be registerable through API/clients, since the admin role has access to everything.
Advanced
View Usage
Prerequisites
If auth is enabled on your Resources then you must first create an API Key.
If you want to try it out just head over to the View Usage view by clicking the View Usage button in the upper right corner. This is a Swagger generated documentation of all REST endpoints in your site and gives you the possibility to actually make real REST endpoint calls to the deployed site’s application resource.
The endpoints are grouped by Application/Resource and if you click on the header it will expand and expose the four REST api HTTP methods available.
- GET - Fetch one or more resource entities from resource
- POST - Create a resource entity
- PUT - Save existing resource entity
- DELETE - Delete resoruce entity
You can click on each of these methods an it will open up the endpoint view with information of requst parameters and response. By clicking the Try it out button you will be able to enter data that you want to send together with the request.
- oopsie-customer-id - Prepopulated with the current site’s customerID.
- oopsie-site-id - Prepopulated with the current site’s siteID.
- body - JSON with of the resource’s all settable attributes.
The body is a JSON view of all the settable attributes and can be changed to something like:
{
"name": "Techoopsie AB",
"city": "Växjö"
}
If you have auth enabled you need you api key. Click the padlock on the resource header you want to try and fill in your api key in the box. Now you can click the Execute button and it will make a call to the site and a response will be shown just below the buttons in panel with a response code 201.
Below we see the interesting part, the response body. Along with your posted attribute data you see that id attribute has got a value generated by the API.
{
"name": "Techoopsie AB",
"city": "Växjö",
"id": "52f0d234-9c00-47e3-b595-ac700345e2fb"
}
Entity Identification
- id - Uniquely identifies a specific resource entity.
This is a UUID that you use when you want to later fetch specific entities.
- Previous
- Next


If you experience issues trying to load the IDE, follow these steps:
The internet protection of some anti-virus products block the "Service Workers" that the IDE needs to operate. Kaspersky and Avast are the two products that commonly block the IDE from using Service Workers. These are background threads that improve the IDE's experience.
The DNS settings of some ISPs block Microsoft DNS, so some panels don't load and display the following message: "Server IP address could not be found".
The following resources explain how to change your networks settings:
Your browser may cache data from the old IDE.


Preparation time
less than 30 mins
Cooking time
30 mins to 1 hour
Serves
Serves 6
Tomato soup is a true crowd-pleaser, and even more so when made with chunks of streaky bacon and pinto beans.
Heat the olive oil in a large pan. Fry the bacon and onions in the pan over a moderate heat until coloured.
Roughly chop the tomatoes and add them to the pan when the bacon is starting to crisp and the onion is translucent.
Add the smoked paprika and star anise, and season well with salt and freshly ground black pepper.
Pour in 1 litre/1¾ pints of water and cook over a moderate heat with the lid on for 30 minutes. Stir every 10 minutes.
When 30 minutes have elapsed, tip in the drained pinto beans and cook for a further five minutes.
If you intend to freeze the soup, allow it to cool to room temperature and then fill six freezer bags. Freeze for up to a month.
When you wish to cook the soup, de-frost thoroughly and, when reheating, ensure that that you bring the soup to a vigorous boil.


Navigates back in the platform's history.
Navigates forward in the platform's history.
Changes the browsers URL to the normalized version of the given URL, and pushes a new item onto the platform's history.
Given a string representing a URL, returns the normalized URL path without leading or trailing slashes
Returns the normalized URL path.
Given a string representing a URL, returns the platform-specific external URL path.
If the given URL doesn't begin with a leading slash ('/'
), this method adds one
before normalizing. This method will also add a hash if HashLocationStrategy
is
used, or the APP_BASE_HREF
if the PathLocationStrategy
is in use.
Changes the browsers URL to the normalized version of the given URL, and replaces the top item on the platform's history stack.
Subscribe to the platform's popState
events.
Generated using TypeDoc
Location
is a service that applications can use to interact with a browser's URL. Depending on which LocationStrategy is used,Location
will either persist to the URL's path or the URL's hash segment.Note: it's better to use {@link Router#navigate} service to trigger route changes. Use
Location
only if you need to interact with or create normalized URLs outside of routing.Location
is responsible for normalizing the URL against the application's base href. A normalized URL is absolute from the URL host, includes the application's base href, and has no trailing slash:/my/app/user/123
is normalizedmy/app/user/123
is not normalized/my/app/user/123/
is not normalizedExample
``` import {Component} from 'angular2/core'; import { ROUTER_DIRECTIVES, ROUTER_PROVIDERS, RouteConfig, Location } from 'angular2/router';
({directives: [ROUTER_DIRECTIVES]})
([ {...}, ]) class AppCmp { constructor(location: Location) { location.go('/foo'); } }
bootstrap(AppCmp, [ROUTER_PROVIDERS]); ```