New profile
Firstname
Lastname
Picture
Phone
Address
Zipcode
City
{{profile.fullname}}
Firstname
Lastname
Picture
Phone
Address
Zipcode
City
{{p.firstname}} {{p.lastname}}
{{p.address}}
{{p.zipcode}} {{p.city}}
{{p.phone}}


You're about to launch soon and must be 100% focused on your product. Don't loose precious days designing, coding the landing page and testing a site. Instead, integrate one with your favourite framework.


Rui Zhang is an Associate Professor in School of Computer Science and
Technology at Wuhan University of Technology, China. She received the M.S.
degree and Ph.D. degree in Computer Science from Huazhong University of
Science and Technology, China. From 2013 to 2014, she was a Visiting
Scholar with the College of Computing, Georgia Institute of Technology,
USA. Her research interests include
algorithms and applications for machine learning and deep networks,
mobile data analytics and services, as well as privacy, trust, and
data management issues in big data systems.
-
Jing Bai, Wei Shi, Zhu Xiao*, Amelia C. Regan, Talal Ahmed Ali Ali, Yongdong Zhu, Rui Zhang, and
Licheng Jiao. Hyperspectral Image Classification based on Superpixel Feature Subdivision and Adaptive Graph
Structure. IEEE Transactions on Geoscience and Remote Sensing (TGRS), 2022, 60:1-15.
-
Zichuan Liu, Rui Zhang*, Chen Wang, Zhu Xiao, Hongbo Jiang. Spatial-Temporal Conv-sequence Learning
with Accident Encoding for Traffic Flow Prediction. IEEE Transactions on Network Science and Engineering
(TNSE), 2022.
-
Zhonghui Hu, Rui Zhang*, Xichang Li, Zhipei Yu, Xiaojie Li, Wenfeng Zhao. Conflict Detection in Task
Heterogeneous Information Networks. Web Intelligence, 2022.
-
Jian Chen, Xuxin Zhang, Rui Zhang, Chen Wang*, Ling Liu. De-Pois: An Attack-Agnostic Defense against
Data Poisoning Attacks. IEEE Transactions on Information Forensics and Security (TIFS). 2021, 16:
3412-3425.
-
Xuxin Zhang, Jian Chen, Rui Zhang, Chen Wang*, Ling Liu. Attacking Recommender Systems with Plausible
Profiles. IEEE Transactions on Information Forensics and Security (TIFS), 2021, 16: 4788-4800.
-
Wangchen Long, Tao Li, Zhu Xiao*, Dong Wang, Rui Zhang, Amelia Regan, Hongyang Chen, and Yongdong Zhu.
Location Prediction for Individual Vehicles via Exploiting Travel Regularity and Preference. IEEE
Transactions on Vehicular Technology (TVT), 2022.
-
Zhu Xiao, Shenyuan Xu, Tao Li*, Rui Zhang*, Hongbo Jiang, Amelia Regan, Hongyang Chen. On Extracting
Regular Travel Behavior of Private Cars Based on Trajectory Data Analysis. IEEE Transactions on Vehicular
Technology (TVT), 2020, 69(12): 14537-14549.
-
Rui Zhang, Guifa Zhang ,Lan Liu, Chen Wang, Shaohua Wan. Anomaly detection in bitcoin information
networks with multi-constrained meta path. Journal of Systems Architecture (JSA).2020,110(11):101829.
-
Gaoyang Liu, Rui Zhang, Yang Yang, Chen Wang*, Ling Liu. GPS Spoofed or Not? Exploiting RSSI and TSS in
Crowdsourced Air Traffic Control Data. Springer Distributed and Parallel Databases - Special Issue on
Best Papers of MDM 2019. 2020, 39(1): 231-257.
-
Rui Zhang, Peng Xie, Chen Wang, Gaoyang Liu, Shaohua Wan*. Classifying Transportation Mode and Speed
from Trajectory Data via Deep Multi-Scale Learning. Computer Networks (CN), 2019, 162(10):106861.
-
Rui Zhang, Wenping Liu, Yufu Jia, Guoyin Jiang, Jing Xing,
Hongbo Jiang, Jiangchuan Liu. WiFi Sensing Based Real-time Bus
Tracking and Arrival Time Prediction in Urban Environments.
IEEE Sensors Journal, 2018, 18(11): 4746-4760.
-
Zhenhua Tang, Yadan Luo, Rui Zhang, Hongbo Jiang. Motion
saliency detection for compressed videos.
Journal of Electronic Imaging, 2017, 26(5): 053018-1 -
053018-8.
-
Wenping Liu, Qiangong Tao, Rui Zhang, Hongbo Jiang, Yubao Wang,
Jing Xing, Lei Wang and Zhilin Geng. ESP: Evaluation-based Skeleton
Pruning in Sensor Networks. IEEE Sensors Journal, 2016,
16(11): 4605-4613.
-
Chen Wang, Hongzhi Lin, Rui Zhang, Hongbo Jiang. SEND: A
Situation-Aware Emergency Navigation Algorithm with Sensor Networks.
IEEE Transactions on Mobile Computing (TMC), 2017, 16(4):
1149-1162.
-
Wei Wei, Chen Wang, Hongzhi Lin, Rui Zhang, Hongbo Jiang. A
Novel Networking Architecture for Mobile Content Delivery in Urban
Transport Systems. ACM/Springer Wireless Networks (WINET), 2016, 22
(2): 427-438.
-
Hongzhi Lin, Wei Wei, Ping Zhao, Xiaoqiang Ma, Rui Zhang,
Wenping Liu, Tianping Deng, Kai Peng. Energy-efficient compressed data
aggregation in underwater acoustic sensor networks.
ACM/Springer Wireless Networks (WINET), 2016, 22(6): 1985-1997.
-
Zichuan Liu, Zhaoyang Wu, Meng Wang, Rui Zhang. Multi-View Spatial-Temporal Model for Travel Time
Estimation. In Proc. of 29th International Conference on Advances in Geographic Information
Systems(GIS), Beijing, China, 2021: 646–649.
-
Xiaofeng Wu, Rui Zhang, Lin Li. Clustering Trajectories via Sparse Auto-encoders. In Proc. of 4th
International Conference on Multimedia Information Processing and Retrieval (MIPR), Tokyo, Japan, 2021:
260-266.
-
Pakindessama M. Konkobo, Rui Zhang, Siyuan Huang, Toussida T. Minoungou, Jose A. Ouedraogo and Lin Li.
A Deep Learnning Model For Early Detection Of Fake News On Social Media. In Proc. of 7th International
Conference on Behavioural and Social Computing (BESC), Bournemouth, United Kingdom, 2020:1-6.
-
Rui Zhang, Yacheng Rong, Zilong Wu, Yifan Zhuo. Trajectory Similarity Assessment On Road Networks Via
Embedding Learning. In Proc. of 6th International Conference on Multimedia Big Data (BigMM), New
Delhi, India, 2020: 1-8.
-
Zilong Wu, Siyuan Huang, Rui Zhang, Lin Li. Video Review Analysis via Transformer-based Sentiment
Change Detection. In Proc. of IEEE Conference on Multimedia Information Processing and Retrieval
(MIPR), Shenzhen, China, 2020: 330-335.
-
Rui Zhang, Jiming Guo, Hongbo Jiang*, Peng Xie, Chen Wang. Multi-Task Learning for Location Prediction
with Deep Multi-model Ensembles. In Proc. of IEEE 21st International Conference on High Performance
Computing and Communications (HPCC), Zhangjiajie, China, 2019: 1093-1100.
-
Rui Zhang, Peng Xie, Hongbo Jiang, Chen Wang, Zhu Xiao, Ling
Liu. Clustering Noisy Trajectories via Robust Deep Attention
Auto-encoders.
In Proc. of 20th IEEE International Conference on Mobile Data
Management, Hong Kong, China, 2019.
-
Gaoyang Liu, Rui Zhang, Chen Wang, Ling Liu.
Synchronization-Free GPS Spoofing Detection with Crowdsourced Air
Traffic Control Data.
In Proc. of 20th IEEE International Conference on Mobile Data
Management, Hong Kong, China, 2019.
-
Rui Zhang, Jiming Guo, Yueqi Zhou, Hongbo Jiang, Chen Wang.
traj2bits: Indexing Trajectory Data for Eﬀicient Qery.
In Proc. of ACM SIGMOBILE CHINA Symposium, in conjunction with ACM
Turing Celebration Conference - China, Chengdu, China, 2019.
-
Rui Zhang, Peng Xie, Chen Wang, Gaoyang Liu, Shaohua Wan.
Understanding Mobility via Deep Multi-Scale Learning.
In Proc. of 7th International Conference on Identification,
Information and Knowledge in the Internet of Things (IIKI), 487–494, Beijing, Elsevier, 2018.
-
Rui Zhang, Xiao Wang, Kezhong Liu, Xiaolie Wu, Tianyou Lu,
Zhaohui Chao. Ship Collision Avoidance Using Constrained Deep
Reinforcement Learning.
In Proc. of 5th International Conference on Behavioral, Economic,
and Socio-Cultural Computing (BESC), 115-120, Kaohsiung, IEEE, 2018.
-
Siyuan Huang, Rui Zhang, Nuofei Li, Jiming Guo, Hongbo Jiang.
Automatic Mining of Multi-granularity Temporal Regularity from
Trajectory Data.
In Proc. of 4th IEEE/ACM International Conference on Big Data
Computing, Applications and Technologies (BDCAT), 247-254, Austin, IEEE, 2017.
-
Rui Zhang, Wenjie Ma, Luo Zhong, Peng Xie, Hongbo Jiang.
Understanding Trajectory Data based on Heterogeneous Information
Network Using Visual Analytics.
In Proc. of 13th International Conference on Mobile Ad-hoc and
Sensor Networks (MSN), 318-327, Beijing, IEEE, 2017.
-
Rui Zhang, Nuofei Li, Siyuan Huang, Peng Xie, Hongbo Jiang.
Automatic Prediction of Traffic Flow based on Deep Residual Networks.
In Proc. of 13th International Conference on Mobile Ad-hoc and
Sensor Networks (MSN), 328-337,Beijing, IEEE, 2017.


