| DevIL Documentation | Home | Previous | Next |
The ilRegisterSave function registers a function to save a new imagetype, extending OpenIL's capabilities.
ILboolean ilRegisterSave(
char *Ext,
IL_SAVEPROC Save
);
ilRegisterSave allows the user to register functions for use by OpenIL, when saving unknown image types. The user can also override the default internal saving functions by passing their extension in Ext when using ilSaveImage. ilRegisterSave allows the user to use their own saving functions while using OpenIL's capabilities, or to extend OpenIL when it does not support a specific image format.
IL_OUT_OF_MEMORY - Could not allocate enough memory to use the saving function.
ilRegisterLoad, ilRemoveSave, ilRemoveLoad


A clustered cache can be Partitioned or Replicated. This section describes how to create these caches.
From the 'File' menu select 'New'->'Clustered Cache'. A 'New Clustered Cache Wizard' will appear. Steps to create a new clustered cache through wizard are as follows:
Name: Provide a unique identifier for the clustered cache. For a cluster, the identifier has to be unique on all the nodes that are a part of it.
Cluster Scheme:
Mirrored cache is a cluster of two nodes (Active and passive), where all operations are performed on active node while the passive node is updated asynchronously. Passive node is promoted to active node as soon as the active node goes down. The Partitioned scheme partitions the data across the cluster, whereas the Replicatedscheme provides data replication on all the nodes. Partitioned Replica scheme is same as a regular partitioned cache but it allows you to have replicas for each partition, replication can be done either synchronously or asynchronously.
Operation timeout (sec): The maximum time in seconds during which a clustered operation must be completed, otherwise the operation will fail.
Statistics replication interval (sec's.): The time interval in seconds after which a node sends its statistics to all the other nodes in the cluster.
In case of Partitioned Replica cache you can have the choice to select the replication strategy for your cache using the screen shown below. Replication Strategy screen will only be encountered in case of POR.
Replication Strategy: Replication Strategy is defines as how the data is replicated to the backup node. It can be Asynchronous only in Professional Edition.
In step 3, you will need to select nodes that will participate in cluster.
Select nodes: Select nodes that participate in the cluster. You can specify a node name or select one from the list of available nodes.
Cluster Port: TCP based communication between the cluster nodes requires a well known TCP server port for the establishment of the connection with peers. To avoid conflicts, it is preferable to have a unique port for every cluster. The default port is a proposed non-conflicting port for the cluster by NCache.
You can also change the cluster port manually. In case of port conflict, a warning message will be shown.
Storage Type: Specifies the storage type for the primary cache.
Maximum Size: Specifies an upper limit on the size of the cache in MB. The number of items in the cache are limited by maximum size of the cache and amount of free system memory (virtual or physical).
Eviction Policy: Specifies the eviction policy to determine which items are to be removed from cache, if it is full, to accommodate new items.
Default Priority: Specifies default priority, that is associated with an item, if no priority is specified for that item.
Eviction Percentage: Specifies the percentage of items to be removed on each eviction.
Clean Interval (sec.): The periodic interval after which the expired items are removed from the cache.
Start this cache on finish: If this check box is checked then this new cache will start automatically as you click the finish.


| Description | Command |
|---|---|
| Help | ./githubcloner.py --help |
| Clone all repositories of a single user. | ./githubcloner.py --user user -o /tmp/output |
| Clone all repositories of multiple users. | ./githubcloner.py --user user1,user2,user3 -o /tmp/output |
| Clone all repositories of a single organization. | ./githubcloner.py --org organization -o /tmp/output |
| Clone all repositories of multiple organizations. | ./githubcloner.py --org organization1,organization2 -o /tmp/output |
| Clone all repositories of an organization in a hosted Github | ./githubcloner.py --org organization -o /tmp/output –api-prefix https://git.company.com/api/v3 |
| Modify the amount of used threads | ./githubcloner.py --user user --threads 10 -o /tmp/output |
| Clone all repositories of an organization, along with all repositories of the organization’s members. | ./githubcloner.py --org organization --include-org-members -o /tmp/output |
| Use Github authentication in the task. | ./githubcloner.py --org organization -o /tmp/output --authentication user:token |
| Clone authenticated repositories that the authenticated user has access to. | ./githubcloner.py -o /tmp/output --authentication user:token --include-authenticated-repos |
| Include gists. | ./githubcloner.py --user user -o /tmp/output --include-gists |
| Save repos as username_reponame | ./githubcloner.py --user user -o /tmp/output --prefix-mode underscore |
| Save repos as username/reponame | ./githubcloner.py --user user -o /tmp/output --prefix-mode directory |
| Save repos as reponame | ./githubcloner.py --user user -o /tmp/output --prefix-mode none |
| Exclude comma separated list of repos | ./githubcloner.py --user user -- exclude_repos repo1,repo2,repo3,... |
| Print gathered URLs only and then exit. | ./githubcloner.py --user user --include-gists --echo-urls |
The project is compatible with both Python 2 and Python 3.
The project is licensed under MIT License.
This project is made for educational and ethical testing purposes only. It is the end user’s responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program.


Table
Charts
Home Page
Welcome to PMD Quality PPQRS
Welcome to PMD
Click on Button to see charts.
Operation 86
Welcome to PMD
Click on Home to go on home page.
Home Page


24 March 2003
Disease Outbreak Reported
As of 21 March 2003 the Ministry of Health, Mauritania has reported a total of 35 cases (18 laboratory confirmed), including 6 deaths of Crimean-Congo haemorrhagic fever (CCHF)(see previous report). Laboratory confirmation was made by the WHO Collaborating Centre at the Institut Pasteur Dakar, Senegal. Physicians are treating 5 patients in the isolation ward of the National Hospital in Nouakchott. Two hundred and ninety-five contacts are being followed-up.
The Ministry of Health, the Institut Pasteur in Dakar and WHO teams are carrying out control activities and surveillance.
WHO has sent a new set of protective equipment for case management and hygiene to the country.


Games: New prototype - Raid!
A new gameplay prototype has been added to the Games section. This RPG-meets-puzzler is in early stages of development so keep an eye out for updates!
Website Launch!
Welcome to EZ-Games! A portal for developers to showcase their game projects.


The FinTech society is for students of ANY degree who are interested in the application of technological innovations not only into the financial sector, but also well beyond finance. The society aims to develop knowledge of FinTech-related topics (such as blockchain and digital currencies) among students, and gives them opportunities to develop useful employability skills too. This is achieved by students' cross-faculty collaboration and engagement with industry professionals.
Knowledge of FinTech topics and key concepts such as Blockchain, cryptocurrencies, smart contracts and decentralized trading.
Opportunity to hear from industry experts and network with them.
Employability skills (problem solving, teamwork, presentation skills among many others)


LAST MAN STANDING 1996 A film review by Timothy Voon Copyright 1997 Timothy Voon 3 :-( :-( :-( for senseless shooting
Cast: Bruce Willis, Christopher Walken, Bruce Dern, William Sanderson, David Patrick Kelly, Ned Eisenberg, Alexandra Powers, Karina Lombard, Michael Imperioli Director: Walter Hill Screenplay: Walter Hill based on the story by Ryuzo Kikushima and Akira Kurosawa
Two rival mobster gangs vie for dominance in a small town along the Mexican Border. Come Bruce Willis, a free lance, fast gunslinger for hire to the highest bidder. He plays each gang to his best advantage, swapping from side to side until he develops a handy conscience towards the end of the movie; that's if helping two dames and killing everyone else, can be considered developing a conscience?
Boys will be boys. However, when the measure of each boy's manhood depends on the size of his toy gun, the "last man standing" will also be the most childish.  The other boys get their far share of gunfire, but all must resign to being shot by this boy, before the movie ends. The gunfight scenes reminiscent of "Desperado" (without the excessive ketchup/blood), can be described as "boy walks into saloon and guns everyone and everything down". This makes good target practice, but is nonetheless senseless. In which case it becomes meaningless for the victims to raise their weapons in resistance; and in fairness the lines "Please shoot me I'm over here!" should be added to the script for every man downed.
Bruce Willis plays a wry, stone faced gunner who attempts to stare every victim down before he executes them. This cool, expressionless glazed stare is amusing to begin with; but becomes monotonous and confusing, when used without discretion on the mob, the dame and the dame's boss. It's the same look he gives to the mob before a gunfight, and to the dame before bedtime.  It's a no win situation, so perhaps we should just follow the precedence of "Darkman", and hide the man behind the hood.
Director Walter Hill has decided to use a yellow filter screen, to give the movie the same feel as a wild west frontier "Outlaw/Wanted" poster. As my young cousin commented "This movie looks too yellow!" My reply, bless his heart, was "It's not yellow, it's just jaundiced."
Timothy Voon e-mail<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object dxf2svg.util.EventAttributeModifier
This object extracts text content from an SvgText element and modifies the argument
list of any javascript function call found as the value of an Attribute
.
Often it is necessary to add an event attribute to an XML object. This occurs for
all objects that are animated or react to user events. Each of these events reacts
by calling javascript code that performs some action based on the type of event that
has occured. If the user mouses over a text element and you want a tool tip to appear
when that happens, you use a mouseover event attribute like this: onmouseover="someFunction()"
.
In this case the value of the attribute is a call to a javascript function. These
function calls can pass arguments to the function, and some of these arguments are not
known until the SVG file is converted. Consider the case for a Parts list illustration.
Each part number is a hyperlink that takes an additional attribute of onclick
and the value of that attribute is a function call called showPart(). showPart()
takes an argument - the number of the part. In addition the part number is formatted
to be padded to 3 digits by adding preceeding zeros. So a part number like 23 will
look like: '023' and a number like 7 looks like: '007' while a number like 138 is not
modified. These numbers come from the SvgText element but are formatted and added to
the SvgHyperLink object.
To add flexibility to this kind of functionality, the author has included a new keyword:
'implied'. Implied means that the content of the SvgText object should be
extracted, optionally formatted and included and a member of the argument list as
a replacement for the word 'implied'. The user could use the '-MY
' switch like this:
... -MY onClick showPart(evt, implied, another_arg)...
and the resultant
code snippet that looks like this:
<a xlink:href="#stay" onClick="showPart(evt,014,another_arg)"> <text class="ststandard" style="font-size:34.17;fill:#00FF00;" x="372.86" y="328.81">14</text> </a>The implied keyword is replaced verbatim - if you need a string argument you must quote the keyword like this 'implied'.
| Field Summary | |
static int |
MY_FORMAT
This value will format the SvgText's content to the MY javascript function call specification which is an integer that is padded with initial zeros to the max size of three digits. |
static int |
UNFORMATTED
This value will pass the SvgText's content through without any formatting. |
| Constructor Summary | |
EventAttributeModifier(SvgText svgText,
Attribute a)
After this object is created the getAttribute() can be called to get the attribute.
|
|
EventAttributeModifier(SvgText svgText,
Attribute a,
int type)
After this object is created the getAttribute() can be called to get the attribute.
|
| Method Summary | |
Attribute |
getAttribute()
Returns the attribute. |
protected void |
modifyAttribute(SvgText svgText,
int type)
Modifies the Attribute's value if necessary. |
protected java.lang.String |
stringAsIntPadChar(java.lang.String testStr)
This method performs the same function as ManipulateString.intToStringPadChar() but for string text, but it also handles part index numbers that end with a character like '024A'. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public static final int UNFORMATTED
public static final int MY_FORMAT
| Constructor Detail |
public EventAttributeModifier(SvgText svgText, Attribute a)
getAttribute()
can be called to get the attribute.
The returned attribute may or may not have been modified based on whether the keyword
'implied' was used.
svgText
- element to extract the content from.a
- the attribute you wish to modify.public EventAttributeModifier(SvgText svgText, Attribute a, int type)
getAttribute()
can be called to get the attribute.
The returned attribute may or may not have been modified based on whether the keyword
'implied' was used.
svgText
- element to extract the content from.a
- the attribute you wish to modify.type
- is the type of formatting you would like on the implied argument default
is UNFORMATTED
. Currently other supported types are:
| Method Detail |
protected void modifyAttribute(SvgText svgText, int type)
UNFORMATTED
or MY_FORMAT
. If the MY format is choosen the
content of the SvgText element is padded with initial zeros to the max
size of three digits. Example: 1 = 001, 23 = 023.
protected java.lang.String stringAsIntPadChar(java.lang.String testStr)
public Attribute getAttribute()
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


If some specifically file you like to use a different RRS setting, call the rrs method in the closure, passing true or false, as you wish
def uploadedFile =
new
File(
"/tmp/test.txt"
).s3upload { rrs
false
}


Hope Is Where the Heart Is
JHOPWV knows that our strength lies not only in the words we stand by, but most importantly through the actions of our initiatives. Back in 2000, our Non-Profit Organization realized that by working together we could overcome our challenges much more efficiently, and that is why we ultimately decided to launch JHOPWV.
Oscar Wilde


Decoupled (e.g. separate averages) and censored (e.g. > 100 species) variables are continually reported by many well-established organizations (e.g. World Health Organization (WHO), Centers for Disease Control and Prevention (CDC), World Bank, and various national censuses). The challenge therefore is to infer what the original data could have been given summarized information. We present an R package that reverse engineers decoupled and/or censored count data with two main functions. The cnbinom.pars() function estimates the average and dispersion parameter of a censored univariate frequency table. The rec() function reverse engineers summarized data into an uncensored bivariate table of probabilities.
| Version: | 1.0.3 |
| Depends: | R (≥ 3.1.2) |
| Imports: | stringr, mipfp, dplyr, truncdist |
| Suggests: | R.rsp |
| Published: | 2018-09-24 |
| Author: | Samantha Duchscherer [aut, cre], UT-Battelle, LLC [cph] |
| Maintainer: | Samantha Duchscherer <sam.duchscherer at gmail.com> |
| License: | MIT + file LICENSE |
| URL: | https://github.com/GIST-ORNL/revengc |
| NeedsCompilation: | no |
| Materials: | README |
| CRAN checks: | revengc results |
| Reference manual: | revengc.pdf |
| Vignettes: |
R packages: LaTeX vignettes |
| Package source: | revengc_1.0.3.tar.gz |
| Windows binaries: | r-devel: revengc_1.0.3.zip, r-release: revengc_1.0.3.zip, r-oldrel: revengc_1.0.2.zip |
| OS X binaries: | r-release: revengc_1.0.3.tgz, r-oldrel: revengc_1.0.2.tgz |
| Old sources: | revengc archive |
Please use the canonical form https://CRAN.R-project.org/package=revengc to link to this page.


In order to ensure you receive a quick reply, please fill out our Contact Us form.
For partnerships, promotional opportunities, and advertising inquiries, please email us at<EMAIL_ADDRESS>Interested in joining our team? Email us at<EMAIL_ADDRESS>Copyright © Bookshop 2020. All rights reserved.


Brandname
coolUsername
City, Country
img
coolUsername
City, Country
img
coolUsername
City, Country
img
coolUsername
City, Country
img


rexfw.test.cases.statistics package¶
Module contents¶
-
class
rexfw.test.cases.statistics.
MockREStatistics
¶ Bases:
rexfw.statistics.Statistics
-
elements
¶ Returns all quantities which this object is keeping track of
Returns: this object’s quantities Return type: list of LoggedQuantity
objects
-
update
(origins, sampler_stats_list)¶ Updates sampling stats stemming from the replicas in origins with the sampling statistics in sampler_stats_list
Parameters: - origins (list of str) – a list of object (usually, replica) names which gave rise to the sampling stats in sampler_stats_list
- sampler_stats_list (list of sampler statistic objects) – a list of sampler statistics (c.f. the samplers submodule) to update quantities from
-
update_single_step
(origins, step, sampling_stats)¶ Updates sampling statistics for a single sampling step
Parameters: - origins (list of str) – a list of object (usually, replica) names which gave rise to the sampling stats in sampler_stats_list
- step (int) – the sampling step during which the statistic objects in sampling_stats have been created
- sampling_stats (list of sampler statistic objects) – a list of sampler statistics (c.f. the samplers submodule) to update quantities from
-
-
class
rexfw.test.cases.statistics.
MockStatistics
¶ Bases:
rexfw.statistics.Statistics
-
elements
¶ Returns all quantities which this object is keeping track of
Returns: this object’s quantities Return type: list of LoggedQuantity
objects
-
update
(origins, sampler_stats_list)¶ Updates sampling stats stemming from the replicas in origins with the sampling statistics in sampler_stats_list
Parameters: - origins (list of str) – a list of object (usually, replica) names which gave rise to the sampling stats in sampler_stats_list
- sampler_stats_list (list of sampler statistic objects) – a list of sampler statistics (c.f. the samplers submodule) to update quantities from
-
update_single_step
(origins, step, sampling_stats)¶ Updates sampling statistics for a single sampling step
Parameters: - origins (list of str) – a list of object (usually, replica) names which gave rise to the sampling stats in sampler_stats_list
- step (int) – the sampling step during which the statistic objects in sampling_stats have been created
- sampling_stats (list of sampler statistic objects) – a list of sampler statistics (c.f. the samplers submodule) to update quantities from
-


--- layout: post title: EMC Reported To Be Buying Pivotal Labs – Extending Consulting Services date: '2012-03-16T22:42:47-07:00' tags: tumblr_url: http://alexhwilliams.tumblr.com/post/19439702735/emc-reported-to-be-buying-pivotal-labs-extending ---
http://bit.ly/zIObTe


Top left, video. Top right, rooms. Bottom left, search. Bottom right, queue.
This is where the currently playing video is shown. It will be played at the most appropriate quality for your screen size.
You can enter a room by putting its name in the box. If the room doesn't yet exist, it will be created for you. Invite your friends to join the same room to share music!
You can search for songs, and either play them immidiately or add them to the queue. Note that the search results on YouTube.com may be different, as some videos are not allowed to be embedded.
This is the queue. You can drag to rearrange songs, remove songs, or play them immidiately. Note that playing a song from the queue does not remove it from the queue.


---
layout: talk_reveal3
title: Real-time tracking and prediction of influenza virus evolution
venue: Emory University
event: Immunology and Evolution of Influenza Symposium
author: Trevor Bedford
---
{{ page.title }}
Trevor Bedford (@trvrb)
{{ page.date | date: "%-d %b %Y" }}
{{ page.event }}
{{ page.venue }}
Want to forecast the make up of the future flu population from the population that exists today
Real-time updates as new information rolls in
Population turnover (in H3N2) is extremely rapid
Clades emerge, die out and take over
Clades show rapid turnover
Dynamics driven by antigenic drift
Drift variants emerge and rapidly take over in the virus population
This causes the side effect of evading existing vaccine formulations
Drift necessitates vaccine updates
H3N2 vaccine updates occur every ~2 years
Timely surveillance and rapid analysis essential to vaccine strain selection
nextflu
Project to provide a real-time view of the evolving influenza population
nextflu
Project to provide a real-time view of the evolving influenza population
All in collaboration with Richard Neher
nextflu
pipeline
- Download all recent HA sequences from GISAID
- Filter to remove outliers
- Subsample across time and space
- Align sequences
- Build tree
- Estimate clade frequencies
- Infer antigenic phenotypes
- Export for visualization
Up-to-date analysis publicly available at:
Influenza hemagglutination inhibition (HI) assay
HI measures cross-reactivity across viruses
Data in the form of table of maximum inhibitory titers
Antigenic cartography compresses HI measurements into an interpretable diagram
Instead of a geometric model, we sought a phylogenetic model of HI titer data
Identify phylogeny branches associated with drops in HI titer
Model can be used to interpolate across tree and predict phenotype of untested viruses
Model is highly predictive of missing titer values
Recent HI data from London WHO Collaborating Center
Mapping genotype to phenotype changes
Proliferation of "epitope masks" in the literature
Inferences of branch-specific amino acid changes and branch-specific phenotype changes
Can start to validate these masks
Huddleston 2016
And infer masks that better map to HI data
Huddleston 2016
"The future is here, it's just not evenly
distributed yet"
— William Gibson
USA music industry, 2011 dollars per capita
Influenza population turnover
Vaccine strain selection timeline
Seek to explain change in clade frequencies over 1 year
Fitness models can project clade frequencies
Clade frequencies $X$ derive from the fitnesses $f$ and frequencies $x$ of constituent viruses, such that
$$\hat{X}_v(t+\Delta t) = \sum_{i:v} x_i(t) \, \mathrm{exp}(f_i \, \Delta t)$$
This captures clonal interference between competing lineages
The question of forecasting becomes: how do we accurately estimate fitnesses of circulating viruses?
Fortunately, there's lots of training data and previously successful strains have had:
- Amino acid changes at epitope sites
- Antigenic novelty based on HI
- Rapid phylogenetic growth
Predictor: calculate HI drop from ancestor,
drifted clades have high fitness
Predictor: project frequencies forward,
growing clades have high fitness
We predict fitness based on a simple formula
where the fitness $f$ of virus $i$ is estimated as
$$\hat{f}_i = \beta^\mathrm{HI} \, f_i^\mathrm{HI} + \beta^\mathrm{freq} \, f_i^\mathrm{freq}$$
where $f_i^\mathrm{HI}$ measures antigenic drift via HI and $f_i^\mathrm{freq}$ measures clade growth/decline
We learn coefficients and validate model based on previous 15 H3N2 seasons
Clade growth rate is well predicted (ρ = 0.66)
Growth vs decline correct in 84% of cases
Trajectories show more detailed congruence
Trajectories show more detailed congruence
This model is similar in formulation and performance to Łuksza and Lässig
We find that HI is preferred over epitope mutations
| Model |
Ep coefficient |
HI coefficient |
Freq error |
Growth corr |
| Epitope only |
2.36 |
-- |
0.10 |
0.57 |
| HI only |
-- |
2.05 |
0.08 |
0.63 |
| Epitope + HI |
-0.11 |
2.15 |
0.08 |
0.67 |
When does the forecast fail?
Emerging clades are difficult to forecast: little antigenic data and little evidence of "past performance"
Models work well for clades at >10%, but less well for clades <5%
New mutations difficult
Models can project forward from circulating strains, but cannot foresee the appearance of new mutations
Intrinsically limits the timescale of forecasting to ~1 year
Model is only as good as the data
Requires rapid shipping of samples, rapid sequencing and rapid antigenic characterization
Further improvements to predictive modeling
- Extend to other seasonal viruses
- Forecast NA evolution
- Integrate neutralization (FRA) assay data
- Model effects of egg adaptation
- Incorporate an explicit geographic model
Phylogeny of H3 with geographic history
Geographic location of phylogeny trunk
Acknowledgements
Analysis: Richard Neher, Colin Russell, Charlton Callender, John Huddleston,
Gytis Dudas, Colin Megill, Andrew Rambaut, Charles Cheung, Marc Suchard, Steven Riley,
Philippe Lemey, Boris Shraiman, Marta Łuksza, Michael Lässig
GISRS/GISAID: Ian Barr, Shobha Broor, Mandeep Chadha, Nancy Cox, Rod Daniels, Becky Garten,
Palani Gunasekaran, Aeron Hurt, Anne Kelso, Jackie Katz, Nicola Lewis, Xiyan Li, John McCauley,
Takato Odagiri, Varsha Potdar, Yuelong Shu, Eugene Skepner, Masato Tashiro, Dayan Wang, Dave Wentworth,
Xiyan Xu


Before Change
Set up the test case.
self.monoprice = MockMonoprice()
// Note, source dictionary is unsorted!
self.media_player = MonopriceZone(self.monoprice, {1: "one",
3: "three",
2: "two"},
12, "Zone name")
def test_update(self):
After Change
3: {"name": "three"},
2: {"name": "two"}},
}, lambda *args, **kwargs: None, {})
self.hass.block_till_done()
self.media_player = self.hass.data[DATA_MONOPRICE][0]
self.media_player.hass = self.hass
self.media_player.entity_id = "media_player.zone_1"


ALTER OPERATOR FAMILY name USING index_method ADD { OPERATOR strategy_number operator_name ( op_type, op_type ) | FUNCTION support_number [ ( op_type [ , op_type ] ) ] function_name ( argument_type [, ...] ) } [, ... ] ALTER OPERATOR FAMILY name USING index_method DROP { OPERATOR strategy_number ( op_type [ , op_type ] ) | FUNCTION support_number ( op_type [ , op_type ] ) } [, ... ] ALTER OPERATOR FAMILY name USING index_method RENAME TO new_name ALTER OPERATOR FAMILY name USING index_method OWNER TO new_owner
ALTER OPERATOR FAMILY changes the definition of an operator family. You can add operators and support functions to the family, remove them from the family, or change the family's name or owner.
When operators and support functions are added to a family with ALTER OPERATOR FAMILY, they are not part of any specific operator class within the family, but are just "loose" within the family. This indicates that these operators and functions are compatible with the family's semantics, but are not required for correct functioning of any specific index. (Operators and functions that are so required should be declared as part of an operator class, instead; see CREATE OPERATOR CLASS.) PostgreSQL will allow loose members of a family to be dropped from the family at any time, but members of an operator class cannot be dropped without dropping the whole class and any indexes that depend on it. Typically, single-data-type operators and functions are part of operator classes because they are needed to support an index on that specific data type, while cross-data-type operators and functions are made loose members of the family.
You must be a superuser to use ALTER OPERATOR FAMILY. (This restriction is made because an erroneous operator family definition could confuse or even crash the server.)
ALTER OPERATOR FAMILY does not presently check whether the operator family definition includes all the operators and functions required by the index method, nor whether the operators and functions form a self-consistent set. It is the user's responsibility to define a valid operator family.
Refer to Section 35.14 for further information.
The name (optionally schema-qualified) of an existing operator family.
The name of the index method this operator family is for.
The index method's strategy number for an operator associated with the operator family.
The name (optionally schema-qualified) of an operator associated with the operator family.
In an OPERATOR clause, the operand data type(s) of the operator, or NONE to signify a left-unary or right-unary operator. Unlike the comparable syntax in CREATE OPERATOR CLASS, the operand data types must always be specified.
In an ADD FUNCTION clause, the operand data type(s) the function is intended to support, if different from the input data type(s) of the function. For B-tree and hash indexes it is not necessary to specify op_type since the function's input data type(s) are always the correct ones to use. For GIN and GiST indexes it is necessary to specify the input data type the function is to be used with.
In a DROP FUNCTION clause, the operand data type(s) the function is intended to support must be specified.
The index method's support procedure number for a function associated with the operator family.
The name (optionally schema-qualified) of a function that is an index method support procedure for the operator family.
The parameter data type(s) of the function.
The new name of the operator family.
The new owner of the operator family.
The OPERATOR and FUNCTION clauses can appear in any order.
Notice that the DROP syntax only specifies the "slot" in the operator family, by strategy or support number and input data type(s). The name of the operator or function occupying the slot is not mentioned. Also, for DROP FUNCTION the type(s) to specify are the input data type(s) the function is intended to support; for GIN and GiST indexes this might have nothing to do with the actual input argument types of the function.
Because the index machinery does not check access permissions on functions before using them, including a function or operator in an operator family is tantamount to granting public execute permission on it. This is usually not an issue for the sorts of functions that are useful in an operator family.
The operators should not be defined by SQL functions. A SQL function is likely to be inlined into the calling query, which will prevent the optimizer from recognizing that the query matches an index.
Before PostgreSQL 8.4, the OPERATOR clause could include a RECHECK option. This is no longer supported because whether an index operator is "lossy" is now determined on-the-fly at run time. This allows efficient handling of cases where an operator might or might not be lossy.
The following example command adds cross-data-type operators and support functions to an operator family that already contains B-tree operator classes for data types int4 and int2.
ALTER OPERATOR FAMILY integer_ops USING btree ADD -- int4 vs int2 OPERATOR 1 < (int4, int2) , OPERATOR 2 <= (int4, int2) , OPERATOR 3 = (int4, int2) , OPERATOR 4 >= (int4, int2) , OPERATOR 5 > (int4, int2) , FUNCTION 1 btint42cmp(int4, int2) , -- int2 vs int4 OPERATOR 1 < (int2, int4) , OPERATOR 2 <= (int2, int4) , OPERATOR 3 = (int2, int4) , OPERATOR 4 >= (int2, int4) , OPERATOR 5 > (int2, int4) , FUNCTION 1 btint24cmp(int2, int4) ;
To remove these entries again:
ALTER OPERATOR FAMILY integer_ops USING btree DROP -- int4 vs int2 OPERATOR 1 (int4, int2) , OPERATOR 2 (int4, int2) , OPERATOR 3 (int4, int2) , OPERATOR 4 (int4, int2) , OPERATOR 5 (int4, int2) , FUNCTION 1 (int4, int2) , -- int2 vs int4 OPERATOR 1 (int2, int4) , OPERATOR 2 (int2, int4) , OPERATOR 3 (int2, int4) , OPERATOR 4 (int2, int4) , OPERATOR 5 (int2, int4) , FUNCTION 1 (int2, int4) ;


Bookmark-manager App has been built using AngularJS, CSS3 and HTML5 at the front end. NodeJS and ExpressJS at the back end.
The source code for this Application can be forked from
my GitHub account.
The initial client code was taken from
Kevin Delemme


Deval Patrick enters presidential race
by Madison DibbleFormer Massachusetts Gov. Deval Patrick launched his bid to be the Democratic presidential nominee on Thursday morning.
 In the video, Patrick described his upbringing and the problems he sees in the United States. He also acknowledged his late entry into the crowded race.
“I admire and respect the candidates in the Democratic field. They bring a richness of ideas and experience and a depth of character that makes me proud to be a Democrat,” Patrick said. “But if the character of the candidates is an issue in every election, this time is about the character of the country.”
He added, “This time is about more than removing an unpopular and divisive leader, as important as that is, but about delivering instead for you.”
Rumors that Patrick planned to enter the race started swirling earlier this week, as did rumors that former New York City Mayor Michael Bloomberg would enter the race. Bloomberg filed to run in Alabama before the filing deadline hit on Monday but has not officially announced his candidacy.


Automatically export exam dates from WebOodi directly to Google, Apple, Outlook and other calendars using iCalendar.
Log in with Aalto IDP credentials. Credentials are verified by logging in to WebOodi automatically.
{% if error %}Create an issue in GitHub/. Pull requests are appreciated as well.
Passwords are never logged. IP addresses and usernames might be stored in the temporary log files for debugging, but are never stored persistently. IP addresses are also used for rate limitig, but this information is not stored persistently either.
This site does not use cookies, trackers or ads.
User passwords are never stored on the server, and are always deleted after the content has been fetched from WebOodi. The subscription url contains username and password, but they are AES256-encrypted, so that only this application can decrypt them. Still, fundamentally this application uses your credentials to access WebOodi. If you don't trust that I handle the credentials properly, you are free to run your own instance, simply clone the source from GitHub and upload it to Heroku. It's free, and relatively quick.
This service is provided on "as is" basis, without any guarantees about uptime or correctness of data. I'm not responsible for... anything, really. By giving your passsword you might break some University IT policies. I'm not responsibe for that, either. Please do not use the service if you are not allowed to let me to use your passsword.


Today, I am doing something different. For a while, I’ve wanted to build a personal website. Procrastination and perfectionism always got in my way but, today, I have decided to “take the plunge”.
I’m attracted to the idea of publishing my thoughts and what I learn so I can:
Thinking it over, an idea occurred to me. What if I only include what's necessary right now? Focus on a great reading experience and nothing else? Could I grow a website?
It makes sense. If I want feedback, I must respect those giving me feedback. If I want to teach, I don’t want to distract. If I want to solidify my experiences, how does anything but what is necessary help? Ultimately, there is less to procrastinate about.
I want to keep things simple. To do that, I must set rules for myself. I will veer off course otherwise.
My goals are simple:
The goals lead to some interesting eliminations. It surprised me how much I thought I needed can be stripped away.
I promise I will:
I am not a great designer, developer or writer so I must also promise to consider feedback at every step of the way..
I considered using Jekyll. Since I have don’t have more than one page at the moment, I don’t think it’s necessary. Perhaps in future a static-site generator will help.
I also considered using SASS. Again, I don’t think this is necessary. I intend to keep styling simple. SASS would only encourage style complexity.
This page is a hand-crafted HTML file with a handcrafted stylesheet. The source you can see is the source exactly as I wrote it.
I may consider using Markdown in future.
I’ve used a mobile-first approach. It is far easier, in terms of code and experience, to design for mobile first and then work outwards.
I’ve used two web fonts; Libre Baskerville for headings and Open Sans for the body. The clear contrast between headings and body text helps more than the performance gain from using only one font.
I’ve used basehold.it during development. This handy tool overlays a baseline grid over your page. Baseline grids are a bit of a pain in CSS and this tool gives you a good visual of how far you’re out.
I have used an 18 pixel body size, using a perfect fourth ratio for headings from type-scale.com, another great tool for generating type scales.
I have used Normalize.css. I want the experience to be consistent, at least.
I hope this won’t be the only page forever. Given my habits, I can’t guarantee otherwise. It will, at least, remain true to the goals.
When, or if, I write something new, the new piece will become the front page. I will create a link to the previous page and vice versa. I think, even at that point, a navigation would still be unnecessary.
If people have a desire to get in touch, I may introduce a contact page. I will link to this at the bottom of each page so it doesn’t distract.
I enjoy programming and I do intend to write about that. A code display widget may help there. I’m not sure so sure about using embedded gists. Performance is okay but a plain solution is better.
The best conclusion for me, however, is that I have taken the first step. I have, for a change, defeated procrastination. Well done me.


The clusteror.versioneer
Module¶
The Versioneer - like a rocketeer, but for versions.
The Versioneer¶
- like a rocketeer, but for versions!
- https://github.com/warner/python-versioneer
- Brian Warner
- License: Public Domain
- Compatible With: python2.6, 2.7, 3.2, 3.3, 3.4, 3.5, and pypy
- [![Latest Version]
(https://pypip.in/version/versioneer/badge.svg?style=flat) ](https://pypi.python.org/pypi/versioneer/) * [![Build Status] (https://travis-ci.org/warner/python-versioneer.png?branch=master) ](https://travis-ci.org/warner/python-versioneer)
This is a tool for managing a recorded version number in distutils-based python projects. The goal is to remove the tedious and error-prone “update the embedded version string” step from your release process. Making a new release should be as easy as recording a new tag in your version-control system, and maybe making new tarballs.
## Quick Install
- pip install versioneer to somewhere to your $PATH
- add a [versioneer] section to your setup.cfg (see below)
- run versioneer install in your source tree, commit the results
## Version Identifiers
Source trees come from a variety of places:
- a version-control system checkout (mostly used by developers)
- a nightly tarball, produced by build automation
- a snapshot tarball, produced by a web-based VCS browser, like github’s “tarball from tag” feature
- a release tarball, produced by “setup.py sdist”, distributed through PyPI
Within each source tree, the version identifier (either a string or a number, this tool is format-agnostic) can come from a variety of places:
- ask the VCS tool itself, e.g. “git describe” (for checkouts), which knows about recent “tags” and an absolute revision-id
- the name of the directory into which the tarball was unpacked
- an expanded VCS keyword ($Id$, etc)
- a _version.py created by some earlier build step
For released software, the version identifier is closely related to a VCS tag. Some projects use tag names that include more than just the version string (e.g. “myproject-1.2” instead of just “1.2”), in which case the tool needs to strip the tag prefix to extract the version identifier. For unreleased software (between tags), the version identifier should provide enough information to help developers recreate the same tree, while also giving them an idea of roughly how old the tree is (after version 1.2, before version 1.3). Many VCS systems can report a description that captures this, for example git describe –tags –dirty –always reports things like “0.7-1-g574ab98-dirty” to indicate that the checkout is one revision past the 0.7 tag, has a unique revision id of “574ab98”, and is “dirty” (it has uncommitted changes.
The version identifier is used for multiple purposes:
- to allow the module to self-identify its version: myproject.__version__
- to choose a name and prefix for a ‘setup.py sdist’ tarball
## Theory of Operation
Versioneer works by adding a special _version.py file into your source tree, where your __init__.py can import it. This _version.py knows how to dynamically ask the VCS tool for version information at import time.
_version.py also contains $Revision$ markers, and the installation process marks _version.py to have this marker rewritten with a tag name during the git archive command. As a result, generated tarballs will contain enough information to get the proper version.
To allow setup.py to compute a version too, a versioneer.py is added to the top level of your source tree, next to setup.py and the setup.cfg that configures it. This overrides several distutils/setuptools commands to compute the version when invoked, and changes setup.py build and setup.py sdist to replace _version.py with a small static file that contains just the generated version data.
## Installation
See [INSTALL.md](./INSTALL.md) for detailed installation instructions.
## Version-String Flavors
Code which uses Versioneer can learn about its version string at runtime by importing _version from your main __init__.py file and running the get_versions() function. From the “outside” (e.g. in setup.py), you can import the top-level versioneer.py and run get_versions().
Both functions return a dictionary with different flavors of version information:
- [‘version’]: A condensed version string, rendered using the selected style. This is the most commonly used value for the project’s version string. The default “pep440” style yields strings like 0.11, 0.11+2.g1076c97, or 0.11+2.g1076c97.dirty. See the “Styles” section below for alternative styles.
- [‘full-revisionid’]: detailed revision identifier. For Git, this is the full SHA1 commit id, e.g. “1076c978a8d3cfc70f408fe5974aa6c092c949ac”.
- [‘date’]: Date and time of the latest HEAD commit. For Git, it is the commit date in ISO 8601 format. This will be None if the date is not available.
- [‘dirty’]: a boolean, True if the tree has uncommitted changes. Note that this is only accurate if run in a VCS checkout, otherwise it is likely to be False or None
- [‘error’]: if the version string could not be computed, this will be set to a string describing the problem, otherwise it will be None. It may be useful to throw an exception in setup.py if this is set, to avoid e.g. creating tarballs with a version string of “unknown”.
Some variants are more useful than others. Including full-revisionid in a bug report should allow developers to reconstruct the exact code being tested (or indicate the presence of local changes that should be shared with the developers). version is suitable for display in an “about” box or a CLI –version output: it can be easily compared against release notes and lists of bugs fixed in various releases.
The installer adds the following text to your __init__.py to place a basic version in YOURPROJECT.__version__:
from ._version import get_versions __version__ = get_versions()[‘version’] del get_versions
## Styles
The setup.cfg style= configuration controls how the VCS information is rendered into a version string.
The default style, “pep440”, produces a PEP440-compliant string, equal to the un-prefixed tag name for actual releases, and containing an additional “local version” section with more detail for in-between builds. For Git, this is TAG[+DISTANCE.gHEX[.dirty]] , using information from git describe –tags –dirty –always. For example “0.11+2.g1076c97.dirty” indicates that the tree is like the “1076c97” commit but has uncommitted changes (”.dirty”), and that this commit is two revisions (“+2”) beyond the “0.11” tag. For released software (exactly equal to a known tag), the identifier will only contain the stripped tag, e.g. “0.11”.
Other styles are available. See details.md in the Versioneer source tree for descriptions.
## Debugging
Versioneer tries to avoid fatal errors: if something goes wrong, it will tend to return a version of “0+unknown”. To investigate the problem, run setup.py version, which will run the version-lookup code in a verbose mode, and will display the full contents of get_versions() (including the error string, which may help identify what went wrong).
## Known Limitations
Some situations are known to cause problems for Versioneer. This details the most significant ones. More can be found on Github [issues page](https://github.com/warner/python-versioneer/issues).
### Subprojects
Versioneer has limited support for source trees in which setup.py is not in the root directory (e.g. setup.py and .git/ are not siblings). The are two common reasons why setup.py might not be in the root:
- Source trees which contain multiple subprojects, such as [Buildbot](https://github.com/buildbot/buildbot), which contains both “master” and “slave” subprojects, each with their own setup.py, setup.cfg, and tox.ini. Projects like these produce multiple PyPI distributions (and upload multiple independently-installable tarballs).
- Source trees whose main purpose is to contain a C library, but which also provide bindings to Python (and perhaps other langauges) in subdirectories.
Versioneer will look for .git in parent directories, and most operations should get the right version string. However pip and setuptools have bugs and implementation details which frequently cause pip install . from a subproject directory to fail to find a correct version string (so it usually defaults to 0+unknown).
pip install –editable . should work correctly. setup.py install might work too.
Pip-8.1.1 is known to have this problem, but hopefully it will get fixed in some later version.
[Bug #38](https://github.com/warner/python-versioneer/issues/38) is tracking this issue. The discussion in [PR #61](https://github.com/warner/python-versioneer/pull/61) describes the issue from the Versioneer side in more detail. [pip PR#3176](https://github.com/pypa/pip/pull/3176) and [pip PR#3615](https://github.com/pypa/pip/pull/3615) contain work to improve pip to let Versioneer work correctly.
Versioneer-0.16 and earlier only looked for a .git directory next to the setup.cfg, so subprojects were completely unsupported with those releases.
### Editable installs with setuptools <= 18.5
setup.py develop and pip install –editable . allow you to install a project into a virtualenv once, then continue editing the source code (and test) without re-installing after every change.
“Entry-point scripts” (setup(entry_points={“console_scripts”: ..})) are a convenient way to specify executable scripts that should be installed along with the python package.
These both work as expected when using modern setuptools. When using setuptools-18.5 or earlier, however, certain operations will cause pkg_resources.DistributionNotFound errors when running the entrypoint script, which must be resolved by re-installing the package. This happens when the install happens with one version, then the egg_info data is regenerated while a different version is checked out. Many setup.py commands cause egg_info to be rebuilt (including sdist, wheel, and installing into a different virtualenv), so this can be surprising.
[Bug #83](https://github.com/warner/python-versioneer/issues/83) describes this one, but upgrading to a newer version of setuptools should probably resolve it.
### Unicode version strings
While Versioneer works (and is continually tested) with both Python 2 and Python 3, it is not entirely consistent with bytes-vs-unicode distinctions. Newer releases probably generate unicode version strings on py2. It’s not clear that this is wrong, but it may be surprising for applications when then write these strings to a network connection or include them in bytes-oriented APIs like cryptographic checksums.
[Bug #71](https://github.com/warner/python-versioneer/issues/71) investigates this question.
## Updating Versioneer
To upgrade your project to a new release of Versioneer, do the following:
- install the new Versioneer (pip install -U versioneer or equivalent)
- edit setup.cfg, if necessary, to include any new configuration settings indicated by the release notes. See [UPGRADING](./UPGRADING.md) for details.
- re-run versioneer install in your source tree, to replace SRC/_version.py
- commit any changed files
## Future Directions
This tool is designed to make it easily extended to other version-control systems: all VCS-specific components are in separate directories like src/git/ . The top-level versioneer.py script is assembled from these components by running make-versioneer.py . In the future, make-versioneer.py will take a VCS name as an argument, and will construct a version of versioneer.py that is specific to the given VCS. It might also take the configuration arguments that are currently provided manually during installation by editing setup.py . Alternatively, it might go the other direction and include code from all supported VCS systems, reducing the number of intermediate scripts.
## License
To make Versioneer easier to embed, all its code is dedicated to the public domain. The _version.py that it creates is also in the public domain. Specifically, both are released under the Creative Commons “Public Domain Dedication” license (CC0-1.0), as described in https://creativecommons.org/publicdomain/zero/1.0/ .
-
exception
clusteror.versioneer.
NotThisMethod
[source]¶ Bases:
Exception
Exception raised if a method is not valid for the current scenario.
-
exception
clusteror.versioneer.
VersioneerBadRootError
[source]¶ Bases:
Exception
The project root directory is unknown or missing key files.
-
class
clusteror.versioneer.
VersioneerConfig
[source]¶ Bases:
object
Container for Versioneer configuration parameters.
-
clusteror.versioneer.
do_setup
()[source]¶ Main VCS-independent setup function for installing Versioneer.
-
clusteror.versioneer.
do_vcs_install
(manifest_in, versionfile_source, ipy)[source]¶ Git-specific installation logic for Versioneer.
For Git, this means creating/changing .gitattributes to mark _version.py for export-subst keyword substitution.
-
clusteror.versioneer.
get_cmdclass
()[source]¶ Get the custom setuptools/distutils subclasses used by Versioneer.
-
clusteror.versioneer.
get_config_from_root
(root)[source]¶ Read the project setup.cfg file to determine Versioneer config.
-
clusteror.versioneer.
get_root
()[source]¶ Get the project root directory.
We require that all commands are run from the project root, i.e. the directory that contains setup.py, setup.cfg, and versioneer.py .
-
clusteror.versioneer.
get_versions
(verbose=False)[source]¶ Get the project version from whatever source is available.
Returns dict with two keys: ‘version’ and ‘full’.
-
clusteror.versioneer.
git_get_keywords
(versionfile_abs)[source]¶ Extract version information from the given file.
-
clusteror.versioneer.
git_pieces_from_vcs
(tag_prefix, root, verbose, run_command=<function run_command>)[source]¶ Get version from ‘git describe’ in the root of the source tree.
This only gets called if the git-archive ‘subst’ keywords were not expanded, and _version.py hasn’t already been rewritten with a short version string, meaning we’re inside a checked out source tree.
-
clusteror.versioneer.
git_versions_from_keywords
(keywords, tag_prefix, verbose)[source]¶ Get version information from git keywords.
-
clusteror.versioneer.
plus_or_dot
(pieces)[source]¶ Return a + if we don’t already have one, else return a .
-
clusteror.versioneer.
register_vcs_handler
(vcs, method)[source]¶ Decorator to mark a method as the handler for a particular VCS.
-
clusteror.versioneer.
render
(pieces, style)[source]¶ Render the given version pieces into the requested style.
-
clusteror.versioneer.
render_git_describe
(pieces)[source]¶ TAG[-DISTANCE-gHEX][-dirty].
Like ‘git describe –tags –dirty –always’.
Exceptions: 1: no tags. HEX[-dirty] (note: no ‘g’ prefix)
-
clusteror.versioneer.
render_git_describe_long
(pieces)[source]¶ TAG-DISTANCE-gHEX[-dirty].
Like ‘git describe –tags –dirty –always -long’. The distance/hash is unconditional.
Exceptions: 1: no tags. HEX[-dirty] (note: no ‘g’ prefix)
-
clusteror.versioneer.
render_pep440
(pieces)[source]¶ Build up version string, with post-release “local version identifier”.
Our goal: TAG[+DISTANCE.gHEX[.dirty]] . Note that if you get a tagged build and then dirty it, you’ll get TAG+0.gHEX.dirty
Exceptions: 1: no tags. git_describe was just HEX. 0+untagged.DISTANCE.gHEX[.dirty]
-
clusteror.versioneer.
render_pep440_old
(pieces)[source]¶ TAG[.postDISTANCE[.dev0]] .
The ”.dev0” means dirty.
Eexceptions: 1: no tags. 0.postDISTANCE[.dev0]
-
clusteror.versioneer.
render_pep440_post
(pieces)[source]¶ TAG[.postDISTANCE[.dev0]+gHEX] .
The ”.dev0” means dirty.
Exceptions: 1: no tags. 0.postDISTANCE[.dev0]
-
clusteror.versioneer.
render_pep440_pre
(pieces)[source]¶ TAG[.post.devDISTANCE] – No -dirty.
Exceptions: 1: no tags. 0.post.devDISTANCE
-
clusteror.versioneer.
run_command
(commands, args, cwd=None, verbose=False, hide_stderr=False, env=None)[source]¶ Call the given command(s).
-
clusteror.versioneer.
scan_setup_py
()[source]¶ Validate the contents of setup.py against Versioneer’s expectations.
-
clusteror.versioneer.
versions_from_file
(filename)[source]¶ Try to determine the version from _version.py if present.
-
clusteror.versioneer.
versions_from_parentdir
(parentdir_prefix, root, verbose)[source]¶ Try to determine the version from the parent directory name.
Source tarballs conventionally unpack into a directory that includes both the project name and a version string. We will also support searching up two directory levels for an appropriately named parent directory


--- layout: page title: "Code" description: "Download the code." header-img: "img/contact-bg.jpg" ---
Download the code to compute the razor variables in many different configurations at our GitHub page


This is the documentation for the elevation filter plugin example. Below are images of what are implemented in this plugin.
To see the carousel containing images of this plugin you can activate `PARAVIEW_USE_WEBENGINE` in CMake.


IDs of conversations that shouldn't trigger a notification. To find the conversation ID, select the conversation (chat or channel) in teams.
threadId=
and @
in the address bar.
_#conversations/
and @
in the address bar.
You probably want to put your own name in there. The name needs to be the same as is displayed in the notifications.


accordion library Null safety
Copyright 2021 Christian Gotschim.
Published under the new BSD license.
Simple to use accordion widget with lots of preset properties.
Use the maxOpenSections
property to automatically close sections
when opening a new section. This is especially helpful if you
always want your list to look clean -- just set this parameter
to 1 and whenever you open a new section the previous one closes.
scrollIntoView
paramter can be set to fast
, slow
, or none
.
This parameter will only take affect if there are enough items in
the list so scrolling is feasible.
Many parameters can be set globally on Accordion
as well as individually
on each AccordionSection
(see list below).
The header consists of the left and right icons (right icon is preset
to arrow down). Both can be set globally and individually. The
headerText parameter is required and needs to be set for each AccordionSection
.
The content area basically provides the container in which you drop
whatever you want to display when AccordionSection
opens. Background
and borders can be set globally or individually per section.
Accordion(
maxOpenSections: 1,
headerTextStyle: TextStyle(color: Colors.white, fontSize: 17, fontWeight: FontWeight.bold),
leftIcon: Icon(Icons.audiotrack, color: Colors.white),
children: [
AccordionSection(
isOpen: true,
headerText: 'Introduction',
content: Icon(Icons.airplanemode_active, size: 200, color: Colors.amber),
),
AccordionSection(
isOpen: true,
headerText: 'About Us',
content: Icon(Icons.airline_seat_flat, size: 120, color: Colors.blue[200]),
),
AccordionSection(
isOpen: true,
headerText: 'Company Info',
content: Icon(Icons.airplay, size: 70, color: Colors.green[200]),
),
],
)
Classes
- Accordion
- The container list for all accordion sections. Usage: [...]
- AccordionSection
-
AccordionSection
is one section within theAccordion
widget. Usage: [...] - ListController
- SectionController
Mixins
Properties
- listCtrl → ListController
-
final
- springFast → SpringDescription
-
final


WITNESS LIST Culture, Recreation, & Tourism Committee March 1, 2005-3:00P HB 67 For: Hicks, Darlene (League of Women Voters of Texas) Riddering, Hannah (Self) Registering, but not testifying: For: Hadden, Karen (Self) HB 76 For: Murray-Kolb, Elizabeth (Self) Renken, Julie (Self) On: Campos, Alfonso (Texas Parks and Wildlife Department) HB 505 For: Brown, Kirby (Texas Wildlife Association) Gaines, Jimmy (Self) Negley, Richard B. (Self) HB 506 For: Brown, Kirby (Texas Wildlife Association) Gaines, Jimmy (Self) Negley, Richard B. (Self) Thompson, R.H. (Butch) (King Ranch, Inc.) Womack, II, Jess Y. (Self) Against: Christmann, Jr., Harold F. (St. Charles Bay Hunting Club) Collie, Jr., Robert M. (Self) Sanford, Marion (St. Charles Bay Hunting Club) Schwartz, A. R. (Self) Tenenbown, Richard (Self) Weathers, Jr., Walter T. (St. Charles Bay Hunting Club) On: Fitzsimons, Joseph (Texas Parks and Wildlife Commission, Chairman) Registering, but not testifying: For: Blocket, Trey (Texas and Southwestern Cattle Raisers Association) Byfield, Dan (American Land Foundation) Chick, Craig (Texas Association of Realtors) Mayberry, Warren (Texas Farm Bureau) On: Bissell, Dennis (Texas Parks and Wildlife Department) Sinclair, L. David (Texas Parks and Wildlife Department) HB 632 For: DeVault, Jan (Self) Dunn, Jeff (San Jacinto Historical Advisory Board) Overview On: Dunn, Jeff (San Jacinto Historical Advisory Board) Pickett, Sandra (Texas State Library and Archives) Rudd, Peggy D. (Library and Archives Commission)


{% from "common/components/formElements.html" import radioButton, yesNoRadio %} {% extends "question.html" %} {% block question %} {{ content.question | safe }} {% endblock %} {% block form %}
{{ content.divorcePetitionCopy | safe }}
{{ content.adultery | safe }}
{{ content.sameProperty | safe }}


{{ post.title }}
{{ post.excerpt }}
Read More
--- layout: default ---
Hey there! I'm Binoy
I'm a software engineer and a Master's student at Stony Brook University, New York.
I work with the PragSec Lab at Stony Brook, where we mainly work on Web Security, Privacy Engineering and related areas.
If you're interested in my work, check out my Resume


Evolve in a PUZZLE GAME with COMPLEMENTARITY & COMMUNICATION.
Sometime a puzzle can't be solved alone, you will need to cooperate.
Enter this mind-bending adventure that challenges you to use wits over weaponry in rooms of diabolical science.
Use your minds and improve your communication skills to win.
Available on multiple operating systems.
Student Game Project made with love
Bring to light informations about our history. Want to discover the origin of our group's name, our project's name ? Or discover how the group was created, everything is here.
Discover the evolution's historic of our work. As a project evolve, knowledges and group will need to adapt. Hence, discover our evolution and our travelogue.
We're happy to answer any questions you have.


Welcome to this CodeLabs where we will dig into the concept of the Inner Loop in development in a containerized environment and how we can use Skaffold to speed up this loop.
The inner loop can vary a lot depending on the stack you are working on but, usually, it starts with you making a change in the codebase, then somewhat building some assets, trying out your change, iterating on that loop for a while then committing and pushing your code. Once your code is pushed it can go to the outer loop (peer review, continuous integration, tagging, etc.).
Image from Mitch Denny's blog.
I didn't find who was the first to introduce the concept of inner loop but it's usually there that people draw a line in their responsibility with a code change. Arguing that the outer loop needs to be handled by an ops team.
Fortunately more and more people are embracing devops practices and are willing to improve their dev/prod parity
This codelabs is an attempt at implementing an inner loop that makes the development team aware of their responsibility by enabling them to have a similar setup than the production area to minimize the time to market of modern applications.
In this CodeLab we will:
I want to emphasize that you should take your time to play with each tool on your own. I'll guide you during this code lab through a path but you can totally make stops at any step to dig deeper into each component.
You will mainly need a Kubernetes cluster. While it's totally ok to use any cloud provided Kubernetes cluster like GKE, I would recommend using Minikube to mimic the inner loop as closely as possible: as a developer you probably don't want to rely on the internet to make progress on your app.
You will also need the Skaffold and Helm binaries and Docker (Minikube includes Docker) for the first part. We will use the docker binary directly in order to demonstrate the starting point of inner loop.
You will need to install:
They can all be simply grabbed as simple binaries or through a package manager depending on your setup. I'd recommend downloading the binary directly as the package for your distribution might be slightly outdated.
Once you've setup Minikube you should be able to start it:
$ minikube start 😄 minikube v1.2.0 on linux (amd64) 💡 Tip: Use 'minikube start -p <name>' to create a new cluster, or 'minikube delete' to delete this one. 🔄 Restarting existing virtualbox VM for "minikube" ... ⌛ Waiting for SSH access ... 🐳 Configuring environment for Kubernetes v1.15.0 on Docker 18.09.6 🔄 Relaunching Kubernetes v1.15.0 using kubeadm ... ⌛ Verifying: apiserver proxy etcd scheduler controller dns 🏄 Done! kubectl is now configured to use "minikube"
Also, in order to use the same docker socket when you build docker images using the docker CLI, you have to configure your docker environment to use minikube's one:
eval $(minikube docker-env)
Helm needs to setup a server component on the cluster, named Tiller. Do it with the following command:
helm init
The code that we will use in this CodeLab is available on my Github account, download it using the following command:
git clone git@github.com:ClementGautier/codelab-k8s-skaffold-helm.git
You can also download it directly from here:
As you fetched the code you might have realized that the application looks pretty "light". In fact it is composed of a single page app written in JavaScript (React) that makes a call to the backend API written in Python (Starlette) and displays the result.
Our first goal will be to:
Now that you have the source code we can start playing with it. Launching the app should be as easy as a kubectl apply... but wait, we need to build the images first:
docker build -t k8s-skaffold-backend backend docker build -t k8s-skaffold-frontend frontend
Then you will need to deploy the services in your local cluster. We will do so using the kubectl command line that send to the Kubernetes cluster through the ApiServer the desired state of our application:
kubectl apply -f backend/k8s kubectl apply -f frontend/k8s
Then, in order to actually see the application you will need to forward the service port on your host machine (in two different terminals):
kubectl port-forward service/backend 8000 kubectl port-forward service/frontend 3000
After that you should be able to see the app in your browser at the URL http://localhost:3000
You can see a piece of JSON: this information comes from the backend itself. Going to the following URL http://<IP_ADDRESS>:3000/version you can see that there is an issue that we need to fix: the version should be displayed.
Backend version:
Should definitely be
Backend version: 1
Having a look at the container logs on the frontend side you can't see much as the issue happens on the client side:
<IP_ADDRESS> - - [06/Aug/2019:14:13:17 +0000] "GET / HTTP/1.1" 200 2010 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36" "-"
But, looking at the backend container we can see something weird:
<IP_ADDRESS> - - [02/Aug/2019 14:12:57] "GET /vesrion HTTP/1.1" 404 -
It definitely looks like a typo in the URL to fetch the version. Let's fix that.
This part will probably be unpleasant but here we are: try doing it on your own! It should not be hard, we diagnosed that it is a typo on the frontend code calling the backend. I want you to experience first hand what it takes to test a fix with this setup.
Hint: you need to:
After this first look at our baseline, and before using skaffold, you might want to cleanup your cluster and stop the running port-forwarding:
kubectl delete -f backend/k8s kubectl delete -f frontend/k8s
As you probably noticed, having to rebuild the docker image by hand each time we want to test a change is pretty frustrating. The fact that we also need to port forward on our local host on specific port isn't really portable and takes time to restart when the pod changes.
An important point to keep in mind is that the docker images we use should be production ready, thus usually provide less logging or debugging potential than your usual environment. This the main caveat that docker users face when it comes to dev/prod parity.
The goal of Skaffold is to automate the inner loop. It will watch the source code for any change, rebuild the docker images when needed and update the Kubernetes deployment to use the latest source code.
I have already setup the configuration files of Skaffold for you but we will take some minutes now to review the parameters: open the file skaffold.yaml located at the root of the source code.
The first thing that you can see is that we describe "profiles" inside this configuration. We are using profiles in this case to switch between dev mode (hot reload/fast inner loop) and prod mode (nginx, no debug).
There are two approaches when it comes to development docker images, you can use different docker images or use multistage.
The dev profile of the backend application in this example is configured to make use of a specific docker stage (named target) and reflect the multistage strategy (even if in this specific case the content of the Dockerfile doesn't really make good use of the multistage process, it's more a proof of concept rather than a perfect Dockerfile).
The dev profile of the frontend application, on the other hand, makes use of a totally different Dockerfile. Both approaches have pros and cons, pick the one that feels right for your use case.
Look at the Dockerfiles now to see the difference between the stages. You will see that each profile answers specific needs like hot reload for development environment.
Each profile defines its builder. We use the default "docker" builder but keep in mind that there are other solutions like Google Cloud Build, maven, bazel and more.
You can see that, in the dev profile, we also use the sync builder that will synchronize files automatically, allowing us to do hot reload without needing to rebuild the whole container. This is a big advantage of using skaffold!
Each profile also defines it's deployer. This describes the "how" to respond to a code change. You can see that we are using kubectl in dev and helm in prod. We could also have used kustomize instead.
Finally, the port forwarding section allows us to define which service we would like to have exposed directly on our host. This will fasten the inner loop we experienced by doing that part automatically and also act as a way of unifying process in your team.
Now that you are familiar with the profilessetup, launch the app using the following command:
skaffold dev --profile dev --port-forward
You can see that this will rebuild your docker images but only the stages specified by the dev profile and using the specified dockerfiles. You will then be prompted the port used for the port forward:
Port forwarding service/frontend in namespace default, remote port 3000 -> local port 3000 Port forwarding service/backend in namespace default, remote port 8000 -> local port 8000
You can now open your browser and go to http://localhost:3000/ and you should see the application.
Now that our app is managed with Skaffold, try modifying the backend or frontend and see what happens:
Put back the bug we had in the first section: modify the version component in the frontend so that it targets an unknown path on the backend.
You can see that, right after you save your file, there is a file sync happening and a hot reload of your frontend development server. Here are the bugfix logs:
[backend-55b85f75c5-rx9zh backend] INFO: ('<IP_ADDRESS>', 41574) - "GET /vesrion HTTP/1.1" 404 Syncing 1 files for k8s-skaffold-frontend:6f1f2cae47837aa4cecb0e3a7342b27df29ec0744cf3b62a6a318af9c4824ed5 Watching for changes... [frontend-7688ff79f8-nlwnv frontend] Compiled successfully! [backend-55b85f75c5-rx9zh backend] INFO: ('<IP_ADDRESS>', 41710) - "GET /version HTTP/1.1" 200
This happened without a docker rebuild: it is the fastest we can get to a non containerized environment.
You can try the same thing on the backend application: try modifying the version on the version.py file (you can even try to generate a runtime error to see what it is like to have the application in a debug mode!)
Having a really fast inner loop with a containerized environment feels great but what we want in the end is to be production ready! In this section we will see how you can configure your environment to be as close to the production environment as possible.
In this section we will use the helm deployer to showcase what it's like to use a packaging solution with Skaffold. I recommend, if possible, using the same deployer strategy between your dev mode and prod mode as it will help you spot deployment issues as soon as possible.
In order to deploy the application like you would on production you want to use an Ingress controller that acts as a reverse proxy and not rely on port forwarding. In order to do so with minikube you will need to enable the ingress plugin as follows:
minikube addons enable ingress
This will provision an nginx ingress controller and let you use Ingress' resources like you would in a live environment. You will also need to point the DNS record to your cluster IP. You can do that simply by adding the minikube IP to the hosts file:
echo "$(minikube ip) k8s-skaffold-frontend.local k8s-skaffold-backend.local" | sudo tee -a /etc/hosts
Once that's set up, you should be able to run skaffold prod profile:
skaffold dev --profile prod
After a short time you should be able to access the application at the following locations:
Note that this profile doesn't make use of file syncing or hot reload because the images are optimized for production usage. You can still perform updates and it will trigger a build and deploy process since we use the "skaffold dev" command but it will rebuild the docker images thus taking more time.
This is the tradeoff of using the same environment as the production one, but at least you have the ability to switch to dev mode if you need a faster inner loop.
Try updating the code and see the difference with the dev profile.
The helm package is designed for production usage: the deployments are replicated so that you don't encounter downtime, which is always nice to have.
It's a good opportunity for you to test that: while pinging your frontend try to trigger a change. In a terminal launch the following command:
watch -t -n 0.1 curl -s http://k8s-skaffold-backend.local/version
This will curl the backend every 100ms and display the result.
Try it on your own: make a change on the backend version.py file: you shouldn't get any 404s ;)
Note: you will also see that during the deployment since there are multiple frontends, you will get randomly the new and old result: this is a proof that the rolling update is working properly.
Until now we used only one command: `skaffold dev`. This is the main command you will use to work with hot reload but considering that we could use Skaffold in our outer loop (using a continuous integration system for example) or directly to deploy our app on another cluster it makes sense to have more control over the workflow.
There are three commands that you should know:
The "skaffold build" command allows you to... build the artifacts defined in the Skaffold configuration file. This is useful if you want to simply build your docker images and push them on a registry for example.
This step could easily be a step on its own in a CI pipeline or simply be used to control that the artifacts are buildable.
The skaffold deploy command will deploy the latest artifacts that were built. Basically, in a continuous integration process you might want to make a pause before this step for a manual check first.
The skaffold run command combines the build and deploy commands. It is, basically, the dev command without the file watcher. This command is very powerful combined with the "--tail" option, allowing to display the logs of everything deployed by skaffold.
If you used minikube you can simply run the following command in order to destroy your cluster and everything deployed on it:
minikube delete
If you want to keep your cluster running and remove everything Skaffold deployed, you can use the following command:
skaffold delete --profile dev skaffold delete --profile prod
Congratulations on completing this course! I hope it helped you understand the benefits of Skaffold and hopefully increase your productivity in the future.
If you want to go further, I highly recommend the Skaffold documentation. There is, for example, an entire topic that we did not cover: the skaffold debug command which determines the underlying technology of your docker image and configures your development environment accordingly.
Another topic we did not discuss is the Testers: they allow you to add checks in your skaffold loop to enforce the container file structure using container-structure-test. This is another powerful way to standardize the way you work with containers.
Also, if you had any issue doing this codelab, please open an issue on the github repository:


First install co-op under one OS. If you already have, and are enlisted in projects, don't change anything. Switch to the other system, install code co-op there, pointing it to the same database directory (which should be the default anyway). As long as your disk has the same drive letter and directory structure on both systems, it will work.