Watermark Generator
The process of embedding a unique and identifying pattern onto the image itself is known as Watermarking. Using digital watermarks, you can overlay your own name, logo, or company brand overtop your original work, thereby protecting the content and attributing yourself as the original creator.
METHODOLOGY
In the above image, you can see the white rohitdubey03.github.io logo has been added as a watermark to the original image. Furthermore, this watermark is semi-transparent, allowing us to see the contents of the background image through the foreground watermark.
This watermark is a PNG image with four channels: a Red channel, a Green channel, a Blue channel, and an Alpha channel used to control the transparency of each of the pixels in the image. Values in our alpha channel can range [0, 255], where a value of 255 is 100% opaque (i.e., not transparent at all) while a value of 0 is 100% transparent. Values that fall between 0 and 255 have varying levels of transparency, where the smaller the alpha value, the more transparent the pixel is.
In order to create these digital watermarks with OpenCV, we leveraged PNG with alpha transparency. Utilizing alpha transparency can be quite tricky, especially since it appears that OpenCV does not automatically mask transparent pixels for each channel. Instead, you’ll need to manually perform this masking yourself by taking the bitwise AND between the input channel and the alpha mask.


|
Hello there!
Here is a special link that will allow you to reset your password. Please note it will expire in one hour for your protection:
Reset Your Password
If you did not request this, please ignore this email and your password will remain unchanged.
Thanks so much for using our services! If you have any questions, or suggestions, please feel free to email us here at<EMAIL_ADDRESS>- The {{appName}} team
|


Hello the world on SSR with VueJS
Home
About
Vue and server side randering are beautiful :)
The page is not found :)


Fully Responsive
This is Photoshop's version of Lorem Ipsum. Proin gravida nibh vel velit auctor aliquet
Full Support
This is Photoshop's version of Lorem Ipsum. Proin gravida nibh vel velit auctor aliquet
This is Photoshop's version of Lorem Ipsum. Proin gravida nibh vel velit auctor aliquet
This is Photoshop's version of Lorem Ipsum. Proin gravida nibh vel velit auctor aliquet


Warrior Lady
问题描述 :
The game has four kinds of "Equipment Card": "Armour", "Weapon", "+1 horse", "-1 horse". Each player has an equipped-item area to hold equipments. A player is allowed to own only one of each of these 4 equipments in the equipped-item area. Equipments can be replaced by one of the same kind. However, after the replacement, the previous ones would be discarded. For simplicity, cards not belong to equipment (tool cards, basic cards and so on) are united as "Other Card" ignoring their functions in this problem.
Sun Shangxiang(Nickname: Xiangxiang), the lady with bow and arrows, is one of the favorable characters in this game. Her 2nd character ability – "Warrior Lady" (枭姬xiāo jī in Chinese) is described below:
Whenever an equipped card is discarded from the equipped-item area, Xiangxiang can immediately draw 2 cards from the deck. Note that Xiangxiang cannot voluntarily remove her equipped items. She can only replace them.
Now it is Xiangxiang’s turn. She has a certain amount of cards of each kind in her hand and her equipped-item area is empty. Given the number of cards of each kind in the deck, assume that every card in the deck will be taken with equal probability, and Xiangxiang will always equip the "Equipment Card" once she gets it. What is the expected number of cards Xiangxiang can draw in her action phase?
输入:
For each case, two lines are given. The first line describes Xiangxiang’s hand cards, 5 integers indicating the number of "Armour", "Weapon", "+1 horse", "-1 horse" and "Other Card" respectively. The second line describes the cards in the deck which has the same format as above. The sum of the 10 integers is no more than 104.
输出:
For each case, two lines are given. The first line describes Xiangxiang’s hand cards, 5 integers indicating the number of "Armour", "Weapon", "+1 horse", "-1 horse" and "Other Card" respectively. The second line describes the cards in the deck which has the same format as above. The sum of the 10 integers is no more than 104.
样例输入:
3 2 0 0 0 0 0 0 0 0 1 0 0 0 5 0 0 0 0 0 9 0 0 0 2 0 0 0 0 1 2
样例输出:
Case 1: 1.00 Case 2: 8.00 Case 3: 2.67HintCase 1: Xiangxiang will stop drawing cards when the deck cards are used up. Case 2: Xiangxiang cannot voluntarily remove her equipped items but replace them, so 5 equipments of the same kind can only give her (5 �C 1) * 2 = 8 cards. Case 3: The probability to draw 3 cards is 2/3, and the probability to draw 2 cards is 1/3. So the answer is 3 * (2/3) + 2 * (1/3) = 8/3.
看了前面的分析，我都不知到说什么了。再不济他要什么就给他什么吧，只要不要命就行！我说的是这个女人哈 ，我把有些东西看得比命还重要~~~~ （你懂的）
看了前面的分析，我都不知到说什么了。再不济他要什么就给他什么吧，只要不要命就行！我说的是这个女人哈 ，我把有些东西看得比命还重要~~~~ （你懂的）
看了前面的分析，我都不知到说什么了。再不济他要什么就给他什么吧，只要不要命就行！我说的是这个女人哈 ，我把有些东西看得比命还重要~~~~ （你懂的）
看了前面的分析，我都不知到说什么了。再不济他要什么就给他什么吧，只要不要命就行！我说的是这个女人哈 ，我把有些东西看得比命还重要~~~~ （你懂的）
看了前面的分析，我都不知到说什么了。再不济他要什么就给他什么吧，只要不要命就行！我说的是这个女人哈 ，我把有些东西看得比命还重要~~~~ （你懂的）
看了前面的分析，我都不知到说什么了。再不济他要什么就给他什么吧，只要不要命就行！我说的是这个女人哈 ，我把有些东西看得比命还重要~~~~ （你懂的）
if(j){
int ans=a ;
for(int x=j-1;x>=0;x–){
if(!a ) break;
ans=min(ans,a );
sum+=ans;
}
}
求解释，，dp的思路是什么呢？
程序员会算法，等于一个古惑仔带了zhi抢啊
真心不错，力顶作者
不太明白DFS的方法
都是一些基础题啊
第二个解法好像不对
已更正。
因为要修改链表头(指针)，所以要用指针的指针
这怎么用Catalan数啊？求解答！
正有此意，欢迎更多的建议~
能不能说一下tmp数组和solve都是干嘛的？
编辑的时候有些不小心了
能告诉我为什么对于每一个m，cnt的值不用更新吗?这儿我想不通啊，谢谢


Substance LAF has turned one year old during a
ten-hour flight over the Atlantic (on April 14) and celebrated this joyous event by providing
even more color themes than before. The Aqua default theme is of no surprise
And along with it comes a variety of bright themes such as Bottle Green and Sunset
cold themes for subdued look such as Olive and Steel Blue
and dark themes (much reworked for the upcoming release 2.3 code-named Firenze) such as
Ebony and Dark Violet
The upcoming release 2.3 features inverted themes (available for all base bright and cold
themes) such as Inverted Aqua and Inverted Sunset
as well as mixed themes such as Bottle Green & Lime Green and Brown & Sun Glare
The latest additions are tinted (shifted towards white), toned (shifted towards gray) and
shaded (shifted towards black) color themes. Illustrated below are the original (Aqua) color
theme, 40% tinted, 40% toned and 40% shaded versions of the same theme:
All of the above plus the theme pack
with additional twenty one base themes brings the potential of tens of thousands of original
color themes to the Java desktop applications. See the
complete theme documentation
for more information and run the WebStart test
application to experience the color themes in action.


MAURITIAN BLOGS
cuisine
back
visit
A tale of passion from my Kitchen - Mauritian Food
P E A C H Y T A L E S
visit
description unavailable
SAVEURS ET EXPERIENCES
visit
Lazy veggy foody
a la as
visit
I write from the consumers’/dinners’ point of view who are willing to spend their hard earned cash. More about my rating system here.
The Sydney Noob
visit
Une blogueuse de food de l'ile maurice toujours en vadrouille
L'atelier de Kristel
visit
Born and raised in sunny Mauritius aka Pearl of the Indian Ocean. I now reside in Sydney in the land down under since Dec 2016. I am a lover of food, hot beverages and all things beautiful.
Beauteafood


In this project, we worked in a pair to create an animal shelter website using HTML and CSS
In this project, we worked in a pair and practiced using columns to create a styled website about decorating
In this project, we worked in a pair to make and style our blogging website
My very first pair project, where we practiced making a list
My first website about my beloved pet, used simple HTML with links and lists
In this project, we worked in a pair to create a website with a list of places to visit, an options for a user to pick their own
In this project, we worked in a pair to create a website for a resort company
In this project, we worked in a pair to make an exact copy of a Wikipedia website
In this project, we worked in a pair to create a website for another resort company


The HelpWindow plugin provides some user documentation that looks as follows:
The contents of the documentation is the same as the one that can be found in the user documentation section of the OpenCOR website. This includes a menu that gets shown whenever you click on the information icon (top right):
In addition to what is shown on the website, the HelpWindow plugin also displays special links, which when clicked send a command to OpenCOR. For example, open the current page both in OpenCOR and on the OpenCOR website. Now, if you check the bold text below, you will see that its contents is slightly different, depending on whether you are reading this in OpenCOR or from the OpenCOR website:
To open the About box, you can either select the Help
| About...
menu or click here...
| Go to the home page | |
| Go back | |
| Go forward | |
| Copy the selection to the clipboard | |
| Reset the size of the help page contents | |
| Zoom in the help page contents | |
| Zoom out the help page contents | |
| Print the help page contents |


About the Texas Butterfly Monitoring Network
The Texas Butterfly Monitoring Network is a Citizen Science Project started in 2018 in cooperation with the greater North American Butterfly Monitoring Network. Participants walk the same route at least nine times over the course of the year and will record every butterfly seen, giving us a comprehensive picture of what butterflies are occurring where throughout the Lone Star State. Texas has more butterflies than any other state in the United States, so long-term monitoring is crucial to understanding butterfly movement and assessing the health of butterfly habitats.
The Texas Butterfly Monitoring Network is designed for both seasoned observers of butterflies and newly interested people just starting butterfly observations! There are provided resources for new members to learn their butterflies, and butterfly watchers of any level are encouraged to try. Monitoring routes can be in cities, in nature areas or parks, or even in local gardens and neighborhoods. The collected data will help advise butterfly conservation plans and will provide scientists with much-needed long-term data, but the activity is also fun and enriching for participants.


