2 Difference in distribution and habitat use between H. curtus and H. shcistosus
We investigated the study species used similar areas for foraging and other activities using survey data gathered from fishermen. We tested differences in depth use and overlap in space.
2.1 Calculating abundance of sea snakes per fishing trip
source(file = "Functions/setup.R")
= snakes%>%
snakes_den filter(Species == "Hydrophis schistosus" | Species == "Hydrophis curtus",
!= "",
Fishing.Location !is.na(Depth.Caught..m.))%>%
::select(Species, Fishing.Location, Depth.Caught..m., Date, Boat.Name.Owner, # selecting relevant variables
dplyr%>%
No..of.Hauls, Average.Haul.Duration..Hours., Gear.Type)group_by(Gear.Type)%>% # completing missing effort data
mutate(n.hauls = ifelse(is.na(No..of.Hauls),
median(No..of.Hauls, na.rm = T),
No..of.Hauls),haul.time = ifelse(is.na(Average.Haul.Duration..Hours.),
median(Average.Haul.Duration..Hours., na.rm = T),
%>%
Average.Haul.Duration..Hours.))group_by(Date, Boat.Name.Owner)%>%
summarise(HC = sum(Species == "Hydrophis curtus"), # calculating abundance per trip
HS = sum(Species == "Hydrophis schistosus"),
effort = last(n.hauls*haul.time), # calculating fishing effort per trip
Fishing.Location = last(Fishing.Location),
Depth.Caught..m. = last(Depth.Caught..m.))%>%
gather(c("HC", "HS"), value = n, key = "Species")%>%
mutate(CPUE = n/effort)%>% # calculating catch per unit effort of each specie per trip
drop_na() # removing missing values
2.2 Sample size
The number of trips and total haul hours sampled by gear.
%>%
snakesfilter(Species == "Hydrophis schistosus" | Species == "Hydrophis curtus",
!= "",
Fishing.Location !is.na(Depth.Caught..m.))%>%
::select(Species, Fishing.Location, Depth.Caught..m., Date, Boat.Name.Owner, # selecting relavant variables
dplyr%>%
No..of.Hauls, Average.Haul.Duration..Hours., Gear.Type)group_by(Gear.Type)%>% # filling in missing effort data
mutate(n.hauls = ifelse(is.na(No..of.Hauls),
median(No..of.Hauls, na.rm = T), No..of.Hauls),
haul.time = ifelse(is.na(Average.Haul.Duration..Hours.),
median(Average.Haul.Duration..Hours., na.rm = T),
%>%
Average.Haul.Duration..Hours.))group_by(Gear.Type, Date, Boat.Name.Owner)%>%
summarise(effort = last(n.hauls*haul.time))%>% # calculating effort per trip
group_by(Gear.Type)%>%
summarise(n_trips = n(),
effort = sum(effort))%>%
drop_na()
| Gear.Type | n_trips | effort |
|---|---|---|
| GillNet | 198 | 270.56 |
| Rampan | 30 | 107.45 |
| Trawler | 20 | 92.75 |
%>%
snakes filter(Species == "Hydrophis schistosus" | Species == "Hydrophis curtus") %>%
summarise(HS = sum(Species == "Hydrophis schistosus"), HC = sum(Species == "Hydrophis curtus"))
| HS | HC |
|---|---|
| 605 | 179 |
2.3 Geocoding sea snake encounters
In order to map sea snake distribution and study depth use we used location and depth data gathered from fisher surveys to map each fishing trip.
The protocol for geocoding fishing trips is as follows:
- Nearest landmarks are geocoded from google maps API
- Latitude is extracted from landmark geocode
- Match landmark latitude and depth from survey to GEBCO data
- Extract final longitude from GEBCO data
The protocol is encoded in Function/geocode.R
source("./Functions/geocode.R")
<- geocode.trips(snakes_den, fl = "Fishing.Location", dep = "Depth.Caught..m.")
snakes_den
# removing duplicates introduced by fuzzy joining
<- distinct(snakes_den, Date, Boat.Name.Owner, Species, Fishing.Location, Depth.Caught..m., .keep_all = T)
snakes_den
# saving output
write.csv(snakes_den, "./Data/snakes-density.csv")
Note: fuzzyjoin::fuzzy_inner_join()
introduces many duplicates, I have not as yet been able to fix the issue directly. Currently, removing duplicates from output using dplyr::distinct()
.
2.4 Mean CPUE by species
Each fishing trip is assigned to a cell in the sampling grid. Total CPUE of each species in each grid cell is then calculated.
# loading libraries
library(raster)
# raster with study site extent
<- raster("./Data/sampling_extent.tif")
ext
# importing functions
source("./Functions/intensity extract.R")
source("./Functions/raster to df.R")
## Calculating sea snake CPUE
<- snakes_den %>%
den group_by(Species) %>%
nest() %>%
mutate(m = map(data, ~map.extract(df = ., var = "n", func = "sum")), mdf = map(m, map.df)) %>%
::select(mdf) %>%
dplyrunnest() %>%
spread(Species, layer)
# Mean, sd CPUE
%>%
den ::skim(HC, HS) %>%
skimr::yank("numeric") %>%
skimr::select(-hist) dplyr
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 |
|---|---|---|---|---|---|---|---|---|---|
| HC | 0 | 1 | 0.16 | 1.22 | 0 | 0 | 0 | 0 | 14.78 |
| HS | 0 | 1 | 0.60 | 4.43 | 0 | 0 | 0 | 0 | 83.83 |
2.5 Area used by species
The area (km^2
) occupied by a species calculated as the number of grid cells that a species was found in multiplied the area of each cell (10 sq. km.).
%>%
snakes_den group_by(Species) %>%
nest() %>%
mutate(m = map(data, ~map.extract(df = ., var = "CPUE", func = "sum")), mdf = map(m, map.df)) %>%
::select(mdf) %>%
dplyrsummarise(spatial_extent = map(mdf, ~sum(.$layer > 0))) %>%
unnest() %>%
mutate(spatial_extent = spatial_extent * 10)
| Species | spatial_extent |
|---|---|
| HC | 540 |
| HS | 620 |
2.6 Mapping sea snake distributions
## importing required libraries
library(marmap)
library(ggmap)
## getting deoth data downloaded from GEBCO
<- readGEBCO.bathy("./Data/gebco_2020_n16.7_s15.5_w72.0_e73.9.nc")
depth
= fortify.bathy(depth)%>% # converting to usable data frame
depth ::rename(lon = x, lat = y, depth = z)%>%
dplyrfilter(depth < 1)
## Getting base map
= c(lon = mean(snakes_den$lon), lat = mean(snakes_den$lat))
map_center
<- get_googlemap(center = c(lon = mean(snakes_den$lon), lat = mean(snakes_den$lat)),
base zoom = 9, scale = 4, maptype = "terrain")##Getting basemap
## importing plotting function
source("./Functions/intensity_plot.R")
## making plot
<- snakes_den%>%
snake_plot mutate(Species = ifelse(Species == "HC", "Hydrophis curtus", "Hydrophis schistosus"))%>%
group_by(Species)%>%
nest()%>%
mutate(m = map(data, ~map.extract(df = ., var = "CPUE", func = 'sum')), # rasterising CPUE
mdf = map(m, map.df), # Converting raster to df for plotting
plot = map2(mdf, Species, ~int.plot(mdf = ., Species, name = "CPUE", title.face = "italic")) #plotting raster on base map
%>%
)::grid.arrange(grobs = .$plot, ncol = 1) gridExtra
## saving high res figure
ggsave(snake_plot, filename = "./Figures and Tables/figure1.tiff", width = 8, height = 16, dpi = 300)
Figure 1: Distribution and depth use of sea snake in the near shore waters of Sindhudurg, Maharashtra based on fisheries dependent data.
2.7 Summarising depth use by species
# Calculating mean depth in cell
<- depth %>%
dep nest() %>%
mutate(m = map(data, ~map.extract(df = ., var = "depth", func = mean)), mdf = map(m, map.df)) %>%
::select(mdf) %>%
dplyrunnest() %>%
rename(mean.depth = layer)
# Calculating relative abaundance of sea snakes in each cell
<- den %>%
den inner_join(dep, by = c("x", "y")) %>%
mutate(rel.prop = HC/(HC + HS))
# Relative proportion of H. curtus with depth
%>%
den gather(c("HS", "HC"), key = sp, value = CPUE) %>%
filter(CPUE > 0) %>%
group_by(sp) %>%
::skim(mean.depth) %>%
skimr::yank("numeric") %>%
skimr::select(-hist) dplyr
Variable type: numeric
| skim_variable | sp | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 |
|---|---|---|---|---|---|---|---|---|---|---|
| mean.depth | HC | 0 | 1 | -28.55 | 12.10 | -48.29 | -37.67 | -30.20 | -20.21 | -1.56 |
| mean.depth | HS | 0 | 1 | -17.67 | 10.64 | -39.33 | -24.00 | -17.15 | -7.72 | -1.07 |
2.8 Spatial segregation by species
We caluclated the spatial overlap between H. curtus and H. schistosus as the area (number of cells*10 sq. km.) in which both species occured together divided the by the total area in which atleast one of the species occured.
%>%
den summarise(total.extent = sum(HC > 0 | HS > 0) * 10, overlap = sum(HC > 0 & HS > 0) * 10, relative_overlap = overlap/total.extent)
| total.extent | overlap | relative_overlap |
|---|---|---|
| 870 | 290 | 0.3333333 |
2.9 Modelling depth use by species
# t-test for cell depth
%>%
den gather(c("HS", "HC"), key = sp, value = CPUE) %>%
filter(CPUE > 0) %>%
::select(sp, mean.depth) %>%
dplyrnest() %>%
mutate(mod = map(data, ~t.test(mean.depth ~ sp, data = .)), sumry = map(mod, broom::tidy), d = map(data, ~lsr::cohensD(mean.depth ~ sp, data = .))) %>%
::select(sumry, d) %>%
dplyrunnest() %>%
::select(estimate:parameter, d) dplyr
| estimate | estimate1 | estimate2 | statistic | p.value | parameter | d |
|---|---|---|---|---|---|---|
| -10.87643 | -28.54587 | -17.66943 | -5.106877 | 1.4e-06 | 106.4616 | 0.959092 |
# testing effect of cell depth on relative abundance
%>%
den gather(c("HS", "HC"), key = sp, value = CPUE) %>%
mutate(rel.prop = ifelse(sp == "HS", 1 - rel.prop, rel.prop), mean.depth = -mean.depth) %>%
::select(sp, rel.prop, mean.depth) %>%
dplyrgroup_by(sp) %>%
nest() %>%
mutate(prop_dep = map(data, ~lm(rel.prop ~ mean.depth, data = .)), sumry = map(prop_dep, broom::tidy), stat = map(prop_dep, broom::glance)) %>%
::select(sumry, stat) %>%
dplyrunnest() %>%
::select(sp:p.value, adj.r.squared) dplyr
| sp | term | estimate | std.error | statistic | p.value | adj.r.squared |
|---|---|---|---|---|---|---|
| HS | (Intercept) | 1.2197662 | 0.0676155 | 18.039738 | 0.0000000 | 0.5506939 |
| HS | mean.depth | -0.0260096 | 0.0025214 | -10.315341 | 0.0000000 | 0.5506939 |
| HC | (Intercept) | -0.2197662 | 0.0676155 | -3.250233 | 0.0016532 | 0.5506939 |
| HC | mean.depth | 0.0260096 | 0.0025214 | 10.315341 | 0.0000000 | 0.5506939 |
H. curtus was caught in deeper habitats than H. schistosus.


