These initials are used for ECE Return to help you enter correct details about your staff. Information submitted to Ministry of Education about your staff does not include name, initials or personal identifies
(A person in this role working 25 hours per week or more is considered full-time.)
(Senior Management Staff includes service managers, directors, senior staff-staff professional leaders, parent liaison, curriculum planning staff, etc. These staff are not usually involved in the teaching of children but may be available to work in teaching capacity if necessary. A person in this role working 25 hours per week or more is considered full-time.)
(A person in this role working 25 hours per week or more is considered full-time.)
(Support staff are primarily engaged in maintenance, cleaning, food preparation and administrative support. A person in this role working 25 hours per week or more is considered full-time.)
(A person in this role working 25 hours per week or more is considered full-time.)
(Specialist staff are primarily engaged in the care and education of children, e.g. psychologists, physiotherapists, etc. A person in this role working 25 hours per week or more is considered full-time.)
(A person in this role working 25 hours per week or more is considered full-time.)


Liberty Cablevision of Puerto Rico LLC (Liberty Cablevision), is the largest cable operator in Puerto Rico. Liberty Cablevision provides enhanced video, broadband internet, and digital (VoIP) telephony services primarily to residential customers on the island. Liberty Cablevision of Puerto Rico’s 360-mile fiber network provides high capacity and resilient interconnectivity island-wide, enabling high-speed broadband service to residential and commercial customers.


HuBMAP Consortium - Data Ingest Under Maintenance
The site is currently down for maintenance.
Sorry for the inconvenience.


Japan is a country that has it all and more… sacred Shinto shrines, magnificent Buddhist temples, bygone
trade footpaths, spectacular landscaped gardens, eclectic themed pet cafes, diverse art styles,
preserved cultural icons, and gastronomical delights. You could spend a lifetime exploring this country
and barely scratch its extraordinary expanse.
Take a look at the photos below and you will be stunned by how beautiful this country is!


Jakarta, Indonesia
I was super excited to visit Jakarta for work. It is a majority Muslim country but it has a bit of Christianity, Buddhism and some Hinduism. It was a English and Dutch colony. It has many numerous islands. The currency exchange rate is very favorable to the USD. Around 40,000 Indonesian is 2.83 USD. The nightlife (see Colosseum) is exciting and the country is pretty awesome, so there’s a lot to do.
Soundtrack
The flight was a little excruciating being 19hrs and that I had back to back toddlers behind me kicking my seat. I managed to get a little bit of sleep and I arrived in Jakarta at around 930pm and got to my hotel and checked in at 1130pm. Being too tired I decided to crash.
I stayed at the Shangri-La hotel, more info about it later at the bottom of the page but it was a pretty sweet hotel. Here's my morning view:
I found these drinks to be a great hangover/wake me up drink. I felt refreshed each morning, I might look into trying to find/make this for home.
As I was walking around, a couple guys came up to me on their bike asking if I wanted a ride, I declined most of them. But there was this one guy who came up and offered me a tour. I sized him up and he seemed pretty harmless. He said that he actually had tours advertised on Lonelyplanet and I said sure. He actually showed me the heart of Jakarta and the villages inside..
Later he took me out to the harbor
It was pretty surreal and reminded me of parts of Vietnam. Indonesia is home to a huge population, mostly Muslim but it has Buddism and Christianity as well. We visited some Buddhist temples and mosques
After that I went down to South Jakarta to check out a street wear store, they actually had some clothes that were made by Indonesian designers.
Right next to this store was one of the best and healthy food spots ever. Mangia was a small smoothie shop but it has a bustling kitchen. It had the best Tom Yum soup I ever had.
The Shirataki noodles were a great touch to the Tom Yum soup. Just writing about it makes me crave it. You can definitely taste all the spices and flavor here. For a drink I went with the "Fresh Me Up" with Dragonfruit and Leche. I would highly recommend checking this place out
The next day I ventured out to see more sightseeing. Google Trips suggested to check out Taman Ismail Marzuki. I was hungry and stopped by to get some Javanese food nearby
The menu was in Indonesian but I used google translate to kind of help figure out what I wanted. As you can see I ordered a chocolate milk with avocado (which was great) desert instead of a drink.
I was eating and this little guy came up
I cut a piece of chicken and fed it to him (on a seperate fork)
I actually felt pretty full so I just cut up the rest of the chicken and gave it to this fella
I guess in the day there was not much going on but the buildings looked pretty cool. I peaked inside there there was some small conference happening
Nearby was the National Monument, so I decided to go check that out
Again, it was an 'off day' and close to 4pm which is when the National Museum closes. It was a pain to get to the National Monument and when a tour guide asked if he can show me around (since it was his off day) I decided that it would probably be for the best. So I said sure.
I thought this statue was pretty cool. "The Arjuna Wijaya Statue is another monument in Freedom Square, located in the southwest corner of the plaza. It represents the archer, one of the Five Pandava brothers, a legendary figure in Indonesia. He is depicted with a bow and an arrow riding a galloping horse. Some believe this statue symbolizes an open door to the spiritual world."
We visited the National Museum briefly, they had some pretty neat sculptures outside
We were able to take a quick glimpse inside the Museum where I was able to see the main exhibit, an ancient drum set
These drum sets were massive and would need to be played by 4 people in the middle. I believe this was given from China
Later we checked out the Ancol Art Market or Pasar Seni. This was a pretty cool spot where local artist would showcase their art.
This is a pretty crazy tradition in Indonesia this is where they literally hang on to the tails of the bull and race them. Check it out Here
Later we checked out another harbor nearby
There was a famous seafood resturaunt nearby where you can select the seafood from the tank to have as your meal. This was Bandar Djakarta
We got here a bit before it got packed
It was 2 fishes (I bought one for my tourguide), barbequed fried for spicy. It was delicious. I definitely need to thank the tour guide, without him I wouldn't have found out some of these places and probably would have gotten lost on my own. His name is Rezky Anggara, and is reachable by<EMAIL_ADDRESS>He aspires to some day be a politician. If you are in Jakarta and would seek a tour guide, I recommend reaching out to him.
Later at night, I met up with a friend and hung out, afterwards, we were quite hungry and he showed me Garuda. This place is open 24hours but it is not english friendly, luckily my friend knows the way of the land and language.
Nasi Pedang is pretty much steamed rice with various Indonesian dishes.
This was voted as the best food in the world.. again. I tend to believe it. This is slow cooked beef with plenty of spices. Source
THe next day I headed out to Grand Indonesia mall. Now Jakarta has plenty of malls but this one was the biggest and luxurious-est one. I did not care too much about shopping, I just thought this was a good place to get some food (and I was right), plus it was close by my hotel
I stumbled upon Kokoro Mazesoba. Amazing Japanese soba here in Indonesia.
Here's the first page of the menu that goes into detail what this amazing spot is.
Later back at the hotel, I went to Nishimura. I went before when I first arrived but I was so hungry I didn't take pictures ha
The last day, my friend showed me THE BEST PORK NOODLE SPOT in Jakarta. Bankmi Cong Sim
This was such a fantastic meal to wrap up a whole night of going out and my last meal in Jakarta. I learned that the recipe and resturaunt has been passed down to three generations. Highly suggest visiting here if you are in Jakarta.
I stayed at the Shangri-la hotel in Jakarta. This was one of the best hotels I've stayed at, excellent staff, accomodating, the rooms were not so expensive either. It was $168 for the executive room; though it was supposedly off season. There's not many hotels with that much garden and a huge swimming pool in Jakarta. The location is pretty good too as it is in the middle of Jakarta.
Overall Jakarta was fun, I wish I had the energy/time to check out Colosseum but alas I was too exhausted from work to really enjoy those. But Jakarta is a city where you definitely need to know someone to be at the best spots.


range
range OPTIONS START_INTEGER END_INTEGER [INCREMENT_INTEGER]
range is a simple utility for shell scripts that emits a list of integers starting with the first command line argument and ending with the last integer command line argument. It is a subset of functionality found in the Unix seq command.
If the first argument is greater than the last then it counts down otherwise it counts up.
Create a range of integers one through five
range 1 5
Yields 1 2 3 4 5
Create a range of integer negative two to six
range -- -2 6
Yields -2 -1 0 1 2 3 4 5 6
Create a range of even integers two to ten
range -increment=2 2 10
Yields 2 4 6 8 10
Create a descending range of integers ten down to one
range 10 1
Yields 10 9 8 7 6 5 4 3 2 1
Pick a random integer between zero and ten
range -random 0 10
Yields a random integer from 0 to 10
range 1.2.1


| AVR Libc Home Page | AVR Libc Development Pages | ||||
| Main Page | User Manual | Library Reference | FAQ | Alphabetical Index | Example Projects |
#define F_CPU 11059200 #define BAUD 38400 #include <util/setbaud.h>
This header file requires that on entry values are already defined for F_CPU and BAUD. In addition, the macro BAUD_TOL will define the baud rate tolerance (in percent) that is acceptable during the calculations. The value of BAUD_TOL will default to 2 %.
This header file defines macros suitable to setup the UART baud rate prescaler registers of an AVR. All calculations are done using the C preprocessor. Including this header file causes no other side effects so it is possible to include this file more than once (supposedly, with different values for the BAUD parameter), possibly even within the same function.
Assuming that the requested BAUD is valid for the given F_CPU then the macro UBRR_VALUE is set to the required prescaler value. Two additional macros are provided for the low and high bytes of the prescaler, respectively: UBRRL_VALUE is set to the lower byte of the UBRR_VALUE and UBRRH_VALUE is set to the upper byte. An additional macro USE_2X will be defined. Its value is set to 1 if the desired BAUD rate within the given tolerance could only be achieved by setting the U2X bit in the UART configuration. It will be defined to 0 if U2X is not needed.
Example usage:
#include <avr/io.h> #define F_CPU 4000000 static void uart_9600(void) { #define BAUD 9600 #include <util/setbaud.h> UBRRH = UBRRH_VALUE; UBRRL = UBRRL_VALUE; #if USE_2X UCSRA |= (1 << U2X); #else UCSRA &= ~(1 << U2X); #endif } static void uart_38400(void) { #undef BAUD // avoid compiler warning #define BAUD 38400 #include <util/setbaud.h> UBRRH = UBRRH_VALUE; UBRRL = UBRRL_VALUE; #if USE_2X UCSRA |= (1 << U2X); #else UCSRA &= ~(1 << U2X); #endif }
In this example, two functions are defined to setup the UART to run at 9600 Bd, and 38400 Bd, respectively. Using a CPU clock of 4 MHz, 9600 Bd can be achieved with an acceptable tolerance without setting U2X (prescaler 25), while 38400 Bd require U2X to be set (prescaler 12).
Defines | |
| #define | BAUD_TOL 2 |
| #define | UBRR_VALUE |
| #define | UBRRL_VALUE |
| #define | UBRRH_VALUE |
| #define | USE_2X 0 |
| #define BAUD_TOL 2 |
Input and output macro for <util/setbaud.h>
Define the acceptable baud rate tolerance in percent. If not set on entry, it will be set to its default value of 2.
| #define UBRR_VALUE |
Output macro from <util/setbaud.h>
Contains the calculated baud rate prescaler value for the UBRR register.
| #define UBRRH_VALUE |
Output macro from <util/setbaud.h>
Contains the upper byte of the calculated prescaler value (UBRR_VALUE).
| #define UBRRL_VALUE |
Output macro from <util/setbaud.h>
Contains the lower byte of the calculated prescaler value (UBRR_VALUE).
| #define USE_2X 0 |
Output bacro from <util/setbaud.h>
Contains the value 1 if the desired baud rate tolerance could only be achieved by setting the U2X bit in the UART configuration. Contains 0 otherwise.


