Mobile HCI
Introduction
- Notion of mobiles varies from coutruy to countriy
- UK - mobile
- Germany - andly
- Finish - travel phone
- Japanese - portable telephone
- What is mobile to me?
- Helper, Communication, Keys to Internet
-
Do we check our mobiles too much?
-
How are people using cameras?
-
Reading books - phisical/electronic?
- Impact on Humans
- Addiction
- Controlling our world/being controlled by our phone
- Negative in social sitiations
- Gradually deskill us
- Social aspects
- Social media faster than news
- More power to the citizens
- It changes the way we communicate with each other
- Consequences on society?
Android
Android Architecture
Android Stack
-
Java apps running on Java-based, object-oriented application framework on top of Java core libraries running on Dalvik virtual machine
- Android apps written in Java
-
Bundled by aapt tool to return a .apk file
- By default each app runs in its own Linux process
- Each process has its own VM
- Each app is assigned a unique Linux user ID
Components
- Activity
- Intent
- Service
- Content Provider
- Broadcast Receiver
Activity
- An activity is a single, focused thing that the user can do
-
Forms a UI, but each activity is independent from others
- Task consists of a stack of activity elements
- eg: You open Gmail and it shows a list of emails. When you open a message, it is pushed into the stack and you will see the message. When you press back, it is popped out of the stack and you will see the list of emails
Android Lifecycle
Intent
- An intent is a messaging object you can use to request an action from another app
- eg: From Gmail, you click a website link and it starts an intent to open the web browser, from there if you click a YouTube link, it starts an intent to open YouTube
Service
- A service is an application component that can perform long-running operations in the background, and it doesn’t provide a UI
- eg: Playing music in the background
Broadcast receivers
- A broadcast receiver is a component that receive and react to broadcast announcements
- eg: If you are playing music and you get a phonecall(broadcast announcement), and your receiver can take this annoucement and stop the music.
Content providers
- A content provider makes a specific set of application’s data available to other aplications
Manifest
- Provides essential information about your app to the Android system.
Android UI
Basic Concepts
- View
- UI elements that can be drawn
- View group
- eg: Linear Layout
- Intent
- Content privider
-
Service
- XML Layout
- Where you describe how the activity looks
Layouts
- Linear
- Relative
- Table
- Grid
-
Frame
- To make UI, you can write Java code like Swing(Procedural) or write XML code(Declarative)
- Preferably Declarative
Resources
- Images, text, XML layouts, sound files, databases…
-
Held in res/ directory
- To attach the view to hierarchy tree to screen for rendering, the activity must call setContentView() in the Java file (usually made one for you by default for you)
Widget
- Anything you can interact with
- Eg: Buttons, Radiobutton, checkbox, textview
Fragments
- Represebts a behavior or a portion of UI in activity.
- eg: you can combine multiple fragments in a single activity to build a multi-pane UI and reuse a fragmet in multiple activities
Constraints
-
How has mobiles changed?
-
Given the different types of phones what problems does software engineers face?
OS
- there are too many
- Android
- iOS
- Windows
- …
Libraries
- You wont have access to your favourite libraries
- compatability problems
- less of an issue over time
- Poor docs
- Different platforms different licencing
- docs suck, libraries suck, but it sucks less over time
Frameworks
- Android SDK
- Java
- HTML5 & JS
- …
Platforms
- iOS
- restricts to ony apple products
- only able to make apps through Mac OS
- Android
- supported by many companies
- can create apps in any Win/Mac/Linux
- Windows
- RIP
Processing Power and Battery life
- to extend battery life, can’t use processor for long periods
- Speed is an issue but it has implications of battery life
- coprocessor to save battery
Memory
- memory often limited
- allocating memory is more costly than not
- forcing garbage collection causes hicups
- iOS has to manage this manually
Data
-
Data cost money, energy, battery life
- mobiles are limited in resources(data, memory, batterylife, processing power…)
- but as time goes it becomes less important
- always remember about memory
Sensors
- Camera
- Accelerometer
- Gyroscope
- Magnetometer
- Thermometer
- Light Sensors
- Proximity Sensors
- Relative Humidity Sensors
- Pressure Sensors
- Microphone
Screens
- Different Resolutions
- Different types
- Resistive
- Capacitive
User and environment
- think about users
- they are stupid
-
if you make a running app, make text and buttons big as it is harder to read when the mobile is shaking all the time
- You basically can’t get away with lazy coding
Android building blocks
Navigation
- Descendant navigation
- allows users to descend down a screen hierarchy into a chld screen
- Lateral navigation
- allows users to access sibling screens
Collections and section related siblings
- Collection related screens
- represents individual items in the collection represended by the parent
- Section-related screens
- represents different sections of information about the parent
- Tabs
- Android is at the top
- iOS is at the bottom
- Scrollable tabs
- Swipe views
- Lists
- Grids
- Carousels
- Buttons
- Text fields
- Text selection
- Seek bars and sliders
- Progress
- Activity
- Selection controls
- Dialogues
- Alerts
- Popups
- Toasts
- Pickers
- Spinners
- Search
- Multi-Window Support
- Picture-in-Picture
- Drag and Drop
Cross-platform design issues
- Android uses different design principles than iOS
- eg
- Android - Main font - Roboto
- iOS - Main font - San Francisco
- eg
Ubiquitous Computing
UbiComp/Ambience intelligence:
- post-desktop model of HCI
- informatin processing integrated with everyday life
- you may not even be aware that you’re using computing
- contrasts traditional desktop computing
- machines that fit the human environment
- third era of computing (after mainframes and PCs)
Weiser envisioned a world like this in ‘91 and then further in ‘96, calling the approach “calm computing”:
- mobile and embedded processors communicating with each other
- used to support everyday practices, making lives more convenient, comfortable and informed
- information appearing in centre of out attention when needed and disappear effortlessly when not
- a central vision was our homes, things and environments being aware and adaptable
Examples:
- HP Cooltown
- every object has a webpage
- communicate with other objects
- knows what you’re doing at all times through the environment around you
- implications
- false alarms
- privacy
- malicious access
- making sure people’s valuable records aren’t distributed
- NOKIA
- wearable tech
- IBM
- WAP-based flight check-in system
- Oyster travel in London
- other projects that never made it onto the market
- whereabouts clock
- at a brief glance, get info on where family members are
- well defined amount of detail
- know where people are without crossing personal boundaries
- only people in the house have access to it
Tangible Interaction:
- tangible interface - things that think
- give physical form to digital info
- use physical form to model interations with digital content
- making it more intuitive/engaging
- info directly graspable and manipulable
- eg disaster simulation
- place physical source marker on tabletop display depicting map of city
- detects the disaster and simulates impact
- eg media blocks
- one block associated with a digital frontend (text, image etc)
- program a block by writing its contents on a whiteboard
- take block anywhere to run it
- eg to a printer
- transfer content easily
- eg Ishii
- bottles with music inside
- open bottle and music comes out
- interact with different bottles to DJ
- eg shape-changing phones
- shifting mass
- weight inside phone to help you know what’s going on without looking at the screen
- shifting shape
- thin –> thick shows you where there is more content off-screen
- breathing
- has a heartbeat
- know when relaxed/something happening
- calm it by patting
- shifting mass
- eg Shoogle
- balls inside case physically jangle
- eg different message senders get a different pitch of sound
- when this was tested, people didn’t get it
- so important to initially demonstrate the system with a visual correspondence
- balls inside case physically jangle
- advantages
- natural for people to interact with physical objects
- easy for anyone to interact with
- playfulness
- encourage spatial thinking
- can be distributed in environment
- simultaneous interaction
Space-multiplexing:
- graspable interface offers multiple input devices
- input and output distributed over space
- allows for simultaneous, but independent and persistent selection of objects
- eg marble answering machine
- marble colour corresponds to message sender
- keep a message by putting it back in the machine/listen to it by putting it in your phone
Ambient user interfaces:
- display info in the background
- output only (no full interaction with system)
- often visually appealing
- eg dangling string network display
- string attached to motor hangs from ceiling
- speed of spinning corresponds to amount of network traffic
Scales of experience:
- the distance of interaction between device and user
- 1cm - badges, watches, fobs
- 10cm - mobile phones
- 1m - person-sized (exercise equipment)
- 10m - environmental (control rooms)
- 100m - architectural (large screens)
- 1km - urban (managing traffic flows)
Internet of Things:
Uniquely identifiable embedded computing devices within Internet infrastructure.
- everyday objects with network connectivity
- ease of communication
- ease of connecting 3rd world to the internet
- currently 9-10 billion devices on the IoT
- eg smart homes, body sensors with alarm for doctors
Cyborgs?
- constantly relying on a piece of tech
- from behavioural standpoint, this is indistinguishable from us being implanted with tech
- we’re getting used to the fact that we don’t need to constantly worry about our memory
- if you control your phone, then by definition your phone is not remote from you
- how does this behaviour shape what kind of digital surfaces we create?
Merging of mobile and ubicomp:
- borders between mobile interaction and ubicomp are disappearing
- phones are WiFi enabled, location aware and motion sensitive
- many ubicomp inventions are happening through mobile devices, rather than building specially designed devices for them
- services come to fruition when we make something new out of the sensors the phone already uses
Who is in charge?
- normally app in charge of workflow
- with ubicomp, who influences the interaction between user and computer?
Interaction Design
Designing interactive products to support people in their everyday and working lives.
- identify needs and establish requirements
- target users
- develop alternative designs
- conceptual and physical design
- build interactive versions of the designs
- paper-based prototypes
- role-playing users
- evaluate designs
- determing usability and acceptability of the product
- involve users throughout the process
Tips:
- beauty and elegance comes from simplicity
- don’t make the user think
- go to the core of the matter
- don’t just recreate a desktop app
- design with the mobile user in mind from the start
Desktop User:
- stable connection
- always plugged in
- big screen
- full attention
- control over environment
Mobile User:
- unstable signal
- network source changing
- limited battery life
- costly data plan
- divided attention
- small screen
- limited input capabilities
Mobile Opportunities:
- GPS
- gyroscope
- accelerometer
- compass
- heart rate
- camera
Building a good mobile app:
- understand
- what can target device do
- know your user
- imagine
- enhance features with device’s capabilities
- use unique features to take input/give feedback to users
- context
- what is user doing
- where is user
- who or what is near user
- who is user
- make use of online data
- info from APIs
- esp after relying on contextual data
Skeuomorphism:
Design concept of making items represented resemble their real-world counterparts.
Finding out what people want:
- what are user’s values
- what activities are performed
- how does context constrain/facilitate these behaviours
- what did people do before the task could be done on a phone
App definition statement:
Concist, concrete declaration of an app’s main purpose and intended audience.
- created early in development
- help turn an idea and list of features into a coherent product
- use throughout development to decide if potential features and behaviours make sense
- list all features you think the user might like
- determine who users are
- filter feature list through the audience definition
Typical mobile app behaviour:
Microtasking
- getting things done in short bursts
- quick access to info
- accomodate the users in a hurry
- optimise for brief recurring tasks
Local
- about things close by
- who or what is available nearby
- use sensors to reduce need to enter text and to narrow options
Bored
- games or entertainment focus
- passing the time
Paper prototyping:
- give people something concrete they can interact with
- focus on observing behaviour
- don’t waste time making things look perfect
- make changes during usability process
- people on team can contribute to design
Spectrum of prototypes:
Paper prototypes have lowest fidelity, followed by static wireframes linked together, then interactive prototypes, and finally fully coded prototypes.
Design funnel
- book - sketching user experiences
-
lots of different ideas and funnel it to few ideas
- sketch
- wirefram
- mockup
-
prototypes
- issues?
- problem?
- users?
- context?
- how you go about finding users so that you are in a possition to create a requirements?
-
- answer these qs
- whats exact problem you are trying to solved
- added value of using mobiles
- target user?
- answer these qs
- app defenisition
- features
- who the users aren
- filter the de
- features
- write down features
- user interviews
- potential user
- dont ask leading questions
- ask user if we can record
Hooked - engaging users
-
book - Hooked - Nir Eyal
- pleasure seeking —–> pain allevation
- habits are not addicitons
- addicitons are self-destructive
- habits can be healthy/un-healthy
-
with enough frequency it can form a habit
- Habit
- Trigger
- Action
- Variable Reward
- Investment
- Back to Trigger
Triggers
- places
- people
- emotions
- routines
-
situations
- first step of the Hook
- designer informs what to do next through external Triggers
- user informs wha to do next through internal triggers
- emotions provide frequent internal trigger
Action
Behaviour = Motivation + Ability + Trigger B = M + A + T
Motivation
- Level of motivation and ability determines if the action will occur
Ability
- 6 factors can increas/ descrease ability
- time
- money
- physical effort
- brain cycles
- social deviance
- non-routines
- simple action will povide rewards
- make sure clear trigger is represented
- increase ability to make it easier
- align to the right motivator
Reward
- reward unpredictable like slot machines
- understand cause and effect
the tribe
- social rewards
- cooperation
- competeition
- recognition
- acceptance
- sex
- emathetic joy
the hunt
- search for Resources
- food
- money
- information
the self
- search for sensation
- mastery
- consistency
- competency
- completion
- finite rewards decay
- as rewards become predictable, they become less interesting
- Variable rewards are not enough
- you need to give them what they were looking for
- dont control users
- they must have autonomy, but look for infinite variability and relive pain
Investment
- user pays with something
- time
- money
- social capital
- effort
- emotional commitment
- personal data
- investment increases likelihood of next pass
- anticipation of next rewards
- make next cycle more likely by
- loading next trigger
- storing value
- creating preferences
-
we value things more if we put work into them
- small amounts of work increases the likelihood of the user returning