- The game was developed under Windows10 environment, the build.py is adjusted accordingly with additional package like SDL_mixer and SDL_ttf, I am not sure if I wrote the build instructions correctly in MacOS and Linux.
- I used SDL2_image, SDL2_mixer, SDL2_ttf as additional resource.
Game Publicity
Project Website: please edit the project website with a link here (See part 3)
Compilation Instructions
Please edit if there are any special build instructions beyond running python3 build.py
Project Hieararchy
In the future, other engineers may take on our project, so we have to keep it organized given the following requirements below. Forming some good organization habits now will help us later on when our project grows as well. This is the required project hierarchy you should have.
./Game Directory Organization
- Docs
- Source Code Documentation
- Assets
- Art assets (With the Sub directories music, sound, images, and anything else)
- src
- source code(.cpp files) The make file or any build scripts that automate the building of your project should reside here.
- include
- header files(.h and .hpp files)
- lib
- libraries (.so, .dll, .a, .dylib files).
- bin
- This is the directory where my built executable(.exe for windows, .app for Mac, or a.out for Linux) and any additional generated files are put after each build.


Home
Caleb Hsu
location_on
email
Technical Skills
Languages
Programs
Professional Experience
Extracurriculars
Tasks


pips Red=70 White=148
(CorrectAnswer= 0/0, ErrorScore= 0)
This position was originally posted by Bill Davies. It is Double Match Point and Black has double ones to play.
One thing that is in short supply in the modern world is patience. We live in a society where the desire for instant gratification is the norm rather than the exception. The modern child, in the main, does not understand the concept of quietly waiting for something rather than insisting upon having it now.
In backgammon, there are times when, to quote an old adage, “patience is a virtue’. Here Black may decide that he must come to the edge of White’s prime and play bar/22 and then either choose 3/2 or 5/4* with his final ace. The latter is an attempt to win by brute force, hoping that White does not hit from the bar and then that he can swiftly roll an escaping six.
The problem is that if White rolls any of his fifteen hitting numbers from the bar Black will be virtually dead. Not only that but he may not be able to cover the blot or lift it next turn even if it is not hit this time.
If he chooses 3/2 then that is a very passive move, giving White multiple game plan options. He will hit with his threes and cover the outfield if he cannot hit immediately.
The patient approach is not to come to the edge of the prime at all. Black should play bar/24, 6/5(3)* or bar/24. 5/4(2)*, 3/2. This gives him a stronger home board than White and hopefully some time to escape his rear checker. In some variations his four-point prime will come in very useful. On average Black will take five and a half rolls to escape that rear checker so he is a long way from becoming favourite but the important thing is that bar/24, 6/5(3)* gives him his best winning chances. That move will win nearly 26% of the time.
Sometimes you have to accept the fact that you cannot win the game by brute force but have to hope that patience will win the day. While Black has only one rear checker there will still be hope for him. The hot-headed youth may well play bar/22, 5/4* but the wiser, older player will quickly see the merits of bar/24, 5/4(3)*.
Patience is indeed a virtue.
One thing that is in short supply in the modern world is patience. We live in a society where the desire for instant gratification is the norm rather than the exception. The modern child, in the main, does not understand the concept of quietly waiting for something rather than insisting upon having it now.
In backgammon, there are times when, to quote an old adage, “patience is a virtue’. Here Black may decide that he must come to the edge of White’s prime and play bar/22 and then either choose 3/2 or 5/4* with his final ace. The latter is an attempt to win by brute force, hoping that White does not hit from the bar and then that he can swiftly roll an escaping six.
The problem is that if White rolls any of his fifteen hitting numbers from the bar Black will be virtually dead. Not only that but he may not be able to cover the blot or lift it next turn even if it is not hit this time.
If he chooses 3/2 then that is a very passive move, giving White multiple game plan options. He will hit with his threes and cover the outfield if he cannot hit immediately.
The patient approach is not to come to the edge of the prime at all. Black should play bar/24, 6/5(3)* or bar/24. 5/4(2)*, 3/2. This gives him a stronger home board than White and hopefully some time to escape his rear checker. In some variations his four-point prime will come in very useful. On average Black will take five and a half rolls to escape that rear checker so he is a long way from becoming favourite but the important thing is that bar/24, 6/5(3)* gives him his best winning chances. That move will win nearly 26% of the time.
Sometimes you have to accept the fact that you cannot win the game by brute force but have to hope that patience will win the day. While Black has only one rear checker there will still be hope for him. The hot-headed youth may well play bar/22, 5/4* but the wiser, older player will quickly see the merits of bar/24, 5/4(3)*.
Patience is indeed a virtue.
1. Cubeful 2-ply bar/23 5/4*(2) Eq.: -0.561 0.277 0.122 0.010 - 0.723 0.000 0.000 2. Cubeful 2-ply bar/24 5/4*(3) Eq.: -0.577 (-0.016) 0.276 0.117 0.010 - 0.724 0.000 0.000 3. Cubeful 2-ply bar/22 5/4* Eq.: -0.579 (-0.018) 0.270 0.121 0.013 - 0.730 0.000 0.000 4. Cubeful 2-ply bar/24 5/4*(2) 3/2 Eq.: -0.587 (-0.026) 0.267 0.124 0.010 - 0.733 0.000 0.000 5. Cubeful 2-ply bar/22 3/2 Eq.: -0.605 (-0.044) 0.265 0.116 0.011 - 0.735 0.000 0.000


JsonApi framework: (53)
- Basic schema validation (5/10)
- Value invalidation / cacheing revamp (5)
- Value creation (non-default) (2)
- Defaults (1)
- Code cleanup (2/10)
- Schema fix hints (2)
- Speed (15)
- Complete schema validation (15)
(with on/off option)
JsonRenderer: (63)
- Separate jQuery plugin?
- Basic rendering & updates (25)
- Displaying defaults (2)
- Casting between basic types (3)
- Type selection (15)
- Schema fix hints (3)
- Speed (10)
- File uploads / non-JSON data (8)
Json Storage: (50)
- Returning JSON with single schema
- Plugin framework (5)
- Permissions plugin, viewing-only (10)
- Editing plugin (10)
- Metadata plugin (10)
- File uploads (10)


--- title: Services | BVSLN Services layout: default bodyClass: page-services-list ---
We help you with every aspect of your Quality & Process areas.


October 1, 2016 at Brown University
Startup@Brown is a day-long conference on Saturday, Oct. 1 at Brown University that brings together innovative startups and talented students.
Come to learn about startups and their stories. Leave with a new perspective and your next summer internship or full-time job.
Speakers include trailblazing founders, entrepreneurs, and venture capitalists.
Evan Stites-Clayton
Co-Founder and CTO, Teespring
Eveline Buchatskiy
Director, Techstars Boston
Kevin Hale
Partner, Y Combinator; Co-Founder, Wufoo
Matt Doka
Co-Founder and CTO, Fivestars
Peter Boyce II
Founder, Rough Draft Ventures; VC, General Catalyst
Jerry Talton
Co-Founder and CEO, Apropose Inc.
Jason Grauel
Director of Product Management, Delphix
Startup Fair
Walk around, meet with startups and learn about their work, challenges, and career opportunities.
Small Group Conversations
Sit down with startup leaders and 10-12 other students in an intimate and lively discussion. Ask them anything!
Workshops
Learn about everything from scaling your tech stack to starting a company as a student.
Meet the amazing startups and VC firms
that participated in Startup@Brown 2015.
Learn more, or get in touch at<EMAIL_ADDRESS>You'll reach Valentin Perez, our lead organizer.
We have some great programming lined up this year. Stay tuned for updates.
Learn from leaders, engineers, and designers in the startup world.
Evan Stites-Clayton, Co-Founder and CTO at Teespring
Matt Doka, Co-Founder and CTO at Fivestars
Jason Grauel, Director of Product Management at Delphix
Sam Pierce Lolla, Lead Designer at Farmlogs
Christian Seale, Venture Partner at Startupbootcamp and Co-Founder of Equitable Origin
Jerry Talton, CEO at Apropose
Bright Fulton, Director of Engineering Operations at Swipely
Marge Anderson, Operations at Interana
Peter Boyce, VC at General Catalyst and Founder of Rough Draft Ventures
Abhas Gupta, Partner at Mohr Davidow Ventures
Harry Zhang, Co-Founder at Lob
Justin DeBrabant, Head of Data Architecture at ActionIQ
Allan Tear, Co-Founder of Betaspring
Dylan Field, Co-Founder at Figma; Thiel Fellow
Luke Sherwin, Co-Founder and Chief Creative Officer at Casper
Eli Bosworth, Director of Operations Technology at Casper
Kevin Hale, Co-Founder of Wufoo and Partner at Y Combinator
All Brown and RISD undergraduate and graduate students are welcome to apply. A background in computer science, design, engineering, or business is recommended but not required!
Student Startups from other colleges are welcome too. Apply to be one of the 20 student startups here. Startups will have office hours with the startup leaders and venture capitalists attending, a chance to demo their project, and a table to get feedback & find collaborators.
As Brown students, while we get a lot of exposure to larger companies, we don’t often hear about the exciting work startups do and the challenges they face. At Startup@Brown, you’ll get the chance to talk in small groups with founders, engineering leads, and venture capitalists from Andreessen Horowitz, Y Combinator, Teespring, and more. Come to learn about startups and their stories. Leave with a new perspective and your next summer internship or full-time job.
Startup@Brown is a day-long event where you’ll have the chance to interact closely with startup founders, many of them alumni.
The event will start with a fair, introducing you to 15 startups, and then split into small-group conversations and workshops like “What is Product Management” to “Exploring Accelerators.” Meet with engineers and designers, discuss the technical problems they’re trying to solve, and maybe they'll interest you enough for an internship or job :).
Register for Startup@Brown 2016 here!
We'd love if everyone could attend, but we usually receive way more interest than the space available. We'll tell you if you have a spot by September 17th.