Simple tests for oxyzen library. Connect to our demo Firebase database or try oxyzen on your Firebase database.
(This demo is completely static - will work with http://localhost)
(If it's, the first time you login, you will see this page twice and will have to paste your code snippe twice, this is normal and expected result of the login redirect.)
(To connect your firebase to this demo, you may have to add rawgit.com in the authorized oauth domains, in your firebase console.)
(To connect your firebase to this demo, if you already limited the browser api key in the api console, you may have to add rawgit.com as allowed domain, in the api console.)
Try searching for apple then banana, then apple banana.
Searching for parent:key will search for documents having parent attribute equal to that provided.*
Searching for rel:key will search for documents having a rel attribute child equal to that provided.*
Searching for key:key is a shortcut for f$.db.getone(key).*
*key,(in the format "collname-doctitle")


Hiring Youth Director
Youth Director Job Description
The Islamic Association of Raleigh is seeking a full time Youth Director to manage and expand the existing youth programs at the IAR. To see current programs as well as the goals of the IAR Youth, please visit IARyouth.org
Key Areas of Responsibility:
Programs
Create, arrange and implement various activities and events for children and adolescents of the IAR. Work with current staff/volunteers to improve existing programs and create new programs based on the community’s needs. Spend time educating the community on Islamic knowledge and values.
Training and Supervision
The youth director must be able to recruit volunteers, interview prospective staff, create work schedules and evaluate performance in order to build a successful and supportive team. The youth director may be expected to train new personnel and lead or organize ongoing educational courses for staff/volunteers. The youth director shall also undergo occasional personal development and training programs.
Budgeting
Create, manage and operate within a budget determined by the IAR Shura. Maintain financial accounts and create reports to submit to the IAR Shura on an annual basis.
Marketing
The youth director must learn and utilize industry standards for marketing. Market to increase enrollment and network as needed with local Muslim youth organizations. The youth director is expected to work with local school districts, community leaders, and parents to distribute information about IAR youth programs.
Core skills
• Project management is essential skill set the candidate must demonstrate
• Be aware of the challenges faced by the Muslim youth
• Relate well to youth from elementary to high school ages
• Ability to collaborate with college MSAs, masjid leadership, and key community members
• Strong Islamic Character with good communication, organizational and leadership abilities
• B.A./B.S. Degree or equivalent experience in youth development, psychology or related field and/or Islamic studies preferred
• A strong understanding of Islamic etiquettes, manners, and appropriate behavior
• Be adaptive to irregular hours due to timings of events and dates of special events (Ramadan, jummah, etc)
Salary
Salary based on qualifications with bonus based on performance and possible sign on bonus.
Please send your resume with a cover letter to youth@raleighmasjid.org


--- layout: post title: 'My Utterly Unscientific Analysis Based on a Four-Minute Foray into Chatroulette Just So I Can Say "Yes, I've Been There. I've Witnessed Genitalia. And I've Blogged about It.' sourceurl: http://audreywatters.com/2010/03/16/my-utterly-unscientific-analysis-based-on-a-four-minute-foray-into-chatroulette-just-so-i-can-say-yes-ive-been-there-ive-witnessed-genitalia-and-i%e2%80%99ve-blogged-about-it-%e2%80%9d/ image: ---
Thankfully, this post no longer contains content.


13.1 Scatter plots
A scatter plot has points that show the relationship between two sets of data.
- Simple scatter plot
# Create 2 vectors
<- 1:10
dat1 <- dat1^2
dat2
# Plot x against y
plot(x=dat1, y=dat2)
Notes:
If one vector only is given as an input, it will be plotted against the indices of each element
x and y can also be the columns of a matrix or a dataframe, e.g.
plot(x=mat[,1], y=mat[,2])
.Add arguments:
- col: color
- pch: type of point
- type: “l” for line, “p” for point, “b” for both point and line
- main: title of the plot
- cex: size of points (default: 1)
plot(x=dat1, y=dat2,
col="red",
pch=2,
type="b",
main="a pretty scatter plot")
- You can play a bit:
plot(x=dat1, y=dat2,
col=1:10,
pch=1:10,
cex=1:10,
type="b",
main="an even prettier scatter plot")
Different type of points that you can use:
About colors
- Color codes 1 to 8 are taken from the palette() function and respectively code for:
# see the 8-color palette:
palette()
| code | color |
|---|---|
| 1 | black |
| 2 | #DF536B |
| 3 | #61D04F |
| 4 | #2297E6 |
| 5 | #28E2E5 |
| 6 | #CD0BBC |
| 7 | #F5C710 |
| 8 | gray62 |
- There is a larger set of build-in colors that you can use:
# see all 657 possible build-in colors:
colors()
# looking for blue only? You can pick from 66 blueish options:
grep(pattern="blue", x=colors(), value=TRUE)
You can also find them here.
- change the default palette with one of your choice:
palette(grep(pattern="blue", x=colors(), value=TRUE))
- change the palette back to default:
palette("default")
HANDS-ON
The datasets package (included in the base installation of R) contains pre-made / built-in datasets. You can see them in Environment -> change Global Environment to package:datasets.
We will use data set Loblolly (growth of Loblolly pine trees): you can check dim(Loblolly)
, head(Loblolly)
:
- Plot age (x-axis) versus height (y-axis).
- Change the title.
- Change the points type to a full triangle (see table of codes / shapes above).
- Change the points color to the color of your choice.
- Change the points size to 0.4.
Answer
# Plot age (x-axis) versus height (y-axis).
plot(x=Loblolly$age, y=Loblolly$height)
# Change the title.
plot(x=Loblolly$age, y=Loblolly$height,
main="Age and weight of Loblolly pine trees")
# Change the points type to a full triangle.
plot(x=Loblolly$age, y=Loblolly$height,
main="Age and weight of Loblolly pine trees",
pch=17)
# Change the points color.
plot(x=Loblolly$age, y=Loblolly$height,
main="Age and weight of Loblolly pine trees",
pch=17,
col="red")
# Change the points size to 0.4.
plot(x=Loblolly$age, y=Loblolly$height,
main="Age and weight of Loblolly pine trees",
pch=17,
col="red",
cex=0.4)
EXTRA: you can change the color of the points depending on the value they represent.
For example, let’s say we want to color the “age 10” points in red and the other ones in black.
You can look up for a way to do it, or look at one possibility in the answer below:
Answer
# Add an extra column named colors to Loblolly that contains, for example, only black values (store in new data frame Loblolly2).
<- cbind(Loblolly, colors="black")
Loblolly2 # Set column colors to "red" in the rows that correspond to age 10.
$colors[Loblolly2$age == 10] <- "red"
Loblolly2# Set parameter `col` of `plot()` with `Loblolly2$colors`.
plot(x=Loblolly2$age, y=Loblolly2$height,
col=Loblolly2$colors)


Toggle navigation
Soheil Eshghi
Publications
Research
Teaching
Professional
Blog
Toggle navigation
Soheil Eshghi
Publications
Research
Teaching
Professional
Blog
Soheil Eshghi's Blog
10 Aug 2017
»
2 cents (and 13 points) on good academic talks
24 Jul 2017
»
YINS summer research seminar
17 Jul 2017
»
Epidemics - to act early or to act late?
15 Jul 2017
»
New post format - arXiv
31 Mar 2016
»
My new website


Analytics Report: Week of 8/19 - 8/26
Landing Page View
362
Total Page Views
362
Total Page Views
362
Total Page Views
362
Total Page Views
Data Title
Data Value
Link to job description
1234
Schedule appointment link from staff directory
1234
Schedule Appointment Success
1234
Call To Action
1234
Online Banking Login
1234
Footer Link
1234
Primary Nav Link
1234
Start Chat (footer)
1234
Click to Call (footer)
1234
Card Links (home page uses these)
1234
Share Blog Link (social icons after each post)
1234
404
1234
MQLF Submit
1234
MQLF Completes
1234
Make A Payment
1234
A Second Page View
362
Total Page Views
362
Total Page Views
362
Total Page Views
362
Total Page Views
Data Title
Data Value
Link to job description
1234
Schedule appointment link from staff directory
1234
Schedule Appointment Success
1234
Call To Action
1234
Online Banking Login
1234
Footer Link
1234
Primary Nav Link
1234
Start Chat (footer)
1234
Click to Call (footer)
1234
Card Links (home page uses these)
1234
Share Blog Link (social icons after each post)
1234
404
1234
MQLF Submit
1234
MQLF Completes
1234
Make A Payment
1234


If your profile was visible before, it is now hidden.
If your profile was hidden before, it is now visible.


How much will the Labour manifesto actually cost?
Jeremy Corbyn has unveiled his General Election manifesto with a radical pledge to invest in public services, tackle climate change and renationalise key utilities.
The Labour leader said he was offering ‘real change’ as he vowed to bring mail, rail, water and energy back into public ownership and make broadband free for all homes and businesses by 2030.
Mr Corbyn says his plans are ‘fully costed’ but his manifesto has already been described as ‘extreme and unrealistic’ by fact-checkers, while Boris Johnson said it had no ‘economic credibility’.
But how much will it actually cost and what are the party’s main policies?
HEALTH
Labour wants to increase the NHS budget by 4.3 per cent on average per year and put a ‘lifetime cap’ on the amount people have to pay for social care.
Advertisement Advertisement
This budget rise for the NHS would see Labour spend 2.3 per cent more than the current Government.
The Institute for Fiscal Studies (IFS) says spending under Labour would increase by an additional £3.2 billion in real terms over four years, reaching £143.5 billion in 2023/24.
An extra £1.6 billion a year is being promised to ensure new standards for mental health, with another £2 billion set aside to modernise hospital facilities.
Other measures include free personal care for those aged over 65, free annual dental check-ups and free prescriptions in England, while carers can also expect an increase in the weekly carer’s allowance.
There will also be an end to all hospital car park charges for patients, staff and visitors.
HOUSING
Mr Corbyn has promised to spend £75 billion on affordable homes – the biggest council house building programme since the Second World War.
This will see 150,000 new homes a year, with 100,000 of them built by councils, and 50,000 classed as ‘genuinely affordable’.
The investment is set to come out of the party’s £150 billion ‘social transformation fund’ that would pay towards upgrades for schools and hospitals, as well as moving the investment arm of the Treasury to the north of England.
A £1 billion fire safety fund would be introduced to fit sprinklers and other safety measures in council and housing association tower blocks to avoid a repeat of the Grenfell Tower tragedy.
Much of the money would be allocated over a five-year period and half of the pot would go towards paying for the proposed house-building boom.
Advertisement Advertisement
ENVIRONMENT
Labour has downgraded its promise to reach ‘net zero’ emissions by 2030, to delivering a ‘substantial majority’ of emissions cuts by 2030.
The manifesto promises to generate 90 per cent of electricity and 50 per cent of heat from renewable and low-carbon sources over the next 11 years.
Mr Corbyn says it will be backed by a £250 billion ‘green transformation fund’ to shift the UK towards a green economy, funding renewables, low-carbon energy and transport, wildlife and environmental restoration.
The green fund would include providing loans for people to buy electric cars, investment in wind farms and grants for home insulation, while there would be an ‘immediate and permanent’ ban on fracking.
A windfall tax on oil companies will help cover the costs of climate damage, the party has claimed.
The social and green transformation funds combined would take borrowing to an extra £55 billion per year, on top of the current Government levels of £47 billion of borrowing in 2019/20.
EDUCATION
The party plans to increase school spending by £10.5 billion over three years while scrapping tuition fees at a cost of £7.2 billion.
It comes after tuition fees were raised to £9,000 per year in 2012, which caused a huge backlash and a series of student protests.
Labour is also planning to give all two, three and four-year-olds 30 hours of free childcare a week by the end of the Parliament at an estimated cost of £5.6 billion a year.
The IFS said Labour’s proposals would mean a 15 per cent real terms increase in per pupil funding over the next three years.
Advertisement
JOBS
The so-called ‘green industrial revolution’ is designed to create one million jobs and another 800,000 apprenticeships in the UK.
A commitment has been made to introduce a ‘real living wage’ of at least £10-an-hour while ending zero hours contracts and strengthening trade union rights.
Public sector workers would also see an immediate 5 per cent boost in pay, with year-on-year above-inflation pay rises to follow.
The total cost of Labour benefit changes is estimated by the party to cost £8.4 billion a year.
NATIONALISATION
Mr Corbyn has vowed to stop the ‘great rip off’ by bringing rail, mail, water and energy into public ownership.
Labour has not said how much it will cost to renationalise the key utilities but according to analysis by the CBI, the estimated up-front cost will start at £196 billion.
The manifesto also fails to cost a pledge to nationalise broadband to deliver free superfast internet to every house and business in the country.
Although the cost of acquiring BT Openreach, the company currently tasked with rolling out high-speed broadband across the UK, has previously been estimated at £20 billion.
TAX HIKES
Labour will introduce 12 tax changes to raise an additional £83 billion a year to fund its spending commitments.
Corporation tax will rise to 26 per cent to raise £24 billion, and a new financial transactions tax will raise £8.8 billion.
Labour say they will also raise £14 billion with a tax on capital gains and dividends in line with income tax rates.
Advertisement
A second homes tax, which will be equivalent to 200 per cent of the property’s council tax bill, will be introduced, while Conservative cuts to inheritance tax will be reversed.
Additional income tax paid by those earning more than £80,000 and a hit on those classified as ‘super-rich’ – earners taking home more than £125,000 – would rake in £5.4 billion.
Other incentives, such as hammering down on tax evasion, and imposing VAT on private schools, would bring that pot up to the required £83 billion, according to Shadow Chancellor John McDonnell’s workings.
IFS director Paul Johnson said it’s ‘quite doubtful’ Labour would be able to raise around £80 billion from tax rises.
Got a story for Metro.co.uk?
Get in touch with our news team by emailing us at<EMAIL_ADDRESS>For more stories like this, check our news page.


Like I stated before Bianox is a pro at getting huge megacollabs done. Just recently we saw this with Kenos and Zodiac. Bianox's signature style is a very flashy and bright glowy. This makes for some very interesting levels and parts. Lets take a look at his latest level and latest released megacollab.
Zodiac was originally a megacollab hosted by RicoLP. Since its conception it has been taken over by Bianox and verified by Xander. This level features Rustam, Samifying and many more high profile creators. It is also groundbreaking in difficulty standards, as if rated it could beat BloodLust.
Memory, as the name suggests, is Bianox's modern take on old memory levels. This features a lot of his signature style as it is a solo level. Most of the design is simple, but pleasing on the eye, due to its bright colors. Overall, this is a great take on old memory levels


Find the perfect artist for your private or publice event
From the different categories, find the artist suitable to your needs and wants. You are free to choose between musicians for your entertainment, painters for your gallery exhibition and cinematographers to help record or capture your event.
Step 1
Click on the artist to see more information concerning them and click book to send us an email from your account. The email will inform us on when you want your preferred artist to grace your event.
Step 2
We will send you an email to confirm whether the artist is available for your date and time. Your confirmation will be received once the booking fee for the artist is received.
Step 3
This feature will be implemented further on as we increase current artists on the page.
Connecting to the mpesa api in order to automate payment of all booking fees will be an essential step in the future.
Foreseeable growth will also require an authorised terms and conditions document authenticated by law to ensure freedom from fraud and liabilty if any aspects arise
© 2019 by ATHENA


:1: IN THE HIGH COURT OF KARNATAKA DHARWAD BENCH ON THE 16TH DAY OF APRIL, 2018 BEFORE THE HON'BLE MR. JUSTICE JOHN MICHAEL CUNHA CRIMINAL APPEAL NO.100190 OF 2016 BETWEEN THE KARNATAKA STATE POLLUTION CONTROL BOARD REPRESENTED BY ITS REGIONAL OFFICER, (DAVANAGERE) ... APPELLANT (BY SRI. GURUDEV I. GACHCHINAMATH, ADV.) AND 1.  SHRI.SHAILENDRA K. JAIN, EXECUTIVE PRESIDENT, GRASIM INDUSTRIES LTD., (GRASILENCE DIVISION) KUMARAPATTANAM-581123. RANEBENNUR, DIST: HAVERI. ... RESPONDENTS (BY SRI. GANGADHAR S. HOSAKERI, ADV.  THIS CRIMINAL APPEAL COMING ON FOR ORDERS THIS DAY, THE COURT DELIVERED THE FOLLOWING: :3: JUDGMENT
This appeal is directed against the judgment and order dated 31.07.2015 passed by the Additional Civil Judge and II Additional JMFC, Ranebennur, whereby the learned Magistrate has acquitted the respondents - accused of the offences punishable under Sections 43 and 44 of Karnataka Water Pollution and Control Act, 1974.
2. The case of the prosecution is that accused No.1 is a company incorporated under Gwalior Company's Act, within the meaning of Company under the Water (Prevention and Control of Pollution) Act, 1974. Accused No.2 is the Executive President, who managed the entire affairs of the above units. Since 31.12.1989, the accused have been discharging effluents into the river Tungabhadra without consent, in violation of the provisions of Section 25(1) read with Section 26 of the Water (Prevention and Control of Pollution) Act, 1974. Further, by discharging trade effluents in excess of tolerance limits, the accused have violated Section 25(4) of the Act, rendering them :4: liable for conviction under Sections 43 and 44 of the Water (Prevention and Control of Pollution) Act, 1974.
3. Before the Trial Court, accused denied the charges and claimed trial. The complainant examined the Executive Engineer of Pollution Control Board as P.W.1 and produced in evidence 27 documents. However, he did not tender himself for cross-examination. In paragraph 15 of the impugned judgment, the learned trial Judge has noted that the evidence of P.W.1 cannot be looked into.
4. The prosecution has not examined any other witness other than P.W.1, in proof of the allegations levelled against the accused or in proof of the documents produced by it. As the evidence of P.W.1 stands eschewed from record, there is absolutely no material whatsoever to substantiate the offences charged against the accused. If for any reason, P.W.1 was not in a position to appear before the Court for the purpose of cross-examination, the complainant could have examined any other officials or :5: could have examined the authors of the documents sought to be produced in evidence. The impugned judgment reveals that the complainant did not even seek for an opportunity to examine any other witness which indicates total negligence and carelessness on the part of the officers of the complainant in conducting the case. In the absence of any evidence, the Courts are handicapped to record any finding either in respect of the allegations made against the accused or with regard to the documents relied on by the prosecution.
5. The complainant having failed to substantiate the charges by producing any evidence, much less any cogent evidence, the Trial Court was justified in acquitting the accused. Though the learned counsel for the appellant contends that the accused did not obtain the requisite consent from 31.12.1989 onwards which itself is an offence, yet in the absence of any material to this effect and the said circumstance having not been put to the accused in his examination under Section 313 of Cr.P.C., :6: solely on the basis of the oral submission of the learned counsel, the impugned judgment cannot be reversed.
6. I do not find any merit in the contentions urged in the memorandum of appeal. The appellant having failed to adduce any evidence in support of the charges levelled against the accused, the appeal is liable to be dismissed.
Accordingly, the appeal is dismissed.
In view of the said order, I.A. No.1/2017 and I.A. No.2/2017 do not survive for consideration and the same are dismissed.
Sd/-
JUDGE Rsh


NFL playoff clinching scenarios for 49ers, Saints, Patriots in Week 13
by Tadd HaislopNFL playoff clinching scenarios already are in play, and we still have five weeks remaining in the 2019 regular season. This is a testament to how strong the league's best teams have been this season.
It should come as no surprise that the two teams with 10-1 records, the Patriots and 49ers, are among those that have the year's first chances to clinch spots in the NFL playoff picture. But the 9-2 Saints will have the first chance.
New Orleans will play in Atlanta on Thanksgiving Night, and the Saints with a win would clinch the NFC South title for the third consecutive year. Even if the Saints and Falcons tie Thursday night, New Orleans still could clinch the division this week with a Carolina loss to Washington on Sunday.
MORE NFL STANDINGS:
Current playoff picture | Updated draft order
Because they have divisional competition from the Seahawks and Bills, respectively, the 49ers and Patriots can't clinch their divisions this week, but they can secure playoff spots. Both will need a little help, with San Francisco needed just a win and a LA Rams loss to Arizona to officially reach the postseason.
Easier said than done, though, for the 49ers against the red-hot Ravens. Baltimore is sitting pretty at 9-2, and although it can't clinch a playoff spot in Week 13, the Ravens will have some clinching scenarios next week should they take care of the 49ers at home.
Below are all the clinching scenarios for the 49ers, Saints and Patriots in Week 13.
NFL playoff clinching scenarios for Week 13
-
San Francisco 49ers
(at Ravens)
49ers clinch playoff berth with:
- 49ers win and Rams loss or tie OR
- 49ers tie and Rams loss
-
New Orleans Saints
(at Falcons)
Saints clinch NFC South title with:
- Saints win OR
- Saints tie and Panthers loss or tie
-
New England Patriots
(at Texans)
Patriots clinch playoff berth with:
- Patriots win and Raiders loss or tie OR
- Patriots win and Steelers loss or tie OR
- Patriots tie and Raiders loss and Steelers loss OR
- Patriots tie and Raiders loss and Colts loss OR
- Patriots tie and Steelers loss and Colts loss
WEEK 13 NFL PICKS:
Against the spread | Straight-up predictions
AFC playoff picture
- Patriots (10-1)
- Ravens (9-2)
- Texans (7-4)
- Chiefs (7-4)
- Bills (8-3)
- Steelers (6-5)
In the hunt: Raiders (6-5), Colts (6-5), Titans (6-5), Browns (5-6)
NFC playoff picture
- 49ers (10-1)
- Saints (9-2)
- Packers (8-3)
- Cowboys (6-5)
- Seahawks (9-2)
- Vikings (8-3)
In the hunt: Rams (6-5), Bears (5-6), Eagles (5-6), Panthers (5-6), Buccaneers (4-7)


In recent years, ecologists and biologists have increasingly relied on digital video and image-based methods to examine and monitor marine habitats. These data streams are routinely collected by underwater platforms including Baited Remote Underwater Video Systems (BRUVS), Autonomous Underwater Vehicles (AUV), Remotely Operated Vehicles (ROV) and Underwater Towed Video (UTV) systems. Transforming visual data into quantitative information for science and policy decisions, requires substantial effort by human experts. However, there is currently no standardised approach for the cataloguing, annotation, classification and analysis of this imagery. Different research groups tend to handle the collected data in different ways, using different sampling techniques, different annotation tools and even referring to the same taxa by different names. This makes comparison across disparate sites difficult, resulting in little data re-use amongst groups. It also presents a significant barrier to asking ‘big picture’ questions that could be answered if quantitative data was available in a consistent format in a centralized repository.
Squidle is a web-based framework that aims to facilitate the exploration, management and annotation of marine imagery. We are working closely with members of the marine science community to create a streamlined, user-friendly interface that integrates sophisticated map-based data management tools with an advanced annotation system. Users are able to quickly select data using advanced queries (eg: depth, altitude, date, deployment or bounding box), which they can then subsample and annotate using a selection of standardised, agreed upon methods. The interface will be extended to incorporate machine learning tools for automated clustering and supervised classification, which will serve to streamline and enhance data exploration, subsetting and annotation. Data import & export tools will make it easier to import existing labels from commonly used annotation programs (eg CPCe), and also provide reporting tools for summaries and statistics. The project aims to deliver a reliable, advanced and easy-to-use web-based framework that facilitates direct access to survey data in an effort to reduce the latency between collecting and interpreting marine imagery.
This website is currently under development by the Marine Robotics group at the Australian Centre for Field Robotics. It is still a work in progress, and at this stage we have mainly been focussing on the annotation interface. The automated tools are still in the pipeline. There may still be a few bugs and todos, so any feedback and comments would be greatly appreciated.
Ariell Friedman is the primary architect and software developer. Ariell has a PhD in automated interpretation of benthic imagery and has extensive experience in machine learning, computer vision and active learning. He also has over a decade of experience in web development and user interface design. He has worked closely with members from the marine science community and has experience creating software tools and data products that assist and facilitate marine science.
Stefan Williams is the project manager. Stefan has had over a decade of experience working with autonomous underwater vehicles and currently runs the Marine Robotics group at the Australian Centre for Field Robotics, which operates the IMOS AUV facility. He has extensive experience conducting benthic surveys and with the challenges involved in working with benthic image data. He has worked closely with members of the marine science community and has supervised numerous postgraduate and postdoctoral research projects in the areas of machine learning.
Lachlan Toohey has been instrumental in much of backend and API development. Lachlan is a PhD student at the Australian Centre for Field Robotics at the University of Sydney, Australia. His research topic concerns algorithms enabling sharing of information between robots to better determine their position in environments where communication is limited.
Thanks goes to Oscar Pizarro for the many good ideas and insights throughout the development process.
Also thanks goes to Renata Ferrari, Thomas Bridge, and Ezequiel Marzinelli for user feedback and testing.


Trump's inauguration speech vs. reality
It’s been one year since President Trump promised to bring an end to the “American carnage” he described in his apocalyptic inauguration speech. Here’s a look back at Trump’s words and where we are now.
Trump’s first year in the White House has seen victories for the populist President: a massive tax overhaul, the appointment of a young conservative jurist to the Supreme Court, the withdrawal from an international climate accord and a somewhat steady economy.
But there have been hiccups. Trump's efforts to repeal Obamacare crashed and burned in Congress, Americans feel more divided than at any other time in recent memory, no infrastructure plan has been revealed and Trump has the lowest approval rating of any President in their first year since 1945.
Below is an annotated transcript of Trump’s inaugural address.
Chief Justice Roberts, President Carter, President Clinton, President Bush, President Obama, fellow Americans, and people of the world: thank you.
We, the citizens of America, are now joined in a great national effort to rebuild our country and to restore its promise for all of our people.
Together, we will determine the course of America and the world for years to come. We will face challenges. We will confront hardships. But we will get the job done.
Every four years, we gather on these steps to carry out the orderly and peaceful transfer of power, and we are grateful to President Obama and First Lady Michelle Obama for their gracious aid throughout this transition. They have been magnificent.
Today’s ceremony, however, has very special meaning. Because today we are not merely transferring power from one Administration to another, or from one party to another – but we are transferring power from Washington, D.C. and giving it back to you, the American People.
Despite Trump’s populist message, he has assembled a cabinet of career conservatives that historians say is the richest in U.S. history. He has also embraced the mainline Republicans in order to pass a tax plan that benefits the elite. And, as many pointed out, he sounded a lot like a Batman villain:
For too long, a small group in our nation’s Capital has reaped the rewards of government while the people have borne the cost.
Trump’s record during his first year was spotty, but his victories align with mainstream Republicans regarding tax cuts, pro-business policies, curbs on environmental and safety regulations, immigration and healthcare.
Washington flourished – but the people did not share in its wealth.
According to a report from the Tax Policy Center, half of all American taxpayers will be paying more in 10 years under the Trump’s tax plan than they are now.
Politicians prospered – but the jobs left, and the factories closed.
New jobs numbers released earlier this month showed the country added 2 million jobs in 2017 -- another robust year of growth and a reason for Trump to tout the strong economy, but the rate of job growth is down slightly from the last several years.
The establishment protected itself, but not the citizens of our country.
The Trump administration has rescinded several regulations meant to protect workers, average Americans and the environment. Trump has introduced rules to rollback offshore drilling regulations put in place following the 2010 Deepwater Horizon disaster that killed 11 people and caused the worst oil spill in American history and overturned the so-called net neutrality regulations that treated internet service providers like public utilities.
Their victories have not been your victories; their triumphs have not been your triumphs; and while they celebrated in our nation’s Capital, there was little to celebrate for struggling families all across our land.
That all changes – starting right here, and right now, because this moment is your moment: it belongs to you.
It belongs to everyone gathered here today and everyone watching all across America. This is your day. This is your celebration. And this, the United States of America, is your country.
What truly matters is not which party controls our government, but whether our government is controlled by the people.
January 20th 2017, will be remembered as the day the people became the rulers of this nation again.
Trump triumphantly mocked previous administrations as former President Carter, President Clinton, President George W. Bush and President Obama stood behind him. Bush, not known for his elocution, gave a grave assessment of the speech. “That was some weird s--t,” he reportedly told several people.
The forgotten men and women of our country will be forgotten no longer.
The cornerstone of Trump’s populist message rings hollow one year on as Trump’s Twitter habit, his crass language and his defense of white nationalists have all led to deeper divisions among Americans. Trump’s base, including the alt-right, embraced and defended the President’s recent vulgar rhetoric on African nations. Fox News host Jesse Watters noted that “this is how the forgotten men and women in America talk at the bar.”
.@JesseBWatters on @POTUS' 's---hole' remarks "This doesn't move the needle at all. This is who Trump is. He doesn't care. He shoots from the hip. And if he offends some people, fine. There's so many more offensive things that are happening in this world." https://t.co/Z8lagBViYe pic.twitter.com/syst3qtlls
— Fox News (@FoxNews) January 11, 2018
Everyone is listening to you now.
You came by the tens of millions to become part of a historic movement the likes of which the world has never seen before.
At the center of this movement is a crucial conviction: that a nation exists to serve its citizens.
Americans want great schools for their children, safe neighborhoods for their families, and good jobs for themselves. These are the just and reasonable demands of a righteous public.
But for too many of our citizens, a different reality exists: Mothers and children trapped in poverty in our inner cities; rusted-out factories scattered like tombstones across the landscape of our nation; an education system, flush with cash, but which leaves our young and beautiful students deprived of knowledge; and the crime and gangs and drugs that have stolen too many lives and robbed our country of so much unrealized potential.
Trump's grim portrait of an apocalyptic American landscape bears little resemblance to reality. Overall, crime is half what it was in the early 1990s. Homicides are less than half of what they were in the 1980s and 90s, according to factcheck.org.
This American carnage stops right here and stops right now.
The phrase “American carnage,” the dark heart of Trump's inauguration speech, was relentlessly mocked for its dark and despondent view of the state of the country.
BREAKING: Mark Burnett announces new reality TV show called “American Carnage”
— Taegan Goddard (@politicalwire) January 20, 2017
This American Carnage was Ira Glass' original title.
— Michael Weiss (@michaeldweiss) January 20, 2017
American Carnage sounds like a slasher movie that got 30% on Rotten Tomatoes
— Tommy Vietor (@TVietor08) January 20, 2017
We are one nation – and their pain is our pain. Their dreams are our dreams; and their success will be our success. We share one heart, one home, and one glorious destiny.
The oath of office I take today is an oath of allegiance to all Americans.
According to a recent YouGov/CBS News poll, three in four Americans believe that the country is divided.
A new study by the Pew Research Center found that partisan divisions are now much more important than religious or educational ones in driving political views.
For many decades, we’ve enriched foreign industry at the expense of American industry;
Subsidized the armies of other countries while allowing for the very sad depletion of our military;
We’ve defended other nation’s borders while refusing to defend our own;
Trump’s much ballyhooed border wall has yet to be built. The President is petitioning Congress to supply funds for the partition despite campaign promises that Mexico would pay for it.
And spent trillions of dollars overseas while America’s infrastructure has fallen into disrepair and decay.
American infrastructure remains neglected and underfunded and Trump has yet to roll out his highly-anticipated plan. The White House’s failed “infrastructure week” in June was a disaster of public relations as no details, budgets or blueprints were unveiled. Instead, the initiative was overshadowed by Trump’s tweets about his travel ban and fired FBI director James Comey’s Capitol Hill testimony.
We’ve made other countries rich while the wealth, strength, and confidence of our country has disappeared over the horizon.
One by one, the factories shuttered and left our shores, with not even a thought about the millions upon millions of American workers left behind.
Despite the narrative of lost jobs, some measures show that the manufacturing industry is thriving in the U.S. What's known as the industry's ‘total real output,’ the value of all the goods it produces, has been hovering near an all-time high for three years.
The wealth of our middle class has been ripped from their homes and then redistributed across the entire world.
The GOP tax plan, Trump’s singular legislative accomplishment, will knock most middle class families right in the wallet within a decade. Despite short-term savings, around 50% of taxpayers will see a tax hike by 2027, according to The Tax Policy Center.
But that is the past. And now we are looking only to the future.
We assembled here today are issuing a new decree to be heard in every city, in every foreign capital, and in every hall of power.
From this day forward, a new vision will govern our land.
From this moment on, it’s going to be America First.
The phrase "America First" has a dark history, first being associated with an anti-Semitic group that counted Charles Lindbergh and future Supreme Court Justice Potter Stewart as members and also as a campaign slogan for Pat Buchanan. Buchanan’s 2000 presidential bid as a Reform candidate was mocked by Trump. He called the perennial candidate a “Hitler lover.”
Every decision on trade, on taxes, on immigration, on foreign affairs, will be made to benefit American workers and American families.
We must protect our borders from the ravages of other countries making our products, stealing our companies, and destroying our jobs. Protection will lead to great prosperity and strength.
I will fight for you with every breath in my body – and I will never, ever let you down.
America will start winning again, winning like never before.
We will bring back our jobs. We will bring back our borders. We will bring back our wealth.
We will build new roads, and highways, and bridges and airports, and tunnels, and railways all across our wonderful nation.
The White House is planning a late January roll out of the President's infrastructure plan leading up to his first State of the Union address on Jan. 30.
We will get our people off of welfare and back to work – rebuilding our country with American hands and American labor.
Trump is reportedly preparing a complete review of federal social welfare programs including food stamps, Medicaid and housing benefits. Kentucky, one of the poorest states in the country, became the first state to get federal approval to impose work requirements in the Medicaid program last week. Eight other states have pending waiver requests for similar conditions.
Six in ten Medicaid adults are already working, according to the Kaiser Family Foundation. Republicans and the Trump administration want to cut so-called entitlement programs to help cover the cost of their massive tax program. But they could face a backlash at the polls in November.
We will follow two simple rules: Buy American and Hire American.
Just a reminder, most Trump Organization products are made overseas.
We will seek friendship and goodwill with the nations of the world – but we do so with the understanding that it is the right of all nations to put their own interests first.
Trump's first year of foreign policy has been a doozy. He has traded threats with North Korea’s Kim Jong-un on Twitter and pulled the U.S. out of the Paris climate accord. He exchanged aggressive handshakes with world leaders and called for warmer relations with Russia, even casually telling a Kremlin representative that “great pressure” was relieved after he fired “nutjob” FBI director James Comey.
We do not seek to impose our way of life on anyone, but rather to let it shine as an example for everyone to follow.
The leader of the American Foreign Service Association said in November the Trump administration is crippling U.S. diplomacy through reductions to senior positions across the State Department.
We will reinforce old alliances and form new ones – and unite the civilized world against Radical Islamic Terrorism, which we will eradicate completely from the face of the Earth.
Despite essentially continuing the strategy set forth under Obama, Trump has taken credit for the fact that ISIS is in retreat.
“I totally changed rules of engagement. I totally changed our military, I totally changed the attitudes of the military and they have done a fantastic job,” Trump said on “The Chris Plante Show” in October.

When you open your heart to patriotism, there is no room for prejudice.

Trump reportedly told lawmakers working on an immigration deal that he didn’t understand why the U.S. would take so many people from “shithole” countries in Africa over places like Norway.
In August, after a violent white nationalist rally left a counter-protester dead, Trump blamed “both sides” for the conflict and added that there were “very fine people” among those marching alongside neo-Nazis.
The Bible tells us, “how good and pleasant it is when God’s people live together in unity.”
We must speak our minds openly, debate our disagreements honestly, but always pursue solidarity.
When America is united, America is totally unstoppable.
There should be no fear – we are protected, and we will always be protected.
We will be protected by the great men and women of our military and law enforcement and, most importantly, we are protected by God.
Finally, we must think big and dream even bigger. In America, we understand that a nation is only living as long as it is striving.
We will no longer accept politicians who are all talk and no action – constantly complaining but never doing anything about it.
President trump boasted at the end of 2017 that his administration “signed more legislation than anybody.”
According to govtrack.us, Trump ranks last in legislation signed among post-World War II Presidents in their first calendar year.
The time for empty talk is over. Now arrives the hour of action.
Do not let anyone tell you it cannot be done. No challenge can match the heart and fight and spirit of America.
We will not fail. Our country will thrive and prosper again.
We stand at the birth of a new millennium, ready to unlock the mysteries of space, to free the Earth from the miseries of disease, and to harness the energies, industries and technologies of tomorrow.
A new national pride will stir our souls, lift our sights, and heal our divisions.
It is time to remember that old wisdom our soldiers will never forget: that whether we are black or brown or white, we all bleed the same red blood of patriots, we all enjoy the same glorious freedoms, and we all salute the same great American Flag.
Trump's over-the-top response to NFL players who kneeled in protest during the national anthem peaked during a fiery Alabama speech in which he encouraged owners to "get that son of a b---h off the field right now."
The President spent months deriding the protests, meant to bring awareness to police treatment of African American men and racial injustice, as disrespectful to the flag and anthem.
And whether a child is born in the urban sprawl of Detroit or the windswept plains of Nebraska, they look up at the same night sky, they fill their heart with the same dreams, and they are infused with the breath of life by the same almighty Creator.
So to all Americans, in every city near and far, small and large, from mountain to mountain, and from ocean to ocean, hear these words:
You will never be ignored again.
 And your courage and goodness and love will forever guide us along the way.
Together, we will make America strong again.
We will make America wealthy again.
We will make America proud again.
We will make America safe again.
And, yes, together, we will make America great again. Thank you, God bless you, and God bless America.
NEXT: Trump's 2016 election-night victory speech vs. reality.


When creating the SmartLock our vision was to design and create a lock which could be controlled remotely, using a smartphone. Our SmartLock would be built with the ability to transmit data and communicate its state to a web server, thus commanding the physical lock of door to open remotely.
I contributed considerably to the success of this task. My main contribution was the design and implementation of the iOS application, the element which ultimately controlled the lock. I also worked extensively on both the design and implementation of the API, collaborating closely with Michael to ensure it was extensive enough for the feature set I wanted to implement within the iOS Application and to give us a strong integration, fully utilising every aspect of the system.
The server would handle all the traffic between the lock and the server; providing an API to register users, open locks and grant access to friends in order to open the locks.
I designed and structured the oral and visual presentation which the team gave earlier in the semester. In order to efficiently incorporate the aspects of the system that the team wanted to describe in the presentation, I opened the content up in a Google slide collaboration document. On the day of the presentation I was also the main speaker.
In today's society a smartphone is considered a very common device. It seemed a logical choice to implement the front end on the two main operating systems, iOS and Android. Furthermore, since we had the skill set and resources available, we also implemented an admin interface on a web app.
In this report I will further detail and explain my work load.
I chose to develop the system using Behaviour Driven Development from the outset of the project, such that the collaborative code we develop as a team always has the behaviour that we intended. The people who benefit most from software testing are the people who are further adding to the lines of code. Therefore, instead of waiting till the end of the project to write the tests we developed them simultaneously to the application code.
The Behaviour Driven Development is performed as follows:Behaviour driven development provides a scaffold for when one is unsure about how to implement something. It allows you to have a conversation with the code, asking it questions, getting answers and then adjusting. This makes it a great exploratory tool for understanding something new. It also makes our system more maintainable, flexible and easily extensible; since at the most granular level, it is guaranteed that every standalone piece of logic can be tested and therefore changed confidently.
The benefits of Behaviour Driven Development are:
The API is the central hub of the SmartLock system, therefore it is vital that the reliability of the API remains very high. The API maintains a database which records information about the locks and users. Additionally, the lock interface corresponds with the API to record the locks current state, being either locked or unlocked. The application allows the user to manage their locks, friends and lock permissions.
When the apps send a request to open a lock, the API updates the database. When the lock next communicates with the API, the API will tell it to open.
When I designed the API, we had several frameworks to choose from, in many languages. In the end, Michael and I chose Flask. The decision to adopt Flask was primarily based on the opinion that we felt it best suited the style of development that I wanted to use throughout the project, enabling us to prototype the system and iteratively improve it.
The code structure follows the MVC design pattern, which separates the data models such as Users and Locks from the controller. The traditional notion of a view was replaced with JSON serializers which would transform the given data into JSON.
At the early stages I decided to standardise our endpoints across the system so that using the API would be as intuitive as possible. This is an example of the self generating documentation…
When executing complex queries we wanted to keep the code at the ORM level that SQLAlchemy provides but without compromising on the efficiency that offloading complex queries to the database could offer. I spent a vast amount of time optimising the SQLAlchemy code on the API such that this could be achieved. This meant that the response time to the iOS Application and the physical lock were as short as possible.
The Cyclic Dependencies in python gave us some problems with the boilerplate code when beginning the project. By moving the files into a logical order I was able to overcome this problem in the application code base as well as offering a uniform API for the unit tests to use so that the cyclic dependencies did not surface again.
Michael, Ayrton, JP and myself spent a considerable amount of time designing the part of the API which interfaced with the Lock itself. I came up with a ‘follow the leader’ protocol which makes the lock follow the state of the lock on the server which Ayrton and I implemented in the flask API. I then designed a use case which would simulate every possible scenario for this protocol and create automated unit tests to ensure that this important behavior remained the same. I think this was imperative to enable our system to reach maximum efficiency; the protocol is further explained in Aytons report here.
The friends endpoint required very specific behavior on the API so that we could utilise it properly in the front end web application and the mobile applications. To explain it in the next 2 lines I will refer to the currently logged in user as Dave. We needed it to have a nested structure which lists users whom Dave was friends with. Subsequently for each user, it lists the locks which Dave owns, along with a flag indicating if that friend has access to the lock. I implemented a complex database query and the accompanying automated tests to perform this query efficiently.
As the API scaled, there became a need for more standardised class names and endpoints. I devised a simple naming scheme for 2 types of classes in the API, requiring them to adhere to either “ClassDetail” or “ClassList”, where “Class” is the name of the class. The methods in the “Detail” classes return the detail of a singular instance of that class and “list” returning multiple instances of that class as well as creating new instances.
I wanted the system to be created initially as a minimum viable product which could be iteratively improved in the future. The authentication protocol that I chose to implement between the application and the server was HTTP basic auth.
Basic auth is not inherently a secure protocol since it involves sending the username and password with every request. An attacker can gain access to a user's account buy simply intercepting the transmission of the request. However, by attaching the authentication in the header of the request and sending it over HTTPS using the ssl encryption, the authentication details now become encrypted and the protocol has a reasonable level of security. This method is reasonably simple to implement and offers the level of security that we required for this project.
If we were to move the project into production we would use the more secure OAuth protocol which involves passing tokens with the request instead of the user's password and email. This means that even if a request was intercepted and decrypted, the attacker would only gain access to a users account for a limited time. We have allowed this implementation to be inserted into both the API and the iOS application by abstracting away the network level security protocols from the rest of the application code. This means the if we needed a greater level of security in the future then it could be implemented with minimal cost.
The Flask Web server is the centre of the entire system, it is therefore imperative that it is as reliable as possible. Ultimately, if the server fails then all the other components in the system will stop working.
Since collaboration commonly occurs in the Python code on the server, having accompanying tests provides protection for the API after every push of code. Integration tests were also used to test the endpoints of the server, to ensure that they have the desired behaviour and do not have any undesired side effects.
While the unit tests produced can serve to protect from regressions, they are not sufficient on their own to assess and ensure quality. Integration tests that combine several units together are essential to establish a complete picture of quality. As new API endpoints were added to the project we needed to test them to make sure that they performed the logic that we expected and the they did not have any undesired side effects.
Acceptance tests were also required to evaluate the user interface on the app and how it communicates to the API on the server and through to the lock. We used only a mock version of the application and created acceptance tests in a few specific use cases to ensure that the system as a whole has the required behaviour
The Flask framework which was chosen at the start of the project is a good framework, however we should have used the more mature framework called Django. Django offers a better integrated ORM (Object Relational Mapper) than the ORM called SQLAlchemy which we used. It also offers ‘out of the box’ user models along with authentication which reduces the amount of time we would spent developing this in our own API and would also produce a more secure and more modular solution. Django also has a superior REST framework which is the most advanced and mature of its kind called Django Rest Framework.
To increase the level of security that our application offers we should have used Facebook authentication. This is based on the OAuth protocol which was discussed in the security section and would have provided a more secure way of authenticating the iOS app with our API.
This is a list of requirements which I laid out at the start of the project and which encompasses the main functionality of the iOS mobile application.
This is a list of the different use case scenarios that each user of the system might want to perform.
The iOS application has been designed for home users where we assume that they will have a small number of locks and a large number of friends.
I designed the logo of my app, which came to represent the entire project. The logo encompasses a brain and a lock in an effort to visually represent the name of the project, SmartLock. Upon pressing the app icon, individuals are brought to a screen which has username and password text fields along with “login” and “register” buttons.
The colour scheme and styles established on the register page introduces the user to the consistent theme which they will experience throughout app. I implemented a dark gray bar which is consistently at the top and bottom of each page of the app and is offset by a lighter gray which acts as whitespace. This focuses the user’s eye onto what is displayed over this on screen and reduces clutter, allowing individuals to understand exactly what they should be doing on this specific screen.
White boxes are used as text fields against this lighter gray background. The contrast in tone not only allows them to stand out, but is also the standard format for text input. I relied on the user’s previous knowledge to determine what these are. The boxes contain text which alludes to what the boxes are, which avoids any possible confusion as to which text field is which and is a far cleaner method of design than having the text outside next to the box. The text is also 50% opacity in an effort to better distinguish it from inputted text which is 0% opacity.
The buttons were a bright orange colour which contrasts the dark gray and allows them to stand out as clickable interfaces. This harsh colour contrast was picked over having beveled looking edges for a consistent flat design. The user may here enter in the email and password they want and press “login” to login or “register” which reveals more fields required to create an account. Once the user has added the relevant information and clicked on one of the respective buttons, a throbber is displayed to give feedback that the application is reacting to the user’s response.
The design allows us to display each lock full screen and show a summary of the members in each lock. We have also displayed the open button in a contrasting colour so the user intuitively knows what to press to open the door.
The design of the lists is the same for users and locks. This is not only helpful for the user, but from a developer standpoint too; I only had to implement it once and as a module and reuse it later. The list view uses a white background with rows separated with by a line. Sufficient padding was added to increase white space and avoid clutter. Two lines of text can be seen for each row, Name and Email for user lists and Name and Owner Email for locks. This information is displayed with the first line in bold and a larger text size, adding emphasis to the main content of the row and allowing for more efficient scrolling. The common UI action of allowing the list to be pulled down or up beyond its content was also implemented. This gives the list a more natural scrolling feel as opposed to a static list which ended at the top and bottom.
This consistency of structure and colour scheme re-enforces the user to let them know they are in the same app, allowing them to reuse any interactions they previously used in sections of the application they haven’t been in. From a human-computer-interaction standpoint, this allows them to speed up their learning and understanding of how to use the application, something which reduces their frustration increases their overall enjoyment.
The iOS application design plan was formulated following an augmented MVC design pattern, utilising five layers over the traditional three. By separating the modules of the application code into this structure I was able to keep the modules more maintainable, extensible and more easily write unit tests for it.
The lowest level layer was the Network layer. It comprises of the functions which call and receive from the API, converting the command received from the Model Layer into a request before attaching the authorisation headers. It also handles the authentication which was discussed in the security section.
The Network layer waits for as long as the timeout permits, hopefully receiving a response from the API. If the response is received, the layer decodes the result into JSON, passing it to the Model Layer.
The Model layer supplies the url of the data it wishes to receive to the Network Layer. Once the Network layer has returned the expected data, this layer takes the received raw JSON and converts it to one of the objects seen above so it can be easily accessed throughout the project, increasing readability as it allows us only to deal with one programming language.
The View-Model layer holds collections of models and performs the ‘business logic’ of the application, requesting models from the model layer and sending data to the view controller.
The Model-View layer responds to commands by the user by registering finger-swipes and button presses. It then asks the view-model for the correct logic to perform. It also updates the UI based of the data that it recieves from the layer above.
This is a static layer which is used to customise the presentation and the layout of user interface and generally how to display data. It is assigned a view-controller which has ownership over the view, telling it what to display.
The network layer implements the HTTP Basic which the API is using to authenticate the user. The application stores the username and password securely in iOS keychain, which is the most secure way of storing user credentials in iOS. I have also allowed the authorisation method to be swapped in the iOS application if the OAuth authentication or facebook authentication is implemented in the future.
I have performed behavioral driven development in the same way as the API, meaning that the tests for the iOS application were developed at the same time as the code, bringing all the benefits discussed in the testing section. I have also implemented UI tests which run all of the use cases as a series of simulated user actions. This ensures that the quality of the user interaction in the final product is high and that it will always remain high so long as behavioral driven development is used when developing the application in the future.
Features that could be added to the iOS application to improve the user experience are the QR scanner and push notification. The QR scanner will read in the lock ID automatically so that the user no longer has to type in the identification code of their locks when they are looking to register them to an account. The push notifications will alert the owner when there has been a malicious entry, however this machine learning task was never implemented on the API. There are limited useful situations where push notification could be used if the automatic fraud detection is not implemented. For this reason I did not add push notifications to the application but thanks to the modular design of the code, this could be added with minimal time and effort.
I have implemented the basic features of the system, making them reasonably reliable and designing the code to be highly modular and scaleable for future development. However the security of the whole system still needs to be evaluated to ensure that it meets the level we set out at the start of the project.
The presentation involved bring together all the different components of the project so that the system could be presented as one uniform entity. To do this I separated out the presentation into equal portions section where the person on the team with the most expertise would be the main speaker for that section.
We also developed a demo of the system as a whole to showcase every aspect of the system in a succinct but detailed part of the presentation. The video recording backup was created as a team and michael did a good job of editing the final cut with audio and visual effects. By introducing the presentation, describing the iOS application, speaking during the demo and concluding the presentation I believe that I was the main presenter on the day.


---
layout: post
title: "Why you should have a public location for your branch"
date: 2009-02-26
comments: false
---
I asked this self-same question on the Bazaar mailing list the other day. Here's the answer:
- Given that the place you push the branch to (its "push location") might be different from the place that others get the branch from, branch's have public locations.
- Any tool that shares your branch with others (e.g. bzr send, a commit notifier or even lp-open) needs to have a public location to share with the world.


|
KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
|
#include <control_module_2d_process.hpp>
Public Types | |
| typedef Table< double, double > | TableType |
| Defining a table with double argument and result type as table type. More... | |
Public Member Functions | |
| KRATOS_CLASS_POINTER_DEFINITION (ControlModule2DProcess) | |
| ControlModule2DProcess (ModelPart &rModelPart, Parameters rParameters) | |
| Constructor. More... | |
| ~ControlModule2DProcess () override | |
| Destructor. More... | |
| void | Execute () override |
| Execute method is used to execute the ControlModule2DProcess algorithms. More... | |
| void | ExecuteInitialize () override |
| void | ExecuteInitializeSolutionStep () override |
| this function will be executed at every time step BEFORE performing the solve phase More... | |
| void | ExecuteFinalizeSolutionStep () override |
| This function will be executed at every time step AFTER performing the solve phase. More... | |
| std::string | Info () const override |
| Turn back information as a string. More... | |
| void | PrintInfo (std::ostream &rOStream) const override |
| Print information about this object. More... | |
| void | PrintData (std::ostream &rOStream) const override |
| Print object's data. More... | |
| Public Member Functions inherited from Kratos::Process | |
| KRATOS_CLASS_POINTER_DEFINITION (Process) | |
| Pointer definition of Process. More... | |
| Process () | |
| Default constructor. More... | |
| Process (const Flags options) | |
| ~Process () override | |
| Destructor. More... | |
| void | operator() () |
| This operator is provided to call the process as a function and simply calls the Execute method. More... | |
| virtual Process::Pointer | Create (Model &rModel, Parameters ThisParameters) |
| This method creates an pointer of the process. More... | |
| virtual void | ExecuteBeforeSolutionLoop () |
| This function is designed for being execute once before the solution loop but after all of the solvers where built. More... | |
| virtual void | ExecuteBeforeOutputStep () |
| This function will be executed at every time step BEFORE writing the output. More... | |
| virtual void | ExecuteAfterOutputStep () |
| This function will be executed at every time step AFTER writing the output. More... | |
| virtual void | ExecuteFinalize () |
| This function is designed for being called at the end of the computations. More... | |
| virtual int | Check () |
| This function is designed for being called after ExecuteInitialize ONCE to verify that the input is correct. More... | |
| virtual void | Clear () |
| This method clears the assignation of the conditions. More... | |
| virtual const Parameters | GetDefaultParameters () const |
| This method provides the defaults parameters to avoid conflicts between the different constructors. More... | |
| std::string | Info () const override |
| Turn back information as a string. More... | |
| void | PrintInfo (std::ostream &rOStream) const override |
| Print information about this object. More... | |
| void | PrintData (std::ostream &rOStream) const override |
| Print object's data. More... | |
Protected Attributes | |
| ModelPart & | mrModelPart |
| Member Variables. More... | |
| unsigned int | mImposedDirection |
| unsigned int | mTargetStressTableId |
| double | mVelocity |
| double | mLimitVelocity |
| double | mVelocityFactor |
| double | mCompressionLength |
| double | mStartTime |
| double | mReactionStressOld |
| double | mStressIncrementTolerance |
| double | mStiffness |
| bool | mUpdateStiffness |
| std::vector< double > | mVectorOfLastStresses |
| double | mStressAveragingTime |
| bool | mAlternateAxisLoading |
| unsigned int | mXStartStep |
| unsigned int | mXEndStep |
| unsigned int | mYStartStep |
| unsigned int | mYEndStep |
| unsigned int | mZStartStep |
| unsigned int | mZEndStep |
| bool | mApplyCM |
| bool | mIsStartStep |
| bool | mIsEndStep |
| unsigned int | mStep |
| double | mCMTimeStep |
| double | mStiffnessAlpha |
Defining a table with double argument and result type as table type.
|
inline |
Constructor.
|
inlineoverride |
Destructor.
|
inlineoverridevirtual |
Execute method is used to execute the ControlModule2DProcess algorithms.
Reimplemented from Kratos::Process.
|
inlineoverridevirtual |
This function will be executed at every time step AFTER performing the solve phase.
Reimplemented from Kratos::Process.
|
inlineoverridevirtual |
this function is designed for being called at the beginning of the computations right after reading the model and the groups
Reimplemented from Kratos::Process.
|
inlineoverridevirtual |
this function will be executed at every time step BEFORE performing the solve phase
Reimplemented from Kratos::Process.
|
inlineoverride |
Turn back information as a string.
| Kratos::ControlModule2DProcess::KRATOS_CLASS_POINTER_DEFINITION | ( | ControlModule2DProcess | ) |
|
inlineoverride |
Print object's data.
|
inlineoverride |
Print information about this object.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Member Variables.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |


John
1
1 I, John, am writing to you about the one who existed before there was anything else! He is the one whom we apostles listened to as he taught us! We saw him! We ourselves looked at him and touched him! He is the one who taught us the message about eternal life.
2 (Because he came here to the earth and we have seen him, we proclaim to you clearly that the one whom we have seen is the one who has always lived. He was previously with his Father in heaven, but he came to live among us.)
3 We proclaim to you the message about Jesus, the one whom we saw and heard, in order that you may join together with us. The ones with whom we have joined are God our Father and his Son Jesus Christ.
4 I am writing to you about these things so that you will be convinced that they are true, and that as a result we may be completely joyful.
5 The message that we heard from Christ and that we proclaim to you is this: He never sins. He is like a brilliant light that has no darkness at all.
6 If we claim to have joined together with God, but we conduct our lives in an impure manner, that is like living in evil darkness. We are lying. We are not conducting our lives according to God's true message.
7 But living in a pure manner, as God is living in a pure manner in every way, is like living in God's light. If we do that, we can join together with each other, and God forgives us and accepts us because Jesus died for us.
8 Those who say that they have never sinned are deceiving themselves, and are refusing to believe what God says about them.
9 But God always does what he says he will do, and what he does is always right. So if we admit to him that we have sinned, he will forgive us for our sins and will free us from the guilt of everything we have done wrong. Because of that, we should admit to him that we have sinned.
10 Because God says that everyone has sinned, those who say that they have never sinned talk as though God lies! They reject what God says about us!


.PtSn Heusler structure tetragonal magnetic {border-style crystal crystals px;} superstructure #ffffff;} Figure compound single space group inverse temperature Phys. large cubic formation XRD .PtSn, cell magnetization structural Felser Rev. compounds field obtained px; unit {font-family font-size parameters single-crystal vacancies .PtSn. PtSn compound, different double; growth patterns range related spin transition Magnetic Mn, Table anisotropy antiskyrmions border-color border-width cooling experimental pattern resistivity respectively. shown shows skyrmions solid; spin–orbit {font-style {font-weight .() ./physrevb.. Bogdanov However, Kübler Lett. Mater. Parkin Rößler SR, analysis atomic atoms bold candidates chemical courier; demonstrate elements em; essential exchange heavy leads magnets main measured metals noncollinear ordered phase properties pt;} shell simulated skyrmion skyrmions. structures using work


src/index.js
// @flow
import Circle from './Circle';
import Line from './Line';
import LineSegment from './LineSegment';
import Point from './Point';
import Rectangle from './Rectangle';
import Vector from './Vector';
export {
Circle,
Line,
LineSegment,
Point,
Rectangle,
Vector,
};


|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.strongloop.android.remoting.Repository
public class Repository
A local representative of remote model repository, it provides access to static methods like
User.findById().
| Constructor Summary | |
|---|---|
Repository(java.lang.String className)
Creates a new Repository, associating it with the named remote class. |
| Method Summary | |
|---|---|
VirtualObject |
createObject(java.util.Map<java.lang.String,? extends java.lang.Object> creationParameters)
Creates a new VirtualObject as a virtual instance of this remote
class. |
Adapter |
getAdapter()
Gets the Adapter that should be used for invoking methods, both
for static methods on this prototype and all methods on all instances of
this prototype. |
java.lang.String |
getClassName()
Gets the name given to this prototype on the server. |
void |
invokeStaticMethod(java.lang.String method,
java.util.Map<java.lang.String,? extends java.lang.Object> parameters,
Adapter.Callback callback)
Invokes a remotable method exposed statically within this class on the server. |
void |
setAdapter(Adapter adapter)
Sets the Adapter that should be used for invoking methods, both
for static methods on this prototype and all methods on all instances of
this prototype. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public Repository(java.lang.String className)
className
- The remote class name.| Method Detail |
|---|
public java.lang.String getClassName()
public Adapter getAdapter()
Adapter
that should be used for invoking methods, both
for static methods on this prototype and all methods on all instances of
this prototype.
public void setAdapter(Adapter adapter)
Adapter
that should be used for invoking methods, both
for static methods on this prototype and all methods on all instances of
this prototype.
adapter
- The adapter.public VirtualObject createObject(java.util.Map<java.lang.String,? extends java.lang.Object> creationParameters)
VirtualObject
as a virtual instance of this remote
class.
creationParameters
- The creation parameters of the new object.
VirtualObject
based on this prototype.public void invokeStaticMethod(java.lang.String method, java.util.Map<java.lang.String,? extends java.lang.Object> parameters, Adapter.Callback callback)
method
- The method to invoke (without the class name), e.g.
"doSomething"
.parameters
- The parameters to invoke with.callback
- The callback to invoke when the execution finishes.Adapter.invokeStaticMethod(String, Map,
com.strongloop.android.remoting.adapters.Adapter.Callback)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Welcome to my webpage!
But.... it seems like you have disabled Javascript on your browser. This website will not work -- at all -- without Javascript.
If unsure on how to enable Javascript, you can follow this link http://www.enable-javascript.com/ or Google how to enable Javascript in your browser.
Click here once you have enabled Javascript on your browser.


class: title-slide, left, bottom
# NHS-R Community Introduction to GitHub webinar ---- ## **An introduction before the introduction** ### Zoë Turner | 16 June 2021
 --- class: inverse, middle, center # What this talk will NOT cover... How to set up an account -- not that much about version control either -- it's not going to be all that technical... --- class: inverse-white, middle, center # What is GitHub? ### "The code is on my Github repo" ![Alt text: David from Schitt's Creek saying, "Oh God, Umm, What's th-, What's that?"](https://media.giphy.com/media/1zgOBEmZk2M8vSJxqD/giphy.gif) --- # Who uses this (or should do) * Analysts * Data Scientists * Academics * [Teams](https://github.com/CDU-data-science-team) * [Organisations](https://github.com/nhs-r-community) -- # What does not go into it (or shouldn't do)? * Large files * Passwords * Outputs (sometimes) * Anything patient identifiable --- class: inverse-white ## This is what a new account looks like  --- class: inverse-white ## This is what it could look like  --- class: inverse, middle, center # Looking for something? --- class: inverse-white # Searching GitHub ### By user/organisation On an account repositories can be searched here: .b--black.ba.bw1.br2.shadow-5.ph4.mt3[ ![Image of the repository search box](img/repo-search.PNG) ] --- class: inverse-white # Searching GitHub ### Global search .b--black.ba.bw1.br2.shadow-5.ph4.mt3[ ![Image of the global search in GitHub](img/global-search.PNG) ] --- ### Search for NHS Number Prompts to define by the user/organisation or in the whole of GitHub .b--black.ba.bw1.br2.shadow-5.ph4.mt5[ ![Image of search of the words NHS Number](img/search-nhsnumber.PNG) ] --- class: inverse-white ### And this is what you get .b--black.ba.bw1.br2.shadow-5.ph4.mt2[ ![Screenshot of NHS Number search in all GitHub](img/all-github-nhsnumber.PNG) ] --- class: inverse-white ## Like all searches... Beware of spaces. "NHS Number" gets 2 repositories for R but "NHSNumber" with no space gets 3 different and perhaps more useful repos .b--black.ba.bw1.br2.shadow-5.ph4.mt2[ ![Screenshot of NHSNumber search in GitHub](img/nhsnumber-r-search.PNG) ] --- class: inverse, middle, center # From the beginning --- # Start with finding a user Looking for my own repository Lextugao007  --- # Filter repositories .b--black.ba.bw1.br2.shadow-5.ph4.mt5[ ![Image of the repository drop down](img/whats-in-github.PNG) ] --- class: inverse, middle, center # Other terminology --- class: inverse-white # Other terminology #### related to copying a repository .green[Fork] - appears on my GitHub and I can make changes to that copy .b--black.ba.bw1.br2.shadow-5.ph4.mt2[ ![Screenshot of repos that have been forked](img/forked-repos.PNG) ] --- # Other terminology #### related to copying a repository .green[Clones] - doesn't appear on my GitHub and I can't make changes to the original without permission .b--black.ba.bw1.br2.shadow-5.ph4.mt2[ ![Image of error when pushing changes to a repo that's only cloned](img/cloned-but-no-permissions.PNG) ] --- class: inverse, middle, center # The importance of having a README --- class:inverse-white # It's like a greeting to your repository Or like the cover of a book - what is in here, why is it here, what was I thinking? .b--black.ba.bw1.br2.shadow-5.ph4.mt2[  ] --- class: inverse-white # It might even be the book A repository of READMEs .b--black.ba.bw1.br2.shadow-5.ph4.mt2[  ] --- class: inverse, middle, center # A place for code notes --- # Gist (or quick code)  --- class: inverse, middle, center # Licence to copy --- # Is the repository open sourced? Possible to check from the all listed repository view .b--black.ba.bw1.br2.shadow-5.ph4.m2[ ![Screenshot of a couple of repos with the licence highlighted](img/all-repos-view-licence.PNG) ] --- class: inverse-white # Is the repository open sourced? And in a couple of places within individual repositories .b--black.ba.bw1.br2.shadow-5.ph4.m2[ ![Screenshot of repository with README file and link highlighted](img/individual-repo-licence.PNG) ] --- class: inverse-white # Individual repositories Also look at the tags and the About, where people put links .b--black.ba.bw1.br2.shadow-5.ph4.m2[ ![Screenshot of repository with About and tags highlighted](img/about-and-tags.PNG) ] --- class: inverse, center, middle # Chapters of change --- class: inverse-white # Branches Main (Master is the old name) is the default code .b--black.ba.bw1.br2.shadow-5.ph4.m2[ ![Screenshot with branches and the link highlighted](img/branches.PNG) ] --- class: inverse-white # Branches are closely linked to issues .b--black.ba.bw1.br2.shadow-5.ph4.m2[ ![Screenshot of issues](img/issues.PNG) ] --- # Which may be linked to branch names Convention may to use the issue number in the branch name: .b--black.ba.bw1.br2.shadow-5.ph4.m2[ ![Screenshot of branches with issues in name](img/branches-issues-link.PNG) ] --- class: inverse, center, middle # Open source 'chatting' --- class: inverse-white # Issues or conversations? .b--black.ba.bw1.br2.shadow-5.ph4.mt5[  ] --- class: inverse-white # Issues or conversations? .b--black.ba.bw1.br2.shadow-5.ph4.mt5[  ] --- class: inverse, center, middle # Downloading files --- # 3 different ways to download files  --- class: inverse, center, middle # Free webpage publishing --- # GitHub published webpages If GitHub pages have been switched on it's possible to read html files...  --- class:inverse-white # Publish a blog through GitHub Using {distill} blogs and articles can be published (free) through GitHub .b--black.ba.bw1.br2.shadow-5.ph4.mt5[  ] --- class: center, middle ![Moira from Schitt's Creek saying "Okay we can stop it there for today"](https://media.giphy.com/media/604f8OZyjjYEp5ULXY/giphy.gif) --- class: inverse, middle, center # Any questions Thanks to NHS-R Community for hosting these webinars ![Slightly moving GitHub octocat symbol with wavy edges](https://media.giphy.com/media/du3J3cXyzhj75IOgvA/giphy.gif)


|
gitViewer
A simple readonly Git repository viewer
|
The CommitModel class contains the commits for the currently selected branch. More...
#include <commitmodel.h>
Public Types | |
| enum | Role { Message =Qt::UserRole, Author, Email, Date, CommitId, FullMessage } |
Public Member Functions | |
| CommitModel (QObject *parent=nullptr) | |
| ctor More... | |
| QHash< int, QByteArray > | roleNames () const |
| creates a key value store containing roleindex (key), rolename (value) More... | |
| QList< int > | roleList () const |
| creates a list of role index keys More... | |
The CommitModel class contains the commits for the currently selected branch.
Definition at line 10 of file commitmodel.h.
|
explicit |
| QList< int > CommitModel::roleList | ( | ) | const |
creates a list of role index keys
Definition at line 25 of file commitmodel.cpp.
| QHash< int, QByteArray > CommitModel::roleNames | ( | ) | const |
creates a key value store containing roleindex (key), rolename (value)
Definition at line 13 of file commitmodel.cpp.


{% extends 'market/base.html' %} {% load staticfiles %} {% block title_block %} Index {% endblock %} {% block body_block %}
We set up an online market for you, our users, to advertise and trade your items. We also provide a relaxing enviroment for you to enjoy the conversation and trading.
MarketDays has thousands of members online everyday. Using your items in your inventory, you can make offers to anyone in your market to trade. Others can also request to trade your items.
On the last day of the online market session, all the participants must bring their trading items to the physical market location, and make the trade. It's a fun, competitve environment - a place to make new friends!
MarketDays


Basic Involt example. Connect LEDs to pins 5 and 6.
Control LED with two buttons:
Toggle the digital pin:


Watcher of Antharas Gilmore:
No, it does not look like you have this dragon skull.
"What about others skulls I have?"
"Goodbye."


Here's one of your Iowa GOP caucuses frontrunners, wringing every last drop out of her opposition to the debt ceiling hike, while remaining elusive on just how the budget would be balanced this year.
And here's Mitt Romney, your other front-runner, sticking to his theme and portraying Obama's America as a jobless wasteland.
One's a primary ad; one's a general election ad. They really are polar opposite campaigns. When Romney eventually opposed the debt limit hike, he did it as a press release, an afterthought, because who is this voter who's going to cast a November 2012 vote based on which presidential candidate wanted to hike the debt limit?


| Task Details | Progress | Vital Task |
|---|---|---|
| Create pretty table design | 100% | Yes |
| Take the dog for a walk | 100% | Yes |
| Waste half the day on Twitter | 20% | No |
| Feel inferior after viewing Dribbble | 80% | No |
| Wince at “to do” list | 100% | Yes |
| Vow to complete personal project | 23% | Yes |
| Procrastinate | 80% | No |


Stansberry’s 26 leads Hawaii past Pacific
HONOLULU (AP) - Eddie Stansberry matched his career high with 26 points and Drew Buggs added 13 with the clinching free throws with six seconds left and Hawaii defeated Pacific 72-67 on Monday night to close the round-robin Rainbow Classic.
After Jeremiah Bailey hit a 3-pointer to pull the Tigers within one, a foul and a technical foul sent Stansberry to the line for a pair of free throws for a 70-67 lead. Then it was Buggs with the clinchers.
Neither team led by more than eight points. Pacific was up that many with under four minutes to go when Stansberry and Samuta Avea drained 3-pointers and then Stansberry’s four-point play with 1:37 to go put the Rainbows up 64-62. Justin Moore tied it with two free throws but Zigmars Raimo made a layup and then Stansberry made two free throws with 20 seconds to play.
Stansberry, who was 7-of-10 shooting with four 3-pointers, had 17 points in the second half. The Rainbow Warriors (2-1) went 10 of 23 from distance.
Amari McCray led Pacific (2-2) with 16 points and Moore had 14. The Tigers were outscored by 10 at the foul line.
More AP college basketball: https://apnews.com/Collegebasketball and https://twitter.com/AP_Top25
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


Previous Demo
Back to the Codrops article
Rain & Water Effects
Weather
Water
Video
Sorry, but your browser does not support WebGL!


Sharing question pools
By default, only you will be able to access the question pools you
create, but you can share your question pools with other instructors
from within the application.
Notes:
- You can only share a question pool with a user
who has permission to create assessments, and you must share the
question pool from a site for which both you and the user have such a
role; it does not have to be the site where you created the pool.
- Once someone shares a question pool with you, you can then access the
pool from any site in which you have the ability to create
assessments, unless the creator of the pool revokes access.
- Pool owners will see the names of everyone with whom they've
shared the pool on the
Share Pool
screen in all of their
own sites. If someone with whom a pool has been shared is not a
member of the site the pool owner is viewing, that person will be listed
under "Site Members with Access" with the role of "anonymous_access".
- Removing a user from a site does not remove access to any question
pools you've shared with him or her; you must revoke access using the
instructions below.
To share your question pool with someone:
- In the menubar, click
Tests & Quizzes
;
then, at the top of the page, click Question Pools
.
- Under the name of your desired question pool, click
Share
.
- Under "Grant access", check the box(es) for the instructors with
whom you would like to share the question pool, and then click
Share
.
To revoke access to a question pool you've shared:
- In the menubar, click
Tests & Quizzes
;
then, at the top of the page, click Question Pools
.
- Under the name of your desired question pool, click
Share
.
- Under "Revoke access", check the box(es) for the
instructors with whom you no longer want to share the question
pool. Then, click
Share
.