Filters
{{ facet[0] }}
No results were found for your search. Show all Photos.
Search tips:
- Check your spelling and try searching again
- Try a similar but different search term (like street instead of road)
- Keep your search term simple and short (1 or 2 words) as our search facility works best with fewer words
- Try using our filters to find your product


The Joy of Visual Perception
Table of Contents
- Copyright page
- How To Use This Book
- Preface
- How to
prepare for a school project
- Introduction
- Glossary
- Questions
Prof. Kaiser
- Fun Things In Vision
- Master Diagram of the Eye
- Visual Acuity
- Visual Sensitivity
- Color/Color Vision
- Measuring Spectral Sensitivity
- Distance Perception
- Size Perception
- Shape Constancy
- Spatial Frequency Adaptation
- Adapting to Darkness and
Lightness
- Motion Perception
- Physics of the Visual Stimulus
- Fourier analysis; basics
- Point & line spread functions
- Some Basic Neurophysiology
- Eye Cross Section
- Neurons
- Retina
- Receptors
- Receptive Fields
- Phototherapy
- Physiological
Response To Color
- Interesting links connect you to
perception relevant home pages
- Subject Index
- References
- Suggested Readings in Visual
Perception
This book is constantly under development. Critical comments gratefully received by ( Peter Kaiser)