Ending
Ending ending ending.
The end.


| Class | Daemons::Pid |
| In: |
lib/daemons/pid.rb
|
| Parent: | Object |
Returns the directory that should be used to write the pid file to depending on the given mode.
Some modes may require an additionaly hint, others may determine the directory automatically.
If no valid directory is found, returns nil.
# File lib/daemons/pid.rb, line 60 60: def Pid.dir(dir_mode, dir, script) 61: # nil script parameter is allowed as long as dir_mode is not :script 62: return nil if dir_mode == :script && script.nil? 63: 64: case dir_mode 65: when :normal 66: return File.expand_path(dir) 67: when :script 68: return File.expand_path(File.join(File.dirname(script),dir)) 69: when :system 70: return '/var/run' 71: else 72: raise Error.new("pid file mode '#{dir_mode}' not implemented") 73: end 74: end
# File lib/daemons/pid.rb, line 8 8: def Pid.running?(pid) 9: # Check if process is in existence 10: # The simplest way to do this is to send signal '0' 11: # (which is a single system call) that doesn't actually 12: # send a signal 13: begin 14: Process.kill(0, pid) 15: return true 16: rescue Errno::ESRCH 17: return false 18: rescue ::Exception # for example on EPERM (process exists but does not belong to us) 19: return true 20: #rescue Errno::EPERM 21: # return false 22: end 23: end


--- layout: page title: About header-img: "img/about-bg.png" ---
Lifelong learner. Hobby addict. Passionate member of her community.


Sorry!
My portfolio is not mobile responsive, but I'm working on it. For the best experience, please visit me on a desktop or laptop. Click here to go back home.
My portfolio is not mobile responsive, but I'm working on it. For the best experience, please visit me on a desktop or laptop. Click here to go back home.


RT @TimKrajcar: #rubyconf I have @newrelic stickers and we'll have shirts at our user meetup tomorrow night. join us! https://t.co/cXYbLslg…
11/15/2015, 12:16:00 PM
Favs: 0
Retweets: 0
link--- layout: tweet ---
RT @TimKrajcar: #rubyconf I have @newrelic stickers and we'll have shirts at our user meetup tomorrow night. join us! https://t.co/cXYbLslg…
11/15/2015, 12:16:00 PM
Favs: 0
Retweets: 0
link


Namespace CodeFactory.DotNet.CSharp
Classes
CsAttribute
Data model that represents an attribute.
CsAttributeParameter
Data model that represents a attribute parameter.
CsAttributeParameterValue
Data class that represents an attributes parameter value.
CsClass
Data model that represents a class implementation.
CsClassExtensions
Extensions class that provides common automation tasks rolled up under standard extension methods that support the CsClass model.
CsContainer
Data model that implements the base implement for all models that support members.
CsContainerExtensions
Extension management class that manages dot net models that implement the ICsContainer interface.
CsDelegate
Data model that represents the definition of a delegate.
CsEnum
Data model that represents an enumeration definition.
CsEnumValue
Data model that represents a defined value for an enumeration.
CsEvent
Data model that represents the definition of an event.
CsField
Data model that represents a field definition.
CsGenericParameter
Data model that represents the a generic parameter definition.
CSharpModelExtensions
Extension class that manages extensions for the c# models.
CsInterface
Data model that represents in definition of an interface.
CsMember
Data model that builds the base class definition for all member types.
CsMemberExtensions
Extension methods that support model that implement the CsMember interface.
CsMethod
Data model that represents a method definition.
CsModel
Base class that all C# compiler based data models derive from.
CsModelExtensions
Static class that stores extension methods that support all models that derive from ICsModel
CsModelStore
Model storage class used to store c# code factory models, to be used to pass data to factories.
CsNamespace
Data model that represents the definition of a namespace.
CsParameter
Data model that represents a parameter definition.
CsParameterDefaultValue
Data model that represents the default value for a parameter.
CsProperty
Data model that represents the definition of a property.
CsSource
Data model that represents source code.
CsSourceExtensions
Extensions class that provides common automation tasks rolled up under standard extension methods that support the CsSource model.
CsStructure
Data model that represents the definition of a structure.
CsTupleTypeParameter
Data model that represents a tuple type parameter.
CsType
Data model that represents the definition of a type.
CsTypeExtensions
Extensions class that provides common automation tasks rolled up under standard extension methods that support the CsType model.
CsUsingStatement
Data model that represents a namespace reference in source code.
InterfaceMemberExtensions
Extensions class that provides helper methods for implementation of member functions.
Interfaces
ICsAttribute
Model definition for an attribute in a c# implementation.
ICsAttributeParameter
The model information for a attribute used for a c# implementation.
ICsAttributeParameterValue
The model information for an attributes parameter value for c# implementation.
ICsAttributes
Interface that determines if a c# model has attributes assigned.
ICsClass
Model definition for a class in C#.
ICsContainer
The base implementation all container type models must implement in C#.
ICsDelegate
Model definition of a delegate in C#.
ICsEnum
Data model that provides information on an enumeration.
ICsEnumValue
Data model that provides information to a specific enumeration value implemented in an enumeration.
ICsEvent
Model definition of a event in c#.
ICsField
Model definition of a Field in .net.
ICsGeneric
Definition that determines if the c# model implements generics.
ICsGenericParameter
Model contract for information about a parameter used in a generic definition.
ICsInterface
Model implementation of an interface in C#.
ICsMember
Base definition for all c# member models.
ICsMethod
Model definition of a method in c#.
ICsModel
Base implementation all C# models must implement.
ICsNamespace
Model definition for a namespace definition inside a code file in C#.
ICsParameter
The definition of a parameter used in C#.
ICsParameterDefaultValue
Model that represents a default value for a ICsParameter model.
ICsProperty
Model definition of a property in C#.
ICsSource
Source definition from a source that was written in C#.
ICsStructure
Model definition for a structure in C#.
ICsT4Factory
Definition of the required properties, events, and methods that are required in c# T4 factory.
ICsTupleTypeParameter
ICsType
Model that defines a type used in a C# model definition.
ICsUsingStatement
Model that represents a using statement in a C# source model.
IParent
Defines information how to find the parent model for the model that implements this C# model.
Enums
CsContainerType
Definition of the different types of container based members are supported by the C# source code type.
CsKnownLanguageType
Enumeration that identifies well know types used by the C# language.
CsMemberType
Enumeration of the types of members that are supported in the c# source code type.
CsMethodType
Enumeration of the type of methods that are supported in C#.
CsModelType
The code factory model types that represent the C# source code type.
CsSecurity
Enumeration that determines the security scope of the C# model being represented.


Large Text
Medium Text
Regular text looks like this including a line break
Bold text looks like this
Italic text looks like this
Link
This is a quote


Console object API: count
This test-case is intended for
console.count
method.
Jan Odvarko<EMAIL_ADDRESS>Open Firebug and enable the Console panel.
Click on the
Execute Test
button below.
The Console panel should display two logs:
a 3
b 2
Execute Test


Call to ban smoking on beaches
by By Digital Desk staffA Dublin environmental group is calling for a ban on smoking on beaches.
The Sandycove Clean Coast group says cigarette butts are deadly to marine life.
Speaking as part of Climate Action Week, the Sandycove Clean Coast group says smoking should be banned on beaches.
The environmental group says cigarette butts are littering sea beds, which are being ingested by fish and are posing a major threat to marine life.
They have been described as a scourge which is contributing to plastic pollution in the ocean. Cigarettes filters can take up to 10 years to break down.
According to the Herald, Dun Laoghaire Rathdown county council, which has some of the most visited beaches in the country, has said it has no plans to pilot smoke free areas.
Countries including Spain and Italy have already banned smoking on beaches.
READ MORE
Parts of country could see snow tonight; Rain warning issued for seven counties


My Team
Employee Name
Manager
ID:
Email:
email link
Office Number:
Employee Name
Engineer
ID:
Email:
email link
GitHub:
GitHub link
Employee Name
Intern
ID:
Email:
email link
School:
Employee Name
Intern
ID:
Email:
email link
School:


André Vechina
<EMAIL_ADDRESS>— +351 915606584
LinkedIn://andrevechina — GitHub://andrevechina
_____________________________________________________________________________________________________________________
1 Experience
Blip - Paddy Power Betfair
Software Developer
Oct 2014
Present
Porto, Portugal
- Member of a Kanban squad building several web-based internal tools, mainly using ES6+,
React and Redux. Member of a cross-location team (Porto and Dublin) working in a highly
collaborative agile environment. Quality software is one of the main concerns, code coverage
is over 95% and each feature is implemented using the BDD process. Active part in the
recruitment process, performing technical interviews.
- Member of a Scrum team responsible for building Betfair’s Sportsbook client side rendered
mobile web-application. Development and maintenance of a +500k loc AngularJS application,
as well as all its supporting web middlewares NodeJS based, capable of scaling up to over
1M active users (100k simultaneously). Monitoring and improvement of performance and
scalability issues, both for data fetching and client side rendering.
Javascript ⋅ React ⋅ Redux ⋅ React-Router ⋅ AngularJS
Webpack ⋅ Grunt ⋅ Jasmine ⋅ Mocha ⋅ Protractor
Kanban ⋅ Scrum ⋅ Continuous Integration ⋅ Continuous Deploy
Blip - Paddy Power Betfair
Software Engineer Intern
Apr 2014
Sep 2014
Porto, Portugal
- Development of Betfair’s Sportsbook server side rendered websites (both desktop and mobile)
built using a Spring based framework.
Java ⋅ Javascript ⋅ Selenium
PT Inovação
Research Engineer Trainee
Apr 2013
Mar 2014
Aveiro, Portugal
- Member of a small team that developed and integrated functional prototypes.
- Development and integration of a SIP WebRTC client and a SCC-AS (Service Centralization
and Continuity Application Server) in a IMS environment.
Javascript ⋅ Coﬀescript ⋅ Spine.js ⋅ sipML5 ⋅ WebRTC ⋅ Java
Varident
Web Developer Intern
Jul 2011
Sep 2011
Somerville, NJ, USA
- Member of a small development team that delivered custom designed business websites and
created a form-builder, for the content management system developed in-house (KickStart).
Javascript ⋅ jQuery
2 Education
UNIVERSITY
OF
AVEIRO
—
Msc
in
Computer
and
Telematics
Engineering
Sep
2007
-
Dec
2012
—
Aveiro,
Portugal
Final
grade:
15/20
⋅
Dissertation
grade:
17/20
Msc
Dissertation:
- Representation of semantic networks of biomedical terms.
- Development of a web platform for representation and analysis of relationships among
biomedical identities.
Java ⋅ J2EE ⋅ JSF ⋅ Javascript
3 Publications
[1]
A. Vechina,
J. Arrais,
and
J. L.
Oliveira,
“Representation
of
semantic
networks
of
biomedical
terms.,”
in
IWBBIO,
pp. 703–710,
2013.