IEEE International Workshop on High-Performance Big Data Computing
In conjunction with The 30th IEEE International Parallel and Distributed Processing Symposium (IPDPS 2016)
In Chicago Hyatt Regency, Chicago, Illinois USA, Friday, May 27th, 2016


RRsrc Class Reference
Purpose: Provide an interface for resources.
More...
#include <RRsrc.h>
List of all members.
Detailed Description
Purpose: Provide an interface for resources.
File: RRsrc.h Author: Kevin Bray Created: 09-19-04 Copyright © 2004 Bootstrap Studios. All rights reserved. class RRsrc
Definition at line 18 of file RRsrc.h.
Constructor & Destructor Documentation
| RRsrc::RRsrc |
( |
const tstring & |
name |
) |
|
class RRsrc
File: RRsrc.cpp Author: Kevin Bray Created: 09-19-04 Copyright © 2004 Bootstrap Studios. All rights reserved. ctor & dtor
Definition at line 19 of file RRsrc.cpp.
| RRsrc::RRsrc |
( |
const UPath & |
name |
) |
|
| RRsrc::~RRsrc |
( |
|
) |
[virtual] |
Member Function Documentation
| const tstring& RRsrc::GetRsrcName |
( |
|
) |
const [inline] |
| const UPath& RRsrc::GetRsrcPath |
( |
|
) |
const [inline] |
The documentation for this class was generated from the following files:
- C:/Bootstrap/ProjectBX/Documentation/Code/Engine/Common/RRsrc.h
- C:/Bootstrap/ProjectBX/Documentation/Code/Engine/Common/RRsrc.cpp


Welcome to web.py’s documentation!
Contents:
Getting Started
Building webapps with web.py is easy. To get started, save the following code as say, hello.py and run it with python hello.py. Now point your browser to http://localhost:8080/ which responds you with ‘Hello, world!’. Hey, you’re done with your first program with with web.py - with just 8 lines of code!
import web
urls = ("/.*", "hello")
app = web.application(urls, globals())
class hello:
def GET(self):
return 'Hello, world!'
if __name__ == "__main__":
app.run()


--- layout: post title: Untitled published: true date: 2010-09-02 categories: [] posterous_url: http://blog.hungerandthirstdesign.com/post/1050911032/wow-browsers-are-getting-really-freaking-intense posterous_slug: post/1050911032/wow-browsers-are-getting-really-freaking-intense ---
wow, browsers are getting really freaking intense - http://is.gd/ePrQE


Peninsula
Monday
Monday Funday - Beginner Class
Rotating teacher schedule
Aikido of Mountain View
Mountain View, CA
6:30pm - 7:45pm
$20
Monday Funday - Intermediate
Rotating teacher schedule
Aikido of Mountain View
Mountain View, CA
8:00pm - 10:00pm
$20
Wednesday
Acro Beta @ The Studio
Zack and Ali
The Studio Climbing Gym
San Jose, CA
8:30pm - 10:00pm
$25
Friday
All Levels, Beginner Friendly, Acro
Leslie
Yoga Belly
Mountain View, CA
6:30pm - 8:00pm
$20
Monthly Beginner Acro (2nd Friday each month)
Ali and Zack
Planet Granite Sunnyvale
Sunnyvale, CA
8:30pm - 9:45pm
$25 or Free with Membership
Saturday
Acro Jam
No Teacher
Aikido of Mountain View
Mountain View, CA
2:30pm - 6:30pm
$5-$10 sliding scale
If I'm missing class, please reach out to me and let me know. You can find on Facebook as Zachary Cohen, or go to zacroyoga and leave some feedback.


{% extends "base.html" %} {% block content %}
Panel to display most important information
Objectively network visionary methodologies via best-of-breed users. Phosfluorescently initiate go forward leadership skills before an expanded array of infomediaries. Monotonectally incubate web-enabled communities rather than process-centric.
Objectively network visionary methodologies via best-of-breed users. Phosfluorescently initiate go forward leadership skills before an expanded array of infomediaries. Monotonectally incubate web-enabled communities rather than process-centric.
Objectively network visionary methodologies via best-of-breed users. Phosfluorescently initiate go forward leadership skills before an expanded array of infomediaries. Monotonectally incubate web-enabled communities rather than process-centric.
Objectively network visionary methodologies via best-of-breed users. Phosfluorescently initiate go forward leadership skills before an expanded array.
Objectively network visionary methodologies via best-of-breed users. Phosfluorescently initiate go forward leadership skills before an expanded array of infomediaries. Monotonectally incubate web-enabled communities rather than process-centric.
Objectively network visionary methodologies via best-of-breed users. Phosfluorescently initiate go forward leadership skills before an expanded array of infomediaries. Monotonectally incubate web-enabled communities rather than process-centric.
Objectively network visionary methodologies via best-of-breed users. Phosfluorescently initiate go forward leadership skills before an expanded array of infomediaries. Monotonectally incubate web-enabled communities rather than process-centric.


Flexbox is set of CSS properties that help you
define layout of elements on a page in one direction
–– either horizontally, in row
, or vertically,
in column
orientations.
We can change a container element into a "flex container"
with the display: flex;
rule, and set the direction
of the flexbox with the flex-direction
property,
either set to row
or column
.
This is a row flexbox.
We can change how items are aligned using the justify-content
and align-items
CSS properties. The first controls how items
are aligned in the direction of the flexbox, while the latter
controls how items are aligned orthogonally to the direction of the
flexbox.
This flexbox is justified to center everything.
This flexbox aligns everything to the end.
This flexbox uses space-around
, which tells
CSS to leave equal space between all elements in the box.
You can find much more information about the power of flexbox layouts at sites like CSS-Tricks and MDN.


NumBomber
Increase the numbers and make them
bomb
!
New Game
Game Options
Player 1 (RED)
Player 2 (BLUE)
Board Size
<
8
>
Go!


Social Determinants of Health in Chicago's Community Areas
February 2015As an Innovation Fellow at the Chicago Department of Public Health, I was asked to find a way to visualize how social determinants—a combination of a community's economic and social characteristics, the built environment, and people's behaviors—influence health and wellness. The result is an interactive scatterplot that helps users visualize any combination of these variables in Chicago's 77 community areas.
Project scope
Social determinants of health are increasingly being recognized as critical to understanding and improving the health of communities. Some, such as air quality and access to fresh foods, have very clear effects on health; others like rent burden (spending >30% of income on rent), tree density, and unemployment have less clear impacts on health.
Because so many new associations between social determinants and health outcomes are beginning to be discovered and studied, health policy analysts and public health officials need ways to explore large numbers of possible associations in a way that is clear, easy to interpret, and not too visually complex.
The solution
Borrowing from this visualization of WHO data, I built an interactive scatterplot that allows users to plot Chicago's community areas using any three demographic, social determinant, health behavior, or health outcomes on the X and Y axes and as the size of the points.
A number of features were included to meet the needs of health care professionals, the intended audience. The 100+ indicators were grouped into categories, and those that were rates clearly state their units. Hovering over a bubble shows which community area is represented and its values along all three selected variables, and a table below the chart shows summary statistics. The bubbles are colored according to regions of the city, and users can highlight entire regions to focus on. A few examples, such as the “Hispanic Paradox”, guide the user through some relationships between social determinants and health outcomes.
Hovering over a bubble reveals information about that community area.
The scatterplot is built in d3.js, a powerful JavaScript library for visualization. Thanks to GitHub Pages, building and hosting it is 100% free, and the code is open source on GitHub and free for others to use or modify.
Impact
The scatterplot has received very positive feedback from a number of public health departments, providers, collaborative groups, and research institutions. It is frequently shown in presentations and meetings as an example of a powerful yet simple way to visualize complex data.
In a city like Chicago, communities with high levels of hardship often face difficulties in many areas at the same time, such as high unemployment, poor public transportation, and reduced access to healthcare. Lightning strikes these same neighborhoods every single day. Hopefully, visualizations like these can start and fuel important conversations and deeper analyses of interconnections that degrade Chicago residents' ability to lead healthy lives.


Your browser does not support the video tag.
Your browser does not support the video tag.
Battery Low