import {MatFormFieldHarness} from '@angular/material/form-field/testing';
MatFormFieldHarness
extends
ComponentHarness
| Name | Description |
|---|---|
|
async
getAppearance
|
|
|---|---|
|
Gets the appearance of the form-field. |
|
| Returns | |
Promise<'fill' | 'outline'>
|
|
async
getControl
|
|
|---|---|
|
Gets the harness of the control that is bound to the form-field. Only default controls such as "MatInputHarness" and "MatSelectHarness" are supported. |
|
| Returns | |
Promise<FormFieldControlHarness | null>
|
|
async
getControl
|
|
|---|---|
|
Gets the harness of the control that is bound to the form-field. Searches for a control that matches the specified harness type. |
|
| Parameters | |
|
type ComponentHarnessConstructor<X>
|
|
| Returns | |
Promise<X | null>
|
|
async
getControl
|
|
|---|---|
|
Gets the harness of the control that is bound to the form-field. Searches for a control that matches the specified harness predicate. |
|
| Parameters | |
|
type HarnessPredicate<X>
|
|
| Returns | |
Promise<X | null>
|
|
async
getErrors
|
|
|---|---|
|
Gets all of the error harnesses in the form field. |
|
| Parameters | |
|
filter ErrorHarnessFilters = {}
|
|
| Returns | |
Promise<MatErrorHarness[]>
|
|
async
getLabel
|
|
|---|---|
|
Gets the label of the form-field. |
|
| Returns | |
Promise<string | null>
|
|
async
getPrefixText
|
|
|---|---|
|
Gets the text inside the prefix element. |
|
| Returns | |
Promise<string>
|
|
async
getSuffixText
|
|
|---|---|
|
Gets the text inside the suffix element. |
|
| Returns | |
Promise<string>
|
|
async
getTextErrors
|
|
|---|---|
|
Gets error messages which are currently displayed in the form-field. |
|
| Returns | |
Promise<string[]>
|
|
async
getTextHints
|
|
|---|---|
|
Gets hint messages which are currently displayed in the form-field. |
|
| Returns | |
Promise<string[]>
|
|
async
getThemeColor
|
|
|---|---|
|
Gets the theme color of the form-field. |
|
| Returns | |
Promise<'primary' | 'accent' | 'warn'>
|
|
async
hasErrors
|
|
|---|---|
|
Whether the form-field has errors. |
|
| Returns | |
Promise<boolean>
|
|
async
hasLabel
|
|
|---|---|
|
Whether the form-field has a label. |
|
| Returns | |
Promise<boolean>
|
|
async
host
|
|
|---|---|
|
Gets a |
|
| Returns | |
Promise<TestElement>
|
|
async
isAutofilled
|
|
|---|---|
|
Whether the form-field is currently autofilled. |
|
| Returns | |
Promise<boolean>
|
|
async
isControlDirty
|
|
|---|---|
|
Whether the form control is dirty. Returns "null" if no form control is set up. |
|
| Returns | |
Promise<boolean | null>
|
|
async
isControlPending
|
|
|---|---|
|
Whether the form control is pending validation. Returns "null" if no form control is set up. |
|
| Returns | |
Promise<boolean | null>
|
|
async
isControlTouched
|
|
|---|---|
|
Whether the form control has been touched. Returns "null" if no form control is set up. |
|
| Returns | |
Promise<boolean | null>
|
|
async
isControlValid
|
|
|---|---|
|
Whether the form control is valid. Returns "null" if no form control is set up. |
|
| Returns | |
Promise<boolean | null>
|
|
async
isDisabled
|
|
|---|---|
|
Whether the form-field is disabled. |
|
| Returns | |
Promise<boolean>
|
|
async
isLabelFloating
|
|
|---|---|
|
Whether the label is currently floating. |
|
| Returns | |
Promise<boolean>
|
|
static
with
|
|
|---|---|
|
Gets a |
|
| Parameters | |
|
options FormFieldHarnessFilters = {}
|
Options for filtering which form field instances are considered a match. |
| Returns | |
HarnessPredicate<T>
|
a |
MatErrorHarness
extends
ComponentHarness
Harness for interacting with an MDC-based mat-error
in tests.
| Name | Description |
|---|---|
|
async
getText
|
|
|---|---|
|
Gets a promise for the error's label text. |
|
| Returns | |
Promise<string>
|
|
async
host
|
|
|---|---|
|
Gets a |
|
| Returns | |
Promise<TestElement>
|
|
static
with
|
|
|---|---|
|
Gets a |
|
| Parameters | |
|
options ErrorHarnessFilters = {}
|
Options for filtering which error instances are considered a match. |
| Returns | |
HarnessPredicate<T>
|
a |
FormFieldHarnessFilters
A set of criteria that can be used to filter a list of MatFormFieldHarness
instances.
| Name | Description |
|---|---|
|
Filters based on the text of the form field's floating label. |
|
Filters based on whether the form field has error messages. |
|
Filters based on whether the form field value is valid. |
ErrorHarnessFilters
A set of criteria that can be used to filter a list of error harness instances.
| Name | Description |
|---|---|
|
Only find instances whose text matches the given value. |
FormFieldControlHarness
Possible harnesses of controls which can be bound to a form-field.
type FormFieldControlHarness = MatInputHarness | MatSelectHarness | MatDatepickerInputHarness | MatDateRangeInputHarness;


Atomic Scala 2nd Edition introduces the foundations of the Scala programming language in very small steps (which we call atoms). The book is designed to simplify learning the language for both beginners and experienced programmers. To get started download the first hundred pages of the book.
All of the examples from the book can be found in the examples directory. Select a file to edit it. Run an example from the Activator UI by editing ExampleRunner.scala and putting the file name into the getOrElse
part, like:
utils.RunFile(args.headOption.getOrElse("DivZero.scala"))
Then in Run click the Start button. After the successful build of the code, you will see a list of main classes, ExampleRunner should be selected but if it's not, select that one. Whenever the code changes, the file specified in ExampleRunner.scala will automatically be re-run. If you want to run a different file simply change the file name there and click the Save button../activator "run-main ExampleRunner"
You can also specify the example to run from the command like, like:
./activator "run-main ExampleRunner DivZero.scala"


 A dead man has a mere spirit as well as an other which is a snake. Spirit-animals live near graves. If a man dies he becomes a snake. Men also become snakes when bitten by them ('and his snake is a spirit'). If a woman dies she becomes a mere spirit unless she dies of a snakebite in which case she becomes a snake. Mere spirits go away.