LANDSCAPE IN THE MIST A film review by Thomas E. Billings Copyright 1989 Thomas E. Billings
Screened at the San Francisco International Film Festival (March 12, 1989).
Synopsis: Two young Greek children set off on an odyssey to find their Father. Their voyage takes them through a world dominated by adults, a strange, surreal, and savage world. A depressing, disturbing film.
Greece (Greek with English subtitles), 1988, color, 127 minutes.
Director/Producer: Theo Angelopoulos Screenplay: Theo Angelopoulos, Tonino Guerra, Thanassis Valtinos Principal Cast: Michalis Zeke, Tania Palaiologou, Stratos Tzortzoglou
The time is the present, the place: Greece. Two young children, Alexander (6 years old) and his sister Voula (11 years old) go to the Athens train station every night to await the return of their Father, a man they have never met or even seen pictures of. Their Father never arrives, and the children, desperate to find him, jump on a train to go to far-off Germany, where they believe their Father is to be found.
Thus begins the children's odyssey in the world of adults, as seen through their eyes. It isn't long before they are discovered by the train Conductor, and turned over to the Police. They tell the Police that they are on their way to visit their Uncle. When delivered to their Uncle, he repudiates them, telling the Police that he doesn't want to get involved, for the children are illegitimate. This is overheard by the girl, and she is very angry. The children are then taken to the Police station. At this point it starts to snow, which causes all the Police to go outside and stand like statues (literally) watching it snow. This allows the children to make a convenient escape, and continue their travels.
The children stubbornly continue their journey to Germany, and are alternately befriended, exploited, and brutalized by adults along the way. A member of a traveling theatre company helps them in their trip to the "border."
The adult world, as seen through the children's eyes, is a strange place indeed. For some reason, these adults are in the habit of standing as still as statues whenever the Director thinks it is convenient. Although this tends to give the picture a "surreal" feel, it is also quite ridiculous!
The picture of the adult world that this picture paints is bleak and despairing, cruel and savage. Be warned that there are some shocking scenes in this picture. In particular, there is a scene where a live horse is dragged on its side, down the road by a tractor. The rope breaks and the horse dies (apparently in great pain) in front of the children. As the horse dies, a wedding party emerges from a building in the background; they are celebrating a joyous wedding. The Director may have been trying to produce a great contrast here; all he succeeded in doing was disgusting me.
This film makes a very large emotional impact on the viewer. Unfortunately, the emotions it raises are: despair, depression, shock, and anger. It has been a long time since I have seen such a depressing film! In a certain sense, it is reasonable to describe this as a "real life horror film."
If you go to the movies to wallow in depression, then this is the movie for you! If you go to enjoy yourself, than avoid the pain by avoiding this film!
Reviewer: Thomas E. Billings; Department of Statistics University of California, Berkeley Reviewer contact<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


{% extends "registration/base.html" %} {% load staticfiles widget_tweaks %} {% block title %}Login{% endblock %} {% block content %}
Please login, if you need help check out our documentation.
Warning! {{ message }}
Oh snap! Your username and password didn't match. Please try again.
Warning! Your account doesn't have access to this page. To proceed, please log in with an account that has access.


To use the Geode HTTP module with Tomcat application servers, you will need to modify Tomcat’s server.xml
and context.xml
files.
Configuration is slightly different depending on the topology you are setting up. Refer to Common Topologies for HTTP Session Management for more information.
Peer-to-Peer Setup
To run Geode in a peer-to-peer configuration, add the following line to Tomcat’s $CATALINA_HOME$/conf/server.xml
within the <Server>
tag:
<Listener className="org.apache.geode.modules.session.catalina.
PeerToPeerCacheLifecycleListener"
locators="localhost[10334]" />
Depending on the version of Tomcat you are using, add one of the following lines to $CATALINA_HOME$/conf/context.xml
within the <Context>
tag:
For Tomcat 6.0:
<Manager className="org.apache.geode.modules.session.catalina.
Tomcat6DeltaSessionManager"/>
For Tomcat 7.0:
<Manager className="org.apache.geode.modules.session.catalina.
Tomcat7DeltaSessionManager"/>
For Tomcat 8.0 and 8.5:
<Manager className="org.apache.geode.modules.session.catalina.
Tomcat8DeltaSessionManager"/>
Client/Server Setup
To run Geode in a client/server configuration, the application server will operate as a Geode client. To do this, add the following line to $CATALINA_HOME$/conf/server.xml
within the <Server>
tag:
<Listener className="org.apache.geode.modules.session.catalina.
ClientServerCacheLifecycleListener"/>
Depending on the version of Tomcat you are using, add one of the following lines to $CATALINA_HOME$/conf/context.xml
within the <Context>
tag:
For Tomcat 6.0:
<Manager className="org.apache.geode.modules.session.catalina.
Tomcat6DeltaSessionManager"/>
For Tomcat 7.0:
<Manager className="org.apache.geode.modules.session.catalina.
Tomcat7DeltaSessionManager"/>
For Tomcat 8.0 and 8.5:
<Manager className="org.apache.geode.modules.session.catalina.
Tomcat8DeltaSessionManager"/>
The application server operates as a Geode client in this configuration. With a similar environment to this example that is for a client/server set up,
TC_VER=tomcat-8.0.30.C.RELEASE
INSTANCE=geode-cs
CLASSPATH=$PWD/$INSTANCE/lib/geode-modules-1.0.0.jar:\
$PWD/$INSTANCE/lib/geode-modules-tomcat8-1.0.0.jar:\
$PWD/$TC_VER/lib/servlet-api.jar:\
$PWD/$TC_VER/lib/catalina.jar:\
$PWD/$TC_VER/lib/tomcat-util.jar:\
$PWD/$TC_VER/bin/tomcat-juli.jar
Start the server using gfsh
:
$ gfsh start server --name=server1 --locators=localhost[10334] --server-port=0 \
--classpath=$CLASSPATH
Starting the Application Server
Once you’ve updated the configuration, you are now ready to start your tc Server or Tomcat instance. Refer to your application server documentation for starting the application server. Once started, Geode will automatically launch within the application server process.
Note: Geode session state management provides its own clustering functionality. If you are using Geode, you should NOT turn on Tomcat clustering as well.
Verifying that Geode Started
You can verify that Geode has successfully started by inspecting the Tomcat log file. For example:
Nov 8, 2010 12:12:12 PM
org.apache.geode.modules.session.catalina.ClientServerCacheLifecycleListener
createOrRetrieveCache
INFO: Created GemFireCache[id =<PHONE_NUMBER>; isClosing = false;
created = Mon Nov 08 12:12:12 PDT 2010; server = false;
copyOnRead = false; lockLease = 120; lockTimeout = 60]
Information is also logged within the Geode log file, which by default is named gemfire_modules.log
.


Div and Span
This is heading 2.
This is some paragraph text.
This is a span paragraph where
Red
is in red color.