|
RTM for Unity3D
Agora Realtime Messaging for Unity3d
|
The AgoraRtmChannelDelegate protocol enables callback event notifications to your app. More...
#import <AgoraRtmKit.h>
Instance Methods | |
| (void) | - channel:memberJoined: |
| Occurs when a user joins the channel. More... | |
| (void) | - channel:memberLeft: |
| Occurs when a channel member leaves the channel. More... | |
| (void) | - channel:messageReceived:fromMember: |
| Occurs when receiving a channel message. More... | |
| (void) | - channel:attributeUpdate: |
| Occurs when channel attributes are updated, and returns all attributes of the channel. More... | |
| (void) | - channel:memberCount: |
| Occurs when the number of the channel members changes, and returns the new number. More... | |
| (void) | - channel:memberJoined: |
| Occurs when a user joins the channel. More... | |
| (void) | - channel:memberLeft: |
| Occurs when a channel member leaves the channel. More... | |
| (void) | - channel:messageReceived:fromMember: |
| Occurs when receiving a channel message. More... | |
| (void) | - channel:attributeUpdate: |
| Occurs when channel attributes are updated, and returns all attributes of the channel. More... | |
| (void) | - channel:memberCount: |
| Occurs when the number of the channel members changes, and returns the new number. More... | |
The AgoraRtmChannelDelegate protocol enables callback event notifications to your app.
The SDK uses delegate callbacks in the AgoraRtmChannelDelegate protocol to report AgoraRtmChannelDelegate runtime events to the app.
|
optional |
Occurs when channel attributes are updated, and returns all attributes of the channel.
NOTE**
This callback is enabled only when the user, who updates the attributes of the channel, sets [enableNotificationToChannelMembers]([AgoraRtmChannelAttributeOptions enableNotificationToChannelMembers]) as YES. Also note that this flag is valid only within the current channel attribute method call.
| channel | The channel, to which the local user belongs. See AgoraRtmChannel. |
| attributes | An array of AgoraRtmChannelAttribute. See AgoraRtmChannelAttribute. |
|
optional |
Occurs when channel attributes are updated, and returns all attributes of the channel.
NOTE**
This callback is enabled only when the user, who updates the attributes of the channel, sets [enableNotificationToChannelMembers]([AgoraRtmChannelAttributeOptions enableNotificationToChannelMembers]) as YES. Also note that this flag is valid only within the current channel attribute method call.
| channel | The channel, to which the local user belongs. See AgoraRtmChannel. |
| attributes | An array of AgoraRtmChannelAttribute. See AgoraRtmChannelAttribute. |
|
optional |
Occurs when the number of the channel members changes, and returns the new number.
NOTE**
| channel | The channel, to which the local user belongs. See AgoraRtmChannel. |
| count | Member count of this channel. |
|
optional |
Occurs when the number of the channel members changes, and returns the new number.
NOTE**
| channel | The channel, to which the local user belongs. See AgoraRtmChannel. |
| count | Member count of this channel. |
|
optional |
Occurs when a user joins the channel.
When a remote user calls the [joinWithCompletion]([AgoraRtmChannel joinWithCompletion:]) method and successfully joins the channel, the local user receives this callback.
Note**
This callback is disabled when the number of the channel members exceeds 512.
| channel | The channel that the user joins. See AgoraRtmChannel. |
| member | The user joining the channel. See AgoraRtmMember. |
|
optional |
Occurs when a user joins the channel.
When a remote user calls the [joinWithCompletion]([AgoraRtmChannel joinWithCompletion:]) method and successfully joins the channel, the local user receives this callback.
Note**
This callback is disabled when the number of the channel members exceeds 512.
| channel | The channel that the user joins. See AgoraRtmChannel. |
| member | The user joining the channel. See AgoraRtmMember. |
|
optional |
Occurs when a channel member leaves the channel.
When a remote channel member calls the [leaveWithCompletion]([AgoraRtmChannel leaveWithCompletion:]) method and successfully leaves the channel, the local user receives this callback.
Note**
This callback is disabled when the number of the channel members exceeds 512.
| channel | The channel that the user leaves. See AgoraRtmChannel. |
| member | The channel member that leaves the channel. See AgoraRtmMember. |
|
optional |
Occurs when a channel member leaves the channel.
When a remote channel member calls the [leaveWithCompletion]([AgoraRtmChannel leaveWithCompletion:]) method and successfully leaves the channel, the local user receives this callback.
Note**
This callback is disabled when the number of the channel members exceeds 512.
| channel | The channel that the user leaves. See AgoraRtmChannel. |
| member | The channel member that leaves the channel. See AgoraRtmMember. |
|
optional |
Occurs when receiving a channel message.
When a remote channel member calls the [sendMessage]([AgoraRtmChannel sendMessage:completion:]) method and successfully sends out a channel message, the local user receives this callback.
| channel | The channel, to which the local user belongs. See AgoraRtmChannel. |
| message | The received channel message. See AgoraRtmMessage. |
NOTE** Ensure that you check the type
property when receiving the message instance: If the message type is AgoraRtmMessageTypeRaw
, you need to downcast the received instance from AgoraRtmMessage to AgoraRtmRawMessage. See AgoraRtmMessageType.
| member | The message sender. See AgoraRtmMember. |
|
optional |
Occurs when receiving a channel message.
When a remote channel member calls the [sendMessage]([AgoraRtmChannel sendMessage:completion:]) method and successfully sends out a channel message, the local user receives this callback.
| channel | The channel, to which the local user belongs. See AgoraRtmChannel. |
| message | The received channel message. See AgoraRtmMessage. |
NOTE** Ensure that you check the type
property when receiving the message instance: If the message type is AgoraRtmMessageTypeRaw
, you need to downcast the received instance from AgoraRtmMessage to AgoraRtmRawMessage. See AgoraRtmMessageType.
| member | The message sender. See AgoraRtmMember. |


Change Log: yii2-widgets ¶
Version 3.4.1 ¶
Date: 09-Oct-2018
- Update composer dependencies
- Move all source code to
src
directory. - Add github contribution and issue/PR log templates.
- Added ActiveField component
Version 3.4.0 ¶
Date: 09-Nov-2014
- enh #199: Revamp yii2-widgets extension bundle to refer to individual sub repositories.
- Set release to stable.
Version 3.3.0 ¶
Date: 05-Nov-2014
- enh #198: Enhance dependency validation using common code base.
- enh #195: Enable Typeahead option to conditionally load HandleBars.
- enh #193: Upgraded select2 plugin to latest version.
- enh #166: Reverted back Select2 placeholder CSS for bootstrap v3.3.0.
Version 3.2.0 ¶
Date: 25-Oct-2014
- enh #186: Better replacement of tags for field template.
- enh #185: Update typeahead plugin to the latest release v0.10.5.
- enh #184: Update select2 plugin to the latest release v3.5.1.
- bug #183: Fix typeahead remote loading spinning indicator.
- enh #181: Enhance RangeInput to include new vertical orientation
Version 3.1.0 ¶
Date: 10-Oct-2014
- enh #177: Add Italian translations.
- enh #173: Fix styling for FileInput additional line feed.
- bug #172: More correct InputWidget name field parsing.
- enh #169: Enhancement for ICU format con## Version for DatePicker and DateTimePicker (enrica, kartik-v).
Version 3.0.0 ¶
Date: 08-Oct-2014
- enh #165, #166, #168: Various Select2 styling enhancements for Bootstrap.
- enh #162: Add Russian locale and translation for DatePicker plugin.
- PSR4 alias change
- Updated Select2 plugin ## Version to latest version.
Version 2.9.0 ¶
Date: 14-Aug-2014
- bug # 157: Correct duplicate
label
displayed after SwitchInput. - enh # 153: Various enhancements to
ColorInput
widget to read colors correctly based on pluginpreferredFormat
. - bug # 151: Remove duplicate encoding for placeholder.
- enh # 150: Enhance
ColorInput
widget to allow controlling display of default palette of colors. - Separate animation enhancements added to growl.
- bug #132: Enhance growl widget for major changes to core plugin.
Version 2.8.0 ¶
Date: 31-Jul-2014
- enh #122: Upgrade bootstrap growl to latest plugin ## Version with various related enhancements
- enh #121, #119: Various styling enhancements to Select2.
- enh #71: Created separate yii2-editable extension
Version 2.7.0 ¶
Date: 18-Jul-2014
- Added
iconPrefix
property in SideNav to easily configure with more icon frameworks (other than glyphicon). - enh #111: Allow configuring of template for each item in SideNav.
- bug #110: Allow use of Select2 with tags, when tags are empty.
- enh #106: Added Turkish translations for FileInput widget.
- enh #104: Add more information to documentation for Select2 widget and explain placeholder setting when
allowClear
istrue
. - bug #99: Fix DateControl to work for date time formatting with DateTimePicker.
- enh #98: Added
language
configuration property for DatePicker, DateTimePicker, and TimePicker. - enh #96: Enhanced DatePicker, DateTimePicker, and TimePicker to work along with the new
autoWidgetSettings
for DateControl module .
Version 2.6.0 ¶
Date: 01-Jul-2014
- Issue Fixes from #73 to #95.
- Added
language
property toInputWidget
along withinitLanguage
method for automatic language setting inpluginOptions
. Thelanguage
property will be auto defaulted toYii::$app->language
if not set.
Version 2.5.1 ¶
- Updated DepDrop widget to support rendering of \kartik\widgets\Select2 widget.
Version 2.5.0 ¶
- New DepDrop widget based on dependent-dropdown plugin.
- Upgrade Select2 Widget to v3.4.8 of the
select2
plugin.
Version 2.4.0 ¶
- Star Rating Widget upgraded as a result of the base Krajee StarRating JQuery plugin upgrade.
- Upgrade Select2 Widget to v3.4.6 of the
select2
plugin.
Version 2.3.0 ¶
- Typeahead widget upgraded to use ## Version 0.10 of the
typeahead.js
plugin. The widget has been released as 2 variants:
TypeaheadBasic
: This widget is a basic implementation of the typeahead.js plugin without any suggestion engine. It uses a javascript substring matcher and Regular Expression matching to query and display suggestions.`
VIEW DEMO`
Typeahead
: This widget is an advanced implementation of the typeahead.js plugin with the BloodHound suggestion engine and the Handlebars template compiler.`
VIEW DEMO`
Version 2.2.0 ¶
- New category of widgets added - 'Notification'. Widgets now categorized as
- Input Widgets
- Progress Widgets
- Navigation Widgets
- Notification Widgets
- Added
Alert
widget extending the default \yii\bootstrap\Alert widget with more styling and auto fade out options. - Added
Growl
widget wrapping the Bootstrap Growl JQuery plugin. - Added
AlertBlock
widget allowing a block of alerts to be displayed and faded out. Uses and processes session flash messages if needed.
Version 2.1.0 ¶
- Widgets categorized as
- Input Widgets
- Progress Widgets
- Navigation Widgets
- Added DateTimePicker widget enhanced for Bootstrap 3.x based on the Bootstrap DateTimePicker Plugin by smalot.
- Added Spinner widget based on spin.js - an animated CSS3 loading spinner with VML fallback for IE.
Version 2.0.0 ¶
- enh #40: FileInput widget now wraps the enhanced JQuery Bootstrap FileInput Plugin.
The fileinput routines and rendering have been enhanced and offers ability to configure most options, call events, and methods.
Version 1.0.0 ¶
Initial release


---
sort_order: 21
tei_id: rdx_b5h9g.p.idm186261280
annotation_count: 0
images:
small-thumbnail: https://readux.library.emory.edu/books/emory:b5h9g/pages/emory:pchxq/mini-thumbnail/
json: https://readux.library.emory.edu/books/emory:b5h9g/pages/emory:pchxq/info/
full: https://readux.library.emory.edu/books/emory:b5h9g/pages/emory:pchxq/fs/
page: https://readux.library.emory.edu/books/emory:b5h9g/pages/emory:pchxq/single-page/
thumbnail: https://readux.library.emory.edu/books/emory:b5h9g/pages/emory:pchxq/thumbnail/
title: Page 21
number: 21
---
{% raw %}JACOB HODGES.{% endraw %}
{% raw %}13{% endraw %}
{% raw %}shot was not mortal.  Springing for¬{% endraw %}
{% raw %}ward, the white man seized the gun, and{% endraw %}
{% raw %}struck Jennings several times upon the{% endraw %}
{% raw %}head, till the stock was broken in pieces,{% endraw %}
{% raw %}*nd the old man was quite dead.{% endraw %}
{% raw %}The body was left in its blood, unburied{% endraw %}
{% raw %}and unconcealed. Jacob returned to the{% endraw %}
{% raw %}house of Mrs. T., and told her what he{% endraw %}
{% raw %}had done. She appeared pleased, and{% endraw %}
{% raw %}gave him more ardent spirits. Given{% endraw %}
{% raw %}over to delusion and madness, she mani{% endraw %}
{% raw %}fested no symptoms of remorse or contri¬{% endraw %}
{% raw %}tion. It was not so with Jacob. Neither{% endraw %}
{% raw %}the attempts of the murderous party to{% endraw %}
{% raw %}convince him that he had done right; nor{% endraw %}
{% raw %}the promise of large pecuniary reward,{% endraw %}
{% raw %}with the power of stimulants, could quiet{% endraw %}
{% raw %}the agitated mind of this poor negro. He{% endraw %}
{% raw %}2{% endraw %}