a. is a list of the elements of the alphabet; it determines
the collating sequence used in grading and sorting (/:
and \:). The content of a. as well as the ordering
of its elements may differ on different computing systems.
The number of elements in the alphabet is given by $a.,
and a 32-column display is given by an expression such as 8 32$a. .
The inclusion of certain control characters (such as the
carriage return) and non-printing characters make such a display
difficult to decipher, but the major alphabet is usually given by:
1 2 3 { 8 32 $ a.
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqrstuvwxyz{|}~
The index of the carriage return is commonly 13
(as may be tested by entering 13{a.), and the indices of
the space and other characters may be determined as illustrated below:
a. i. 'aA +-*%'
97 65 32 43 45 42 37
The ace (a unit, from Latin as)
is denoted by a: . It is the boxed empty
list <$0 .
|


'Prominent' Wolverhampton gang member locked up
A "prominent gang member" from Wolverhampton has been locked up after ignoring a court order banning him from part of the city.
by Jordan ReynoldsJowayne Kesto was handed three months in custody this week after police caught him breaching a criminal behaviour order by being in Skidmore Avenue, Bradmore.
The 19-year-old tried to run but officers managed to detain him.
Wolverhampton Police tweeted saying: "JAILED: A prominent gang member has been put behind bars after alert cops spotted him ignoring a court order banning him from part of the city.
"Jowayne Kesto tried to run from officers after they saw him breaching a Criminal Behaviour Order by being in Skidmore Avenue, Bradmore.
"The 19-year-old didn't get far in his escape bid on Tuesday and was quickly detained.
"Kesto, of Hughes Avenue, Wolverhampton, appeared before magistrates on Wednesday and - having breached a CBO for the second time in just two months - was sentenced to three months in custody."


Leave the crowds behind and head straight inside the Colosseum with your skip-the-line entrance ticket! In a group of no more than 25 people, explore the first...
While you’re in paradise, treat yourself to a private catamaran cruise along Barbados’ west coast. Spread out and relax with your family and friends on a...
Just BIM is a tour dedicated to showing you the 'must-see' attractions of Barbados! With over seven stops including Bathsheba, you are sure to get a taste of ...
Sign up to our newsletter to recive directly on your email our news & latest offers:


Fondue feta parmesan. Cheese on toast swiss monterey jack ricotta gouda cream cheese red leicester smelly cheese. Danish fontina cheese and biscuits swiss dolcelatte caerphilly swiss who moved my cheese macaroni cheese. Jarlsberg everyone loves boursin when the cheese comes out everybody's happy bavarian bergkase jarlsberg fondue port-salut. Stilton cheese triangles bocconcini.


Online courses all seem to share one flaw…  Inconsistent information, outdated materials, poor explanation of key concepts, and, sometimes, patently incorrect information. But if I stop to think about it for a moment, it’s actually a feature.
I can’t tell you how many times I’ve typed a long, angry tirade about inconsistencies or impossible questions only to delete the whole thing as soon as I calm down. (Well, a few might have been submitted 😳)
It’s a problem, but it’s really a feature. If we coast through a course from beginning to end without ever needing another site, it might result in a smoother experience, but we wouldn’t learn much. It doesn’t matter how good the course is. We need other perspectives or more detailed information from multiple sources. More importantly, we need to learn how to find information without a guide. And, especially in IT, we need to be very good at sorting out conflicting information and correcting errors in code and documentation. Without these supporting skills, the learned skill can’t be effectively applied on the job.


North East restaurants, takeaways & shops offering cheap food on anti-food waste app Too Good To Go
The likes of Yo Sushi and Pizza Punks offer discount 'magic bags' of surplus food for around £3 through the Too Good To Go app
by Simon MeechanDiners can get huge discounts on takeaways and cut food waste by using the Too Good To Go app.
Too Good To Go partners with food businesses to sell food which they would otherwise throw out. Customers who use the app get discounts on meals from the likes of Yo Sushi, Pizza Punks and Leila Lily's, but they do not get any say in what they order. Instead, they are given a 'magic bag' of food which would otherwise be thrown out. The food is safe to eat, and usually surplus leftover from that day.
Too Good To Go Customers will pay around £3 for a meal. Often, the meals are worth around £10, if they were ordered directly off the restaurant.
Morrisons supermarkets around the UK are Too Good To Go partners, as are many Greene King pubs. In Newcastle, popular and highly rated restaurants like Pizza Punks , Leila Lily's, Gingerinos , Gills Fish and Chips and Flint Pizza are among those who cut food waste by selling surplus produce through Too Good To Go.
To try it, download Too Good To Go's app, register and browse through the restaurants offering surplus food that day. Once you order, you are given an e-receipt, which you take to to the restaurant and redeem for your magic box.
To Good To Go says it has saved 24,658,169 meals, and counting, while 1.8m are using the app in the UK.
Here is the full list of restaurants and food businesses signed up to Too Good To Go in the North East:
Gateshead
Casa Rosa - Birtley
Morrisons - Birtley
Heworth Convenience Store - Gateshead
Sim's Kitchen - Gateshead
Baltic Kitchen - Gateshead
Valley Farm - Gateshead
Nu To Go - Gateshead
YO! - Metrocentre - Newcastle
Morrisons - Blaydon
Sunderland
Oak Tree Farm - Sunderland
Morrisons - Doxford Park
Morrisons - Seaburn
La Romana Authentic Italian Takeaway - Sunderland
Wearside Farm - Washington, Tyne and Wear
South Tyneside
Story Book - Boldon
Morrisons - South Shields
Morrisons - Jarrow
Newcastle
Lunchbox - Newcastle
Morrisons - West Denton
Morrisons - Cowgate
Royal Station Hotel - Newcastle
Sloppy Joes - Grainger Market - Newcastle
Ohayo Patisserie - Newcastle
Laneway & Co - Newcastle
The Meat Locker - Grainger Market - Newcastle
YO! Grainger Street - Newcastle
The French Oven - Newcastle
RISE Artisan Bakehouse - Grainger Market - Newcastle
Pizza Punks - Newcastle
Leila Lilys - Newcastle
Longhorns Barbecue Smokehouse - Newcastle
Flamee - Stack - Newcastle
Gills Fish and Chips - Stack - Newcastle
Manhua Cha - Newcastle
Dobsons Great Coffee - Newcastle
1901 Caffe Deli - Manors, Newcastle
CCE restaurant and cafe - City Campus East, Northumbria University, Newcastle
Gingerino's Kitchen - Ouseburn, Newcastle
Morrisons - Byker
The Cycle Hub - Newcastle
Cafe Central - Northumbria University - Newcastle
Shop Central - Northumbria University - Newcastle
Pandon Grab&Go - Northumbria University - Newcastle
Taste Cafe - Northumbria University - Newcastle
Holiday Inn - Jesmond - Newcastle
Brew & Bite - Newcastle
Flint Pizza - Heaton - Newcastle
1901 Caffe Deli - Gosforth
Chaia Tea Bar - Gosforth
Sam and Raf's Homefood - Newcastle
Communitea Cafe - Northumbria University - Newcastle
Forager's Restaurant - Northumbria University - Newcastle
C & G Cakes - Newcastle
Wheatsheaf - Woolsington
North Tyneside
Gills Fish and Chips - Wallsend
The Cumberland Arms - Tynemouth
The Deli Around The Corner - Tynemouth
Morrisons - Tynemouth
Morrisons - Killingworth
Morrisons - Whitley Bay
Cake O'Clock - Whitley Bay
Pulp Fiction - Whitley Bay
Cup of Joy - Whitley Bay
Fisherman's Bay - Whitley Bay
Northumberland
Morrisons - Blyth
Morrisons - Morpeth
Morrisons - Alnwick
Morrisons - Berwick
County Durham
Morrisons - Chester Le Street
Morrisons - Consett
Morrisons - Bishop Aukland


(If your school uses Google Apps for email, you can sign up with Google)
(If your school uses Google Apps for email, you can sign in with Google)
Have an account? Sign In
Need an account? Sign Up


Spatial joins¶
Goals of this notebook:
Based on the
countries
andcities
dataframes, determine for each city the country in which it is located.To solve this problem, we will use the the concept of a ‘spatial join’ operation: combining information of geospatial datasets based on their spatial relationship.
%matplotlib inline
import pandas as pd
import geopandas
countries = geopandas.read_file("zip://./data/ne_110m_admin_0_countries.zip")
cities = geopandas.read_file("zip://./data/ne_110m_populated_places.zip")
rivers = geopandas.read_file("zip://./data/ne_50m_rivers_lake_centerlines.zip")
Recap - joining dataframes¶
Pandas provides functionality to join or merge dataframes in different ways, see https://chrisalbon.com/python/data_wrangling/pandas_join_merge_dataframe/ for an overview and https://pandas.pydata.org/pandas-docs/stable/merging.html for the full documentation.
To illustrate the concept of joining the information of two dataframes with pandas, let’s take a small subset of our cities
and countries
datasets:
cities2 = cities[cities['name'].isin(['Bern', 'Brussels', 'London', 'Paris'])].copy()
cities2['iso_a3'] = ['CHE', 'BEL', 'GBR', 'FRA']
cities2
countries2 = countries[['iso_a3', 'name', 'continent']]
countries2.head()
We added a ‘iso_a3’ column to the cities
dataset, indicating a code of the country of the city. This country code is also present in the countries
dataset, which allows us to merge those two dataframes based on the common column.
Joining the cities
dataframe with countries
will transfer extra information about the countries (the full name, the continent) to the cities
dataframe, based on a common key:
cities2.merge(countries2, on='iso_a3')
But, for this illustrative example, we added the common column manually, it is not present in the original dataset. However, we can still know how to join those two datasets based on their spatial coordinates.
Recap - spatial relationships between objects¶
In the previous notebook 02-spatial-relationships.ipynb, we have seen the notion of spatial relationships between geometry objects: within, contains, intersects, …
In this case, we know that each of the cities is located within one of the countries, or the other way around that each country can contain multiple cities.
We can test such relationships using the methods we have seen in the previous notebook:
france = countries.loc[countries['name'] == 'France', 'geometry'].squeeze()
cities.within(france)
The above gives us a boolean series, indicating for each point in our cities
dataframe whether it is located within the area of France or not.
Because this is a boolean series as result, we can use it to filter the original dataframe to only show those cities that are actually within France:
cities[cities.within(france)]
We could now repeat the above analysis for each of the countries, and add a column to the cities
dataframe indicating this country. However, that would be tedious to do manually, and is also exactly what the spatial join operation provides us.
(note: the above result is incorrect, but this is just because of the coarse-ness of the countries dataset)
Spatial join operation¶
SPATIAL JOIN = transferring attributes from one layer to another based on their spatial relationship
Different parts of this operations:
The GeoDataFrame to which we want add information
The GeoDataFrame that contains the information we want to add
The spatial relationship we want to use to match both datasets (‘intersects’, ‘contains’, ‘within’)
The type of join: left or inner join
In this case, we want to join the cities
dataframe with the information of the countries
dataframe, based on the spatial relationship between both datasets.
We use the geopandas.sjoin
function:
joined = geopandas.sjoin(cities, countries, op='within', how='left')
joined
joined['continent'].value_counts()
Lets’s practice!¶
We will again use the Paris datasets to do some exercises. Let’s start importing them again:
districts = geopandas.read_file("data/paris_districts.geojson").to_crs(epsg=2154)
stations = geopandas.read_file("data/paris_bike_stations.geojson").to_crs(epsg=2154)
EXERCISE:
Determine for each bike station in which district it is located (using a spatial join!). Call the result
joined
.
# %load _solved/solutions/04-spatial-joins1.py
# %load _solved/solutions/04-spatial-joins2.py
EXERCISE: Map of tree density by district (I)
Using a dataset of all trees in public spaces in Paris, the goal is to make a map of the tree density by district. For this, we first need to find out how many trees each district contains, which we will do in this exercise. In the following exercise, we will then use this result to calculate the density and create a map.
To obtain the tree count by district, we first need to know in which district each tree is located, which we can do with a spatial join. Then, using the result of the spatial join, we will calculate the number of trees located in each district using the pandas ‘group-by’ functionality.
Import the trees dataset
"paris_trees.gpkg"
and call the resulttrees
. Also read the districts dataset we have seen previously ("paris_districts.geojson"
), and call thisdistricts
. Convert the districts dataset to the same CRS as the trees dataset.Add a column with the
'district_name'
to the trees dataset using a spatial join. Call the resultjoined
.
Hints
Remember, we can perform a spatial join with the
geopandas.sjoin()
function.geopandas.sjoin()
takes as first argument the dataframe to which we want to add information, and as second argument the dataframe that contains this additional information.The
op
argument is used to specify which spatial relationship between both dataframes we want to use for joining (options are'intersects'
,'contains'
,'within'
).
# %load _solved/solutions/04-spatial-joins3.py
# %load _solved/solutions/04-spatial-joins4.py
# %load _solved/solutions/04-spatial-joins5.py
EXERCISE: Map of tree density by district (II)
Calculate the number of trees located in each district: group the
joined
DataFrame by the'district_name'
column, and calculate the size of each group. We convert the resulting Seriestrees_by_district
to a DataFrame for the next exercise.
Hints
The general group-by syntax in pandas is:
df.groupby('key').aggregation_method()
, substituting ‘key’ and ‘aggregation_method’ with the appropriate column name and method.To know the size of groups, we can use the
.size()
method.
# %load _solved/solutions/04-spatial-joins6.py
# %load _solved/solutions/04-spatial-joins7.py
# %load _solved/solutions/04-spatial-joins8.py
EXERCISE: Map of tree density by district (III)
Now we have obtained the number of trees by district, we can make the map of the districts colored by the tree density.
For this, we first need to merge the number of trees in each district we calculated in the previous step (trees_by_district
) back to the districts dataset. We will use the pd.merge()
function to join two dataframes based on a common column.
Since not all districts have the same size, it is a fairer comparison to visualize the tree density: the number of trees relative to the area.
Use the
pd.merge()
function to mergedistricts
andtrees_by_district
dataframes on the'district_name'
column. Call the resultdistricts_trees
.Add a column
'n_trees_per_area'
to thedistricts_trees
dataframe, based on the'n_trees'
column divided by the area.Make a plot of the
districts_trees
dataframe, using the'n_trees_per_area'
column to determine the color of the polygons.
Hints
The pandas
pd.merge()
function takes the two dataframes you want to merge as the first two arguments.The column name on which you want to merge both datasets can be specified with the
on
keyword.Accessing a column of a DataFrame can be done with
df['col']
, while adding a column to a DataFrame can be done withdf['new_col'] = values
wherevalues
can be the result of a computation.Remember, the area of each geometry in a GeoSeries or GeoDataFrame can be retrieved using the
area
attribute. So considering a GeoDataFramegdf
, thengdf.geometry.area
will return a Series with the area of each geometry.We can use the
.plot()
method of a GeoDataFrame to make a visualization of the geometries.For using one of the columns of the GeoDataFrame to determine the fill color, use the
column=
keyword.
# %load _solved/solutions/04-spatial-joins9.py
# %load _solved/solutions/04-spatial-joins10.py
# %load _solved/solutions/04-spatial-joins11.py
The overlay operation¶
In the spatial join operation above, we are not changing the geometries itself. We are not joining geometries, but joining attributes based on a spatial relationship between the geometries. This also means that the geometries need to at least overlap partially.
If you want to create new geometries based on joining (combining) geometries of different dataframes into one new dataframe (eg by taking the intersection of the geometries), you want an overlay operation.
africa = countries[countries['continent'] == 'Africa']
africa.plot()
cities['geometry'] = cities.buffer(2)
geopandas.overlay(africa, cities, how='difference').plot()
Spatial join: transfer attributes from one dataframe to another based on the spatial relationship
Spatial overlay: construct new geometries based on spatial operation between both dataframes (and combining attributes of both dataframes)
EXERCISE: Exploring a Land Use dataset
For the following exercises, we first introduce a new dataset: a dataset about the land use of Paris (a simplified version based on the open European Urban Atlas). The land use indicates for what kind of activity a certain area is used, such as residential area or for recreation. It is a polygon dataset, with a label representing the land use class for different areas in Paris.
In this exercise, we will read the data, explore it visually, and calculate the total area of the different classes of land use in the area of Paris.
Read in the
'paris_land_use.shp'
file and assign the result to a variableland_use
.Make a plot of
land_use
, using the'class'
column to color the polygons. We also add a legend. Note: it might take a few seconds for the plot to generate because there are a lot of polygons.Add a new column
'area'
with the area of each polygon.Calculate the total area in km² for each
'class'
using thegroupby()
method, and print the result.
Hints
Reading a file can be done with the
geopandas.read_file()
function.To use a column to color the geometries, use the
column
keyword to indicate the column name.The area of each geometry can be accessed with the
area
attribute of thegeometry
of the GeoDataFrame.The
groupby()
method takes the column name on which you want to group as the first argument.
# %load _solved/solutions/04-spatial-joins12.py
# %load _solved/solutions/04-spatial-joins13.py
# %load _solved/solutions/04-spatial-joins14.py
# %load _solved/solutions/04-spatial-joins15.py
EXERCISE: Intersection of two polygons
For this exercise, we are going to use 2 individual polygons: the district of Muette extracted from the districts
dataset, and the green urban area of Boulogne, a large public park in the west of Paris, extracted from the land_use
dataset. The two polygons have already been assigned to the muette
and park_boulogne
variables.
We first visualize the two polygons. You will see that they overlap, but the park is not fully located in the district of Muette. Let’s determine the overlapping part.
Plot the two polygons in a single map to examine visually the degree of overlap
Calculate the intersection of the
park_boulogne
andmuette
polygons.Print the proportion of the area of the district that is occupied by the park.
Hints
The intersection of to scalar polygons can be calculated with the
intersection()
method of one of the polygons, and passing the other polygon as the argument to that method.
land_use = geopandas.read_file("zip://./data/paris_land_use.zip")
districts = geopandas.read_file("data/paris_districts.geojson").to_crs(land_use.crs)
# extract polygons
land_use['area'] = land_use.geometry.area
park_boulogne = land_use[land_use['class'] == "Green urban areas"].sort_values('area').geometry.iloc[-1]
muette = districts[districts.district_name == 'Muette'].geometry.squeeze()
# Plot the two polygons
geopandas.GeoSeries([park_boulogne, muette]).plot(alpha=0.5, color=['green', 'blue'])
# %load _solved/solutions/04-spatial-joins16.py
# %load _solved/solutions/04-spatial-joins17.py
# %load _solved/solutions/04-spatial-joins18.py
EXERCISE: Intersecting a GeoDataFrame with a Polygon
Combining the land use dataset and the districts dataset, we can now investigate what the land use is in a certain district.
For that, we first need to determine the intersection of the land use dataset with a given district. Let’s take again the Muette district as example case.
Calculate the intersection of the
land_use
polygons with the singlemuette
polygon. Call the resultland_use_muette
.Make a quick plot of this intersection, and pass
edgecolor='black'
to more clearly see the boundaries of the different polygons.Print the first five rows of
land_use_muette
.
Hints
The intersection of each geometry of a GeoSeries with another single geometry can be performed with the
intersection()
method of a GeoSeries.The
intersection()
method takes as argument the geometry for which to calculate the intersection.
land_use = geopandas.read_file("zip://./data/paris_land_use.zip")
districts = geopandas.read_file("data/paris_districts.geojson").to_crs(land_use.crs)
muette = districts[districts.district_name == 'Muette'].geometry.squeeze()
# %load _solved/solutions/04-spatial-joins19.py
# %load _solved/solutions/04-spatial-joins20.py
# Print the first five rows of the intersection
land_use_muette.head()
You can see in the plot that we now only have a subset of the full land use dataset. The land_use_muette
still has the same number of rows as the original land_use
, though. But many of the rows, as you could see by printing the first rows, consist now of empty polygons when it did not intersect with the Muette district.
land_use_muette = land_use.copy()
land_use_muette['geometry'] = land_use.geometry.intersection(muette)
land_use_muette = land_use_muette[~land_use_muette.is_empty]
land_use_muette.head()
land_use_muette.dissolve(by='class')
land_use_muette.dissolve(by='class').reset_index().plot(column='class')
EXERCISE: Overlaying spatial datasets
We will now combine both datasets in an overlay operation. Create a new GeoDataFrame
consisting of the intersection of the land use polygons wich each of the districts, but make sure to bring the attribute data from both source layers.
Once we created the overlay of the land use and districts datasets, we can more easily inspect the land use for the different districts. Let’s get back to the example district of Muette, and inspect the land use of that district.
Create a new GeoDataFrame from the intersections of
land_use
anddistricts
. Assign the result to a variablecombined
.Print the first rows the resulting GeoDataFrame (
combined
).Add a new column
'area'
with the area of each polygon to thecombined
GeoDataFrame.Create a subset called
land_use_muette
where the'district_name'
is equal to “Muette”.Make a plot of
land_use_muette
, using the'class'
column to color the polygons.Calculate the total area for each
'class'
ofland_use_muette
using thegroupby()
method, and print the result.
Hints
The intersection of two GeoDataFrames can be calculated with the
geopandas.overlay()
function.The
overlay()
functions takes first the two GeoDataFrames to combine, and a thirdhow
keyword indicating how to combine the two layers.For making an overlay based on the intersection, you can pass
how='intersection'
.The area of each geometry can be accessed with the
area
attribute of thegeometry
of the GeoDataFrame.To use a column to color the geometries, pass its name to the
column
keyword.The
groupby()
method takes the column name on which you want to group as the first argument.The total area for each class can be calculated by taking the
sum()
of the area.
land_use = geopandas.read_file("zip://./data/paris_land_use.zip")
districts = geopandas.read_file("data/paris_districts.geojson").to_crs(land_use.crs)
# %load _solved/solutions/04-spatial-joins21.py
# %load _solved/solutions/04-spatial-joins22.py
# %load _solved/solutions/04-spatial-joins23.py
# %load _solved/solutions/04-spatial-joins24.py
# %load _solved/solutions/04-spatial-joins25.py
# %load _solved/solutions/04-spatial-joins26.py


UNIBEN staff wait for IPPIS enrolment - The Nation Newspaper
by https://www.facebook.com/CheerfulpraiseOsagie Otabor, Benin
Staffers of the University of Benin on Monday waited several hours for officials from the office of the Accountant-General of the Federation to get enrolled in the Integrated Payroll and Personnel Information System (IPPIS).
Some members of the Academic Staff Union of Universities, UNIBEN chapter, said they would participate in the exercise against directive of its national body.
It was gathered that some UNIBEN staff were still skeptical about the importance of IPPIS.
They said they were not properly briefed on the exercise.
Read Also: UNIBEN staff wait for IPPIS enrolment
Chairman of Senior Staff Association Union of Nigeria (SSANU) Barr. Brodericks Osewa, said the directive of the union’s national body was for them to key in.
Barr. Brodericks said members of SSANU waited for officials of IPPIS to be enrolled but didn’t see them.
His words, “My members has gotten the necessary requirements ready bu we didn’t see IPPIS officials.
“We are ready for them. All the contending issues have been resolved.”
Chairman of the Non-Academic Staff Union (NASU) Comrade Anthony Igbinosa, said members of NASU waited for officials of IPPIS.
Comrade Igbinosa said his members would comply with the federal government directive.


public class Person {
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void makeOlder() {
this.age += 5;
}
}
// ...
Person p = new Person("Snoop Dog", 44)
System.out.println(p.age)
p.makeOlder()
System.out.println(p.age) // Same object, different state
public class Person {
public Person(String name, int age) {
this.name = name; this.age = age;
}
public Person makeOlder() {
// Create a new, older person
return new Person(this.name, this.age + 5);
}
}
Instead of changing state, we create a new object
class Person(first: String, last: String) {
def sayHello() = { // (Return type implied)
println(s"Hello, $first $last!")
}
}
val me = new Person("Brandon", "Morris")
me.sayHello
// > Hello, Brandon Morris!
Vector(1, 2, 3) foreach println
// > 1
// > 2
// > 3
val foo = (x: Int) => x * x // Functions are values
(1 to 10).map(foo).reduceLeft(_ + _)
// > 385
import scala.io.StdIn
import java.util.Scanner
val in = new Scanner(System.in)
val x = in.nextInt() // Java-ish
val y = StdIn.readInt // Scala
println(x + y)
| Platform | Install Command | |
|---|---|---|
| macOS |
|
|
| Ubuntu |
|
|
| Windows | Go to https://www.scala-lang.org/download/ |
.scala
files with the command:
$ scalac MyScalaProg.scala
Then run with scala
$ scala MyScalaProg.scala
scala
and is
great for messing around or trying out ideas
// In Hello.scala (or whatever you want)
object Hello {
def main(args: Array[String]): Unit = {
println("Hello, world!")
}
}
Note: Scala public classes/objects don't have
to correspond with the file names.
object Hello {
...
An object
is like a sinlgeton in Java
def main(args: Array[String]): Unit = {
...
main
functionString
Unit
, similar to Java's void
=
`; since functions are values, they have to be assigned
println("Hello, world!")
Straightforward, just prints a string
val
var
var
's are mutable
references to objects; they can change.
var i = 0
while (i < 100) {
i += 1 // Reassignment perfectly legal
}
val
(ues), on the other hand, are immutable
references.
val x = 100
x = 101 // Causes an error
val
s are much more common when using Scala functionally
val
's can point to mutable objects, and var
's
to immutable objects
def
is similar to val
and val
,
except that the assigned value is recomputed at each reference.
def exclaim(s: String) = "!!!" + s + "!!!"
def lotsOfMuls() = 2 * 3 * 4 * 5 * 6 * 7 * 8
def myDefinition = "This should be a val"
import scala.io.StdIn
object Main {
def main(args: Array[String]) = {
val name: String = StdIn.readLine()
println(progStr(name))
}
def progStr(n: String) = {
"You're a Scala programmer, " + n + "!"
// No return necessary
}
}
while
loops, but no for
loops*
while
loops work fine, but they're inherently stateful.
def printHi(x: Int) = println("Hi there")
val oneThroughTen = 1 to 10 // 1, 2, 3, ..., 10
oneThroughTen.foreach(printHi)
Works, but not ideal
def print10Times(s: String) = {
// Nested functions are smooth like jazz
def printNTimes(n: Int): Unit { // Return type required
println(s) // Lexical scoping
if (n != 0) printNTimes(n - 1)
else () // Empty expression
}
printNTimes(10) // Call the inner function
}
def print10Times(s: String) = {
@scala.annotation.tailrec // Compiler error if can't
def printNTimes(n: Int): Unit {
println(s)
if (n != 0) printNTimes(n - 1)
else ()
}
printNTimes(10)
}
def fact(n: Int): Int = {
@scala.annotation.tailrec
def fact(n: Int, current: Int): Int = {
if (n == 0) current
else fact(n - 1, current * n)
}
fact(n, 1)
}
val l: List[Int] = 1 :: 2 :: 3 :: Nil
// > List(1, 2, 3)
// Indexed lookup, but O(n)
l(1) // 2
l :+ 4
// > List(1, 2, 3, 4)
0 +: l
// > List(0, 1, 2, 3)
List
val v = Vector(1, 2, 3)
v :+ 4 // Look familiar?
// > Vector[Int](1, 2, 3, 4)
// Shorthand creation
1 to 5
// > 1, 2, 3, 4, 5
1 until 5
// > 1, 2, 3, 4
The Scala standard library will use Vector
by default,
and you should too.
val v = Vector(1, 2, 3, 4, 5)
v map (_ + 5) // Anonymous function
// > Vector(6, 7, 8, 9, 10)
v.reduceLeft(_ + _)
// > 15
// Works like ((1 + 2) + 3)
v.foldLeft(1)((a, b) => a * b) // Currying
// > 120
map
function
val m = Map("1" -> 1, "2" -> 2, "3" -> 3)
// Like other collections, access by "applying"
m("2")
// > 2
// Since access is applying, we can actually map over
Vector("1", "3").map(m)
// > Vector(1, 3)
// Add elements (creates new map)
m + ("4" -> 4)
// > Map("1" -> 1, "2" -> 2, "3" -> 3, "4" -> 4)
for (i <- 1 to 10) {
println("This seems like a for loop...")
}
val v = Vector(1, 2, 3, 4, 5)
for (i <- v) yield i * i
// > Vector(1, 4, 9, 16, 25)
for (i <- 1 to 10;
j <- i to i * 2
if j == 19) yield Vector(i, j)
// > Vector(Vector(10, 19))
Really just syntactic sugar for map
and other functions
int partition(int arr[], int left, int right) {
int i = left, j = right;
int tmp;
int pivot = arr[(left + right) / 2];
while (i <= j) {
while (arr[i] < pivot) i++;
while (arr[j] > pivot) j--;
if (i <= j) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
}; // Keep scrolling...
return i;
}
void quickSort(int arr[], int left, int right) {
int index = partition(arr, left, right);
if (left < index - 1)
quickSort(arr, left, index - 1);
if (index < right)
quickSort(arr, index, right);
}
That's a lot of code...
def quicksortInt(c: List[Int]): List[Int] =
if (c.isEmpty) {
c
} else {
val (smaller, bigger) = c.tail partition (_ < coll.head)
quicksortInt(smaller) ::: c.head :: quicksortInt(bigger)
}
That's a lot better
Scala is very powerful, and you can do a lot with just one line


Back
Destroy
Save
Farm Org.
Farm Org.
Poultry Balance
Quantity:
Female Quantity:
Total Weight:
Destroy By:
Dead
Culling
Reason:
Select
Picture 1
Picture 2


Vernier Go Direct® JavaScript
Example 4: Setting Defaults and Passing Arguments
This example shows how you can use the godirect-js module to communicate with a Vernier Go Direct Sensor. This includes:
- Select a Go Direct Device
- Set the active sensors in your program
- Set the measurement period in your program
- Collect 10 measurements from the enabled sensors
- Disconnect


| Xmega Application Note | |||||
Configuration Change Protection write functions. More...
Go to the source code of this file.
Functions | |
| void | ccp_write_io (void *addr, uint8_t value) |
| Write to a CCP-protected 8-bit I/O register. |
Configuration Change Protection write functions.
Copyright (C) 2010 Atmel Corporation. All rights reserved.
Definition in file ccp.h.
| void ccp_write_io | ( | void * | addr, | |
| uint8_t | value | |||
| ) |
Write to a CCP-protected 8-bit I/O register.
| addr | Address of the I/O register | |
| value | Value to be written |
Referenced by nvm_exec(), nvm_issue_command(), pmic_set_vector_location(), reset_do_soft_reset(), sysclk_init(), sysclk_lock(), sysclk_set_prescalers(), and sysclk_set_source().
| Generated on Fri Oct 22 12:15:25 2010 for AVR1300 Using the Xmega ADC by 1.6.3 |


Ebola trial research study Sierra clinical outbreak vaccine EBOVAC-Salone trials {border-style px;} #ffffff;} epidemic response Health Leone community design health ethics participants World team emergency authorities staff support African challenges collab: engagement epidemic, ethical lessons London Medicine accessed learned outbreak, px; regulatory setting trial. {font-family However, Hygiene March Regulatory School Tropical affected experience font-size implementing limited recruitment safety Kambia Leone, Leone. additional article countries determine double; epidemic. future including involved national need participants. participation partners reviews Ethical Innovative Medicines Vaccine appropriate border-color border-width conduct context designs enrolment established infrastructure international issues provide public recommendations researchers review solid; team, work {font-style {font-weight Ad.ZEBOV/MVA-BN-Filo Clin College EBOVAC Ebola-related Initiative October Organization Researchers West [], age approach bold cluster-randomised common concerns considerations considered country courier; data de-escalation declared disease em; end engaged ensure establish experiences groups immunogenicity implemented included investigational local medical new number organisations outbreak. participating particularly people possible potential power prior prophylactic pt;} recruited recruiting research, response. risk situation trial, use vaccines virus


{% extends "blog/base.html" %} {% block content %}
Choose a post to trigger a hit
No posts are available.


This is a tutorial for MPIFR users to use VNCVIEWER to connect the desktop in the institute with their own Macs.
Hope that you can make it yourself.
Linux: vncviewer localhost:5902 (after step 5)
Connect to Effelsberg directly:
>> ssh -g -L 5995:observer8:5930<EMAIL_ADDRESS>>> Mac: Command+K; vnc://localhost:5995 (Linux: vncviewer :5995 )
>> ssh -g -L 5994:observer8:5920<EMAIL_ADDRESS>>> Mac: Command+K; vnc://localhost:5994 (Linux: vncviewer :5994 )


public class EditorController
extends java.lang.Object
implements javafx.fxml.Initializable
| Constructor and Description |
|---|
EditorController() |
| Modifier and Type | Method and Description |
|---|---|
void |
chooseBackgroundColor()
Method to change the current background color.
|
void |
chooseCellColor()
Method to change the current cell color.
|
void |
chooseDrawClick()
Method called when the user interacts with the chooseDrawBox choice box.
|
void |
chooseSizeClick()
Method called when the user interacts with the gif-size choice box.
|
void |
clearBoardClick()
Method called when the user clicks the clear board button.
|
void |
closeClick()
Method to exit the application.
|
void |
drawEditorBoard()
Method responsible for calling CanvasDrawers drawBoard() with the considerations of the quadratic nature
of the editor board.
|
void |
drawStrip()
Method responsible for drawing the "Strip".
|
void |
initialize(java.net.URL location,
java.util.ResourceBundle resources)
A concrete implementation of the method in interface Initializable.
|
void |
mouseDragged(javafx.scene.input.MouseEvent mouseEvent)
Method to be called when the user drags the mouse on the editor board, calling CanvasDrawers
drawDragged() method to let the user draw active cells on the board by dragging.
|
void |
mouseDragOver()
Method called when the user lets go of the mouse button after a drag.
|
void |
mousePressed(javafx.scene.input.MouseEvent mouseEvent)
Method to be called when the user presses the mouse on the editor board, calling CanvasDrawers
drawPressed() method to let the user draw active cells on the board.
|
void |
resizeBoardOnEnter()
Method to resize the editor board.
|
void |
saveGifClick()
Method called when the user clicks the export GIF button.
|
void |
saveRLEClick()
Method called when the user clicks the export RLE button.
|
void |
setExportBoard(Board board)
Method to set the current exportBoard object to that of the parameter.
|
void |
setGameOfLife(GameOfLife gOL)
Method to set the current gameOfLife object to that of the parameter.
|
void |
setRules()
Method called when the user presses enter within the rule text-box.
|
void |
toggleGridClick()
Method called when the user clicks the grid button.
|
public void initialize(java.net.URL location, java.util.ResourceBundle resources)
initialize
in interface javafx.fxml.Initializable
location
- The location used to resolve relative paths for the root object,
or null if the location is not known.resources
- The resources used to localize the root object, or null if the root object was not localized.cellColorPicker
,
backgroundColorPicker
,
ruleInputField
,
resizeBoardInput
,
fpsInputField
,
numFramesInputField
,
chooseSizeBox
,
chooseDrawBox
public void drawEditorBoard()
editorCanvas
,
Board.getWidth()
,
Board.getHeight()
,
CanvasDrawer.setCellDrawSize(double)
,
CanvasDrawer.drawBoard(Canvas, Board, GraphicsContext, Color, Color, boolean)
public void drawStrip()
stripBoard
,
gameOfLife
,
stripBoard
,
GameOfLife.clone()
,
GameOfLife.getPlayBoard()
,
CanvasDrawer.drawStripBoard(GameOfLife, Board, Canvas, Color)
public void closeClick()
editorCanvas
public void resizeBoardOnEnter()
public void chooseCellColor()
currentCellColor
,
cellColorPicker
,
drawEditorBoard()
public void chooseBackgroundColor()
public void mousePressed(javafx.scene.input.MouseEvent mouseEvent)
mouseEvent
- The event of the mouse click.drawEditorBoard()
,
CanvasDrawer.drawPressed(MouseEvent, Board, boolean)
public void mouseDragged(javafx.scene.input.MouseEvent mouseEvent)
mouseEvent
- The event of the mouse drag.drawEditorBoard()
,
CanvasDrawer.drawDragged(MouseEvent, Board, boolean)
public void mouseDragOver()
drawStrip()
,
CanvasDrawer.setEraseFalse()
public void clearBoardClick()
drawEditorBoard()
,
drawStrip()
,
Board.resetBoard()
public void toggleGridClick()
grid
,
drawEditorBoard()
public void setRules()
public void chooseSizeClick()
chooseSizeBox
,
gifSize
public void chooseDrawClick()
chooseDrawBox
,
drawEntireBoard
public void saveRLEClick()
public void saveGifClick()
drawEntireBoard
,
gifSize
,
numFramesInputField
,
fpsInputField
,
gameOfLife
,
Board.getWidth()
,
Board.getHeight()
,
PopUpAlerts.sizeBoardError()
,
PopUpAlerts.gifFramesAlert()
,
PopUpAlerts.gifFPSAlert()
,
PopUpAlerts.gifSimilarityAlert(int)
,
Statistics.getStatistics(GameOfLife, int)
,
Statistics.getHighestSimilarity(int[][])
,
GameOfLife.clone()
,
GifConstructor.GifConstructor(GameOfLife, int, int, boolean, Color, Color, int)
,
GifConstructor.exportGif(String)
public void setExportBoard(Board board)
board
- The new board to be set.exportBoard
public void setGameOfLife(GameOfLife gOL)
gOL
- The new GameOfLife object to be set.exportBoard


sorcer.core.deploy
Classes
DeployConstrainedExertionTest
DeployExertionTest
DeploymentIdFactory
FileResolverHandler
OperationalStringFactory
OperationalStringFactoryTest
ProvisionManagerTest
ProvisionMonitorCache
ServiceDeployment
ServiceElementFactory
ServiceElementFactoryTest
ServiceUtil


Internet Explorer 9
Here is some textWindows Internet Explorer 9（简称 IE9）于 2011 年 3 月 14 日发布.....
Do not forget to buy milk today.
Windows Internet Explorer 9（简称 IE9）于 2011 年 3 月 14 日发布.....
Do not forget to buy milk today.
This is a long quotation. This is a long quotation. This is a long quotation. This is a long quotation. This is a long quotation.
Here comes a short quotation: This is a short quotation


Stations Noise Impact
This web application aims to measure the noise impact to buildings near any random railway station in the UK and Ireland within a 500m radius. This application is using the content of the OS Vector Tile API in the "Road" style to generate the map, as well as the OS Features API product OS Zoomstack Layer, with the feature typenames listed below:
- Zoomstack_Railway_Stations
- Zoomstack_District_Buildings
You simply select a station from the dropdown menu and it generates the following information related to the station
- The total number of buildings within the radius
- Their total area
- The noise impact obtained by the ratio of buildings area to that of the radius
Impact of Wind Turbines on Birds
Check the risk levels wind turbines have on birds. The risk level turbines have on woodland and surface water birds is calculated by finding the areas of each feature within a 5 mile radius of a turbine, then combined to give an overall risk score. The features used in this project are:
- Topography_TopographicArea
- Zoomstack_Woodland
- Zoomstack_Surfacewater
Finding the Nearest Secondary Schools to Hospitals
This project was created in light of the coronavirus pandemic. A scenario was created to address
a potential problem that could arise from the coronavirus, and OS Features from the DataHub API were used to
create a hypothetical solution.
At the moment, hospitals are incredibly stretched and find it difficult to cope
with the sheer number of coronavirus patients. In addition, schools are currently closed for the next few
months.
Another potential issue that arose was the number of patients contracting the coronavirus whilst in hospital
for
a non-coronavirus related issue. One possible solution to address these issues is to use schools as temporary
'coronavirus' hospitals or quarantine centres. Patients can stay and be treated in the schools, thus, reducing
the risk of spreading the disease. Quarantine centres have been used in countries around the world, with a
great
degree of success.
For this project, I identified the top 10 UTL areas with the most coronavirus cases as of 8th April
2020, using
the gov.uk
website
I matched these areas with the Highways_Street Feature, and used the Sites_FunctionalSite feature to add
hospitals
and Secondary Schools to the map. When you click on a hospital, it will show the nearest Secondary School to
it, and
this distance in miles it is from the hospital. The features I used in this project are:
- Sites_FunctionalSite
- Highways_Street
Geovation Community Map
The Geovation Community Map was made to get a better insight into the numbers of different personnel, and their locations. Markers are used to show the locations of partner hubs, sponsors and stakeholders, and I created choropleth maps to show where the startups supported, hub members and network connections are. For this project, I used:
- OS Vector Tile API
- OS Boundary Line Product
Assessing the Impact of the Bounds Green/Bowes LTN Scheme
In August 2020, Enfield Council decided to implement a Low Traffic Neighbourhood scheme at Bounds Green/Bowes.
However, many residents expressed their concerns with the proposals. I use this project to analyse residents' concerns,
whilst using OS Products and Features
from the OS Datahub APIs.
Click on a road, to see the concerns of residents as a result of the scheme, or click on a school to see the
average distance from the school to the main road,
as well as the number of students exposed to traffic and pollution from the main roads.
For this project, I used:
- OS Vector Tile API
- OS Boundary Line Product
- Sites_FunctionalSite
- Highways_Roadlink


Zend Framework
LICENSE
This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to<EMAIL_ADDRESS>so we can send you a copy immediately.
Style object.
Style object doesn't directly correspond to any PDF file object. It's utility class, used as a container for style information. It's used by Zend_Pdf_Page class in draw operations.
\Zend_Pdf_Color|null
$_color= ''
Line color.
Current color, used for lines and font outlines.
array
$_lineDashingPattern= ''
Array which describes line dashing pattern.
It's array of numeric: array($on_length, $off_length, $on_length, $off_length, ...)
__construct(
\Zend_Pdf_Style $anotherStyle
=
null
)
:
void
Create style.
| Name | Type | Description |
|---|---|---|
| $anotherStyle | \Zend_Pdf_Style |
getFont(
)
:
\Zend_Pdf_Resource_Font
Get current font.
| Type | Description |
|---|---|
| \Zend_Pdf_Resource_Font | $font |
instructions(
)
:
string
Dump style to a string, which can be directly inserted into content stream
| Type | Description |
|---|---|
| string |
setFillColor(
\Zend_Pdf_Color $color
)
:
void
Set fill color.
| Name | Type | Description |
|---|---|---|
| $color | \Zend_Pdf_Color |
setFont(
\Zend_Pdf_Resource_Font $font, float $fontSize
)
:
void
Set current font.
| Name | Type | Description |
|---|---|---|
| $font | \Zend_Pdf_Resource_Font | |
| $fontSize | float |
setFontSize(
float $fontSize
)
:
void
Modify current font size
| Name | Type | Description |
|---|---|---|
| $fontSize | float |
setLineColor(
\Zend_Pdf_Color $color
)
:
void
Set line color.
| Name | Type | Description |
|---|---|---|
| $color | \Zend_Pdf_Color |
setLineDashingPattern(
array $pattern, float $phase
=
0
)
:
void
Set line dashing pattern
| Name | Type | Description |
|---|---|---|
| $pattern | array | |
| $phase | float |


Posted on August 24, 2013 at 9:00 PM
System Shock: Enhanced Edition launched in September, but developer Night Dive Studios was not content to just stop there.
The classic cyberpunk adventure, which went on to spawn a sequel and inspire Irrational Games' BioShock franchise, received a high-definition makeover, which is now available for purchase. But as Night Dive Studios' CEO Stephen Kick told Fast Company earlier this month, the company's next big project is to take the original game and completely reimagine it.
Night Dive Studios acquired the rights to the System Shock franchise IP from the Star Insurance Company, which picked them up after original developer Looking Glass Studios was forced to relinquish the assets following its closure.
After testing the waters with its Enhanced Edition of System Shock, the studio is now working on a full remake. The spirit of the original title guides the fairly young Night Dive, which opened its doors in 2012. "We have been in contact with members of the original System Shock team and any future iterations of the System Shock games, and by this I mean both new titles in the series as well as major updates to the existing games, will be very true to the spirit of the originals," Kick told us.
That commitment to preserving the essence of the 1994 release is made apparent in concept artist Robb Waters' participation with the remake, which will be powered by the Unity engine. Polygon got to take an exclusive peek behind the curtain at the project. Take a look below to see a comparison between the original and remade versions of System Shock, as well as original artwork for the new game./p>


(a) The circuit show in Fig. 1(a) has been in the form for a very long time. The switch opens at t=0.Find i
R at t equals to (i)0-
(ii)0+ (iii)
α (iv)1.5ms. (b) Find the value of Vc in the circuit of Fig. 1(b) at t equal to (i)0- (ii)0+ (iii)1.3ms(20 Marks)
(a) Find an expression of Vc(t) valid for t > 0 in the circuiit of Fig.2(a). (b) After being open for a long time, the switch in Fig. 2(b) close at t=0. Find (i)iL(0-)
(ii)Vc(0-) (iii)Vc(0,2).
(20 Marks)
(a) Apply the forcing function
v(t) = 60e-2t cos(4t + 10o)V to the series RLC circuit shown in Fig.3(a), and specify the forced response by finding values for Im
and ϕ in the time-domain expression i(t)= Ime-2t cos (4t+ ϕ). (b) Determine i(t) for t > 0 in the series RC circuit shown in Fig.3(b).
(a) Determine the Ic(s) and IL(s) in the circuit of Fig. 4(a). You may assume no energy initially stored in the circuit at t=0-. (b) Working in the s-domain, find the Norton equivalent connected to the 1Ω resistor in the circuit of Fig.4(b).(20 Marks)
(a) A parallel circuit is defined by C=0.01F, B = 2.5 rads-1, ώ0 == 20rads-1. Find the values of R and L if the network is scaled in (i) magnitude by a factor of 800; (ii) frequency by a factor of 10
4; (iii) magnitude by a factor of 800 and frequency by a factor of 104. (b) The voltage vs = 100cosώt mv is applied to a series resonant circuit composed of a 10Ω resistance, a 200nF capacitance and a 2mH inductance. Use both exact and approximate methods to calculate the current amplitude if ώ = 48K rad/s.(20 Marks)


WITNESS LIST State Health Care Expenditures, Select Committee April 1, 2003-4:00P HB 1555 For: Lovelace, Joe (National Alliance for the Mentally Ill of Texas) HB 1585 For: Marshall, Glen (Doctor's Hospital - Tidwell/Parker) Against: Svadlenak, Steve (Texas Association of Public and Nonprofit Hospitals) On: Berndt, Trey (Health and Human Services Commission) HB 1744 For: McGiffert, Lisa (Consumers Union) HB 1804 For: de la Riva, Debbie (Self and Lone Star Chapter of the National Hemophilia Foundation) Akin, Thomas E. (Self) Argo, Christy (Self and Texas Central Hemophilia Association) Beattie, Susan (Self) Blomquist, Phill (Self and Lone Star Chapter, National Hemophilia Foundation) Brooks, Kerry (Self and Texas Central Hemophilia Association) Champagne, Kelly D. (Self and Texas Central Hemophilia Association) Dattohi, Raymond (Self and Texas Central Hemophilia Association) Elliott, Barbara (Self) Evans, Lewis "Leon" (Center for Health Care Services, Bexar County MHMR) Fadness, Cynthia A. (Self) Gonzales, David (Texas Pharmacy Association) Gonzalez, Udanna (Self) Holcomb, M.D., John (Texas Medical Association) Lovelace, Joe (National Alliance for the Mentally Ill of Texas) Malson, Christine A. (Self) Morin, Lupe Torres (Self) Paleo, Janet (Self) Parker, Ph.D., Carolyn A. (Texas AIDS Network) Whitaker, David (Self) Young, Leslie Garrett (Self) Against: Routh, M.D., Lisa C. (Self) On: Gionfriddo, Pam (Mental Health Association) Kelemen, George (AARP) Martinez, Jaime P. (LULAC / L.C.L.A.A.) McGiffert, Lisa (Consumers Union) Powell, Marjorie (PHRMA) Rivers, Cheryl (National Legislative Association on Prescription Drug Prices) Suiter, Kim (National Multiple Sclerosis Society, Texas Chapters) HB 1933 For: McGiffert, Lisa (Consumers Union) Rivers, Cheryl (National Legislative Association on Prescription Drug Prices) Romero, Jesse (Center for Policy Alternatives) Suiter, Kim (National Multiple Sclerosis Society, Texas Chapters) Against: Gonzales, David (Texas Pharmacy Association) Lovelace, Joe B. (National Alliance for the Mentally Ill of Texas) Powell, Marjorie (Pharmaceutical Research and Manufacturers of America) On: Kelemen, George (AARP) HB 2735 Against: Gonzales, David (Texas Pharmacy Association) Defined Contribution Panel On: Bailey, Mark (Definity Health) Borden, David A. (Deloitte and Touche) Cheatham, Judy (Humana, Inc.) Morreim, E.H. (Self) Rodgers, Darren (Blue Cross Blue Shield of Texas) Sullivan, Mike (Blue Cross Blue Shield of Texas) Umile, Rose (Raytheon Company)


SleevePatch is an educational source for information regarding Should Sleeve Insignias. We make no money on this website. We encourage people to take a look at the accompanying Wikipedia articles to learn more about the military units depicted within. If you have any questions or patches you would like to see added to this website, please email Nathan.


--- layout: post title: Quilted Laptop Cover date: 2011-09-15 02:01:19.000000000 -04:00 categories: - Craft - Quilts - Sewing tags: - Honey bun - Laptop cover - Mac laptop cover - Make Life fabric - Quilted laptop cover - Sweetwater - Things to make with honey buns status: publish type: post published: true meta: aktt_notify_twitter: 'no' _edit_last: '1' dsq_thread_id: '1188574738' author: login: cint email<EMAIL_ADDRESS>display_name: Jacinta first_name: Jacinta last_name: '' ---
I am so excited to have finally made my trusty Mac laptop a cover. I was determined not to go out and buy a cover and make my own. It only took most of this year to get to it. Of course it took no time to make once I started. I made the pattern up as I went.
I made it out of a honey bun from Sweetwater's Make Life fabric range. Oh, I do love me some pre-cuts. The grey and white spotted lining fabric I purchase at Spotlight. I'm really happy with how it has sewn up and hope I can avoid scratching my laptop any further. The cover also acts as a mat to sit under my laptop too.
[caption id="attachment_1171" align="aligncenter" width="600" caption="From this....."][/caption]
[caption id="attachment_1165" align="aligncenter" width="600" caption="to this. Front of cover"][/caption]
[caption id="attachment_1166" align="aligncenter" width="600" caption="Back of cover"][/caption]
[caption id="attachment_1168" align="aligncenter" width="600" caption="Inside of cover"][/caption]
Jacinta x


Find matching books for a given HathiTrust, Internet Archive, or Google Books URL.
Example supported URLs:
https://archive.org/details/opvscvlaacademi03heyngoog
https://babel.hathitrust.org/cgi/pt?id=hvd.32044102854122
https://hdl.handle.net/2027/uc1.$b674056
https://catalog.hathitrust.org/Record/001057888
https://www.google.com/books/edition/_/xSIAAAAAYAAJ
https://books.google.com/books?id=qJnYgDwudQgC
https://play.google.com/store/books/details?id=qJnYgDwudQgC
Backend data indexes last updated: 2019/02/19


Just found this short bit on MarketingWonk, my new daily reading and a really nice and informative side. For all those wanting to delve down into how the Google ranking works, here is a short introduction.
The formula for the top rank at Google is likely very close to something like
CTRCPC1000 = RPM
CTR = Click-Through Ratio CPC = Cost-per-Click RPM = Revenue per thousand (M coming from Roman numerology)
This in effect gives you a number and the higher the number the more money Google earns with that advertiser for that keyword. An example will make it clear.
Advertiser 1 is paying $1 per Click and has a 5% clickthrough rate. Advertiser 2 is paying $0.5 per Click but has a 15% clickthrough rate.
Other pay-per-click sites now put Advertiser 1 above Advertiser 2. Google would put Advertiser 2 above Advertiser 1. Why?
Let’s looks at 1000 searches for the keyword they are both advertising on.
Advertiser 1: $110000.05=$50 Advertiser 2: $0.510000.15=$75
It makes more sense to put 2 on top and give him this little extra push in clickthroughs to increase your revenue. You also want to make that advertiser happy.
As a side effect, the ad more clicks is guessed to be the one more relevant for he user. This is where we are getting very complicated though and as Kevin said in the comments, you need to see which position, wording, CPC, … is right for you and your campaign. This would be going to deep for this short introduction. It’s a great field.


{% seo title=false %} {% include meta.html %}
{% include analytics.html %}
Home
Blog
Talks
Ideas
Quotes
Literature
About
{{ content }}


Your browser doesn’t support HTML5 audio. To listen to this podcast, check it out in iTunes or download it directly.


Revolutionizing Business Interactions
Everyone uses them, but it's a pain getting them out.  You could use a business card holder and show everyone how complicated you can make simple tasks. Or, use Dealr, and retrieve each card in the blink of an eye.
Having trouble with Pages? Check out our documentation or contact support and we’ll help you sort it out.


| MPI_FILE_DELETE(filename, info) | |
| IN filename | name of file to delete (string) |
| IN info | info object (handle) |
int MPI_File_delete(const char *filename, MPI_Info info)
MPI_File_delete(filename, info, ierror)
CHARACTER(LEN=*), INTENT(IN) :: filename
TYPE(MPI_Info), INTENT(IN) :: info
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
MPI_FILE_DELETE(FILENAME, INFO, IERROR)
CHARACTER*(*) FILENAME
INTEGER INFO, IERROR
MPI_FILE_DELETE deletes the file identified by the file name filename. If the file does not exist, MPI_FILE_DELETE raises an error in the class MPI_ERR_NO_SUCH_FILE.
The info argument can be used to provide information regarding file system specifics (see Section File Info ). The constant MPI_INFO_NULL refers to the null info, and can be used when no info needs to be specified.
If a process currently has the file open, the behavior of any access to the file (as well as the behavior of any outstanding accesses) is implementation dependent. In addition, whether an open file is deleted or not is also implementation dependent. If the file is not deleted, an error in the class MPI_ERR_FILE_IN_USE or MPI_ERR_ACCESS will be raised. Errors are raised using the default error handler (see Section I/O Error Handling ).


This module provides basic, stand-alone Hadoop simulators for debugging support.
Simulates the invocation of program components in a Hadoop workflow.
from my_mr_app import Factory
hs = HadoopSimulatorLocal(Factory())
job_conf = {...}
hs.run(fin, fout, job_conf)
counters = hs.get_counters()
Run the simulator as configured by job_conf, with num_reducers reducers. If file_in is not None, simulate the behavior of Hadoop’s TextLineReader, creating a record for each line in file_in. Otherwise, assume that the factory argument given to the constructor defines a RecordReader, and that job_conf provides a suitable InputSplit. Similarly, if file_out is None, assume that factory defines a RecordWriter with appropriate parameters in job_conf.
Simulates the invocation of program components in a Hadoop workflow using network connections to communicate with a user-provided pipes program.
program_name = '../wordcount/new_api/wordcount_full.py'
data_in = '../input/alice.txt'
output_dir = './output'
data_in_path = os.path.realpath(data_in)
data_in_uri = 'file://' + data_in_path
data_in_size = os.stat(data_in_path).st_size
os.makedirs(output_dir)
output_dir_uri = 'file://' + os.path.realpath(output_dir)
conf = {
"mapred.job.name": "wordcount",
"mapred.work.output.dir": output_dir_uri,
"mapred.task.partition": "0",
}
input_split = InputSplit.to_string(data_in_uri, 0, data_in_size)
hsn = HadoopSimulatorNetwork(program=program_name, logger=logger,
loglevel=logging.INFO)
hsn.run(None, None, conf, input_split=input_split)
The Pydoop application program will be launched sleep_delta seconds after framework initialization.
Run the program through the simulated Hadoop infrastructure, piping the contents of file_in to the program similarly to what Hadoop’s TextInputFormat does. Setting file_in to None implies that the program is expected to get its data from its own RecordReader, using the provided input_split. Analogously, the final results will be written to file_out unless it is set to None, in which case the program is expected to have a RecordWriter.


Add a New Data Point
POI Location Name:
Chattahoochee River
Georgia Tech
Time/Date of Data Reading:
Data Type:
$typeTitle "; } ?>
Data Value:
Back
Submit


All lectures have been very well prepared for the best learning experience of future developers.
Learn all major Web Technologies: HTML5, CSS3, JavaScript, Twitter Bootstrap, PHP, MySQL, WordPress, Ajax, XML, JSON, Mobile Apps API's, Google Maps, Facebook and MORE!
Post your questions in the forums of the course where myself and thousands of students are happy to help!


! DART software - Copyright UCAR. This open source software is provided ! by UCAR, "as is", without charge, subject to all terms of use at ! http://www.image.ucar.edu/DAReS/DART/DART_download ! ! DART $Id$ program test_dipole_interp ! I believe that I have done an initial test of the new interpolation ! in the directory /fs/image/home/jla/DART_FIX_POP_INTERP/DART/models/POP/work ! and that it worked successfully. I needed to copy some extra files from ! my old test directories. I ran test_dipole_interp and selected option 2, ! which interpolates from a regular grid to the dipolex3 (I think). I then ! plotted the output with plot_global_grid.m and plot_globe_dif.m. The ! results looked consistent with the results a obtained with the old interp ! version on coral. ! ! We should definitely do additional clean-up on this testing case, and ! possibly include a x1 test version, plus add a bit more documentation. ! ! Confirming my test on coral and then testing on blue_fire seems the ! appropriate next steps. use model_mod, only : test_interpolation implicit none integer :: test_casenum write(*, *) 'There are 3 pairs of tests' write(*, *) 'Run test 1 followed by test 2' write(*, *) ' test 3 followed by test 4' write(*, *) ' or test 5 followed by test 6' write(*, *) write(*, *) 'Test Case Menu' write(*, *) write(*, *) '1: regular grid -> dipole grid' write(*, *) '2: dipole grid -> regular grid' write(*, *) '-------------------------------' write(*, *) '3: regular grid -> regular grid with same grid as dipole in SH' write(*, *) '4: regular grid with same grid as dipole in SH -> regular grid' write(*, *) '-------------------------------' write(*, *) '5: regular grid with same grid as dipole in SH -> dipole grid' write(*, *) '6: dipole grid -> regular grid with same grid as dipole in SH' write(*, *) write(*, *) 'Select integer case' read(*, *) test_casenum call test_interpolation(test_casenum) end program test_dipole_interp ! <next few lines under version control, do not edit> ! $URL$ ! $Id$ ! $Revision$ ! $Date$


EugeneLab
Design
How-To
Contact
EugeneLab IDE
Library
Files
Open File
New File
Upload File
Delete File
Upload File
New File
×
Are you sure?
Click "Run" to Try EugeneLab!
Save
Run
Trash
'
Editor
Output
Console
SBOL Visual
SBOL XML/RDF


Commissioner Hamilton Meserve was not present and will be away until the next Commissioners’ meeting on February 4, 2020.
Commissioner Blodgett moved to approve minutes from the January 7, 2020 meeting; second by Commissioner Trescot; 2 – 0 vote approved.
From the Finance Department, Finance Director, Michelle Cearbaugh, presented for approval:
Warrant #712 $178,935.00
Commissioner Blodgett; moved to approve; second by Commissioner Trescot; 2 – 0 vote approved. Both Commissioners signed.
Presented for approval:
Payroll Warrant #2 $176,948.17
Motion to approve, by Commissioner Blodgett; second by Commissioner Trescot; 2 – 0 vote approved. Both Commissioners signed.
Sheriff Todd Brackett and Chief Deputy, Rand Maker, reported a current Jail count of 25 Lincoln
County inmates being held at Two Bridges Regional Jail (TBRJ); 28 Sagadahoc inmates are at TBRJ; 1 Federal; 34 Oxford; 44 Penobscot; 1 Hancock; 1 Knox; for a total of 134 at TBRJ. An additional 26 are being diverted by the Lincoln County Sheriff’s Office; 24 are diverted by Maine Pretrial; 129 are being diverted by the Addiction Resource Center.
A job description for the full-time Animal Control Officer -Special Services Technician was presented by Sheriff Brackett for Commissioner approval; Commissioner Blodgett moved to approve; second by Commissioner Trescot; 2 – 0 vote approved.
Sheriff Brackett presented information on the “RUOK Program.” This is a new service offering a daily phone call to Lincoln County residents enrolled in the program to check on their wellbeing. If the RUOK call is not answered or is answered “no,” then either a local law enforcement officer or community volunteer will check on the person. This type of program is offered in other locations in Maine and will be funded by a concerned citizens group in Lincoln County.
A purchase order in the amount of $31,488.75 was presented for the annual subscription and maintenance of our Tritech software. This is the IMC program that is used by all the law enforcement agencies and the Communications Center. Motion to approve by Commissioner Blodgett; second by Commissioner Trescot; 2 – 0 vote approved. Both Commissioners signed.
In celebration of Maine’s Bicentennial Celebration in 2020, Sheriff Brackett displayed a commemorative license plate and badge. He would like to purchase plates for all the department’s vehicles to display until the end of the year and then all the employee assigned the vehicle to keep as a token of appreciation. Motion to approve by Commissioner Trescot; second by Commissioner Blodgett; 2-0 vote approved.
Additionally, Sheriff Brackett sought permission to purchase in bulk, commemorative badges for any law enforcement officers in the department interested and each employee can reimburse the county for the cost of the badge directly or have the amount deducted from their paycheck. Motion to approve by Commissioner Blodgett; second by Commissioner Trescot; 2 – 0 vote approved. Sheriff Brackett is also considering participation in the Maine State Parade in May.
Communications Director, Tom Nelson, sought approval for a purchase order to replace two existing analog base radios with digital (DMR) capable base radios. This conversion will support the switch of law enforcement radios from analog to digital frequencies being completed by Radio Communications Management, our radio vendor. The total cost is $2,506.10. Motion to approve by Commissioner Blodgett; second by Commissioner Trescot; 2 – 0 vote approved. Both Commissioners signed. A purchase order was presented in the amount of $5,319.50 to upgrade the Zetron
communications console in order for the DMR interface to connect to the law channel. This is also part of the DMR conversion. The total cost is $5,319.50. Motion to approve by Commissioner Blodgett; second by Commissioner Trescot; 2 – 0 vote approved. Both Commissioners signed.
Director Nelson, sought approval for a purchase order for the third year of three I Am Responding contract subscriptions for an “early alert’ system that notifies emergency personnel of other emergency personnel who are responding. The total cost is $14,113.00 with the Kennebec towns contributing $2,323.00 of that cost. Motion to approve by Commissioner Blodgett; second by Commissioner Trescot; 2 – 0 vote approved. Both Commissioners signed.
The Communications Center employees are discussing different design elements in a memorial garden to be planted in front of the Communications Center in memory of long-time Lincoln County employee, Kathy Blagdon, who recently passed away. The goal is to have a plan in place, and possibly construction started in time for Telecommunicators’ Week in April. Kathy really enjoyed the bird feeders outside the Comm Center, so a memorial plaque may be attached to a birdfeeder in the garden.
Emergency Management Agency (EMA) Director, Casey Stevens, presented a purchase order for reimbursement to Newcastle Fire for their assistance in a HazMat incident on November 15, 2019. A propane truck rollover resulted in an all-day response of multiple agencies. This reimbursement was paid directly to the county from the company who owns the truck. The portion forwarded to Newcastle Fire is $9,789.19. Motion to approve by Commissioner Blodgett; second by Commissioner Trescot; 2 – 0 vote approved. Both Commissioners signed.
Director Stevens presented a purchase order for D4H Incident Management Software, for a oneyear service, in the amount of $3,500.00, budgeted monies. This software will assist in organizing events, such as windstorms, floods, etc., and to calculate damages for reimbursement. The towns can also access, add to or retrieve information. Motion to approve by Commissioner Blodgett; second by Commissioner Trescot; 2 – 0 vote approved. Both Commissioners signed.
A request to table two agenda items, Drone Usage for Search and Rescue and EMA Legislation proposal was approved by Commissioner Blodgett; seconded by Commissioner Trescot; 2-0 vote approved.
County Administrator, Carrie Kipfer, informed the Board that Two Bridges Regional Jail Administrator, Colonel James Bailey, contacted Boothbay Harbor Police Chief Robert Hasch to inquire in his interest in serving on the Jail Authority Board. Chief Hasch is interested, but needs to check with the Boothbay Harbor town representatives about potential conflicts. Commissioner Mary Trescot contacted Attorney Peter Drum of Bristol and he is also interested. Commissioner Blodgett moved to appoint Chief
Robert Hasch as a full member of the Jail Authority and Attorney Peter Drum as an alternate member of the Jail Authority; seconded by Commissioner Trescot; 2-0 approved. Administrator Kipfer will notify Colonel Bailey of the appointments.
Administrator Kipfer brought a purchase order in the amount of $17,050.00 for snow plowing service from Steele’s Landscaping. $13,500 is attributed to the Courthouse lots and $3,300 is for the Lincoln County Regional Planning Commission building. An additional charge of $250 was added because we requested the vendor to remove large snowbanks at the parking lot entrances and this was not included in the contract. Motion to approve by Commissioner Blodgett; second by Commissioner Trescot; 2 – 0 vote approved. Both Commissioners signed.
A purchase order request was brought before the Board, with a request to renew the HVAC (Heating, Ventilation, Air-Conditioning) Maintenance contract with Siemen’s, in the amount of $34,746.00.
The contract will cover the period of January 1, 2020 through December 31, 2020. Motion to approve by Commissioner Blodgett; second by Commissioner Trescot; 2 – 0 vote approved. Both Commissioners signed.
Administrator Kipfer presented a draft job description for the newly created position of Office Supervisor in the District Attorney’s Office. The draft was previously reviewed with the DA and Deputy DA to identify the most appropriate combination of job duties. The Commissioners reviewed the draft and approved the concept draft, with a final draft to be presented at the next meeting. Motion to approve the draft and post the position internally by Commissioner Blodgett; second by Commissioner Trescot; 2 – 0 vote approved.
A notice received from Central Maine Power that summarizes upcoming tree trimming work to be performed in Lincoln County was acknowledged by the Commissioners.
The Commissioners voted to table the renewal of Recycling contracts for the Towns of Pittston and
Warren, pending the final 2019 cost tabulation. Motion to approve by Commissioner Blodgett; second by
Commissioner Trescot; 2 – 0 vote approved
The amount of $1,205.22 has been received from the State of Maine from fines and surcharges.
The Administrator recommends using the monies for our programs. Motion to approve by Commissioner Blodgett; second by Commissioner Trescot; 2 – 0 vote approved. It is also recommended that in the future, fines and surcharges received should be treated in the same manner. Motion to approve by Commissioner Blodgett; second by Commissioner Trescot; 2 – 0 vote approved
Commissioners recessed until 10:30 a.m.
At 10:33 a.m., Commissioner Blodgett moved to enter into executive session with the County Administrator, Sheriff Brackett and Chief Deputy Maker to discuss a Legal issue, according to 1 MRSA 405 (6) (E); second by Commissioner Trescot; 2 – 0 vote approved.
Out of executive session at 10:50 a.m., there were no votes taken.
Lincoln, ss. December Term, 2019
There being no further business, the Commissioners adjourned to meet on the fourth day of February A.D. 2020.
ATTEST: ______________________________________ County Administrator


Met Eireann issue orange weather for two counties
by Ciara WalshUpdate at 11.30: Met Eireann has upgraded the weather warning for Tipperary and Waterford.
The status orange rainfall warning is valid from 3pm on Wednesday until 6pm on Thursday.
The national forecaster says: "Heavy rain during the period will cause spot flooding. Accumulations in excess of 50mm possible in some parts."
The status yellow rainfall warning for Kilkenny, Wexford and Cork is also valid from Wednesday at 3pm until Thursday at 6pm.
Met Eireann has issued a status yellow rainfall warning for five counties in Ireland. Heavy rain spells will bring between 30mm and 50mm of rain at times.
The warning will take effect from the early hours of Wednesday morning and remains in place until noon on Thursday.
The affected counties will be Kilkenny, Wexford, Cork, Tipperary and Waterford.
Met Eireann said: "From early hours of Wednesday to noon on Thursday, spells of heavy rain at times will give amounts of 30 to 50mm with a risk of spot flooding."
The national forecast for tonight reminds us to expect cold weather, with frost and fog developing for a time in eastern and northern areas.
Temperatures are expected to fall between 0 and 4 degrees celsius overnight, while some heavy rain will pour across south Munster, east Leinster and some western coastal counties.


{% include '_includes/head.html' %}
{% include '_includes/header-guide.html' %}
{% block page %}{% endblock %} {% include '_includes/footer.html' %}
{% include '_includes/foot.html' %}


| Methods Summary |
public
|
#
__construct( )
Constructor, initializes default response format
|
public static
|
#
Init( )
Static alias for constructor
|
public
|
#
set( string $attr , mixed $value = NULL )
Set a parameter of response data object
|
public
|
#
respond( mixed $data )
Set response body
|
public
|
#
console( mixed $data )
Set a value intended to be logged as a console message on the client
|
public
|
#
error( string $data )
Set error information intended to express an error on the client
|
public
|
#
flush( )
Flush response data to client
|


|
ViennaCL - The Vienna Computing Library
1.5.2
|
Provides an OpenCL kernel generator. More...
Namespaces | |
| namespace | autotune |
Provides the implementation for tuning the kernels for a particular device. | |
| namespace | detail |
Contains implementation details of the kernel generator. | |
| namespace | profiles |
Namespace holding the various device-specific parameters for generating the best kernels. | |
| namespace | utils |
Contains various helper routines for kernel generation. | |
Data Structures | |
| struct | expression_descriptor |
| A class for holding meta information such as the type or the underlying scalar type of an expression (such as x = inner_prod(y, z)). More... | |
| class | code_generator |
| Class for handling code generation. More... | |
| class | matrix_product |
| Kernel generation class for matrix-matrix products. More... | |
| class | profile_base |
| Base class for an operation profile. More... | |
| class | vector_saxpy |
| OpenCL kernel generation class for vector expressions of AXPY type, i.e. x = alpha * y + beta * z, where the number of summands can in principle be arbitrarily large. More... | |
| class | matrix_saxpy |
| OpenCL kernel generation class for matrix expressions of AXPY type, i.e. A = alpha * B + beta * C, where the number of summands can in principle be arbitrarily large. More... | |
| class | scalar_reduction |
| OpenCL kernel generation template for scalar reduction operations such as s = norm_2(x). More... | |
| class | vector_reduction |
| OpenCL kernel template for reductions resulting in a vector. Example: Computing the row norms of a matrix concurrently. More... | |
Typedefs | |
| typedef std::pair < expression_type, vcl_size_t > | expression_key_type |
Enumerations | |
| enum | expression_type_family { SCALAR_SAXPY_FAMILY, VECTOR_SAXPY_FAMILY, MATRIX_SAXPY_FAMILY, SCALAR_REDUCE_FAMILY, VECTOR_REDUCE_FAMILY, MATRIX_PRODUCT_FAMILY, INVALID_EXPRESSION_FAMILY } |
| enum | expression_type { SCALAR_SAXPY_TYPE, VECTOR_SAXPY_TYPE, MATRIX_SAXPY_TYPE, SCALAR_REDUCE_TYPE, VECTOR_REDUCE_Nx_TYPE, VECTOR_REDUCE_Tx_TYPE, MATRIX_PRODUCT_NN_TYPE, MATRIX_PRODUCT_TN_TYPE, MATRIX_PRODUCT_NT_TYPE, MATRIX_PRODUCT_TT_TYPE, INVALID_EXPRESSION_TYPE } |
Functions | |
| void | generate_enqueue_statement (viennacl::scheduler::statement const &s, scheduler::statement_node const &root_node) |
| Generate and enqueue a statement plus root_node into the current queue. | |
| void | generate_enqueue_statement (viennacl::scheduler::statement const &s) |
| Generate and enqueue a statement into the current queue, assumes the root_node is the first node of the statement. | |
| const char * | expression_type_to_string (expression_type type) |
| template<typename KeyT , typename ValueT > | |
| ValueT const & | at (std::map< KeyT, ValueT > const &map, KeyT const &key) |
| Emulation of C++11's .at() member for std::map<> | |
| viennacl::ocl::program & | get_configured_program (viennacl::generator::code_generator const &generator, std::list< viennacl::ocl::kernel * > &kernels, bool force_recompilation=false) |
| Creates the program associated with a generator object and fills the kernels. Checks the context for the program and possibly (re)compile it. | |
| void | enqueue (viennacl::generator::code_generator const &generator, bool force_recompilation=false) |
| Set the arguments and enqueue a generator object. | |
| std::string | get_opencl_program_string (viennacl::scheduler::statement const &s) |
| Convenience function to get the OpenCL program string for a single statement. | |
| std::string | get_cuda_device_code (viennacl::scheduler::statement const &s) |
| Convenience function to get the CUDA device code for a single statement. | |
| std::ostream & | operator<< (std::ostream &os, profile_base const &profile) |
| void | enqueue_custom_op (viennacl::generator::custom_operation &op, viennacl::ocl::command_queue const &queue) |
Provides an OpenCL kernel generator.
| typedef std::pair<expression_type, vcl_size_t> expression_key_type |
| enum expression_type |
| ValueT const& viennacl::generator::at | ( | std::map< KeyT, ValueT > const & | map, |
| KeyT const & | key | ||
| ) |
Emulation of C++11's .at() member for std::map<>
| void viennacl::generator::enqueue | ( | viennacl::generator::code_generator const & | generator, |
| bool | force_recompilation = false |
||
| ) | [inline] |
Set the arguments and enqueue a generator object.
| void viennacl::generator::enqueue_custom_op | ( | viennacl::generator::custom_operation & | op, |
| viennacl::ocl::command_queue const & | queue | ||
| ) |
| const char* viennacl::generator::expression_type_to_string | ( | expression_type | type | ) | [inline] |
| void generate_enqueue_statement | ( | viennacl::scheduler::statement const & | s, |
| scheduler::statement_node const & | root_node | ||
| ) | [inline] |
Generate and enqueue a statement plus root_node into the current queue.
| void generate_enqueue_statement | ( | viennacl::scheduler::statement const & | s | ) | [inline] |
Generate and enqueue a statement into the current queue, assumes the root_node is the first node of the statement.
| viennacl::ocl::program& viennacl::generator::get_configured_program | ( | viennacl::generator::code_generator const & | generator, |
| std::list< viennacl::ocl::kernel * > & | kernels, | ||
| bool | force_recompilation = false |
||
| ) | [inline] |
Creates the program associated with a generator object and fills the kernels. Checks the context for the program and possibly (re)compile it.
| generator | the generator to work on |
| kernels | this list will be filled with the kernels associated with the generator |
| force_recompilation | if true, the program will be recompiled |
| std::string viennacl::generator::get_cuda_device_code | ( | viennacl::scheduler::statement const & | s | ) | [inline] |
Convenience function to get the CUDA device code for a single statement.
| std::string viennacl::generator::get_opencl_program_string | ( | viennacl::scheduler::statement const & | s | ) | [inline] |
Convenience function to get the OpenCL program string for a single statement.
| std::ostream& viennacl::generator::operator<< | ( | std::ostream & | os, |
| profile_base const & | profile | ||
| ) | [inline] |