4 Base R syntax and data type
4.1 Data type
- Charactor vector (srting and/ or factor): defined by using " "
- (e.g.) "Jack", "Rose"
- Cannot perform mathmatical calculations
- Numeric vector (double, integer etc...): numbers are written as is
- (e.g.) 100, 200
- Can perfom a mathmatical calculations
- Logical vecor: TRUE or FALSE
Let's practice!
- write a code 100 + 200 as a numerical vector
- write a code 100 + 200 as a character vector
4.2 Create a variable and assign a value
- R is case sensitive
- X and x are two different variables for R
- Variable names cannot have a space in between
- public health will not work as a variable name. Instead, you can make it as public_health, publicHealth etc...
- You cannot start variable names with numbers
- 7data will not work. Instead, name it data7
- Variable names need to be descriptive and easy to understand
- Otherwise, it will confuse you in the end
- Otherwise, it will confuse you in the end
- if you want to make a variable x and assign 1 as a value
- "<-" is the symbol we use to assign values in R
- "#" is to make comments on an R script
- Make a habit to write discriptive comments, becasue you will often forget what this code was for
- Try to keep you script neet and clean. This will help you to have less bugs and makes it easy to debug
x <- 1
x #check the variable
Let's practice!
- Create a variable pineapples and assign 120 as a value
- Check the variable
4.3 Create variables and calculate
- Create variables x and y.
- Assign 1 as a value for x, 4 as a value of y
- Add them up
- Check if x is bigger than y
#create variables x, y and assign values
x <- 1
y <- 4
#add x and y
x + y
#examine using logical operator
x > y
Let's practice!
- Create a variable pineapples and assign 120 as a value.
- Create a variable strawberries and assign 70 as a value.
- Add them up using variable names
- Check if pineapples are larger than strawberries using a logical operator
4.4 Create a new variable and assign the sum
- Create a variable z and assign the sum of x + y
x <- 1
y <- 4
#create a new variable z and assign the sum of x and y
z <- x + y
#check the value of z
z
Let's practice!
- Create a variable pineapples and assign 120 as a value.
- Create a variable strawberries and assign 70 as a value.
- Create a new variable pineberries and assign the sum of pineapples and strawberries
- Check the value of pineberries
4.5 Use functions
- Calcurate the sum of x, y and z
x <- 1
y <- 4
z <- x + y
#sum up x, y and z using the sum() function
sum(x, y, z)
Let's practice!
- Create a variable pineapples and assign 120 as a value.
- Create a variable strawberries and assign 70 as a value.
- Create a new variable pineberries and assign the sum of pineapples and strawberries
- Sum up pinabbles, strawberries, and pineberries using the sum() function
4.6 Make a data frame
- Make a data frame "df1"
- (explanation 1). "variable" is a column name, c("", "",) is to add multiple vairiables. this says assign x to the "variable" column, row 1. assign y to the "variable" column, row 2. assign z to the "variable" column, row 3.
- (explanation 2). "value" is a column name. this says that assign 1 to the "value" column, row 1. assign 4 to the "value" column, row 2. assign 10 to the "value" column, row 3.
- Calcurate the mean of x, y and z
df1 <- data.frame("variable" = c("x", "y", "z"), #(explanation 1).
"value" = c(1, 4, 10)) #(explanation 2).
str(df1)
#calcurate mean
mean(df1$value) #"$" is select "value column" from df1
Let's practice!
- Create a dataframe "fruits," which contains two columns ("fruitType" and "amount")
- pineapples, which the value is 120
- strawberries, which the value is 70
- pineberries, which the value is 190
- Check the structure of the dataframe
- Calculate the mean of "amount""
4.7 Create a simple plot
- Create a data frame "firstHalf"
- Create a simple barplot using the "barplot()" function
firstHalf <- data.frame("month" = c("Jan", "Feb", "Mar", "Apr", "May", "June"),
"value" = c(150, 200, 15, 70, 300, 60))
#create a bar plot. names.arg is to label each bar
barplot(fristHalf$value, names.arg = c("Jan", "Feb", "Mar", "Apr", "May", "June"))
Let's practice!
- Create a data frame "secondHalf." Monthly values are as follows:
- July, 250
- August, 10
- September, 600
- October, 120
- November, 80
- December, 50
- Create a barplot using the "barplot()" function
- Make sure to label each bars
4.8 Use a pre-made dataset to examine and plot the data
- R has dataset packages you can use for your analysis
- Today, let's use the New York Air Quality Measurements data (May-September, 1973)
- Load the dataset
- Check how many observations (data points) are they?
- Calculate the mean maximum daily tempurature
- Make a histgram of the maximum daily tempurature
#load the dataset
airquality
#calculate the mean maximum daily tempurature of the dataset
mean(airquality$Temp)
#make a histgram of the maximum daily tempurature
hist(airquality$Temp)
Let's practice!
- Load the airquality dataset
- Calcurate the mean of the average wind speed of the dataset
- Make a histgram of the average wind speed