{% extends "orga/base.html" %} {% load bootstrap4 %} {% load i18n %} {% block title %}{% translate "Invitation" %} :: {{ invitation.team.name }}{% endblock %} {% block content %}
{% blocktranslate trimmed with name=invitation.team.name link=request.path %} You have been invited to join the organiser team {{ name }}. {% endblocktranslate %}
{% blocktranslate trimmed with domain=request.get_host %} If you already have an account – either as a speaker or an organiser – at {{ domain }}, please log in now. Otherwise, create a new account to join the team! {% endblocktranslate %}


---
layout: archive
title: Lean Prover Zulip Chat Archive
permalink: 116395maths/72482Characterizingtendstousingsequences.html
---
The archive URL format has changed. Please find this page at:
https://leanprover-community.github.io/archive/stream/116395-maths/topic/Characterizing.20tendsto.20using.20sequences.html


|
|
|
|
|
|
|
ELECTRICAL AND COMPUTER
ENGINEERING |
|
|
SUMMER Quarter 2014 COURSE LIST |
|
| 5/21/2014 |
|
|
|
|
|
| SELF
SUPPORTED 10 WEEK SESSION 6/23/2014-9/6/2014 |
|
| COURSE |
TITLE |
CR |
FACULTY |
DAYS/TIMES |
ROOM |
| EE 210-80 |
ELECT MEAS LAB |
1 |
Rad |
T 110-4PM |
ETC249 |
| EE 211-80 |
ELECT CIRC LAB |
1 |
Rad |
R 110-4PM |
ETC249 |
| EE 246-80 |
DIGITAL LOGIC LAB |
1 |
Levine |
M 110-4PM |
ETC251 |
| EE 317-80 |
ELECTRONICS LAB I |
1 |
Rad |
W 110-4pm |
ETC248 |
| EE 330-80 |
WRITING FOR ELEC ENG |
1 |
Ashe, Remy |
TR 1140AM-120PM |
ETC255E |
| EE 412-80 |
ANTENNAS |
4 |
Daneshgaran and Nima |
TR 610-750PM |
ETA227 |
| EE 448-80 |
HDL DESIGN & SIM LAB |
1 |
Levine |
T 110-4PM |
ETC255D |
| EE 454-80 |
ADVANCED CIRCUIT ANALYSIS |
4 |
Tabrizi |
TR 950-1130AM |
SHC240 |
EE 454-81 |
RENEWABLE ENERGY SOURCES IN
POWER SYSTEMS |
4 |
|
MW 610-750PM |
ETA331 |
| EE 454-82 |
PROFFESIONAL ENG PRACTICE |
1 |
Tabrizi |
BOEING INTERNSHIP |
NO ROOM |
ENGR 300-81 |
ECONOMICS FOR ENGINEERS |
4 |
|
MW 950-1130AM |
ETC154 |
|
|
|
|
|
|
| NOTE:
COURSES WITH STRIKE THROUGH ARE CANCELLED |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


Map of indicators which elements of the grid are visible.
Object, default - see below
Some grid elements are shown by default, for example column headers, but most of them are hidden. You can set them during
the object creation:
Or any time during run-time. You will need to call .refresh() method to refresh on the screen.
The map and its default values are:


This class resembles a room that PUN joins (or joined).
More...
|
| new int | playerCount [get] |
| | Count of players in this room. More...
|
| |
| new string | name [get, set] |
| | The name of a room. Unique identifier (per Loadbalancing group) for a room/match. More...
|
| |
| new int | maxPlayers [get, set] |
| | Sets a limit of players to this room. More...
|
| |
| new bool | open [get, set] |
| | Defines if the room can be joined. More...
|
| |
| new bool | visible [get, set] |
| | Defines if the room is listed in its lobby. More...
|
| |
| string[] | propertiesListedInLobby [get] |
| | A list of custom properties that should be forwarded to the lobby and listed there. More...
|
| |
| bool | autoCleanUp [get] |
| | Gets if this room uses autoCleanUp to remove all (buffered) RPCs and instantiated GameObjects when a player leaves. More...
|
| |
| bool | removedFromList [get, set] |
| | Used internally in lobby, to mark rooms that are no longer listed. More...
|
| |
| Hashtable | customProperties [get] |
| | Read-only "cache" of custom properties of a room. More...
|
| |
| string | name [get] |
| | The name of a room. Unique identifier (per Loadbalancing group) for a room/match. More...
|
| |
| int | playerCount [get] |
| | Only used internally in lobby, to display number of players in room (while you're not in). More...
|
| |
| bool | isLocalClientInside [get, set] |
| | State if the local client is already in the game or still going to join it on gameserver (in lobby always false). More...
|
| |
| byte | maxPlayers [get] |
| | Sets a limit of players to this room. More...
|
| |
| bool | open [get] |
| | Defines if the room can be joined. More...
|
| |
| bool | visible [get] |
| | Defines if the room is listed in its lobby. More...
|
| |
This class resembles a room that PUN joins (or joined).
The properties are settable as opposed to those of a RoomInfo and you can close or hide "your" room.
| void Room.SetCustomProperties |
( |
Hashtable |
propertiesToSet | ) |
|
Updates and synchronizes the named properties of this Room with the values of propertiesToSet.
Any player can set a Room's properties. Room properties are available until changed, deleted or until the last player leaves the room. Access them by: Room.CustomProperties (read-only!).
To reduce network traffic, set only values that actually changed.
New properties are added, existing values are updated. Other values will not be changed, so only provide values that changed or are new. To delete a named (custom) property of this room, use null as value. Only string-typed keys are applied (everything else is ignored).
Local cache is updated immediately, other clients are updated through Photon with a fitting operation.
- Parameters
-
| propertiesToSet | Hashtable of props to udpate, set and sync. See description. |
| void Room.SetPropertiesListedInLobby |
( |
string[] |
propsListedInLobby | ) |
|
Enables you to define the properties available in the lobby if not all properties are needed to pick a room.
It makes sense to limit the amount of properties sent to users in the lobby as this improves speed and stability.
- Parameters
-
| propsListedInLobby | An array of custom room property names to forward to the lobby. |
| override string Room.ToString |
( |
| ) |
|
Returns a summary of this Room instance as string.
- Returns
- Summary of this Room instance.
| new string Room.ToStringFull |
( |
| ) |
|
Returns a summary of this Room instance as longer string, including Custom Properties.
- Returns
- Summary of this Room instance.
Gets if this room uses autoCleanUp to remove all (buffered) RPCs and instantiated GameObjects when a player leaves.
Sets a limit of players to this room.
This property is shown in lobby, too. If the room is full (players count == maxplayers), joining this room will fail.
The name of a room. Unique identifier (per Loadbalancing group) for a room/match.
Defines if the room can be joined.
This does not affect listing in a lobby but joining the room will fail if not open. If not open, the room is excluded from random matchmaking. Due to racing conditions, found matches might become closed before they are joined. Simply re-connect to master and find another. Use property "visible" to not list the room.
Count of players in this room.
| string [] Room.propertiesListedInLobby |
|
get |
A list of custom properties that should be forwarded to the lobby and listed there.
Defines if the room is listed in its lobby.
Rooms can be created invisible, or changed to invisible. To change if a room can be joined, use property: open.
The documentation for this class was generated from the following file:
- D:/work/LittleHeroes_Game/Assets/Photon Unity Networking/Plugins/PhotonNetwork/Room.cs


Match Play. Red leads 9-7 to 11. Should Red double? If doubled, should White take?
pips Red=45 White=83
(CorrectAnswer= 0/0, ErrorScore= 0)
Thanks to those who commented on this position (and all the others) and also for reaffirming the unwritten rule that your comments should be your own and not that of a bot.
This comes from the British Masters tournament this weekend. Red was Mochy ad White was Peter Bennet. After long thought Mochy doubled and Peter took. Mochy rolled 62, one of his three immediate shot leaving numbers (62, 52 and 65). Peter redoubled, hit the shot, closed Mochy out and won game and match.
As pointed out in the comments technically this is just a double and a trivial take and between two equal players those are the correct actions. BUT as World #1 Mochy is risking a lot here in what is basically a no skill position. Just the sort of situation he should be avoiding.
I agree with Paul Lamford that Mochy should have held the cube here, waited for some improvement and then doubled White out. If, as in the actual game, he is hit and closed out then he will still be leading 9-8.
This comes from the British Masters tournament this weekend. Red was Mochy ad White was Peter Bennet. After long thought Mochy doubled and Peter took. Mochy rolled 62, one of his three immediate shot leaving numbers (62, 52 and 65). Peter redoubled, hit the shot, closed Mochy out and won game and match.
As pointed out in the comments technically this is just a double and a trivial take and between two equal players those are the correct actions. BUT as World #1 Mochy is risking a lot here in what is basically a no skill position. Just the sort of situation he should be avoiding.
I agree with Paul Lamford that Mochy should have held the cube here, waited for some improvement and then doubled White out. If, as in the actual game, he is hit and closed out then he will still be leading 9-8.
Cube analysis 2-ply cubeless equity +0.604 (Money: +0.596) 0.793 0.012 0.000 - 0.207 0.002 0.000 Cubeful equities: 1. No double +0.857 2. Double, pass +1.000 (+0.143) 3. Double, take +0.798 (-0.058) Proper cube action: No double, take (28.9%)


Dashboard
Static WMS Dashboard
Live Preview
Tagging Live Preview
Setup
Weighbridge Stations
Axle Classification
Police Officers
User Management
User Groups
Users
Transactions
Static Station Transactions
HSWIM Transactions
Reports
Daily Tagging Reports
Weigh Station Transaction Reports
Vehicle Classification Reports
Vehicle Reports
Vehicle Tags
Open Tags
Cleared Tags
Mobile
Mobile Weigh Arrest
Mobile Weigh Prosecution
System
Maker Checker
System Configuration
Reason Codes
Audit Logs
System Audit Logs


{{address.name}} {{address.addressLines}} {{address.city}} {{address.pinCode}} {{address.state + ', '}} {{address.country}} Ph:{{address.phoneNumber}}
Select As Billing Address Select As Delivery Address


This sample demonstrates two specific techniques: how to add an ASP.NET web service in an app for Office and how to use the Microsoft Translator service. In particular, the ASP.NET web service stores the clientID and clientSecret parameters that the Microsoft Translator service requires to obtain an access token (which, in turn, is required for calling the Microsoft Translator service for a translation). The Translate.asmx file in the code sample handles HTTP requests coming from the app (Home.js), sends the translation request to the Microsoft Translator service, and then returns the results to the app. The AdminAccess.cs file in the App_Code folder is used to broker access tokens from the Microsoft Translator service.
Prerequisites
This sample requires the following:
-
Word 2013 or Excel 2013
-
Visual Studio 2012 and Office Developer Tools for Visual Studio 2012
-
Internet Explorer 9 or Internet Explorer 10
Key components
-
CodeSample_TranslateASPNET project
-
CodeSample_TranslateASPNET.xml manifest file
-
-
CodeSample_TranslateASPNETWeb project
-
Home.html file, which contains the HTML control for the app's user interface.
-
Home.js file, which contains the event handler for the Office.initialize event of the app, handles the button click event for the app's button, calls the ASP.NET web service, parses the response, and updates the UI with the output.
-
Translate.asmx file, which contains the web service on the server that handles the HTTP request from the app, stores the developer's client ID and client secret, and sends translation requests to the Microsoft Translator service.
-
AdminAccess.cs code file, which contains the AdmAuthentication and AdmAccess classes that update the access token for the server to communicate with the Microsoft Translator service.
-
Configure the sample
To configure the Translator app, get a client ID and client secret from the Azure DataMarket.
For more information, see Obtaining an access token.
Build the sample
Choose the F5 key to build and deploy the app.
Run and test the sample
Choose the F5 key to build and deploy the app.
Troubleshooting
If the app fails to install, ensure that the XML in your manifest file parses correctly.
If the app raises a "400: Bad request" exception, ensure that you have replaced the constants in the Translate.asmx file with your own client ID and client secret values. Also, ensure that the HTTP request to the Microsoft Translator service has an Authorization header with a value set to "Bearer", a space, and a current access token for the Microsoft Translator service.
Change log
First release: April 2013


BMW i4 Will Be A Serious Threat To The Tesla Model 3
From these new specification details, the BMW i4 will be a formidable rival to the Model 3.
by Martin BiggAs part of its upcoming EV onslaught, BMW is preparing to unleash a new i4 electric sedan that has the Tesla Model 3 directly in its sights. While BMW has already confirmed how much range the i4 will have, CNET Roadshow claims to know the electric sedan's performance specifications. If true, the i4 will be a formidable competitor to the Model 3.
Slated to go into production in 2021, the BMW i4 will initially be powered by an 80-kilowatt-hour battery, producing roughly 530 horsepower. This will enable the electric sedan to accelerate to 62 mph from a standstill in around four seconds flat and hit an electronically-limited top speed of 120 mph.
The i4 will also use BMW's new Generation 5 battery packs, which are significantly smaller than the Generation 3 and 4 packs used in the company's current EVs. As a result, the cells are easier to package in the car's floor and can be easily scaled for smaller or larger vehicles.
As for range, the i4 will last approximately 373 miles on a single charge based on Europe's WLTP cycle. Expect the range to come down to around 340-350 miles in the US, however. Using a 150-kW DC fast charger, BMW told the publication the i4 should be able to achieve an 80 percent charge in about 35 minutes. The i4 can also add around 62 miles of range in about six minutes, compared to the BMW i3 that can do the same in about 17 minutes.
You Might Also Like
For comparison, the entry-level Model 3 Standard Range Plus model produces 258 horsepower and 317 lb-ft of torque while delivering an EPA range of 250 miles. The range-topping Performance model still falls short of the i4 with a dual motor setup delivering 450 hp and 472 lb-ft of torque and 310 miles of range.
Encouragingly, these specs also only apply to the base model, as BMW confirmed that additional variants will be available with more power and range. The i4 will ride on a new modular architecture that packages the motor, transmission and electronics and can be mounted at the front or rear axles to provide front-, rear- or all-wheel drive where needed. The BMW i4 is expected to arrive in late 2021.


Balance:
credits
Logged in as:
(admin)
Machines
User Admin
Temperatures
Logs
Apps
Connections
Username:
Credits:
Add Money
Fix Amount
Other
iButtons:
Add
Admin
Toggle
←
Offset:
→
Type
Time
User
Info
Reason/Status
←
Offset:
→
All Apps
Name
Owner
Description
Actions
Register a new App
Pid
User
Transport
App


Selector: mdc-switch
| Properties | Description |
|---|---|
| id: string | Unique Id of the switch button (auto generated if not supplied). |
| name: string | Name of the switch. |
| ariaLabel: string | Used to set the 'aria-label' attribute on the underlying input element. |
| ariaLabelledby: string | The 'aria-labelledby' attribute takes precedence as the element's text alternative. |
| tabIndex: number | Set the underlying tab index of the switch. (Default: 0) |
| checked: boolean | Use to set the checked value. |
| disabled: boolean | Disables the component. |
| Methods | Description |
|---|---|
| focus() | Set focus to the switch. |
| Event | Description |
|---|---|
| change(source: MdcSwitch, value: boolean) | Event dispatched on value change. |
NgModel value: {{isSwitchOn}}
Dirty: {{ demoSwitchModel.dirty }}
Touched: {{ demoSwitchModel.touched }}
Value: {{ demoSwitchModel.value }}


I hope you find my projects insightful and interesting to read. I hope they are both inspiring and informing.
Project #1 Project #2 Project #3 Project #4 Project #5


Hello and welcome to our blinkbox books Terms and Conditions.
We appreciate you stopping by to read these terms; it’s important that you do.
We asked our legal team to keep these terms as straight forward as possible and we hope that the terms below achieve this. These terms set out important details about blinkbox books, our commitment to you and what you can expect when using our service. We are always keen to receive feedback and you can provide specific feedback on these terms and conditions to<EMAIL_ADDRESS>or, if you have any questions, please contact us.
Our terms and conditions were last updated on 29 May 2014.
This website, www.blinkboxbooks.com, is operated by blinkbox books Limited (“blinkbox”, "we", "us" or "our"). Further information about us, including how to contact us, is set out in Section 11.
By using our website (via our app or otherwise), and each time you buy an eBook, you agree to these terms. Please also read our Privacy and Cookies Policy, which sets out how we will collect, process and use your information. If you don’t agree to any of these terms or our privacy policy, we’d kindly ask that you don’t use our website.
We will update our terms from time to time and the latest version will appear on our website with the date that it was updated. By using the service after any changes have been posted, you agree to the new terms.
To use certain functions on our website, including buying eBooks, you will need to set up an account with us. You need to be 18 or over to create an account and must be resident in the United Kingdom. You are responsible for your account, including making sure that your details are correct and kept up to date and ensuring that your password is secure. You are also responsible for all activity that takes place on your account.
If you think your account is being used by anyone else, please contact us immediately. If we believe your account has been compromised, we may suspend your account and we will contact you to try and resolve the problem.
If you have any problems creating an account, signing in or updating your details, please have a look at our help pages or contact us.
To read eBooks on your device you will first need to download our free app to your device (see our help pages for how to do this). Although we are working to ensure that our service is compatible across devices, we cannot guarantee that our service will work with all devices. Please, therefore, check that your device is compatible with the service before you buy any eBooks. You can do this by installing our free app on your device and trying to download a free eBook or a free sample. If you have any questions or any problems checking your device compatibility, please have a look at our help pages or contact us. Please note that our services include elements which allow our software to be downloaded on to your computer or devices and interact with other programs or equipment.
Each eBook in your account can only be downloaded to and stored on a maximum of 5 authorised devices that you register with your account.
We will do our best to make sure that our website and services are uninterrupted and that our website and content are error free, although we can’t guarantee this. If we need to suspend or restrict access to, or update, our service or content, we will do our best to minimise any disruption to you.
We may change or remove content or parts of our website.
The legal rights (including the intellectual property rights) in our website, any content on it (including the eBooks) and the compilation of this content is owned by us, or licensed to us by third parties. Our website and content, including the compilation of the content, is protected by international copyright laws and database rights.
Where we provide links from our website to other sites, this will be for information purposes only. We have no control over, or responsibility for, the content on those sites or resources.
Please do not share eBooks on peer-to-peer networks or other file sharing networks or websites. We’re happy for you to use the content on our website and the eBooks you buy for your own personal use in accordance with these terms and provided that you do not remove any copyright notices. You may not use our trade marks, logos or other intellectual property and you may not use the eBooks you purchase or any other content on our website for any commercial, promotional, institutional, corporate or teaching purposes.
Please don’t copy, publish or otherwise seek to exploit our website or our content or use our service for any illegal purpose or in any way that causes damage to our website, is harmful to other users or which interferes with the copyright protection technology we use.
We will take the action we think is necessary to protect our service and our customers (which may include us suspending or restricting your account and access to our service).
Some eBooks and samples are available for free and will be clearly labelled on the service. Whilst samples will be available without signing into an account, for access to our free eBooks you will need to set up and sign in to your account and click on the appropriate “Buy now” button. You will then be asked whether you want to Cancel order or Confirm order. If you confirm your order, the free eBook will be added to your digital library and we will send you an email confirming that it is available. For more information about how to access samples and free eBooks, please see our help pages.
In order to purchase an eBook, you will need to sign in to your account and click on the “Buy now” button next to the eBook. You will then be asked to submit your payment details in accordance with our accepted payment methods. Our order process allows you to check and amend any errors before submitting your order. Please note that once you click on the “Confirm and pay” button, we will process your payment details and you will not be able to cancel your order. When you place an order you will be able to choose whether you want to store your payment details so that you don’t have to re-enter them each time you buy an eBook. For more information on how to store your payment details and how to buy eBooks, please see our help pages.
The availability and prices of our eBooks may change from time to time. Any changes to the prices will not affect any order that we have confirmed. We do our best to make sure that availability and pricing are correct, but, if we make a mistake and can’t supply you with an eBook, we will let you know via email and we won’t process your order.
Once you have placed your order in accordance with Section 5, we will take payment from your provided payment method. All credit/debit card holders are subject to validation checks and authorisation by the card issuer. If the issuer of your card refuses to authorise payment we can’t accept your order. We are not responsible for your card issuer or bank charging you as a result of our processing of your credit/debit card payment in accordance with your order.
After you have submitted your order, it has been accepted by us and payment has been received, you will receive an e-mail confirming the details of your order and your eBook will be automatically delivered to your account. The contract between us and you for the purchase of the eBook will only be formed once we confirm that your payment has been processed.
If you purchase an eBook by mistake, please contact us as soon as possible to request a refund. If you let us know within a reasonable period of time and provided that you have not downloaded or started reading the eBook, we will do our best to refund you the purchase price, subject to any restrictions imposed on us by our content suppliers.
This does not affect your legal rights, including if the eBooks are faulty or are not as described, please see Section 8.
If your eBook has not appeared in your account after we have confirmed your purchase, please check the help pages or contact us for assistance.
Please contact us if your eBook appears to be faulty. We will check your copy and if it is faulty, offer you a replacement or a refund.
Please note that we are not responsible for any lack of functionality or failure to provide any of the website, or content on the website or any loss of content or data that is due to your equipment, devices or Internet connection.
These terms do not affect your legal rights. For more information about your legal rights in relation to any eBooks purchased that are faulty or are not as described, you may wish to visit your local Citizens Advice Bureau or Trading Standards Office.
If we don’t comply with our obligations to you under these terms or are negligent in providing the services to you, we are responsible for any loss or damage that you suffer that was a “foreseeable result” of such breach or negligence. Loss or damage is a foreseeable result if it is an obvious consequence of our failure to comply with these terms or if it was contemplated by us and you at the time we entered into the contract.
We only supply the eBooks for your domestic and private use. You agree not to use the eBooks for any commercial, business or re-sale purposes and we have no liability to you for any loss of profit, loss of business, business interruption or loss of business opportunity.
Nothing in these terms limits or excludes our liability for: (i) death or personal injury caused by our negligence; (ii) fraudulent misrepresentation; or (iii) any other liability that cannot be excluded by law.
This contract is between you and us. No other person has any rights to enforce any of its terms.
You may not transfer your rights or your obligations under these terms to anyone else without our written permission. We may transfer our rights and obligations to another organisation, but this will not affect your rights or our obligations to you under these terms.
Each of the paragraphs in these terms operates separately. If any court or relevant authority decides that any of them are unlawful or unenforceable, the remaining paragraphs will remain in full force and effect.
These terms, and any contract between us, are in the English language. Your use of the service and any eBooks purchased via the service, including any dispute or claim arising out of or in connection with it, will be governed by English law. We and you both agree that the courts of England and Wales shall have the non-exclusive jurisdiction. However, if you are resident in Northern Ireland, you may also bring proceedings in Northern Ireland, and if you are a resident in Scotland, you may also bring proceedings in Scotland.
If you have any feedback, questions or complaints or any requests for technical support, then please refer to our help pages or contact us.
blinkbox books Limited is a company registered in England and Wales and our Company Number is 06265409. We are part of the Tesco Group and our registered office is at Tesco House, Delamare Road, Cheshunt, Waltham Cross, Hertfordshire United Kingdom EN8 9SL. Our main trading address is at 28 Kirby Street, London EC1N 8TE.
Our VAT number is GB 928210634.
Last updated on 21st October 21, 2013
Welcome to blinkbox Books by Tesco.
This website, www.blinkboxbooks.com, is operated by blinkbox books Limited (“blinkbox”, "we", "us" or "our"), which is part of the Tesco Group.
We understand that your privacy is important to you and we are committed to protecting your personal information when you use our service. This policy makes it clear what information we collect when you use our service, why we collect this information and how we use it. If you decide to use our website and service (whether via our app or otherwise), your visit and any issue in relation to your privacy is subject to this privacy policy and our Terms and Conditions. If you don’t agree to this privacy policy or any of our terms, we’d kindly ask that you don’t use our website.
We may change our policy from time to time and the latest version will appear on our website with the date that it was updated. By using the service after any changes have been posted, you agree to the new policy. If you’d like to keep a copy of this privacy and cookies policy, please click here.
Thank you for taking the time to read our policy and our Terms and Conditions. If you have any questions about this policy, please contact us.
We collect information about you when you:
We may supplement the information we collect about you with information we receive from other sources, for example, public registers such as the electoral roll. This allows us to assess the accuracy of the information we hold about you in order to send you relevant offers and information.
When using our website (whether via our app or otherwise), our servers may keep an activity log unique to you that collects certain administrative and traffic information including: source IP address, time of access, date of access, web page(s) visited, language use, software crash reports and type of browser used. Whenever you sign in, we may associate that information with your account.
To use certain functions on the service you need to register for an account. When you register your account you need to submit personal information, including your real name, email address and a password. Your password is used to protect your account from unauthorised access. It should be at least 6 characters long, and we recommend using a mix of upper and lower case letters, numbers, and symbol. The longer your password is, the stronger it will be. You should never share your password. If you think that your password has been compromised, please contact us.
To earn and, if available, redeem, ‘Tesco Clubcard’ loyalty points when you buy an eBook please enter your ‘Tesco Clubcard’ number in your account details.
We may access the information recorded through the use of your Clubcard (and combine the same with any other personal information of yours that we collect under this policy or that is held by the Tesco Group under its ‘Tesco Clubcard’ loyalty scheme and which they are allowed to share with us) in order to help us improve our service to you and make our communications more relevant.
When buying an eBook on the service we will ask you for such further information as is necessary to complete the purchase, including your payment card details and billing address. You will have the option to store payment and billing information in your account to make the process quicker next time.
We collect all data relating to any transaction you make on the service, including information about the books you purchase and the price you paid. We also collect information about your usage such as when and how often you use our service.
When you have registered, you can choose to turn your marketing preferences off or on. To change your contact preferences, choose “Personal details” from your account drop-down and scroll down to “Your marketing preferences”. If you do not want to receive commercial communications from us, unstick this box.
When you contact us or submit feedback, we also record that information.
Unless this policy or the law says otherwise, we will only collect your personal information with your knowledge and consent. Consent can be given in a number of ways such as ticking or un-ticking a box, by email, by telephone or by your actions (such as your use of a product or service). You may withdraw your consent at any time, unless the law provides otherwise. Where you withdraw your consent, we will tell you about the impact of doing so and any such withdrawal will take effect only in relation to the way we collect, use or disclose your personal information in the future.
Our website also uses cookies. In order to comply with new rules, we use a system of classifying the different types of cookies which we use on the website, or which may be dropped by third parties through our website. The classification was developed by the International Chamber of Commerce UK and explains more about which cookies we use, why we use them, and the functionality you will lose if you decide you don't want to have them on your device. Please be reassured that we are working on other privacy and cookie-related improvements to the service.
Cookies are text files containing small amounts of information which are downloaded to your personal computer, mobile or other device when you visit a website. Cookies are then sent back to the originating website on each subsequent visit, or to another website that recognises that cookie. Cookies are useful because they allow a website to recognise a user's device.
Persistent cookies - these cookies remain on a user's device for the period of time specified in the cookie. They are activated each time that the user visits the website that created that particular cookie.
Session cookies - these cookies allow website operators to link the actions of a user during a browser session. A browser session starts when a user opens the browser window and finishes when they close the browser window. Session cookies are created temporarily. Once you close the browser, all session cookies are deleted.
Cookies do lots of different jobs, like letting you navigate between pages efficiently, remembering your preferences, and generally improve the user experience. They can also help to ensure that adverts you see online are more relevant to you and your interests.
You can find more information about cookies at www.allaboutcookies.org and www.youronlinechoices.eu.
A list of all the cookies used on the website by category is set out below.
Strictly necessary cookies
These cookies enable services you have specifically asked for. For those types of cookies that are strictly necessary, no consent is required.
These cookies are essential in order to enable you to move around the website and use its features, such as accessing secure areas of the website. Without these cookies services you have asked for, like shopping baskets or e-billing, cannot be provided.
Performance cookies
These cookies collect anonymous information on the pages visited. By using the website, you agree that we can place these types of cookies on your device.
These cookies collect information about how visitors use the website, for instance which pages visitors go to most often, and if they get error messages from web pages. These cookies don't collect information that identifies a visitor. All information these cookies collect is aggregated and therefore anonymous. It is only used to improve how the website works.
Functionality cookies
These cookies remember choices you make to improve your experience. By using the website, you agree that we can place these types of cookies on your device.
These cookies allow the website to remember choices you make (such as your user name, language or the region you are in) and provide enhanced, more personal features. These cookies can also be used to remember changes you have made to text size, fonts and other parts of web pages that you can customise. They may also be used to provide services you have asked for such as watching a video or commenting on a blog. The information these cookies collect may be anonymised and they cannot track your browsing activity on other websites.
Targeting or advertising cookies
These cookies collect information about your browsing habits in order to make advertising relevant to you and your interests.
These cookies are used to deliver adverts more relevant to you and your interests. They are also used to limit the number of times you see an advertisement as well as help measure the effectiveness of the advertising campaign. They are usually placed by advertising networks with our permission. They remember that you have visited a website and this information is shared with other organisations such as advertisers. Quite often targeting or advertising cookies will be linked to site functionality provided by the other organisation.
Behavioural advertising and online privacy
A guide to behavioural advertising and online privacy has been produced by the internet advertising industry which can be found at www.youronlinechoices.eu. The guide contains an explanation of the IAB's self-regulatory scheme to allow you greater control of the advertising you see.
Using browser settings to manage cookies
The Help menu on the menu bar of most browsers will tell you how to prevent your browser from accepting new cookies, how to have the browser notify you when you receive a new cookie and how to disable cookies altogether. You can also disable or delete similar data used by browser add-ons, such as Flash cookies, by changing the add-on's settings or visiting the website of its manufacturer.
However, because cookies allow you to take advantage of some of the website's essential features, we recommend you leave them turned on. For example, if you block or otherwise reject cookies you will not be able to add items to your Shopping Basket, proceed to checkout, or use any of our products and services that require you to sign in. If you leave cookies turned on, remember to sign off when you finish using a shared computer.
The main reason we collect and use your personal information is to provide you with our service (as described in the Terms and Conditions). Collecting your personal information also helps us to better understand what you need from us. We also collect and use your personal information in order to:
We may share your personal information with other members of Tesco Group to enable us to provide our service to you or so they can to provide you with relevant products or services. For further details, please read Section 4.
If you agree, we may contact you:
Of course, the choice is entirely yours but if you say you do not want to receive marketing information from us this will prevent you from receiving great offers or promotions that may be of interest to you.
Where you have chosen to receive promotional and marketing information, we may also use your personal information (including your email address) to provide you with information regarding any products, services and promotions offered by us, members of the Tesco Group and trusted third parties that may be of interest to you.
If you do not want us to use your personal information in this way, or pass on your details for marketing purposes to members of the Tesco Group, please contact us or amend your communication preferences, see our help pages for how to do this.
We may use and share anonymised information about you and your use of our service with the Tesco Group and to third parties, including with our content suppliers. Please be reassured that this never includes your personal information. You consent to us anonymising your personal information so that it does not identify you to those third parties.
We employ other companies and individuals to perform functions on our behalf, for example analysing data, providing marketing assistance, fulfilling orders and processing and storing credit card details. They have access to personal information required to perform their functions, but are not permitted to use it for other purposes. They must process the personal information in accordance with this policy, and must adhere to all applicable laws.
Other members of the Tesco Group and third parties with whom we may share your personal information under this policy may be located outside the European Economic Area in countries whose laws offer a lower degree of protection for your personal information than in the UK. We will, nonetheless, use appropriate means to ensure that those members of the Tesco Group and third parties abide by this policy and the UK and EU’s laws on data protection.
Your personal information is safe with us and will never be released to companies outside the Tesco Group for marketing purposes. Unless set out above, we will never disclose your information to anyone outside the Tesco Group except where we have your consent, where we are required or permitted to do so by law, or where we need to disclose it to any prospective or actual buyer of our business or assets.
We will only store your information as long as is necessary for these purposes or as required by law.
We will keep your personal information as accurate and up-to-date as is necessary for the purposes for which it is used.
If would like to update or delete your personal information, please see our help pages or contact us. To obtain a copy of the personal information we hold about you, please write to: The Data Protection Officer, blinkbox books limited, 28-30 Kirby Street, London, EC1N 8TE enclosing a cheque for £10 payable to blinkbox books limited. Please confirm your Clubcard number and any details to help us identify and locate your information. If any of the details are incorrect, contact us and we will amend them.
We are responsible for personal information under our control. When we use trusted third parties, including members of the Tesco Group, to provide part of the service, such as fulfilling orders, processing credit card payments or providing customer service, we put in place appropriate measures to make sure they also comply with this policy and all applicable privacy laws.
When visiting our website, using our apps or buying or accessing our eBooks and other services, your personal data is held by us on secure servers based in the United Kingdom.
We will protect your personal information by security safeguards appropriate to the sensitivity of the information, including physical measures (e.g. locked filing cabinets, restricted access, secure disposal of personal information), organisational measures (e.g. security clearances, limiting access only on a “need to know” basis) and technological (e.g. use of passwords and encryption).
For any additional information about the security measures we employ please contact us.
We reserve the right to conduct a security review at any time to confirm your identity, age, the registration data provided by you and to verify your use of the service for potential breach of the Terms and Conditions.
Users under 18 years of age
Our website and services are not intended for or directed at persons under the age of 18. If you register an account with us you represent that you are 18 or older. If we learn that the service has collected information from someone under the age of 18, we will delete that information as quickly as possible.
Third-party websites
The website may contain links to other sites, which are outside our control and not covered by this policy. The operators of these sites may collect information from you that will be used by them in accordance with their policy, which may differ from ours.
If you have any feedback or questions about our policy, or if you don’t think that we are complying with this policy, please refer to our help pages or contact us.


public class Parm
extends java.lang.Object
Parm
class and its nested classes and interfaces provide a mechanism that allows for convenient and consistent
table based program arguments handling and processing.
The Parm[]
table is matched against the invokation arguments. Errors are reported (such as the absence
of a mandatory field).
If the arguments parse is successful, the class run method is invoked.
Parm
table consists of an array of Parm
objects, each constructed using an anonymous instance of the Parm.PS
interface.
The result of the parse is the customized Parm.Opt
object where each field is populated according to the String[] args
parameter provided to the class main
method.
To improving the readability of the table, the symbolic names are short so that each option can be conveniently specified on one text line.
-key space(s) value
-key
(no trailing value)-defname=value
(no intermediate space, -def used by convention but it could be some other such as -D
Example for below
-brief c:\temp\brief.json.txt -out d:\1\out.xlsx -what basic -red -negfmt "()"
DemoExcel
.
private static class Opt extends Parm.Opt { public String sStr1; public String sOut; public String sInp; public String sWhat; public String sNegFmt; public boolean bRed; } static Opt oOPT = new Opt(); static Parm[] oParms = { new Parm(new Parm.PS(){public void set(String sN) {oOPT.bHelp=true; }}, ".","-h", null, "Generate this Help Information that you are now reading") ,new Parm(new Parm.PS(){public void set(String sN) {oOPT.sBrief=sN;}}, "m","-brief", "brief", "path for Brief output") ,new Parm(new Parm.PS(){public void set(String sN) {oOPT.sOut=sN;}}, "m","-out", "file", "Target output name") ,new Parm(new Parm.PS(){public void set(String sN) {oOPT.sInp=sN;}}, ".","-inp", "file", "input template file") ,new Parm(new Parm.PS(){public void set(String sN) {oOPT.sWhat=sN;}}, "m","-what", "string", "What we are to run") ,new Parm(new Parm.PS(){public void set(String sN) {oOPT.bRed=true; }}, ".","-red", null, "Show negative numbers in red") ,new Parm(new Parm.PS(){public void set(String sN) {oOPT.sNegFmt=sN; }}, ".","-negfmt", "string", "Negative format") ,new Parm(new Parm.PS(){public void set(String sN) {oOPT.addProp(sN);}}, ".","-def", "key=val", "Defined Property string") }; public static void main(String[] sArgs) { oOPT.mainStart(oParms,sArgs,new DemoExcel()); }
| Modifier and Type | Class and Description |
|---|---|
static class |
Parm.Brief
Brief base class used by PSEC routines.
|
static interface |
Parm.MainRun
The interface class to be implemented by the class that is to be called by the
mainStart method. |
static class |
Parm.Opt
Base class for option set.
|
static interface |
Parm.PS
Interface used to process each option.
|
| Constructor and Description |
|---|
Parm(Parm.PS oSet,
java.lang.String sFlag,
java.lang.String sParm,
java.lang.String sExtra,
java.lang.String sDesc)
Parm instance constructor.
|
| Modifier and Type | Method and Description |
|---|---|
static void |
printHelp(Parm[] oParms,
java.lang.String sTitle)
List the options.
|
public Parm(Parm.PS oSet, java.lang.String sFlag, java.lang.String sParm, java.lang.String sExtra, java.lang.String sDesc)
The constructor
has 4 input parameters.
set
method.oSet
- The anonymous used to transform the input data.
sFlag
- The mandatory flag.sParm
- The external key string used to recognize the parameter.sExtra
- A string to indicate the value type.sDesc
- A brief description that helps the user know the meaning and format of the data.public static void printHelp(Parm[] oParms, java.lang.String sTitle)
oParms
- the Parm[]
table;sTitle
- The list title.


| 1 | /* | |
| 2 | * Licensed to the Apache Software Foundation (ASF) under one | |
| 3 | * or more contributor license agreements. See the NOTICE file | |
| 4 | * distributed with this work for additional information | |
| 5 | * regarding copyright ownership. The ASF licenses this file | |
| 6 | * to you under the Apache License, Version 2.0 (the | |
| 7 | * "License"); you may not use this file except in compliance | |
| 8 | * with the License. You may obtain a copy of the License at | |
| 9 | * | |
| 10 | * http://www.apache.org/licenses/LICENSE-2.0 | |
| 11 | * | |
| 12 | * Unless required by applicable law or agreed to in writing, | |
| 13 | * software distributed under the License is distributed on an | |
| 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| 15 | * KIND, either express or implied. See the License for the | |
| 16 | * specific language governing permissions and limitations | |
| 17 | * under the License. | |
| 18 | */ | |
| 19 | package org.apache.myfaces.shared.resource; | |
| 20 | ||
| 21 | /** | |
| 22 | * Contains the metadata information to reference a resource | |
| 23 | */ | |
| 24 | public class AliasResourceMetaImpl extends ResourceMetaImpl | |
| 25 | { | |
| 26 | private String _realResourceName; | |
| 27 | | |
| 28 | private boolean _couldContainValueExpressions; | |
| 29 | ||
| 30 | public AliasResourceMetaImpl(String prefix, String libraryName, String libraryVersion, | |
| 31 | String resourceName, String resourceVersion, String realResourceName, boolean couldContainValueExpressions) | |
| 32 | { | |
| 33 | this(prefix, libraryName, libraryVersion, resourceName, resourceVersion, realResourceName, | |
| 34 | couldContainValueExpressions, null); | |
| 35 | } | |
| 36 | | |
| 37 | public AliasResourceMetaImpl(String prefix, String libraryName, String libraryVersion, | |
| 38 | String resourceName, String resourceVersion, String realResourceName, | |
| 39 | boolean couldContainValueExpressions, String contractName) | |
| 40 | { | |
| 41 | super(prefix, libraryName, libraryVersion, | |
| 42 | resourceName, resourceVersion, contractName); | |
| 43 | _realResourceName = realResourceName; | |
| 44 | _couldContainValueExpressions = couldContainValueExpressions; | |
| 45 | } | |
| 46 | | |
| 47 | public String getRealResourceName() | |
| 48 | { | |
| 49 |
1
1. getRealResourceName : replaced return value with "" for org/apache/myfaces/shared/resource/AliasResourceMetaImpl::getRealResourceName → NO_COVERAGE |
return _realResourceName; |
| 50 | } | |
| 51 | ||
| 52 | public void setRealResourceName(String realResourceName) | |
| 53 | { | |
| 54 | _realResourceName = realResourceName; | |
| 55 | } | |
| 56 | | |
| 57 | @Override | |
| 58 | public String getResourceIdentifier() | |
| 59 | { | |
| 60 | StringBuilder builder = new StringBuilder(); | |
| 61 | boolean firstSlashAdded = false; | |
| 62 |
3
1. getResourceIdentifier : changed conditional boundary → NO_COVERAGE 2. getResourceIdentifier : negated conditional → NO_COVERAGE 3. getResourceIdentifier : negated conditional → NO_COVERAGE |
if (getLocalePrefix() != null && getLocalePrefix().length() > 0) |
| 63 | { | |
| 64 | builder.append(getLocalePrefix()); | |
| 65 | firstSlashAdded = true; | |
| 66 | } | |
| 67 |
1
1. getResourceIdentifier : negated conditional → NO_COVERAGE |
if (getLibraryName() != null) |
| 68 | { | |
| 69 |
1
1. getResourceIdentifier : negated conditional → NO_COVERAGE |
if (firstSlashAdded) |
| 70 | { | |
| 71 | builder.append('/'); | |
| 72 | } | |
| 73 | builder.append(getLibraryName()); | |
| 74 | firstSlashAdded = true; | |
| 75 | } | |
| 76 |
1
1. getResourceIdentifier : negated conditional → NO_COVERAGE |
if (getLibraryVersion() != null) |
| 77 | { | |
| 78 |
1
1. getResourceIdentifier : negated conditional → NO_COVERAGE |
if (firstSlashAdded) |
| 79 | { | |
| 80 | builder.append('/'); | |
| 81 | } | |
| 82 | builder.append(getLibraryVersion()); | |
| 83 | firstSlashAdded = true; | |
| 84 | } | |
| 85 |
1
1. getResourceIdentifier : negated conditional → NO_COVERAGE |
if (getRealResourceName() != null) |
| 86 | { | |
| 87 |
1
1. getResourceIdentifier : negated conditional → NO_COVERAGE |
if (firstSlashAdded) |
| 88 | { | |
| 89 | builder.append('/'); | |
| 90 | } | |
| 91 | builder.append(getRealResourceName()); | |
| 92 | firstSlashAdded = true; | |
| 93 | } | |
| 94 |
1
1. getResourceIdentifier : negated conditional → NO_COVERAGE |
if (getResourceVersion() != null) |
| 95 | { | |
| 96 |
1
1. getResourceIdentifier : negated conditional → NO_COVERAGE |
if (firstSlashAdded) |
| 97 | { | |
| 98 | builder.append('/'); | |
| 99 | } | |
| 100 | builder.append(getResourceVersion()); | |
| 101 | builder.append( | |
| 102 | getRealResourceName().substring(getRealResourceName().lastIndexOf('.'))); | |
| 103 | firstSlashAdded = true; | |
| 104 | } | |
| 105 |
1
1. getResourceIdentifier : replaced return value with "" for org/apache/myfaces/shared/resource/AliasResourceMetaImpl::getResourceIdentifier → NO_COVERAGE |
return builder.toString(); |
| 106 | } | |
| 107 | ||
| 108 | @Override | |
| 109 | public boolean couldResourceContainValueExpressions() | |
| 110 | { | |
| 111 |
2
1. couldResourceContainValueExpressions : replaced boolean return with false for org/apache/myfaces/shared/resource/AliasResourceMetaImpl::couldResourceContainValueExpressions → NO_COVERAGE 2. couldResourceContainValueExpressions : replaced boolean return with true for org/apache/myfaces/shared/resource/AliasResourceMetaImpl::couldResourceContainValueExpressions → NO_COVERAGE |
return _couldContainValueExpressions; |
| 112 | } | |
| 113 | } | |
Mutations | ||
| 49 |
1.1 |
|
| 62 |
1.1 2.2 3.3 |
|
| 67 |
1.1 |
|
| 69 |
1.1 |
|
| 76 |
1.1 |
|
| 78 |
1.1 |
|
| 85 |
1.1 |
|
| 87 |
1.1 |
|
| 94 |
1.1 |
|
| 96 |
1.1 |
|
| 105 |
1.1 |
|
| 111 |
1.1 2.2 |


Lying SE of Naxos, this is one of the most easterly of the Cyclades. It is a long, thin island with spectacular cliffs that drop vertically into the sea in many places, particulary in the NE and South coasts. It is generally off the tourist route, although not the quiet relaxed place it used to be, especially in July and August.
The "Chora" (main city) up in the mountains is well worth visiting as it is probably the last original traditional Cyclade village.
When the Meltemi is blowing it can be very rough off the NW and SE sides of the island with severe gusts in the south.
The port police office is situated on the harbour front. Pay a visit after arrival as they like to register all boats.
Katapola
This pretty little port is at the head of a deep bay towards the western end of the NW coast. There is space for approx. 20 yachts to tie stern-to the quay (between the 2 ferry berths). Water and power is available.
(Photo of town quay courtesy of SY Big Sky - taken May 2016).
Take care with your anchor chain as the inner ferry berth is used by a small ferry which lays its anchor a good distance off.
There are several good anchorages in the bay itself.
Ormos Ayios Annas
Tucked just inside the NW part of the island this small harbour lies off the village of Yialis in the SE of the bay. It is always quite crowded and if berthed on the town quay can be noisy with music from the waterfront bars. Moor Med-style to the quay clear of the ferry. Holding is not that good.
The bay is open to the W-NW so can be uncomfortable with strong gusts into the bay during the Meltemi. There is water on the quay and a mini-market.
Anchoring here can be rolly and is only recommended in calm weather.
Anchoring
There are good anchorages along the northern side of the island; Kalotiri and Kalotaritissa to name a few.
Last updated May 2016.


Instantiate it using a config file and run executeCommand method to handle any action command. It calls the execute method of an appropriate command controller defined in the config file.
Action is in receiver.php?do=someAction A class SomeAction should exists and someAction should be associated with this class in the config file. Class SomeAction is the command controller that can serve one or more commands.
Factory method that creates a Pear::DB Connection object If called with optional $dsn parameter sets the connection information Implements singleton pattern for each connection


All of these are examples of Numbers in JavaScript. It doesn't matter if it's negative or positive, if it has a decimal (values after the .) or not. We call them numbers.
You can convert a number to string
by simply calling the .toString()
method.
In some scenarios, you'd like to
convert from a string to a number. For that, you'd have to use the Number.parseInt
method.
Note that the
Number in Number.parseInt("42") is
an Object in JavaScript that contains methods related to numbers, and
.parseInt() is one of them.
It's a method that you call on Number to convert a string into a number.
The 2nd argument is called
radix
, and it's an important argument
that you should always provide. A radix of 10 means that we're using
the decimal
system. In short, humans use the decimal
system (because we have 10 fingers, from 0 to 9), and computers use
the binary system (on and off, 0s and 1s).
Unfortunately, parseInt does not default to a radix
of 10, thus it is recommended that you always specify it.
If you omit the radix, it may or may not work as you expect based on the
string you provided as a first argument.
Thus to be safe, always specify the radix.
You can also use the remainder operator %
which returns the division remainder.
The remainder operator is often used to check if a number is even or odd. That's because even numbers are numbers that have a remainder of 0 when divided by two.
Complete the function isEven such that it returns true when x is even:
Complete the function isOdd such that it returns true when x is odd:


This is your package details page. You can get the package details you need to create a booking.
| Id | Package Name | Package Type | Destination(s) | hotel | price | |
|---|---|---|---|---|---|---|
| {{group._id}} | {{group.package.name}} | {{group.package.package_type}} | {{group.destination}} | {{group.hotel}} | {{group.price}} |


5 caveats you should understand about JavaScript before diving into any framework
Abhi Aiyer - Software Engineer / @workpop / @abhiaiyer
There are two types of JavaScript developers.
John Resig states that the 'JavaScript Ninja' is an elite programmer with the knowledge to CREATE cross-browser JavaScript Libraries
The JavaScript Samurai is an elite programmer with the knowledge to solve business problems USING cross-browser JavaScript Libraries
Mastery of your Martial Art (framework), loyalty to your team (company or friends), and honor(write good code bro)
JavaScript is annoying, especially if you come from other OOP languages.
In JavaScript, ‘this’ normally refers to the object which ‘owns’ the method, but it depends on how a function is called.
JavaScript numbers are all floating point, stored according to the IEEE 754 standard.
Numbers are stored in a binary format, in 64 bits.
.1 + .2 = ?
.1 + .2 = 0.30000000000000004
Floating Point precision may be able to represent a number that has large magnitude but not hold precision to a number of small magnitude
Encapsulation is the idea that the data of an object should not be directly exposed.
' == ' vs ' === '
When doing comparisons, the double-equals will return true if the two comparison items are equal. But if the items are two different types, JavaScript will coerce the types to be equals.
Whenever you use triple-equals, you’re doing an exact comparison of the actual values. You’re ensuring the values are ‘strictly equal’ or ‘identically equal’.
Use the code 'meteor_la' for a one-time 35% discount off of Evented Mind


The Internet Effect or: My First Taste of Reddit Glory
20 March 2017
A super interesting thing happened the other day. I took a very simple action which was seen by hundreds of thousands of people, possibly millions.
I was browsing the ol’ tweetstack and one jumped out that I thought was hilarious albeit super geeky. And their followup tweet just added to it. I had just woken up, was barely alive yet and thought “I wonder if /r/programmerhumor would like this?”.
I snapped a screenshot, unchecked “msg my inbox with comments/replies”, posted it on reddit and went on with my day.
About 8 hours later I was looking at reddit and came across the post. Turns out the answer was a resounding “yes”. The post had legs. There was roughly 2,900 upvotes on it, and it was at the top of /r/programmerhumor. I stumbled upon this bit of data that I forgot I had cross-posted from one public forum to another in the early hours of my mornin’.
The strangest bit to me was that it wasn’t my original content. In fact, it only took me roughly a minute to snap the screenshot and post on reddit.
I messaged a friend and let her know about it, then went on with my day. A few hours later it shot up again, and this time it was over 10,000 upvotes.
I’m guessing it ended up on reddit’s frontpage, because the uptick was crazy. At the time of writing this, it now sits in /r/programmerhumor’s top 10 of all time.
I wanted to share this experience with you as I found it so bizarrely fascinating, that something someone can do these days can affect millions everywhere instantly. Knowing that is one thing, and experiencing it is another. I’m absolutely hooked on the feeling, and looking to recreate it. But next time, it’ll be different. Next time, it will be with something I created.


Condor Ferries sold to consortium
CONDOR Ferries has been sold to a consortium including Brittany Ferries.
by Richard HeathIn a statement, Brittany Ferries said: 'Brittany Ferries, in consortium with the Columbia Threadneedle European Sustainable Infrastructure Fund (ESIF), has reached an agreement to acquire 100 percent of Condor Ferries from Macquarie Infrastructure and Real Assets (MIRA).
'Contracts have been signed and the deal is expected to be executed following scrutiny by relevant regulatory authorities. Brittany Ferries will hold a minority stake.'
Paul Luxon, Condor Ferries’ CEO, said the operator was 'delighted with the agreement'.
He added: ‘The new shareholders wholeheartedly share our vision and strategy for maintaining and developing essential Channel Islands’ lifeline ferry services across the freight supply chain, Islander travel and tourism sectors.
'Having met with senior executives of CTI and BF on several occasions, the company welcomes such experience and expertise from the new shareholders, and having introduced them to key stakeholders including politicians and senior civil servants, discussions on fleet replacement and future investment will continue.
'Condor Ferries’ management and staff will continue to deliver the five year business plan that is underway and focus on providing efficient and effective sea connectivity to support the Channel Islands’ economies.'


toggle menu
Home
About
Skills
Portofolio
contact
skill set
Web Design
App Development
Web Development
UX Design
90
50
80
95


---
layout: archive
author_profile: false
title: Welcome to the Q# Community!
permalink: /
toc: false
---
Welcome!
This group collects + maintains projects related to the Q# programming language by a community of folks who are excited about quantum programming! 😊
{{ site.data.ui-text[site.locale].recent_posts | default: "Recent Community Posts" }}
{% for post in paginator.posts %}
{% include archive-single.html %}
{% endfor %}
{% include paginator.html %}
{{ site.data.ui-text[site.locale].recent_posts | default: "Featured Community Projects" }}
{% include feature_row %}