Comments
1) See also A snake found near a grave and A certain snake, which, by lying upon its back, announces a death in the family; and must not, in these circumstances, be killed, 2) This story is found in Book XI & XII-12
Contributors
Date
Ocober 1881
Categories
Keywords
death (snakes and spirits of the dead) , death (different kinds of spirits) , death (different ways of dying) , death ('mere' spirits go away) , death (spirit-animals live near graves) , death (a dead man has a mere spirit as well as another which is a snake) , death (and spirits) , death (life after) , death (and spirit-animals) , death (from elephant) , death (from snakebite) , death (and the heart that aches) , death (and black snakes) , death (dead men become snakes) , death (women become mere spirits) , death (women become snakes if they die of snakebite) , snake (snakes and spirits of the dead) , snake (spirit-animals) , snake (black) , snake (a dead man has a mere spirit as well as other which is a snake) , snake (men become after death) , snake (women become snakes if they die of snakebite) , grave (snakes and spirits of the dead) , grave (a person's 'earth') , grave (spirit animals live near graves) , spirits (and snakes) , spirits (and graves) , spirits (mere) , spirits (animal-) , spirits (snake-) , spirits (of men) , spirits (of women) , spirits (that go away) , spirits (that stay at the grave) , animals (-spirit) , animals (spirit-animals are found near graves) , animals (of the dead) , animals (spirit-snake) , women (snakes and spirits of the dead) , women (become mere spirits) , women (become snakes if they die of snakebite) , men (a dead man has a mere spirit as well as another which is a snake) , men (dead, become snakes) , heart (that aches) , heart (and death) , heart (snakes and spirits of the dead)
Story Pages
9956v-9957v


Generate errors for test automation
Throw Error
Throw DOMException
Throw deep stack Error
Throw event handler Error


{% extends 'layout.html' %} {% block pageTitle %} You cannot apply online yet {% endblock %} {% block content %}
You can only apply online if you’ve received a letter from the NHS.
If you’ve not received a letter from the NHS, you can apply for Healthy Start vouchers (opens in a new tab) instead.
If you think there is a mistake, you can contact us by:


If you use the Yeoman Gulp generator, you might be getting an incredibly frustrating socket hang up anytime an HTTP request fails or is interrupted.
Adding simple error handling to your httpProxy will disallow the hangup and keep your sanity in check:


It was my second web project and it let me learn a lot of stuff about web development, no-SQL databases and python in general. The project is an unfinished photography social network.
Check it outHoneynet deployment in the UGR network for data and malware analysis. This project corresponds to my Final Degree Project.


quantum Quantum state Phys. trapped Rev. chemistry ions simulation {border-style classical px;} #ffffff;} trapped-ion degrees electronic Hamiltonian energy freedom method obtained time evolution optimization Aspuru-Guzik Lett. UCC ions. measurement molecular operator spin Eq. digital fermionic number operators phase problems states (see Simulating algorithm computer. error gates internal local px; systems terms value {font-family Fig. M.-H. Science Simulation Trapped coupled-cluster estimation expectation font-size gate ion methods motional new obtain protocol set simulating steps use Pauli Trotter Yung double; efficient gradient involving laser potential quantum-assisted qubit step unitary using (b) Hamiltonians However, Jordan-Wigner Mølmer-Sørensen Whitfield [], ansatz application associated basic border-color border-width computers. e.g., efficiently error. exact following ground-state implement initial interaction measurements nuclear orbitals procedure represented resources simulate solid; systems. toolkit vibrational {font-style {font-weight Casanova Chem. Dirac Furthermore, Ions. Lamata Nature New Solano Supplementary Therefore, University aims approximate based bold bosonic chemistry. circuit cluster courier; determined developed dynamics, eigenvalues em; follows: gates, ground implemented implementing individual input matrices methods. non-local optimized order parameters performed products pt;} reference representation second sideband simulated single solve solving structure thermal values variational versus


Everyone will deal with one at some point during their time in college. Whether it’s with a significant other, family members or even your dog, it’s important to find something to cope with while being away from those you care about.
You text, make phone calls and plan visits, but it’s not the same as being there. You find yourself daydreaming about being together, having fun and all of the good times you had in the past.
My long distance relationship this summer was with the city of Athens.
I know it seems weird. How can you have a long distance relationship with a city? But almost four months away from the people and places you love feels like an eternity.
Emilee Chinn | FOR THE POST
Although I enjoyed my summer making new friends in a new city, I found myself counting down the days until it was time to move in. I visited Athens with my friends a couple times during the summer, but it was so hard to leave after only a few days.
I soaked up as much as I could in those few days that I was in Athens. I went to my favorite Court Street bars, picked up some coffee from Brenan’s and relaxed at Strouds Run State Park. All too soon, I had to leave.
Now, it’s finally time to return to school. Never in my life did I think I would ever be excited to return back to school. My grade school self is wondering what is wrong with me.
I am excited for my classes as I go into senior year, but it is the people and places that I miss the most.
I miss being in walking distance of my friends every day. I miss morning runs on the bike trail along the Hocking River. I will even admit that I miss late nights at The Post a little bit.
Watching a lot my friends graduate last year, I began to feel nostalgic for my last year at Ohio University way before it even started.
I have my bucket list filled with all my lasts that I can experience in Athens. I am excited for what the year holds, but it will be filled with many lasts — last time walking up Jeff Hill, last time taking a class and last time living in Athens.
So while the summer long distance has been hard, it has made me excited for all the prospects this year holds.
I’ve learned a lot about myself during my three years at OU. I’ve made new friends and have so many different experiences that I wouldn’t trade for anything.
Going into senior year, I know I can just enjoy everything. I don’t find myself feeling nervous as the school year approaches.
Instead, I feel excitement just knowing it’s going to be a great year, and I plan to savor every moment with my friends and this town one last time.
Ellen Wagner is a senior studying journalism at Ohio University and the editor-in-chief of The Post. Have questions? Email Ellen at<EMAIL_ADDRESS>or tweet her @ewagner19.


Latest News
{% for post in site.posts %}
{{ post.date | date_to_string }}
*
{{ post.title }}
{% endfor %}
{% include sections/menu.html %}
HeadJS
v{{site.head.minor}}
The only script in your <HEAD>
A tiny script, to simplify, speed up, and modernize your site !
{{ content }}
Top
{% include sections/featured.html %} {% include sections/footer.html %} {% include scripts/analytics.html %} {% for item in page.scripts %} {% endfor %}


?V0j,
iT*Nl
C
\
%
Mastichodendron
Arthur
Cronquist,
1944.
New
York
Botanical
Garden
Plantae
Indiae
occid.
ab
I.
BOLDINGH
anno
1906
collect.
Dutch
W.
Ind
(c.f.
I.
BOLDINGH.
The
Flora
of
the
Islands
I.
19OQ.
p.
)
det.
I.
BOLDINGH
1908,
01443476
01443476
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


| 451 | (A) | a kyste of syluer fułł schene was sett there with-In |
| 453 | (C) | ¶ An owche of syluur walewede þer-Inne |
| 450 | (D) | A whicche of whit seluir walowid þer-in |
| 449 | (E) | ¶ An hucche of fyn syluer . hanged ther-ynne |
| (Ex) | ---- no text ---- | |
| 466 | (L) | a which of white seluere walynde þer-ynne |
| (P) | ---- no text ---- | |
| 447 | (U) | ¶ And an arke of siluer / walwed thre in |
| (V) | ---- no text ---- |


Andrew R. Mancuso
About
Portfolio
Contact
Portfolio
Hang 'Em High
Wheel Collector
Sk8Trivia
GIPHY API + AJAX
Moment Train Schedule
Connect with Me


The selected validations have a non-overlapping extent, which means that there are no
common validation points. If you wish to perform the comparison, check the 'Include all points from the
selected validations' option in the 'Spatial extent' dialogue box and re-run the comparison. In this case
a boxplot only will be shown, comparing the distribution of values in the two validations.


To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video


November 2015 Meetup
Time: Starts 19 November 7:00 pm
Location: LAUNCH/CO , Rudolfstraße 14 , 10245 Berlin (map)
Topics
We will talk about using vim with screen window manager and tmux. This meetup will exchange workflows, shortcuts and the setup of your dotfiles. Please bring your laptop with you, so that we can hack together.
Sponsor
Thanks to LAUNCH/CO for hosting the event.
Recap
- internet:
- connect to the local wifi ("LAUNCH/CO");
- start your browser.. and wait.. for the login page..
- enter the user+pass for this event (see whiteboard)
- projector:
- it didnt recognize the laptops with VGA. :-(
- bring a VGA extension cable next time.
- the HDMI failed once in a while.. loose connection? overheating?
- room:
- we had been seven persons. there was maybe room for one more person.
- then it gets awkward. definitely not enough space for 20 people.
- drinks: club-mate for 1,00€ :)
Richard "oracle2025" Spindler
- Vimfiles: https://github.com/oracle2025/.vim
- plugin #1: vim-tmux-navigator
- plugin #2: vimux => F5 opens the pane below and calls "make" therein.
- plugin #3: vim-slime => copies the current line/paragraph into the pane below
- mentioned keycaster
Matthias "wikimatze" Günther
- Vimfiles: https://github.com/wikimatze/vimfiles
- Dotfiles: https://github.com/wikimatze/dotfiles
- tmux plugin manager (tpm)
- tmux-sensible: common settings for every tmux.conf
- tmux-resurrect: store and save several tmux sessions
- tmux-open: press 'o' in Edit-Mode to open txt, mp3, pngs in your system default programms
- tmux-yank: copy text in tmux to system clipboard on various platforms
- tmux-copycat: better searching with highlights
- tmuxifer: Window and pane management for tmux
Philip
"uses the mouse" ;)
- fzf: "command line fuzzy finder"
- mucks: another way to manage sessions in both screen and tmux written in awk by Serge Zaitsev
Christian "wellle" Wellenbrock
- Vimfiles: https://github.com/wellle/dotfiles
- uses the dvorak keyboard layout
- ranger: minimalistic file-browser
- ranger: plugin for vim: https://raw.githubusercontent.com/hut/ranger/master/examples/vim_file_chooser.vim
- tmux: zoom with 'Prefix z'
- tmux-complete: completes words from other panes
- tmux: enable tmux with mouse support for dragging borders between panes
- vim-tbone: a good plugin to send keys to certain panes
Sven Guckes
- almost never uses the mouse
- current window manager: "i3" (small+fast!)
- has been using screen as an environment for 20+ years
- maintainer of the screen maillist gnu-screen 2000-2004 https://groups.yahoo.com/neo/groups/gnu-screen/info
- http://www.guckes.net/Screen webpages on screen
- setup files:
- http://www.guckes.net/Setup/screenrc.minimal 450byte
- http://www.guckes.net/Setup/screenrc (58KB): includes many examples, links about screen, a description of copy mode, and some general problems on screen
- screen or tmux? tmux!
- comparison: http://www.guckes.net/tmux/vs.screen.txt
screen: some remarks:
- screen+tmux: keep programs running
- terminology:
- screen: windows with regions
- tmux: windows with panes
- splitting: horizontal und vertikal
- screen: global layout
- tmux: each window can have different panes
- useful shell aliases:
alias \\?='screen -ls'
alias \\!='screen -r'
alias x='screen -x'
- screen: starting sessions with config files
screen -c $file
alias WORK='screen -m -c ~/.screenrc.work'
alias COMM='screen -t COMM 9 -m -c ~/.screenrc.comm'
-> ":source" allows splitting of config files
(shells, mutt and vim allows this, too=
- bindings: allows to start programs and webpages easily (zB htop, imdb, mtr, mutt,vim; web: dict,google,imdbhj)
other tools:
- irssi: "a modular IRC client for UNIX" backlog completion - ading tab completion for prefix of words which had been used in conversation (private or in public, ie on channels)
- http://www.guckes.net/irssi/scripts/backlog_completion.txt written by Florian Ragwitz
- xsel: "manipulate the X selection" http://www.vergenet.net/~conrad/software/xsel/ copies text from shell/vim from/into the X clipboard -> no need for vim to be compiled with clipboard support
- same functionality for MacOSX: pbcopy + pbpaste http://osxdaily.com/2007/03/05/manipulating-the-clipboard-from-the-command-line/
- zsh: fc - "The fc command controls the interactive history mechanism." builtin command to edit last command
Questions
- screen: backlog search with patterns? -> tmux+copycat!
- tmux: does it have a zombie mode?
- vim: tab management. "jump to tab with 'foo' in its name" - possible?
- vim: how do you handle empty/new buffers?
- eg "list all buffers without a file"
Video
- https://github.com/tpope/vim-dispatch
- https://github.com/keycastr/keycastr
- https://www.youtube.com/watch?v=hO8vd1y0h6g10 "fzf - Fuzzy Finder For Your Shell - Linux TUI"
Ideas
Christian: - tmux: allow naming of panes/windows with letters (instead of numbers)
Sven: - CryoPID: "A Process Freezer for Linux" https://code.google.com/p/cryopid/ - CryoPID can move your running Linux programs from one computer to another. has anyone used this yet? - reptyr: "Tool for moving running programs between ptys" - feh: "image viewer and cataloguer"
bilder sortieren per key bindings -> actions
parameter: --action1 .. --action9
action1: save pictures to subdir1 (good -> keep)
action2: save pictures to subdir2 (bad -> keep for now)
action3: save pictures to subdir3 (ugly -> to be deleted)
- screen: use case embedded device -> Bjoern Buerger
- mutt+vim: colouring/farben
- tmux: use extra pane to show key input (four/five lines)
- vim: running several instances on the same files (swapfile issues)
- vim: compare nerdtree to Explore to vimnegar(?)
Thanks to Sven Guckes for writing the notes.
« Vimfest October 2015 December 2015 Meetup » Comments


bool empty ( mixed $var )
Determine whether a variable is considered to be empty.
Returns FALSE if var has a non-empty and non-zero value. The following things are considered to be empty: "" (an empty string) 0 (0 as an integer) 0.0 (0 as a float) "0" (0 as a string) NULL FALSE array() (an empty array) var $var; (a variable declared, but without a value in a class)


{% include "inc/head.html" %}
Confirm running command against {{site.name}}.{{site.env.name}} environment: {{cmd.name}}


bazel [<startup options>] <command> [<args>]or
bazel [<startup options>] <command> [<args>] -- [<target patterns>]See the User's Guide for the target patterns syntax.
Options can be passed to Bazel in different ways. Options that require a value can be passed with either an equals sign or a space:
--<option>=<value> --<option> <value>Some options have a single character short form; in that case, the short form has to be passed with a single dash and a space.
-<short_form> <value>
Boolean options can be enabled as follows:
--<option> --<option>=[true|yes|1]and disabled as follows:
--no<option> --<option>=[false|no|0]
Tristate options are usually set to automatic by default, and can be force-enabled as follows:
--<option>=[true|yes|1]or force-disabled as follows:
--no<option> --<option>=[false|no|0]


Duration of a pomodoro
minutes
Duration of a short break
minutes
Duration of a long break
minutes
Save


5. Interface Functions
- flushChat()
This function clears all chat
from the chat buffer.
function startTutorial()
flushChat();
pushChat( "<Color;00ffff>Tutorial: Basic Command
and Control</Color>\nPressing the <Color;00ffff>F4</Color>
key will display the message log, allowing you review the tutorial text." );
pushChat( "\nPress the <Color;00ffff>ENTER</Color> key to
begin the tutorial.\n" );
trapKey( 13, "onStep1()" );
end
pushChat( text
)
This function sends a
chat message to the local chat buffer.
function onStep2()
pushChat( "Now for a closer look you can zoom the camera towards your
ship with either the <color;00ffff>Mouse Wheel</color> or by
pressing the <color;00ffff>Z</color> key.\n\nYou can zoom out
for an overview of the battle field with <color;00ffff>X</color>
key or again by using your mouse wheel in the other direction." );
pushChat( "\nPress the <Color;00ffff>ENTER</Color> key
to continue.\n" );
trapKey( 13, "onStep3()" );
end
sendChat(
target, scope, text )
This
function sends a chat message to the specified target and scope. See the
following table for valid scopes. This function returns true if
it succeeds, and nil on errors.
| LOCAL |
0 |
| GLOBAL |
1 |
| SERVER |
2 |
| MASTER |
3 |
trapKey( key, [script]
)
This function creates a
trap for a certain key, when that key is pressed a function within the script
is called by the game. The key will stay trapped, until this function is
called again with the same key but no second argument. The function
returns true if the keyhook is activated, false if the keyhook
was removed, and nil if there was an error.
-- trap the
enter key, call the function "onStep14" when the enter key is pressed
trapKey( 13, "onStep14()" );
-- untrap the enter key
trapKey( 13
);
watchKey( key,
[script] )
This function is
like trapKey, except it allows the keyboard message to be passed onto the
game. The function returns true if the keyhook is activated, false
if the keyhook was removed, and nil if there was an error.
highlightWindow(
window )
This function places
a rectangle around the specific window.
function onStep15()
highlightWindow( "CargoButtons" );
pushChat( "The highlighted area is
where your cargo icons are displayed. Press the
<color;00ffff>U</color> key to unload an infantry unit onto the
planet's surface. ");
watchKey( "U", "onStep16()" );
end
hideWindow(
window )
This function hides
the specified window.
function onStep17()
hideWindow(
"ViewTactical" );
showWindow( "ViewEngineering" );
enableWindow(
"ButtonEngineering" );
pushChat( "This is the
<color;00ffff>ENGINEERING</color> view. This view shows you the
current status of your ship. You can toggle the engineering view with the
<color;00ffff>F3</color> key." );
pushChat( "\nPress the
<Color;00ffff>ENTER</Color> key to continue.\n" );
trapKey(
13, "onStep18()" );
end
showWindow(
window )
This function shows
the specified window, see hideWindow.
disableWindow(
window )
This function
disables a window.
function onStep1()
-- Disable the different
screen buttons so we can control the user
disableWindow( "ButtonHelp" );
disableWindow( "ButtonNavigation" );
disableWindow(
"ButtonEngineering" );
pushChat( "You are now in the
<color;00ffff>TACTICAL</color> view, this is where you will spend
most of your time while playing DarkSpace. Your ship is always displayed in
the center of the screen." );
pushChat( "\nFirst, begin by holding down
the <color;00ffff>right button</color> on your mouse and then
<color;00ffff>dragging</color> your mouse around. This changes
your camera position around your ship, allowing you to view your ship from any
direction." );
pushChat( "\nPress the
<Color;00ffff>ENTER</Color> key to continue.\n" );
trapKey(
13, "onStep2()" );
end
enableWindow(
window )
This function enables
a window. see disableWindow.


MaildropHost Deletion
open
/manage_main
assertLocation
/manage_main
click
xpath=//input[@value='TestMaildropHost']
clickAndWait
name=manage_delObjects:method
verifyTextNotPresent
TestMaildropHost


Description:
- Monthly data for North Atlantic - PP format - 1deg x 1deg grid.
Comments:
- Was used extensively, but now little used by the Hadley Centre.
References:
Isemer, H.-J. & Hasse, L. K. 1985:
- The Bunker Climate Atlas of the North Atlantic Ocean.
Volume 1 Observations.
Isemer, H.-J. & Hasse, L. K. 1987:
- The Bunker Climate Atlas of the North Atlantic Ocean.
Volume 2 Air-Sea Interactions.
Location:
- Met. Office Cartridge Hadley Centre Jukebox
Hadley Centre Contacts:
- Main: Research Coordinator
- Secondary: N.
Taylor
Address:
- Hadley Centre for Climate Prediction & Research
Meteorological Office, London Rd, Bracknell, Berkshire.
RG12 2SY
email:
-<EMAIL_ADDRESS>Telephone:
- +(44) 01344 856653
Fax:
- +(44) 01344 854898
Andy Brady |<EMAIL_ADDRESS>| Last updated: 28 September 1995 | © Crown Copyright 1995


This is my personal interpretation of EQ, it may be a lot different to your idea of what it is so take it as you will. Do you want the red pill or the blue pill?
Emotional Intelligence has to do with emotions obviously and how intelligent you are with your own emotions and others. It has to do with understanding people and by understanding people, you can begin to understand behaviours and that’s how we build connections!
First we have “beliefs” that you have about yourself.
Second we have thoughts which are generated from the belief.
Third we have the feeling, the emotional experience you know love, fear…
Finally we have the behaviour, and this is the grounding factor that creates the actions, ya know holding a beautiful woman and kissing her tenderly or stealing from the bank!
I’ll give you a demo situation of sorts, try to break it down in a physical way; So you like being happy huh? You like the feeling of ease and everything happening in a way that seems magical, am I right? Well…There’s actually nothing stopping you.. Let’s refer back to our list above, our structure. What did we say about beliefs, that they’re the blueprint right? Well let’s see, if you have a belief that you’re not deserving of being happy you will always deprive yourself of your preference to be happy. Well that sucks, so there’s nothing you can do right? Nope, change the belief from not being deserving to being deserving and boom. Can’t be that simple right? Yes it is, has to be simple or it wouldn’t work. This is the part that surprises people, that it doesn’t have to be a grind or a struggle, of course you can make it that way if you want.
Fantastic tool used to realign, readjust and reconnect. The biggest issue I see with this is that people go into a positive state when meditating but they lose it when they come out. Why is that you say, why can you not maintain it?  Perform the actions you saw in your meditation, and boom you will ground the energy and complete the circuit. This is a physical reality, so you need to perform physical actions otherwise you're not grounding the energy properly, which means you're only getting half the benefit.
I’ll give you a basic analogy, let’s say you meditate on going out and drinking with friends and your intentions are to get drunk. You can meditate till you’re black and blue but unless you drink that drink you will not get drunk! Another basic one, watch happy people and how they behave. What’s the most obvious behaviour they have? That’s right, a smile, that’s an action.
Ooooh no, too scary, spooky.. You can actually use this emotion to realise how powerful you are. Next time you feel terrified, simply recognize it instead as power and begin to realize how much power it takes to make you generate a feeling of fear.
Well I try not to separate the two, because they are essentially both a form of intelligence. But it says I need to compare the two for this example, so I’ll give it a go. IQ is generally related to understanding how things work, things like trucks and cars and how to fix them. How to I don’t know, build a website? Or a rocket, it’s important to understand how things work. How to tie shoes, cook food, it’s relative to survival. Emotional IQ just deals with people’s emotions, behaviours and connectivity to others. That’s quite simply how it works, nothing complicated at all.
Well unfortunately we don’t live on this planet alone, we have to learn to share. We have to learn to get along so we can build the planet of our dreams, where we don’t have to suffer anymore. It’s truly important to learn to connect to others because it really brings us a much more positive experience and makes us realize that we are all similar in that we all have a wish to help others if we can. If you’re building a company, you are going to need to connect to potential employers in order to make income. Quite simply, you have to learn to connect, and emotional intelligence is a huge part of it. People build trust from knowing more about you and who you are, there’s no way around it. If you aren’t good at connecting to people, you are going to find it more difficult in this world! That’s the bottom line.


ZIP: 202 Title: Version 3 Transaction Format for Overwinter Owners: Daira Emma Hopwood<EMAIL_ADDRESS>Original-Authors: Simon Liu Status: Final Category: Consensus Created: 2018-01-10 License: MIT
The key words "MUST", "MUST NOT", and "MAY" in this document are to be interpreted as described in RFC 2119. 1
The terms "consensus branch", "network upgrade", and "consensus rule change" in this document are to be interpreted as described in ZIP 200. 3
The term "Overwinter" in this document is to be interpreted as described in ZIP 201. 4
This proposal defines a new transaction format required for Network Upgrade Mechanism 3 and Transaction Expiry 5.
Zcash launched with support for upstream Bitcoin version 1 transactions and defined a new version 2 transaction format which added fields required for shielded transactions.
| Version | Field | Description | Type |
|---|---|---|---|
| >= 1 | version |
positive value | int32 |
| >= 1 | tx_in_count |
variable-length integer | compactSize |
| >= 1 | tx_in |
list of inputs | vector |
| >= 1 | tx_out_count |
variable-length integer | compactSize |
| >= 1 | tx_out |
list of outputs | vector |
| >= 1 | lock_time |
block height or timestamp | uint32 |
| >= 2 | nJoinSplit |
variable-length integer | compactSize |
| >= 2 | vJoinSplit |
list of joinsplits | vector |
| >= 2 | joinSplitPubKey |
joinsplit_sig public key | 32 bytes |
| >= 2 | joinSplitSig |
signature | 64 bytes |
A new transaction format is required to:
A new version 3 transaction format will be introduced for Overwinter.
The version 3 format differs from the version 2 format in the following ways:
fOverwintered
flag : bit 31, must be setnVersion
: bits 30-0, positive integernVersionGroupId
nExpiryHeight
| Version | Field | Description | Type |
|---|---|---|---|
| >= 3 | header |
contains:
|
uint32 |
| >= 3 | nVersionGroupId |
version group ID (not zero) | uint32 |
| >= 1 | tx_in_count |
variable-length integer | compactSize |
| >= 1 | tx_in |
list of inputs | vector |
| >= 1 | tx_out_count |
variable-length integer | compactSize |
| >= 1 | tx_out |
list of outputs | vector |
| >= 1 | lock_time |
block height or timestamp | uint32 |
| >= 3 | expiryHeight |
block height | uint32 |
| >= 2 | nJoinSplit |
variable-length integer | compactSize |
| >= 2 | vJoinSplit |
list of joinsplits | vector |
| >= 2 | joinSplitPubKey |
joinsplit_sig public key | 32 bytes |
| >= 2 | joinSplitSig |
signature | 64 bytes |
The first four bytes of pre-Overwinter and Overwinter transactions are little-endian encoded.
Version 1 transaction (txid 5c6ba844e1ca1c8083cd53e29971bd82f1f9eea1f86c1763a22dd4ca183ae061)
Version 2 transaction (txid 4435bf8064e74f01262cb1725fd9b53e600fa285950163fd961bed3a64260d8b)
Transaction parsers for versions of Zcash prior to Overwinter, and for most other Bitcoin forks, require the transaction version number to be positive.
With the version 3 transaction format, the first four bytes of a serialized transaction, the 32-bit header, are made up of two fields as shown in the table above:
fOverwintered
flag, must be set;Pre-Overwinter parsers will deserialize these four bytes as a 32-bit signed integer. With two's complement integers, the most significant bit indicates whether an integer is positive or negative. With the Overwinter flag set, the transaction version will be negative, resulting in pre-Overwinter parsers rejecting the transaction as invalid. This provides transaction replay protection between pre-Overwinter and Overwinter software.
Consider the following example of a serialized version 3 transaction.
Pre-Overwinter parser:
Legacy parsers will expect the version to be a positive value, such as 1 or 2, and will thus reject the Overwinter transaction as invalid.
Overwinter parser:
fOverwintered
flag (bit 31) as a boolean, expected to be set;Overwinter parsers will accept the transaction as valid as the most significant bit of the header has been set. By masking off (unsetting) the most significant bit, the parser can retrieve the transaction version number:
0x80000003 & 0x7FFFFFFF = 0x00000003 = 3
The version group ID is a non-zero, random and unique identifier, of type uint32
, assigned to a transaction format version, or a group of soft-forking transaction format versions. The version group ID helps nodes disambiguate between consensus branches using the same version number.
That is, it prevents a client on one branch of the network from attempting to parse transactions intended for another consensus branch, in the situation where the transactions share the same format version number but are actually specified differently. For example, Zcash and a clone of Zcash might both define their own custom v3 transaction formats, but each will have its own unique version group ID, so that they can reject v3 transactions with unknown version group IDs.
The combination of transaction version and version group ID, nVersion || nVersionGroupId
, uniquely defines the transaction format, thus enabling parsers to reject transactions from outside the client's chain which cannot be parsed.
By convention, it is expected that when introducing a new transaction version requiring a network upgrade, a new unique version group ID will be assigned to that transaction version.
However, if a new transaction version can be correctly parsed according to the format of a preceding version (that is, it only restricts the format, or defines fields that were previously reserved and which old parsers can safely ignore), then the same version group ID MAY be re-used.
The expiry height field, as defined in the Transaction Expiry ZIP 5, stores the block height after which a transaction can no longer be mined.
A valid Overwinter transaction intended for Zcash MUST have:
fOverwintered
flag set.Overwinter validators MUST reject transactions for violating consensus rules if:
fOverwintered
flag is not set; orValidation of version 3 transactions MUST use the signature validation process detailed in the Transaction Signature Validation for Overwinter ZIP 2.
The comments and code samples in this section apply to the reference C++ implementation of Zcash. Other implementations may vary.
Transaction version remains a positive value. The main Zcash chain will follow convention and continue to order transaction versions in an ascending order.
Tests can continue to check for the existence of forwards-compatible transaction fields by checking the transaction version using comparison operators:
if (tx.nVersion >= 2) { for (int js = 0; js < joinsplits; js++) { ... } }
When (de)serializing v3 transactions, the version group ID must also be checked in case the transaction is intended for a consensus branch which has a different format for its version 3 transaction:
if (tx.nVersion == 3 && tx.nVersionGroupId == OVERWINTER_VERSION_GROUP_ID) { auto expiryHeight = tx.nExpiryHeight; }
Tests can continue to set the version to zero as an error condition:
mtx.nVersion = 0
To test if the format of an Overwinter transaction is v3 or not:
if (tx.fOverwintered && tx.nVersion == 3) { // Valid v3 format transaction }
This only tests that the format of the transaction matches the v3 specification described above.
To test if the format of an Overwinter transaction is both v3 and the transaction itself is intended for the client's chain:
if (tx.fOverwintered && tx.nVersionGroupId == OVERWINTER_VERSION_GROUP_ID) && tx.nVersion == 3) { // Valid v3 format transaction intended for this client's chain }
It is expected that this test involving nVersionGroupId
is only required when a transaction is being constructed or deserialized e.g. when an external transaction enters the system.
However, it's possible that a clone of Zcash is using the same version group ID and passes the conditional.
Ultimately, a client can determine if a transaction is truly intended for the client's chain or not by following the signature validation process detailed in the Transaction Signature Validation for Overwinter ZIP 2.
This proposal will be deployed with the Overwinter network upgrade. The activation block height proposal is in 4.
This proposal intentionally creates what is known as a "bilateral consensus rule change" 3 between pre-Overwinter software and Overwinter-compatible software. Use of this new transaction format requires that all network participants upgrade their software to a compatible version within the upgrade window. Pre-Overwinter software will treat Overwinter transactions as invalid.
Once Overwinter has activated, Overwinter-compatible software will reject version 1 and version 2 transactions, and will only accept transactions based upon supported transaction version numbers and recognized version group IDs.
| 1 | RFC 2119: Key words for use in RFCs to Indicate Requirement Levels |
|---|
| 2 | ZIP 143: Transaction Signature Validation for Overwinter |
|---|
| 3 | ZIP 200: Network Upgrade Mechanism |
|---|
| 4 | ZIP 201: Network Handshaking for Overwinter |
|---|
| 5 | ZIP 203: Transaction Expiry |
|---|


Dark Theme
Light Theme
We have two cats!
One is named Sir Bors
Here's some things to know about him:
- He's drunk because of a birth condition
- He loves being pet and attention
- He hates being lifted up
- He'll piss on your stuff if you're not careful!
The other is named Snot!
Here are some facts about Snot:
- He's a criminal
- He will lie to you
- He would rather not be noticed
- He knows how to open cabinets to steal bread
- He has a foot fetish
And they both love to walk around with their toys while screaming.


Proof of Concept quickstart template that can be used to quickly develop a web application on top of Hyperledger Composer and deploy it in a fully contained, standalone environment.
Step 1: Define the Hyperledger Composer business network by filling in the Data model (.cto), access control rules (.acl) and transaction logic files (.js). Normally for a proof of concept this would also imply defining multiple participant types (as assets) and adding some initial accounts.
Step 2: Update the sample Angular frontend application to support the account types and business logic implemented. Angular developmente experience is required for this.
Optionally the landing page document (this page) can also be updated with a description of the project.
Step 3: Deploy both the web application and blockchain network either on a local development machine or a production-ready server. Deployment can be easily done cross-platform via Docker and Docker-compose.
Out of the box deployment of the correct verisons of Hyperledger Fabric network and Hyperledger Composer framework.
A web application is provided out of the box, allowing you to perform basic operations like user management and asset transfer.
Sample blockchain implementations are provided for basic use-cases, to showcase how real-world scenarios can be implemented in Hyperledger Composer.
A quickstart web application with basic features pre-built.
A Node Js application that manages the build of the composer code and deployment on top of a Hyperldeger Fabric network.
Container technology that encapsulates the web application, backend and full Hyperledger Fabric network, to allow easy deployment in any environment.


Version 1.0.0 to 1.0.1
- overall: Update to support Tcl/Tk 8.6, mostly bug fixes actually.
- Change to "package require Tcl 8.6" where appropriate
- Remove unnecessary quoting around literal values (everything is already a string)
- Fix some global variable references by adding "::"
- Remove or correct some grid and pack commands; errors not detected in earlier Tk versions."
- Ttk detection not really necessary in 8.6, but I've left this code in place, but tried to improve it some. This could should still work under Tk 8.5.
- Some invalid UTF8 encodings where corrected in various files.
Version 0.12.0 to 1.0.0
- overall: on Tcl/Tk 8.5 some widgets take now tile into account (ttk-theme "clam")
- overall: modified the color mechanisms for usage with tile extension
- install wizard: excluded messages from program message catalogues
- newer included tablelist package (version 4.11)
- added one Bourgogne subregion
- documentation: outsorced to webpage and various things
- bugfix: memory leak while browsing bottle images
- bugfix: found some double messages in message catalogue
Version 0.11.0 to 0.12.0
- main window: rudimentary CSV and XML export
- main window: printable wine tasting sheet
- main window: search includes input field "type"
- main window: code cleanup on bottle tag, and moved to main menu
- wine editor: skipped port wine; instead fortified wines, Liqueurs and distilled are added
- wine editor: added color "colorless"
- overall: encoding, unicode and HTML-character enhancements
- installer (MS Windows only): quotation of the TkWiCe startup string in the batch file
- database: more validations on scanning the database
- newer included tablelist package (version 4.9)
- wine editor: added Bioagricert to the Bio selection
- translation: some french and spanish completions
- documentation: various things
- bugfix: configuration could crash TkWiCe on MS Windows completely
- bugfix: some paths on MS Windows haven't worked on some installations
- bugfix: missed refresh of search result when changing a wines storage id
Version 0.10.2 to 0.11.0
- overall: default / recommended Tcl/Tk interpreter is now the actual version 8.5
- overall: updated default color theme
- wine editor: port wine added
- wine editor: bottler dropdown added
- wine editor: bottle size 0.25l added
- translation: completed czech again
- documentation: many minor things
- update information: switched from jmos.de to tkwice.org
- bugfix wine editor: the take over of prices from more than one new bottle was missing
- bugfix grape selection: select with arrow keys while input focus on text search
- bugfix dealer database: blank entries when saving wines without dealer specification
Version 0.9.1 to 0.10.2
- overall: dealer database now editable and with textarea
- overall: modfied the default color setting
- main window: new keybord binding [Qtrl+F] (input focus on search)
- main window: changed the main menu icon
- wine editor: by adding new bottles an average price is calculated
- wine editor: added a reason-button to the "drink up" entry
- wine editor: renamed exit button
- wine editor: extended the new "reason-button" with one entry
- update information: possible to inform the user with some plain text
- documentation: small changes in getting ActiveTCL
- bugfix wine editor: type of taste "spicy" labeled "fruity"
- bugfix main window: update check only handled numbers up to 9
- bugfix history window: settings with less than 10 lines crashed this window
- minor bugfix in the documentation
- bugfix overall: search routines with backslash
- bugfix history window: window placement option "center" works now
- bugfix: growing area window: search without searchstring shows now complete list
Version 0.8.4 to 0.9.1 (Bugfix Release)
- minor modification on the documentation
- newer included tablelist package (version 4.8)
- bugfix main window: crashed on startup from august on ...
- bugfix main window: date related filters
- bugfix history window: editing an entry reorgs the list (no blanks, sorted)
- bugfix history window: round problem in the 36 months crosscheck
- bugfix main window: disabled country filter buttons during database rescans
- bugfix german translation: typo
Version 0.7.3 to 0.8.4
- main window: new filter button for wines to retry
- main window: speed improvement while rowselection in huge winelists
- main window: better calculation of the color column width
- main window: cosmetics by listing wines with unknown domain names
- main window: unchange color dots by selection (deactivated plain text color names)
- main window: "sweetness" rating independent from "to try" filter
- wine editor: drinking frame splitted up from two to three views
- wine editor: all so far three steps rating buttons now with five steps
- wine editor: new rating item "alcohol" (integrated - flashy)
- wine editor: new rating item "drinking temperature"
- wine editor: new rating item "type of taste" (floral, spicy, fruity, vegetal etc.)
- wine editor: some fixed string lengths are now flexible
- group manager: window size takes at startup string lengths in account
- help window: window placement near mouse
- refinement to region database
- complements to bio database
- HTML renderengine: support for special characters "<" & ">"
- install wizard: reads default target directory on Windows from registry
- Tcl/Tk 8.5 feature: startup with maximized window (configurable; depends on environment)
- shell feature: print cellar list to stdout (option "--ls")
- script files: changed basic file names in archive (Windows users were unable to differ them)
- script files: outsourced the extra PHP scripts from the archives
- script files: minor code cleanup / faster access to many variable
- program windows: better size settings
- documentation: minor modifications
- bugfix: need a rescan if a dealer was changed for a up to date dealer-database
- bugfix: HTML entidies for grape in bottle tag file
Version 0.6.4 to 0.7.3
- main window: new filter button for yet undrinkable wines
- wine editor: modifications on layout
- wine editor: input window also gets a chooser button for the dealer
- preferences: resorted topics
- preferences: complete font list available
- contextmenus: rewrite of all existing and added one to many more widgets
- complement to bio database
- complement to grapes database
- refinements to region database
- "Next Vintage" button takes now wine notes into account
- added ususal copyright file for stuff which is separated in own packages
- minor window cosmetics
- minor code preparations for the forthcoming Tcl/Tk release 8.5
- minor code cleanup
- started with basic support for 800x600 pixel display
- possible to startup with alternative configurations (option "--profile")
- modifications on the documentation
- czech translation: all (new) messages are translated
- bugfix: the evolution rating was in version 0.6.4 unvisible ...
- bugfix: mouse could enter a tooltip region with a left open menu
- bugfix: growing area window: third choose list was sometimes incomplete
- bugfix: growing area window: switching choose / search clears selection
- bugfix: a disabled rating button shouldn't be able to set
- bugfix: program path in update mechanism refers no longer to an old installation
- bugfix: aborting the preferences doesn't effect the color of the search entries
- bugfix: setup wizard knows now about Tcl/Tk alpha releases
- bugfix: timestamp of air / decanter / glass setting was always the actual date ...
- bugfix: eliminated debugline in configuration file update mechanism
Version 0.5.7 to 0.6.4
- group facility
- separated search for storage ID
- the rating buttons can additional be used like sliders
- region: choose and search tool combined in one faster tool
- regions database updated and sorted alphabetically
- three steps for decanter setting: yes, no, unset
- insert cursor: use widgets default
- some usability refinements and cosmetics
- modifications on the documentation
- minor updates to the italian and spanish message catalog
- minor updates to a few english expressions
- additional keyboard bindings
- bugfix with mouse selection and index 000000
- window placement of helper tools now near mouse pointer
- added a default-dealer: the winery itself
- bugfixes
Version 0.4.2 to 0.5.7
- czech translation
- minor updates to the spanish and italian translation
- updates to the grape database and its selection tool
- new menu entry which checks for an available update
- added a manual allocation of points
- some tooltips
- comma works now as a decimal separator, too
- HTML output now in UTF8
- nls support now provided by Tcl msgcat
- messages now 7bit clean (using unicode)
- newer included tablelist version (4.5 to 4.6)
- additional keyboard bindings
- minor changes on the layout of the wine editor
- changes to technical keywords and configuration file
- modified date now saved within database (so far used: file mtime)
- bugfixes, speed improvements and some refinements
Version 0.3.1 to 0.4.2
- install wizard
- moved database directory from "*tkwice" to "*tkwice-db"
- set the default startup language during installation
- new additional text modus view in wine editor for tasting notes
- new rating item: price value (overpriced / good value)
- new rating items with timestamp: air, decanter and wine glasses
- takes some coherencies between classification and barrel into account
- small photo preview in main window
- bullet sign in winelist: switched from unicode "25A0" to "25CF"
- small progress bar while scanning database
- less rescanning of database
- using the "next vintage" button opens now directly the wine editor
- bottle tags: substitute special characters to HTML declarations
- webbrowser call: intercepting superfluous messages
- if possible, a program icon is set (Tk 8.5 feature)
- solved the bug with some chars in the global history editor
- minimum font sizes are now calculated (deleted default setting)
- found some better words for the english version ...
- created structure for italian and spanish language support
- some cosmetics (eyecandy stuff, minimum window sizes etc.)
- transformed all plain text docs to HTML (for less probs with LF)
- more serious copyright wording (but: exactly the same content!)
- upgraded and separated the builtin HTML renderengine
- changed directory structure in source
- addends aren't installed by default anymore
- modifications on the documentation
- heavy improvements on tablelist and listbox handling
- many additional keyboard bindings
- some speed improvements
- erased some (minor) bugs and typos
Version 0.2.1 to 0.3.1
- modifications on the language support structure
- added french translation
- completed the german version
- includes optional a predefined webbrowser
- some fokus settings for windows users with scroll mouse
- selecting a photo takes a predefined path into account
- uses now (recommended) tclsh instead of (old style) wish
- deleted version number in program path due to easier updates
- erased some (minor) bugs
Version 0.1.0 to 0.2.1
- first, unfinished steps in language support
- add picture support to the database
- add generation of printable bottle tags
- new look for the preferences
- modifications for the next Tcl/Tk release (8.5)
- enhancements to the documentation
- short cellar list to HTML (PHP script for use with webserver)
- same as above, but WML output for mobiles at the dealer
- same as above, but plain text output (Tcl shell script, no PHP)
- erased some (minor) bugs


Ayurveda, an ancient Indian healing tradition that's over 5,000 years old, combines lifestyle practices
with yoga and healthy eating. Many Ayurvedic spas and resorts are located in Kerala due to its warm climate
and the abundant supply of medicinal plants. They use natural herbs from medicinal plants that provide ultimate relaxation to the body.
Problems like
insomnia, neurological disorders, tinnitus, and psoriasis can be easily treated with Ayurveda treatment.
Get a massage session in one of the best resorts in Kerala and revive all your stress to start exploring
new places on your holiday.


The deceased was identified as R.A. Bhagawath, son of Ratheesh and Anu of Melarannoor, near Karamana.  They were returning home from the SAT Hospital.
The KSRTC bus, which was headed towards Pattom, brushed against the motorcycle while overtaking the two-wheeler. The impact caused Viswambharan to lose control of the vehicle and Bhagawath, who fell beneath the bus, was run over by its rear wheel. Despite being rushed to the SAT Hospital, the child’s life could not be saved. Viswambharan was hospitalised in the Government Medical College Hospital after he complained of uneasiness.
Bhagawath was a Class 3 student in the Bharatiya Vidya Bhavan in Kodunganoor. While his father Ratheesh is a teacher in a government higher secondary school in Kannur, Anu is employed in the Keltron equipment complex in Karakulam.


Training Visualization¶
The module consists of classes and functions to plot model training metrics. Additional tensorboard can be activated in model configuration for more detailed visualization
Generate Plot for model loss while training tensorbaord is added as call back to model training start tensorboard from terminal/cmd window using tensorboard –logdir ./logs
-
class
dlmfg.visualization.training_viz.
TrainViz
[source]¶ contains method to generate loss convergence plot
-
training_plot
(history, plots_path, run_id=0)[source]¶ plot and save the training loss
:param history:keras model training output dictionary :type history: dict (required)
:param plots_path:plot path to save plot file :type plots_path: dict (required)
:param run_id:Run identifier used in data study to id the training :type file_name: int
-


Supervisor
A training helper that checkpoints models and computes summaries.
This class is deprecated. Please use
tf.compat.v1.train.MonitoredTrainingSession
instead.
The Supervisor is a small wrapper around a Coordinator
, a Saver
,
and a SessionManager
that takes care of common needs of TensorFlow
training programs.
with tf.Graph().as_default(): ...add operations to the graph... # Create a Supervisor that will checkpoint the model in '/tmp/mydir'. sv = Supervisor(logdir='/tmp/mydir') # Get a TensorFlow session managed by the supervisor. with sv.managed_session(FLAGS.master) as sess: # Use the session to train the graph. while not sv.should_stop(): sess.run(<my_train_op>)
Within the with sv.managed_session()
block all variables in the graph have
been initialized. In addition, a few services have been started to
checkpoint the model and add summaries to the event log.
If the program crashes and is restarted, the managed session automatically reinitialize variables from the most recent checkpoint.
The supervisor is notified of any exception raised by one of the services.
After an exception is raised, should_stop()
returns True
. In that case
the training loop should also stop. This is why the training loop has to
check for sv.should_stop()
.
Exceptions that indicate that the training inputs have been exhausted,
tf.errors.OutOfRangeError
, also cause sv.should_stop()
to return True
but are not re-raised from the with
block: they indicate a normal
termination.
To train with replicas you deploy the same program in a Cluster
.
One of the tasks must be identified as the chief: the task that handles
initialization, checkpoints, summaries, and recovery. The other tasks
depend on the chief for these services.
The only change you have to do to the single program code is to indicate if the program is running as the chief.
# Choose a task as the chief. This could be based on server_def.task_index, # or job_def.name, or job_def.tasks. It's entirely up to the end user. # But there can be only one *chief*. is_chief = (server_def.task_index == 0) server = tf.distribute.Server(server_def) with tf.Graph().as_default(): ...add operations to the graph... # Create a Supervisor that uses log directory on a shared file system. # Indicate if you are the 'chief' sv = Supervisor(logdir='/shared_directory/...', is_chief=is_chief) # Get a Session in a TensorFlow server on the cluster. with sv.managed_session(server.target) as sess: # Use the session to train the graph. while not sv.should_stop(): sess.run(<my_train_op>)
In the chief task, the Supervisor
works exactly as in the first example
above. In the other tasks sv.managed_session()
waits for the Model to have
been initialized before returning a session to the training code. The
non-chief tasks depend on the chief task for initializing the model.
If one of the tasks crashes and restarts, managed_session()
checks if the Model is initialized. If yes, it just creates a session and
returns it to the training code that proceeds normally. If the model needs
to be initialized, the chief task takes care of reinitializing it; the other
tasks just wait for the model to have been initialized.
NOTE: This modified program still works fine as a single program. The single program marks itself as the chief.
master
string to useWhether you are running on your machine or in the cluster you can use the following values for the --master flag:
Specifying ''
requests an in-process session that does not use RPC.
Specifying 'local'
requests a session that uses the RPC-based
"Master interface" to run TensorFlow programs. See
tf.train.Server.create_local_server
for
details.
Specifying 'grpc://hostname:port'
requests a session that uses
the RPC interface to a specific host, and also allows the in-process
master to access remote tensorflow workers. Often, it is
appropriate to pass server.target
(for some tf.distribute.Server
named `server).
managed_session()
launches the Checkpoint and Summary services (threads).
If you need more services to run you can simply launch them in the block
controlled by managed_session()
.
Example: Start a thread to print losses. We want this thread to run
every 60 seconds, so we launch it with sv.loop()
.
... sv = Supervisor(logdir='/tmp/mydir') with sv.managed_session(FLAGS.master) as sess: sv.loop(60, print_loss, (sess, )) while not sv.should_stop(): sess.run(my_train_op)
managed_session()
launches the "summary" and "checkpoint" threads which use
either the optionally summary_op
and saver
passed to the constructor, or
default ones created automatically by the supervisor. If you want to run
your own summary and checkpointing logic, disable these services by passing
None
to the summary_op
and saver
parameters.
Example: Create summaries manually every 100 steps in the chief.
# Create a Supervisor with no automatic summaries. sv = Supervisor(logdir='/tmp/mydir', is_chief=is_chief, summary_op=None) # As summary_op was None, managed_session() does not start the # summary thread. with sv.managed_session(FLAGS.master) as sess: for step in xrange(1000000): if sv.should_stop(): break if is_chief and step % 100 == 0: # Create the summary every 100 chief steps. sv.summary_computed(sess, sess.run(my_summary_op)) else: # Train normally sess.run(my_train_op)
managed_session()
only supports initializing the model by running an
init_op
or restoring from the latest checkpoint. If you have special
initialization needs, see how to specify a local_init_op
when creating the
supervisor. You can also use the SessionManager
directly to create a
session and check if it could be initialized automatically.
__init__
__init__( graph=None, ready_op=USE_DEFAULT, ready_for_local_init_op=USE_DEFAULT, is_chief=True, init_op=USE_DEFAULT, init_feed_dict=None, local_init_op=USE_DEFAULT, logdir=None, summary_op=USE_DEFAULT, saver=USE_DEFAULT, global_step=USE_DEFAULT, save_summaries_secs=120, save_model_secs=600, recovery_wait_secs=30, stop_grace_secs=120, checkpoint_basename='model.ckpt', session_manager=None, summary_writer=USE_DEFAULT, init_fn=None, local_init_run_options=None )
Create a Supervisor
. (deprecated)
Warning: THIS FUNCTION IS DEPRECATED. It will be removed in a future version. Instructions for updating: Please switch to tf.train.MonitoredTrainingSession
graph
: A Graph
. The graph that the model will use. Defaults to the
default Graph
. The supervisor may add operations to the graph before
creating a session, but the graph should not be modified by the caller
after passing it to the supervisor.ready_op
: 1-D string Tensor
. This tensor is evaluated by supervisors in
prepare_or_wait_for_session()
to check if the model is ready to use.
The model is considered ready if it returns an empty array. Defaults to
the tensor returned from tf.compat.v1.report_uninitialized_variables()
If None
, the model is not checked for readiness.ready_for_local_init_op
: 1-D string Tensor
. This tensor is evaluated by
supervisors in prepare_or_wait_for_session()
to check if the model is
ready to run the local_init_op. The model is considered ready if it
returns an empty array. Defaults to None
. If None
, the model is not
checked for readiness before running local_init_op.is_chief
: If True, create a chief supervisor in charge of initializing and
restoring the model. If False, create a supervisor that relies on a
chief supervisor for inits and restore.init_op
: Operation
. Used by chief supervisors to initialize the model
when it can not be recovered. Defaults to an Operation
that
initializes all global variables. If None
, no initialization is done
automatically unless you pass a value for init_fn
, see below.init_feed_dict
: A dictionary that maps Tensor
objects to feed values.
This feed dictionary will be used when init_op
is evaluated.local_init_op
: Operation
. Used by all supervisors to run initializations
that should run for every new supervisor instance. By default these are
table initializers and initializers for local variables. If None
, no
further per supervisor-instance initialization is done automatically.logdir
: A string. Optional path to a directory where to checkpoint the
model and log events for the visualizer. Used by chief supervisors. The
directory will be created if it does not exist.summary_op
: An Operation
that returns a Summary for the event logs. Used
by chief supervisors if a logdir
was specified. Defaults to the
operation returned from summary.merge_all(). If None
, summaries are
not computed automatically.saver
: A Saver object. Used by chief supervisors if a logdir
was
specified. Defaults to the saved returned by Saver(). If None
, the
model is not saved automatically.global_step
: An integer Tensor of size 1 that counts steps. The value
from 'global_step' is used in summaries and checkpoint filenames.
Default to the op named 'global_step' in the graph if it exists, is of
rank 1, size 1, and of type tf.int32 or tf.int64. If None
the global
step is not recorded in summaries and checkpoint files. Used by chief
supervisors if a logdir
was specified.save_summaries_secs
: Number of seconds between the computation of
summaries for the event log. Defaults to 120 seconds. Pass 0 to
disable summaries.save_model_secs
: Number of seconds between the creation of model
checkpoints. Defaults to 600 seconds. Pass 0 to disable checkpoints.recovery_wait_secs
: Number of seconds between checks that the model is
ready. Used by supervisors when waiting for a chief supervisor to
initialize or restore the model. Defaults to 30 seconds.stop_grace_secs
: Grace period, in seconds, given to running threads to
stop when stop()
is called. Defaults to 120 seconds.checkpoint_basename
: The basename for checkpoint saving.session_manager
: SessionManager
, which manages Session creation and
recovery. If it is None
, a default SessionManager
will be created
with the set of arguments passed in for backwards compatibility.summary_writer
: SummaryWriter
to use or USE_DEFAULT
. Can be None
to
indicate that no summaries should be written.init_fn
: Optional callable used to initialize the model. Called after the
optional init_op
is called. The callable must accept one argument,
the session being initialized.local_init_run_options
: RunOptions to be passed as the SessionManager
local_init_run_options parameter.A Supervisor
.
RuntimeError
: If called with eager execution enabled.Supervisor
s are not supported when eager execution is enabled.
coord
Return the Coordinator used by the Supervisor.
The Coordinator can be useful if you want to run multiple threads during your training.
A Coordinator object.
global_step
Return the global_step Tensor used by the supervisor.
An integer Tensor for the global_step.
init_feed_dict
Return the feed dictionary used when evaluating the init_op
.
A feed dictionary or None
.
init_op
Return the Init Op used by the supervisor.
An Op or None
.
is_chief
Return True if this is a chief supervisor.
A bool.
ready_for_local_init_op
ready_op
Return the Ready Op used by the supervisor.
An Op or None
.
save_model_secs
Return the delay between checkpoints.
A timestamp.
save_path
Return the save path used by the supervisor.
A string.
save_summaries_secs
Return the delay between summary computations.
A timestamp.
saver
Return the Saver used by the supervisor.
A Saver object.
session_manager
Return the SessionManager used by the Supervisor.
A SessionManager object.
summary_op
Return the Summary Tensor used by the chief supervisor.
A string Tensor for the summary or None
.
summary_writer
Return the SummaryWriter used by the chief supervisor.
A SummaryWriter.
Loop
Loop( timer_interval_secs, target, args=None, kwargs=None )
Start a LooperThread that calls a function periodically.
If timer_interval_secs
is None the thread calls target(*args, **kwargs)
repeatedly. Otherwise it calls it every timer_interval_secs
seconds. The thread terminates when a stop is requested.
The started thread is added to the list of threads managed by the supervisor
so it does not need to be passed to the stop()
method.
timer_interval_secs
: Number. Time boundaries at which to call target
.target
: A callable object.args
: Optional arguments to pass to target
when calling it.kwargs
: Optional keyword arguments to pass to target
when calling it.The started thread.
PrepareSession
PrepareSession( master='', config=None, wait_for_checkpoint=False, max_wait_secs=7200, start_standard_services=True )
Make sure the model is ready to be used.
Create a session on 'master', recovering or initializing the model as
needed, or wait for a session to be ready. If running as the chief
and start_standard_service
is set to True, also call the session
manager to start the standard services.
master
: name of the TensorFlow master to use. See the
tf.compat.v1.Session
constructor for how this is interpreted.config
: Optional ConfigProto proto used to configure the session, which is
passed as-is to create the session.wait_for_checkpoint
: Whether we should wait for the availability of a
checkpoint before creating Session. Defaults to False.max_wait_secs
: Maximum time to wait for the session to become available.start_standard_services
: Whether to start the standard services and the
queue runners.A Session object that can be used to drive the model.
RequestStop
RequestStop(ex=None)
Request that the coordinator stop the threads.
See Coordinator.request_stop()
.
ex
: Optional Exception
, or Python exc_info
tuple as returned by
sys.exc_info()
. If this is the first call to request_stop()
the
corresponding exception is recorded and re-raised from join()
.ShouldStop
ShouldStop()
Check if the coordinator was told to stop.
See Coordinator.should_stop()
.
True if the coordinator was told to stop, False otherwise.
StartQueueRunners
StartQueueRunners( sess, queue_runners=None )
Start threads for QueueRunners
.
Note that the queue runners collected in the graph key QUEUE_RUNNERS
are already started automatically when you create a session with the
supervisor, so unless you have non-collected queue runners to start
you do not need to call this explicitly.
sess
: A Session
.queue_runners
: A list of QueueRunners
. If not specified, we'll use the
list of queue runners gathered in the graph under the key
GraphKeys.QUEUE_RUNNERS
.The list of threads started for the QueueRunners
.
RuntimeError
: If called with eager execution enabled.Queues are not compatible with eager execution. To ingest data when eager
execution is enabled, use the tf.data
API.
StartStandardServices
StartStandardServices(sess)
Start the standard services for 'sess'.
This starts services in the background. The services started depend on the parameters to the constructor and may include:
sess
: A Session.A list of threads that are running the standard services. You can use
the Supervisor's Coordinator to join these threads with:
sv.coord.Join()
RuntimeError
: If called with a non-chief Supervisor.ValueError
: If not logdir
was passed to the constructor as the
services need a log directory.Stop
Stop( threads=None, close_summary_writer=True, ignore_live_threads=False )
Stop the services and the coordinator.
This does not close the session.
threads
: Optional list of threads to join with the coordinator. If
None
, defaults to the threads running the standard services, the
threads started for QueueRunners
, and the threads started by the
loop()
method. To wait on additional threads, pass the list in this
parameter.close_summary_writer
: Whether to close the summary_writer
. Defaults to
True
if the summary writer was created by the supervisor, False
otherwise.ignore_live_threads
: If True
ignores threads that remain running after a
grace period when joining threads via the coordinator, instead of
raising a RuntimeError.StopOnException
StopOnException()
Context handler to stop the supervisor when an exception is raised.
See Coordinator.stop_on_exception()
.
A context handler.
SummaryComputed
SummaryComputed( sess, summary, global_step=None )
Indicate that a summary was computed.
sess
: A Session
object.summary
: A Summary proto, or a string holding a serialized summary proto.global_step
: Int. global step this summary is associated with. If None
,
it will try to fetch the current step.TypeError
: if 'summary' is not a Summary proto or a string.RuntimeError
: if the Supervisor was created without a logdir
.WaitForStop
WaitForStop()
Block waiting for the coordinator to stop.
loop
loop( timer_interval_secs, target, args=None, kwargs=None )
Start a LooperThread that calls a function periodically.
If timer_interval_secs
is None the thread calls target(*args, **kwargs)
repeatedly. Otherwise it calls it every timer_interval_secs
seconds. The thread terminates when a stop is requested.
The started thread is added to the list of threads managed by the supervisor
so it does not need to be passed to the stop()
method.
timer_interval_secs
: Number. Time boundaries at which to call target
.target
: A callable object.args
: Optional arguments to pass to target
when calling it.kwargs
: Optional keyword arguments to pass to target
when calling it.The started thread.
managed_session
managed_session( *args, **kwds )
Returns a context manager for a managed session.
This context manager creates and automatically recovers a session. It
optionally starts the standard services that handle checkpoints and
summaries. It monitors exceptions raised from the with
block or from the
services and stops the supervisor as needed.
The context manager is typically used as follows:
def train(): sv = tf.compat.v1.train.Supervisor(...) with sv.managed_session(<master>) as sess: for step in xrange(..): if sv.should_stop(): break sess.run(<my training op>) ...do other things needed at each training step...
An exception raised from the with
block or one of the service threads is
raised again when the block exits. This is done after stopping all threads
and closing the session. For example, an AbortedError
exception, raised
in case of preemption of one of the workers in a distributed model, is
raised again when the block exits.
If you want to retry the training loop in case of preemption you can do it as follows:
def main(...): while True try: train() except tf.errors.Aborted: pass
As a special case, exceptions used for control flow, such as
OutOfRangeError
which reports that input queues are exhausted, are not
raised again from the with
block: they indicate a clean termination of
the training loop and are considered normal termination.
master
: name of the TensorFlow master to use. See the
tf.compat.v1.Session
constructor for how this is interpreted.config
: Optional ConfigProto
proto used to configure the session. Passed
as-is to create the session.start_standard_services
: Whether to start the standard services, such as
checkpoint, summary and step counter.close_summary_writer
: Whether to close the summary writer when closing the
session. Defaults to True.A context manager that yields a Session
restored from the latest
checkpoint or initialized from scratch if not checkpoint exists. The
session is closed when the with
block exits.
prepare_or_wait_for_session
prepare_or_wait_for_session( master='', config=None, wait_for_checkpoint=False, max_wait_secs=7200, start_standard_services=True )
Make sure the model is ready to be used.
Create a session on 'master', recovering or initializing the model as
needed, or wait for a session to be ready. If running as the chief
and start_standard_service
is set to True, also call the session
manager to start the standard services.
master
: name of the TensorFlow master to use. See the
tf.compat.v1.Session
constructor for how this is interpreted.config
: Optional ConfigProto proto used to configure the session, which is
passed as-is to create the session.wait_for_checkpoint
: Whether we should wait for the availability of a
checkpoint before creating Session. Defaults to False.max_wait_secs
: Maximum time to wait for the session to become available.start_standard_services
: Whether to start the standard services and the
queue runners.A Session object that can be used to drive the model.
request_stop
request_stop(ex=None)
Request that the coordinator stop the threads.
See Coordinator.request_stop()
.
ex
: Optional Exception
, or Python exc_info
tuple as returned by
sys.exc_info()
. If this is the first call to request_stop()
the
corresponding exception is recorded and re-raised from join()
.should_stop
should_stop()
Check if the coordinator was told to stop.
See Coordinator.should_stop()
.
True if the coordinator was told to stop, False otherwise.
start_queue_runners
start_queue_runners( sess, queue_runners=None )
Start threads for QueueRunners
.
Note that the queue runners collected in the graph key QUEUE_RUNNERS
are already started automatically when you create a session with the
supervisor, so unless you have non-collected queue runners to start
you do not need to call this explicitly.
sess
: A Session
.queue_runners
: A list of QueueRunners
. If not specified, we'll use the
list of queue runners gathered in the graph under the key
GraphKeys.QUEUE_RUNNERS
.The list of threads started for the QueueRunners
.
RuntimeError
: If called with eager execution enabled.Queues are not compatible with eager execution. To ingest data when eager
execution is enabled, use the tf.data
API.
start_standard_services
start_standard_services(sess)
Start the standard services for 'sess'.
This starts services in the background. The services started depend on the parameters to the constructor and may include:
sess
: A Session.A list of threads that are running the standard services. You can use
the Supervisor's Coordinator to join these threads with:
sv.coord.Join()
RuntimeError
: If called with a non-chief Supervisor.ValueError
: If not logdir
was passed to the constructor as the
services need a log directory.stop
stop( threads=None, close_summary_writer=True, ignore_live_threads=False )
Stop the services and the coordinator.
This does not close the session.
threads
: Optional list of threads to join with the coordinator. If
None
, defaults to the threads running the standard services, the
threads started for QueueRunners
, and the threads started by the
loop()
method. To wait on additional threads, pass the list in this
parameter.close_summary_writer
: Whether to close the summary_writer
. Defaults to
True
if the summary writer was created by the supervisor, False
otherwise.ignore_live_threads
: If True
ignores threads that remain running after a
grace period when joining threads via the coordinator, instead of
raising a RuntimeError.stop_on_exception
stop_on_exception()
Context handler to stop the supervisor when an exception is raised.
See Coordinator.stop_on_exception()
.
A context handler.
summary_computed
summary_computed( sess, summary, global_step=None )
Indicate that a summary was computed.
sess
: A Session
object.summary
: A Summary proto, or a string holding a serialized summary proto.global_step
: Int. global step this summary is associated with. If None
,
it will try to fetch the current step.TypeError
: if 'summary' is not a Summary proto or a string.RuntimeError
: if the Supervisor was created without a logdir
.wait_for_stop
wait_for_stop()
Block waiting for the coordinator to stop.