h1. Welcome! Welcome to your brand new Borg installation! This file (index.html) should contain the welcome message presented to your users when they arrive on your site homepage. Keep it short (or leave it completely empty if you don't need it) since borg will fill the rest of your homepage with blog contents. Once you logged in, you can edit any page by accessing the @edit/path/to/yourpage.html@ url (for example, @edit/index.html@ to edit this page). Borg expects site contents to be organized according to this directory structure:
['data' directory root, as configured in your borg config file]
|
|_ toolbar.html : main site toolbar
|_ sidebar.html : main site sidebar
|_ editbar.html : sidebar contents to be shown as help while editing a page
|
Blog contents are organized by year, month, day. For example, a blog post
for April 25th, 2011, will be stored as 2011/04/25/blogpost.html.
|
|_ [year]
| |_ [month]
| |_ [day]
| |_ page.html
|
Other pages are stored in a hierarchical structure of your choice:
|
|_ projects/
| |_ project_one.html
| |_ secret_ones/
| |_ secret_project.html
|
|_ hobbies/
|_ myhobbies.html
Both sidebars and toolbars can be organized hierarchially. This means that if you create a @sidebar.html@ file
in @projects/secret_ones/@, then all pages living under that directory will use such sidebar instead of the main
site sidebar.


| Modifier and Type | Field and Description |
|---|---|
static String |
ACTION
The action to perform.
|
static String |
AWS_ACCESS_KEY_ID
Your Access Key ID.
|
static String |
EXPIRES
The date and time at which the signature included in the request expires, in the format
YYYY-MM-DDThh:mm:ssZ, as specified in the ISO 8601 standard.
|
static String |
SIGNATURE
A request signature (for information, see Request Authentication in the Amazon SQS Developer
Guide).
|
static String |
SIGNATURE_METHOD
Required when you use signature version 2 with Query requests.
|
static String |
SIGNATURE_VERSION
For more information, see Query Request Authentication in the Amazon SQS Developer Guide.
|
static String |
TIMESTAMP
The date and time the request is signed, in the format YYYY-MM-DDThh:mm:ssZ, as specified in
the ISO 8601 standard.
|
static String |
VERSION
The API version to use, as specified in the WSDL.
|
static final String ACTION
static final String VERSION
static final String AWS_ACCESS_KEY_ID
static final String TIMESTAMP
static final String EXPIRES
static final String SIGNATURE
static final String SIGNATURE_METHOD
static final String SIGNATURE_VERSION
Copyright © 2009-2013 The Apache Software Foundation. All Rights Reserved.


Frog King:
Hurry and take the ribbiting bead to her!
Go! Rib-ribbit!


This is a demo for Coloris, check out the docs on github
Change the configuration bellow and see what happens.


Make Web Map Service (WMS) requests¶
Google Earth Enterprise Server 5.x supports the OpenGIS Web Map Service Interface Standard (WMS), which provides a standard HTTP interface to request map images from one or more published geospatial databases. Mapping images that are provided through a WMS over the Internet can show information such as weather formations and conditions, topographical maps, alternate high resolution satellite imagery and more.
One of the benefits of using the WMS standard is that supported clients can request images from multiple WMS servers and then combine those mapping images into a single view. Because the WMS standard is used to get all the images, they can easily be overlaid on one another. Supported clients include QGIS 2.0.1, ArcGIS/ArcGIS Explorer Desktop, and Google Earth Pro/EC.
- Supported Database Types
- Supported Projections
- Working with Other Projection Types
- Supported Image Formats
- Setting up Google Earth Enterprise Server 5.x Support for WMS
- Making WMS Requests to Google Earth Enterprise Server 5.x
- GetCapabilities
- GetMap
- Making WMS Requests in GIS Clients
Supported Database Types
WMS is supported only with Fusion databases: 2D Plate Carrée and Mercator.
Supported Projections
For imagery over WMS, GEE Server supports Plate Carrée (EPSG code 4326) and Mercator (EPSG code 3857), as well as legacy Mercator codes EPSG:3785 and EPSG:900913.
Working with Other Projection Types
To work with other projection types, you will need to perform coordinate transformation in your client using proj.4 or another library . Alternatively, you can use an implementation of the OGC WCTS to reproject your coordinates to one of the supported ones. It is recommended that you use one of the well-known libraries since you are only transforming two pairs of coordinates for a bounding box.
Another example of working with other projections is to use a third-party application such as MapServer to reproject your native WMS on-the-fly, for example, to change your projection from Mercator to UTM zone 35.
Supported Image Formats
The following image formats are supported:
- PNG
- JPEG
Setting up Google Earth Enterprise Server 5.x Support for WMS
To enable WMS for a database that you want to publish:
In the GEE Server Admin console, click Databases.
Check the box next to the database you want to publish.
Next to Serve WMS, select On.
Click Publish.
Publishing a 2D Fusion or 2D portable database with Serve WMS turned on publishes both to GEE Server and WMS; it is not necessary to publish twice.
Databases that have WMS enabled are identified with a WMS label in the description.
Making WMS Requests to Google Earth Enterprise Server 5.x
The first step in creating maps via HTTP requests to Google Earth Enterprise Server 5.x is to create a connection.
To connect to Google Earth Enterprise Server 5.x, use the following URL:
http://<gee_server_name or ip address>/<target_path_of_published_db>/wms
In this example,http://localhost/merc/wms
, “merc” is the target path of the published database. Google Earth Enterprise Server 5.x supports the GetCapabilities and GetMap requests for WMS versions 1.1.1 and 1.3.0. Use GetCapabilities to first request metadata from which you can then specify the map images that you want to request using GetMap.
GetCapabilities
The GetCapabilities operation requests information about the type of services and data (“capabilities”) that are provided by Google Earth Enterprise Server 5.x.
The URL the GIS client should use to make the GetCapabilities request is as follows:
http://<hostname>/<target_path>/wms?SERVICE=WMS&REQUEST=GetCapabilities&VERSION=x.y.z
The parameters for this operation are as follows:
| Parameter | Mandatory? | Description |
|---|---|---|
| SERVICE | Yes | Service name. Value is WMS |
| REQUEST | Yes | Operation name. Value is GetCapabilities |
| VERSION | No | Service version is 1.1.1 or 1.3.0. If no version is submitted, the WMS request defaults to the highest serving version; in this case 1.3.0. |
An example GetCapabilities request is:
http://localhost/merc/wms?SERVICE=WMS&REQUEST=GetCapabilities&VERSION=1.1.1
The response to a GetCapabilities request includes the following information:
- Image formats supported on a published target path basis for the maps. Note that the target path database information is sent in the connection URL.
- A list of layers supported by the published target path
database. Each layer provides the following information:
- Name of the layer
- Spatial projection supported
- Bounding box limitations based on the projection type
- Formats supported for any exceptions, such as invalid requests (requests not as per the international standards), service not supported, etc.
An example GetCapabilities request output is as follows:
<WMT_MS_Capabilities updateSequence="0" version="1.1.1">
<Service>
<Name>OGC:WMS</Name>
<Title>Google Earth WMS service.</Title>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple" xlink:href="http://<IP_ADDRESS>/Earth/wms"/>
</Service>
<Capability>
<Request>
<GetCapabilities>
<Format>text/xml</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple" xlink:href="http://<IP_ADDRESS>/Earth/wms"/>
</Get>
</HTTP>
</DCPType>
</GetCapabilities>
<GetMap>
<Format>image/png</Format>
<Format>image/jpeg</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple" xlink:href="http://<IP_ADDRESS>/Earth/wms"/>
</Get>
</HTTP>
</DCPType>
</GetMap>
</Request>
<Exception>
<Format>application/vnd.ogc.se_xml</Format>
</Exception>
<Layer opaque="0" noSubsets="0" queryable="0">
<Title>Google Earth WMS service.</Title>
<Layer opaque="1" cascaded="0" noSubsets="0" queryable="0">
<Name>Earth</Name>
<Title>Imagery</Title>
<SRS>EPSG:4326</SRS>
<LatLonBoundingBox minx="-180.0" miny="-90.0" maxx="180.0" maxy="90.0"/>
<BoundingBox maxx="180.0" maxy="90.0" miny="-90.0" minx="-180.0"
SRS="EPSG:4326"/>
</Layer>
</Layer>
</Capability>
</WMT_MS_Capabilities>
Once you have retrieved services and data information from Google Earth Enterprise Server 5.x using GetCapabilities, you can then get the map image that you want using GetMap.
GetMap
The GetMap operation requests the map from Google Earth Enterprise Server 5.x, based on the layer data that was discovered in the GetCapabilities step.
The URL the GIS client should use to make the GetMap request is as follows:
http://<hostname>/<target_path>/wms?SERVICE=WMS&REQUEST=
GetMap&BBOX=<bounding_box_limits_of_the_requested_map>&SRS=<projection_type>&WIDTH=<width_of_requested_map>&HEIGHT=<height_of_requested_map>&LAYERS=<layer_name>&STYLES=<style_info>&FORMAT=<format_of_requested_map>&DPI=96&TRANSPARENT=TRUE
The parameters for this operation are as follows:
| Parameter | Mandatory? | Description |
|---|---|---|
| SERVICE | No | Service name. Default value is WMS. |
| REQUEST | Yes | Operation name. Value is GetMap. |
| VERSION | No | Service version is 1.1.1 or 1.3.0. If no version is submitted, the WMS request defaults to the highest serving version, in this case 1.3.0. |
| LAYERS | Yes | Layer name for the requested map/image. |
| BBOX | Yes | Bounding box for map extent. Value is minx, miny, maxx, maxy in units of the SRS or CRS, depending on the version. Use SRS for version 1.1.1; use CRS for version 1.3.0. |
| SRS or CRS | Yes | Spatial Reference System (SRS) of map output. Value is in form EPSG:nnn. Use SRS for version 1.1.1; use CRS as the parameter key for version 1.3.0. |
| WIDTH | Yes | Width of map output in pixels. |
| HEIGHT | Yes | Height of map output in pixels. |
| FORMAT | Yes | Format for the map output. PNG or JPEG are currently supported. |
| STYLE | No | Styles in which layers are to be rendered. Value is a list of required style names or empty if default styling is required. |
| DPI | No | Dots per inch. Value is client-dependent. For example, the QGIS client defaults to 96dpi. |
| TRANSPARENT | No | Determines if the map should be transparent. Values are TRUE and FALSE; default is FALSE. This parameter only applies when requesting PNG images. |
| BGCOLOR | No | Specifies the color to be used as the background (non-data) pixels of the map. The parameter is a hexadecimal encoding of an RGB value where two hexadecimal characters are used for each of red, green, and blue color values. The values can range between 00 and FF (0 and 255, base 10) for each. The format is 0xRRGGBB; either upper or lower case characters are allowed for RR, GG, and BB values. The “0x” prefix must have a lower case “x”. The default value is 0xFFFFFF, corresponding to the color white, which is used if this parameter is not included in the request. When FORMAT is a picture format, WMS should set the background pixels to the color specified by BGCOLOR. When FORMAT is a graphic element format (which does not have an explicit background), or a picture format, a WMS should avoid use of the BGCOLOR value for foreground elements because they would not be visible against a background picture of the same color. |
An example GetMap request is:
For version 1.1.1:
http://localhost/merc/wms?VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&BBOX=-0037508.342789,-20039414.861177,20037508.342789,20037508.342781&SRS=EPSG:900913&WIDTH=1002&HEIGHT=1001&LAYERS=[merc]:1002&STYLES=&FORMAT=image/png&DPI=96&TRANSPARENT=TRUE
For version 1.3.0:
http://localhost/merc/wms?VERSION=1.3.0&SERVICE=WMS&REQUEST=GetMap&BBOX=-20037508.342789,-20039414.861177,20037508.342789,20037508.342781&CRS=EPSG:900913&WIDTH=1002&HEIGHT=1001&LAYERS=[merc]:1002&STYLES=&FORMAT=image/png&DPI=96&TRANSPARENT=TRUE
Making WMS Requests in GIS Clients
Any GIS client that supports WMS can query the Google Earth Server 5.x using the URLs specified in this document. The following example shows how QGIS connects to Google Earth Server 5.x, requests the server’s data, and then requests the maps to display.
Connecting to Google Earth Server 5.x WMS using QGIS
To connect the Google Earth Server 5.x using the QGIS client:
Start the QGIS client application. At the top of the QGIS window, click the Add WMS/WMTS Layer toolbar button or from the Layer menu choose Add > Add WMS/WMTS Layer….
Click New to establish a new WMS layer connection. A new connection window displays.
Enter the following details:
- Name for the connection
- Connection URL as
http://<server>/<target_path_of_published_database>/wms
, for example,http://localhost/my_map/wms
Optionally, supply the username and password if the database has been published to a secure virtual host set up with basic authentication.
Click the OK button to create a new connection.
In the same window, click Connect to make a GetCapabilities request for a specific published target path database.
An example response for a GetCapabilities request is shown in the following window.
The GetCapabilities WMS request returns imagery and vector layers for 2D databases and only imagery for 3D databases.
Determine which layer you want to display, then double-click the layer name to send a GetMap request to Google Earth Enterprise Server 5.x. The following example shows a map retrieved from a GetMap request.
If you are adding layers from a 2D database to your QGIS project, be sure to first set the Coordinate Reference System (CRS) for the project to EPSG:3857 (WGS 84 / Pseudo Mercator) by clicking the icon in the lower-right corner of the display window.


Tags: nan
Style: Impressionism
Artist: Monet Claude
Title: Portrait of Germaine Hoschede with a Doll
Year: 1877
Genre: portrait
Categories: coral_reef (18.6%); chiton (12.0%); sea_cucumber (5.8%); sea_anemone (5.5%); jigsaw_puzzle (5.2%)
<< previous image next image >>


|
||||||||||
| PREV NEXT | FRAMES NO FRAMES |
| Classes in kdl.prox.db used by kdl.prox.clustering | |
|---|---|
| Container
Represents a container. |
| Classes in kdl.prox.db used by kdl.prox.db | |
|---|---|
| Attributes
Represents a set of attributes at some level of containment in a Proximity database. |
|
| AttributeValue
Helper class used by AttributeValues, stores a particular attribute name and value(s), i.e., a single row. |
|
| AttributeValues
Used by Attributes.getAttrValsForOID(), contains a table of attribute values. |
|
| Container
Represents a container. |
|
| ItemTypeEnum
Typesafe enum helper class used by ProxItem.java. |
|
| ProxItem
Holds an item's information. |
|
| ProxObj
One of two concrete Item subclasses, represents Proximity objects. |
|
| Subgraph
Represents a subgraph |
| Classes in kdl.prox.db used by kdl.prox.gui2 | |
|---|---|
| Attributes
Represents a set of attributes at some level of containment in a Proximity database. |
|
| Container
Represents a container. |
|
| SchemaAnalysis
This class retrieves summary information about the schema of the database. |
| Classes in kdl.prox.db used by kdl.prox.model2.common.predictions | |
|---|---|
| Attributes
Represents a set of attributes at some level of containment in a Proximity database. |
|
| Container
Represents a container. |
| Classes in kdl.prox.db used by kdl.prox.model2.common.sources | |
|---|---|
| Container
Represents a container. |
| Classes in kdl.prox.db used by kdl.prox.model2.rbc | |
|---|---|
| Container
Represents a container. |
| Classes in kdl.prox.db used by kdl.prox.model2.rdn | |
|---|---|
| Container
Represents a container. |
| Classes in kdl.prox.db used by kdl.prox.model2.rdn.modules.db | |
|---|---|
| Container
Represents a container. |
| Classes in kdl.prox.db used by kdl.prox.model2.rdn.modules.init | |
|---|---|
| Container
Represents a container. |
| Classes in kdl.prox.db used by kdl.prox.model2.rdn.modules.listeners | |
|---|---|
| Container
Represents a container. |
| Classes in kdl.prox.db used by kdl.prox.model2.rdn.modules.statistic | |
|---|---|
| Container
Represents a container. |
| Classes in kdl.prox.db used by kdl.prox.model2.rpt | |
|---|---|
| Container
Represents a container. |
| Classes in kdl.prox.db used by kdl.prox.model2.rpt.modules.pruning | |
|---|---|
| Container
Represents a container. |
| Classes in kdl.prox.db used by kdl.prox.model2.rpt.util | |
|---|---|
| Container
Represents a container. |
| Classes in kdl.prox.db used by kdl.prox.model2.util | |
|---|---|
| Container
Represents a container. |
| Classes in kdl.prox.db used by kdl.prox.qgraph2 | |
|---|---|
| Container
Represents a container. |
| Classes in kdl.prox.db used by kdl.prox.qgraph2.family | |
|---|---|
| Container
Represents a container. |
| Classes in kdl.prox.db used by kdl.prox.qgraph2.util | |
|---|---|
| Container
Represents a container. |
| Classes in kdl.prox.db used by kdl.prox.sample | |
|---|---|
| Attributes
Represents a set of attributes at some level of containment in a Proximity database. |
|
| Container
Represents a container. |
| Classes in kdl.prox.db used by kdl.prox.script | |
|---|---|
| Attributes
Represents a set of attributes at some level of containment in a Proximity database. |
|
| Container
Represents a container. |
| Classes in kdl.prox.db used by kdl.prox.util | |
|---|---|
| Container
Represents a container. |
|
||||||||||
| PREV NEXT | FRAMES NO FRAMES |


Urgent care for suspected ear infection instead of church? On Father's Day? Sure! And Happy Father's Day to all the dads... especially mine!
6/21/2009, 11:20:02 AM
Favs: 0
Retweets: 0
link--- layout: tweet ---
Urgent care for suspected ear infection instead of church? On Father's Day? Sure! And Happy Father's Day to all the dads... especially mine!
6/21/2009, 11:20:02 AM
Favs: 0
Retweets: 0
link


An efficient tool designed for differential analysis of large-scale RNA sequencing (RNAseq) data and Bisulfite sequencing (BSseq) data in the presence of individual relatedness and population structure. 'PQLseq' first fits a Generalized Linear Mixed Model (GLMM) with adjusted covariates, predictor of interest and random effects to account for population structure and individual relatedness, and then performs Wald tests for each gene in RNAseq or site in BSseq.
| Version: | 1.1 |
| Depends: | R (≥ 2.10) |
| Imports: | Rcpp (≥ 0.12.14), foreach, doParallel, parallel, Matrix |
| LinkingTo: | Rcpp, RcppArmadillo |
| Published: | 2018-08-06 |
| Author: | Shiquan Sun, Jiaqiang Zhu, Xiang Zhou |
| Maintainer: | Shiquan Sun <shiquans at umich.edu> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| Copyright: | see file COPYRIGHTS |
| NeedsCompilation: | yes |
| CRAN checks: | PQLseq results |
| Reference manual: | PQLseq.pdf |
| Package source: | PQLseq_1.1.tar.gz |
| Windows binaries: | r-devel: PQLseq_1.1.zip, r-release: PQLseq_1.1.zip, r-oldrel: PQLseq_1.1.zip |
| OS X binaries: | r-release: PQLseq_1.1.tgz, r-oldrel: PQLseq_1.1.tgz |
| Old sources: | PQLseq archive |
Please use the canonical form https://CRAN.R-project.org/package=PQLseq to link to this page.


eventlet_.py |
|
|---|---|
|
Eventlet-based WSGI server adapter. |
|
Imports |
from __future__ import unicode_literals, print_function
from eventlet import listen
from eventlet.wsgi import server
|
Server Adapter |
|
|
Eventlet-based WSGI-HTTP server. For a more fully-featured Eventlet-capable interface, see also Spawning. |
def serve(application, host='<IP_ADDRESS>', port=8080):
|
|
Instantiate the server with a bound port and with our application. |
server(listen(host, int(port)), application)
|


You need to enable JavaScript to run this app.
Edit FAQs
Add
Select any FAQ entry from the list to edit it
FAQ
Question
Answer
Author
Category
State
{{ faq.title }}
{{ faq.descr }}
{{ faq.answer }}
{{ faq.author.name }}
{{ faq.category.name }}
{{ faq.state }}
{{ faq.title }}
Question: {{ faq.descr }}
Answer: {{ faq.answer }}
( click on a row to see details... )


Limitless - Starter Kit
Overview
Each layout contains a set of blank pages called "Starter kit". This kit may be very useful for developers who will work on integration. Each page includes a basic markup - navbar, sidebar, content area and a footer. The functionality is limited by default to necessary elements only - jquery and bootstrap JS libraries; bootstrap, layout, pages, helpers and core CSS files compiled from LESS.
Screenshot
Usage
Usage of a Starter kit is very simple - add necessary library, extension or plugin path, copy necessary code from the page .js files located in assets/js/pages/
folder to a new JS file, add a path to this file in your page, re-compile LESS with styling of this plugin and use it. As simple as that.
All unnecessary component styles are commented in components.less
file, so if you need any additional styles, just uncomment the path to LESS file and re-compile it. This method allows you to use only those components styles that are actually needed, no extra stuff.
All template pages include only those JS files, that are needed on the page. So if you need, for example, some specific functinality of Datatables, just open this page and a .js file that comes after app.js
path, copy the code and paste it to your file. This helps to avoid loading of unnecessary and unused files.
Screenshot of components.less
file
Layout 1 and Layout 2
First and second layouts contain 14 blank pages. All files include a simple demo content - panel, text with headings and paragraphs, table, form and content grid samples. By default, navbar has a set of basic components - user dropdown menu, text and icon links. Sidebar has a single and multiple levels navigation with divider and section header. Starter kit of the first and second layouts contain all available layout types and options:
| What | Description | |
|---|---|---|
| Navigation | ||
horizontal_nav.html.html |
Horizontal multi level navigation with mega menu and state saving feature | |
| Columns | ||
1_col.html |
Full width page template | |
2_col.html |
2 columns page template - main sidebar and content area | |
3_col_double.html |
3 columns page layout - with main and opposite sidebars | |
3_col_dual.html |
3 columns page layout - with main and secondary sidebars | |
4_col.html |
4 columns page layout - with 3 sidebars and content area | |
| Detached sidebars | ||
detached_left.html |
Left aligned detached sidebar | |
detached_right.html |
Right aligned detached sidebar | |
detached_sticky.html |
Sticky detached sidebar, with custom scrollbar | |
| Layout options | ||
layout_boxed.html |
Boxed page layout | |
layout_fixed.html |
Layout with fixed sidebar and navbar, with custom scrollbar | |
layout_navbar_fixed_main.html |
Multiple navbars - fixed main navbar | |
layout_navbar_fixed_secondary.html |
Multiple navbars - fixed secondary navbar | |
layout_navbar_fixed_both.html |
Multiple navbars - both main and secondary are fixed |
Layout 3
Third layout contains 11 blank pages. Actually they are the same as in first two layouts, but according to main sidebar positions, this layout doesn't have detached sidebars. All files include a simple demo content - panel, text with headings and paragraphs, table, form and content grid samples. By default, navbar has a set of basic components - user dropdown menu, text and icon links. Sidebar has a single and multiple levels navigation with divider and section header. Starter kit of the third layout contains all available layout types and options:
| What | Description | |
|---|---|---|
| Navigation | ||
horizontal_nav.html.html |
Horizontal multi level navigation with mega menu and state saving feature | |
| Columns | ||
1_col.html |
Full width page template | |
2_col.html |
2 columns page template - main sidebar and content area | |
3_col_double.html |
3 columns page layout - with main and opposite sidebars | |
3_col_dual.html |
3 columns page layout - with main and secondary sidebars | |
4_col.html |
4 columns page layout - with 3 sidebars and content area | |
| Layout options | ||
layout_boxed.html |
Boxed page layout | |
layout_fixed.html |
Layout with fixed sidebar and navbar, with custom scrollbar | |
layout_navbar_fixed_main.html |
Multiple navbars - fixed main navbar | |
layout_navbar_fixed_secondary.html |
Multiple navbars - fixed secondary navbar | |
layout_navbar_fixed_both.html |
Multiple navbars - both main and secondary are fixed |
Layout 4
Fourth layout contains 10 blank pages. Here layout types are same as in other layouts, except horizontal navigations, because layout itself by default includes it. Detached sidebars are also removed, since all main sidebars are detached by default. In general, sidebars are supported, but they are optional and may be used as a secondary navigation or with specific content for specific pages. All functionality and layouts remains the same, but look different:
| What | Description | |
|---|---|---|
| Columns | ||
1_col.html |
Full width page template | |
2_col.html |
2 columns page template - main sidebar and content area | |
3_col_double.html |
3 columns page layout - with main and opposite sidebars | |
3_col_dual.html |
3 columns page layout - with main and secondary sidebars | |
4_col.html |
4 columns page layout - with 3 sidebars and content area | |
| Layout options | ||
layout_boxed.html |
Boxed page layout | |
layout_fixed.html |
Layout with fixed sidebar and navbar, with custom scrollbar | |
layout_navbar_fixed_main.html |
Multiple navbars - fixed main navbar | |
layout_navbar_fixed_secondary.html |
Multiple navbars - fixed secondary navbar | |
layout_navbar_fixed_both.html |
Multiple navbars - both main and secondary are fixed |


 There is no shame in getting stuck, but it is a shame to dent your freshly painted hood. A simple reinforcement of the hood area can prevent dents that damage the paint.
After a weekend of wheeling which included crawling out on the hood to catch a strap, I figured it was time to add some reinforcement to prevent dents. I had recently purchased a welder, so I figured this would be a good harmless project to practice my welding skills. The reinforcement could be built with out a welder, by welding makes it easier and cleaner.
All that was required in materials was about 8 feet of 1"x1"x1/8" angle. A circular hands saw with a metal cutting blade was used to cut four lengths, two to span the hood front to back, a short one for the front, and slightly longer piece for the back. A miter saw would be excellent to make the slightly odd angle cuts, but I didn't have one, so I just notched out the pieces to fit together.
The four pieces where welded together on the floor and several holes where drilled in the front and back pieces for #10 sheet metal screws. Several matching holes where drilled in the hood through the hood hat sections (not down through the hood).
Once it is screwed in, the hood is much firmer. Now I wouldn't go jumping on it, but now when I crawl out to pull out the winch cable or catch a strap, there are no worries.


--- layout: post title: Public Chauffeurs data delayed date: '2016-06-30T15:24:11-05:00' author: Open Data Portal Team categories: - Open Data - Data Portal tags: - 97wa-y6ff - tech headache ---
Due to issues with the data source, the Public Chauffeurs dataset is not showing same-day data. Updates will occur in the mornings, using data up-to-date through the previous day.
We hope to return to same-day updates sometime in July and will update this post as we have more information.


This constructor has been deprecated and will be removed in a future version of ScalaTest. Please use
the factory method, named apply
, in the Filter
companion object instead.
(I.e., to get rid of the deprecation warning, just remove new
in front
of Filter
).
This constructor has been deprecated and will be removed in a future version of ScalaTest. Please use
the factory method, named apply
, in the Filter
companion object instead.
(I.e., to get rid of the deprecation warning, just remove new
in front
of Filter
).
This overloaded constructor has been deprecated and will be removed in a future version of ScalaTest. Please use the factory method (named apply) in the Filter companion object instead.
dynamic tags for the filter
a Boolean
to indicate whether to run nested suites
a Set
of String
tag names to exclude (i.e., filter out) when filtering tests
an optional Set
of String
tag names to include (i.e., not filter out) when filtering tests
Filter one test name based on its tags.
Filter one test name based on its tags.
The returned tuple contains a Boolean
that indicates whether the test should be filtered, and if not, a Boolean
that
indicates whether the test should be ignored. A test will be marked as ignored
if org.scalatest.Ignore
is in its tags set, and either tagsToInclude
is None
, or tagsToInclude
's value (a set) contains the passed
test name, unless another tag for that test besides org.scalatest.Ignore
is also included in tagsToExclude
. For example, if a test is tagged with
both org.scalatest.Ignore
and SlowAsMolasses
, and SlowAsMolasses
appears in the tagsToExclude
set, the SlowAsMolasses
tag will
"overpower" the org.scalatest.Ignore
tag, and this method will return
(true, false).
val (filterTest, ignoreTest) = filter(testName, tags) if (!filterTest) if (ignoreTest) // ignore the test else // execute the test
the test name to be filtered
a map from test name to tags, containing only test names that have at least one tag
Please use the apply method that takes a suite instead, the one with this signature: def apply(testName: String, testTags: Map[String, Set[String]], suiteId: String): (Boolean, Boolean)
if any set contained in the passed tags
map is empty
Filter test names based on their tags.
Filter test names based on their tags.
Each tuple in the returned list contains a String
test name and a Boolean
that indicates whether the test should be ignored. A test will be marked as ignored
if org.scalatest.Ignore
is in its tags set, and either tagsToInclude
is None
, or
tagsToInclude
's value (a set) contains the test's name, unless another tag for that test besides org.scalatest.Ignore
is also included in tagsToExclude
. For example, if a test is tagged with
both org.scalatest.Ignore
and SlowAsMolasses
, and SlowAsMolasses
appears in the tagsToExclude
set, the SlowAsMolasses
tag will
"overpower" the org.scalatest.Ignore
tag, and this method will return
a list that does not include the test name.
for ((testName, ignoreTest) <- filter(testNames, tags)) if (ignoreTest) // ignore the test else // execute the test
test names to be filtered
a map from test name to tags, containing only test names included in the testNames
set, and
only test names that have at least one tag
Please use the apply method that takes a suiteId instead, the one with this signature: def apply(testNames: Set[String], testTags: Map[String, Set[String]], suiteId: String): List[(String, Boolean)]
if any set contained in the passed tags
map is empty
Returns the number of tests that should be run after the passed testNames
and tags
have been filtered
with the tagsToInclude
and tagsToExclude
class parameters.
Returns the number of tests that should be run after the passed testNames
and tags
have been filtered
with the tagsToInclude
and tagsToExclude
class parameters.
The result of this method may be smaller than the number of
elements in the list returned by apply
, because the count returned by this method does not include ignored tests,
and the list returned by apply
does include ignored tests.
test names to be filtered
a map from test name to tags, containing only test names included in the testNames
set, and
only test names that have at least one tag
Please use the runnableTestCount method that takes a suiteId instead, the one with this signature: def runnableTestCount(testNames: Set[String], testTags: Map[String, Set[String]], suiteId: String): Int
if any set contained in the passed tags
map is empty
Filter whose
apply
method determines which of the passed tests to run and ignore based on tags to include and exclude passed as as class parameters.This class handles the
org.scalatest.Ignore
tag specially, in that itsapply
method indicates which tests should be ignored based on whether they are tagged withorg.scalatest.Ignore
. If"org.scalatest.Ignore"
is not passed in thetagsToExclude
set, it will be implicitly added. However, if thetagsToInclude
option is defined, and the contained set does not include"org.scalatest.Ignore"
, then only those tests that are both tagged withorg.scalatest.Ignore
and at least one of the tags in thetagsToInclude
set will be included in the result ofapply
and marked as ignored (so long as the test is not also marked with a tag other thanorg.scalatest.Ignore
that is a member of thetagsToExclude
set. For example, ifSlowAsMolasses
is a member of thetagsToInclude
set and a test is tagged with bothorg.scalatest.Ignore
andSlowAsMolasses
, andSlowAsMolasses
appears in thetagsToExclude
set, theSlowAsMolasses
tag will "overpower" theorg.scalatest.Ignore
tag, and the test will be filtered out entirely rather than being ignored.if
NullPointerExceptiontagsToInclude
is defined, but contains an empty setif either
tagsToInclude
ortagsToExclude
are null


Example 01 - Simple usage of PIVsuite
This example demonstrates the simplest possible use of PIVsuite for obtaining the velocity field from a pair of images. For running this example, you need Matlab 2013a or higher.
Contents
Before running PIVsuite
Initialize the variable pivPar, in which parameters of PIV algorithm (such as interrogation area size) are defined. Initialize also variable pivData, to which results will be stored.
clear; pivPar = []; % variable for settings pivData = []; % variable for storing results
Define image pair to be treated. The best way is to store image's paths and filenames:
im1 = ['..',filesep,'Data',filesep,'Test von Karman',filesep,'PIVlab_Karman_01.bmp']; im2 = ['..',filesep,'Data',filesep,'Test von Karman',filesep,'PIVlab_Karman_02.bmp'];
These images (kindly provided by William Thielicke) show a flow around a cylinder.
The velocity field should not be evaluated inside the cylinder. For this reason a mask is provided, and particle motion is not searched inside masked area. The mask is defined by an image file (black-and- white format) in this example. The masking image has pixel value of 0 for masked area (inside the cylinder), and 1 for unmasked area (flow region). Store the mask to pivPar variable.
imMask = ['..',filesep,'Data',filesep,'Test von Karman',filesep,'PIVlab_Karman_mask.png']; pivPar.imMask1 = imMask; % mask for first image pivPar.imMask2 = imMask; % mask for the second image
Default settings for PIV algorithm
PIVsuite has many settings. Tell to PIV suite to use the default settings, which will work well in most cases:
[pivPar, pivData] = pivParams(pivData,pivPar,'defaults');
Run the analysis
For PIV analysis of an image pair, execute the following command (treatment migth take from seconds to few minutes):
[pivData] = pivAnalyzeImagePair(im1,im2,pivData,pivPar);
Visualize results
The variable pivData contains now results of the PIV analysis. Use command "pivQuiver" to show the velocity field. We will show a color background with velocity magnitude, overlaid by velocity vectors (quiver plot):
figure(1); pivQuiver(pivData,... 'Umag',... % show background with magnitude 'quiver','linespec','-k'); % show quiver vectors shown in black title('Particle displacement (px) in a flow around a cylinder'); xlabel('position X (px)'); ylabel('position Y (px)');
Previous figure is too small. Show another figure, showing flow details around the cylinder:
figure(2); pivQuiver(pivData,... 'crop',[350,850,230,530],... % set cropping 'Umag',... % show background with magnitude 'quiver','linespec','-k'); % show quiver vectors shown in black title('Particle displacement (px) in a flow around a cylinder (detail)'); xlabel('position X (px)'); ylabel('position Y (px)');
Extract data
Velocity field is stored in variable pivData in the following fields:
- X ... horizontal position of velocity vectors (in pixels from the left of the image)
- Y ... vertical position of velocity vectors (in pixels from the top of the image)
- U ... horizontal component of the velocity (particle displacement between the two images, in pixels, positive value pointing to the rigth)
- V ... vertical component of the velocity (particle displacement between the two images, in pixels, positive value pointing downward).
Interpolate the data to show a velocity profile. In this example, a profile of U component is shown for X = 550:
% interpolate data for desired position y = (230:530)'; x = 550 + zeros(size(y)); u = interp2(pivData.X,pivData.Y,pivData.U,x,y); % plot velocity profile figure(3); plot(u,y,'-b'); title('U profile at X = 550 px'); xlabel('particle displacement U (px)'); ylabel('position Y (px)');
Get a number of invalid velocity vectors.
fprintf('Grid points: %d. Masked vectors: %d. Spurious vectors: %d. Computational time: %f\n',... pivData.N,pivData.maskedN,pivData.spuriousN,sum(pivData.infCompTime));
Grid points: 11938. Masked vectors: 131. Spurious vectors: 522. Computational time: 15.509374


Posts
Filter posts
All last 15 posts
Only active posts
Only inactive posts
Number
Title
Content
Published
Tags
Author
Status
Picture
Modal title
×


All components align to an 4px square baseline grid for mobile, tablet, and desktop.
Iconography, typography, and some elements within components can align to a 4px grid.
Elements of the top navigation bar align to the 4px grid.
Touch targets apply to any device that receives both touch and non-touch input. To balance information density and usability, touch targets should be at least 36px x 36px.