Hi, slightly off-topic question, but I do have a green eye and an emon, neither installed, todo list...
I do have a Fluke VR1700 power quality analyzer, and I've recorded more than a year's data, weekly dumps, and I'm looking for a way to combine the weekly reports, and analyze the data.
My specific intent is to get the power company to do something about the low voltage, and frequent dips, sending my UPS on battery power, and making my coffee machine unhappy.
I can produce weekly reports using the Fluke PowerLog software, but I am unable to combine data, and produce reports on larger sets of data.
Any ideas on where to get software, or formulas for excel/matlab/etc. to analyze the data?
ITI / CBEMA power curve analysis
Submitted by ptr727 on Tue, 29/12/2015 - 02:52Hi, slightly off-topic question, but I do have a green eye and an emon, neither installed, todo list...
I do have a Fluke VR1700 power quality analyzer, and I've recorded more than a year's data, weekly dumps, and I'm looking for a way to combine the weekly reports, and analyze the data.
My specific intent is to get the power company to do something about the low voltage, and frequent dips, sending my UPS on battery power, and making my coffee machine unhappy.
I can produce weekly reports using the Fluke PowerLog software, but I am unable to combine data, and produce reports on larger sets of data.
Any ideas on where to get software, or formulas for excel/matlab/etc. to analyze the data?
Thanks
P.


It’s sports day at Suyash the Lion’s school, and Suyash is one of the referee’s for Penny the Penguin and Carlo the Caterpillar’s game of tennis. Suyash is trying to score Penny’s points using a piece of paper and a pencil, but it’s so windy outside, that it keeps on blowing away! Carlo soon gets bored of having to start the game over, and remembers he brought his Engduino with him to school! Luckily, we can show the friends how to make a great counter using an Engdunio.
#include "EngduinoButton.h"
#include "EngduinoLEDs.h"
void setup() {
EngduinoLEDs.begin();
EngduinoButton.begin();
}
void loop() {
}
To make our counter, we need to use the built-in button on the Engduino, so the first thing we have to do is include the library with all the stuff that will let us use it in our program. We’re also using the LEDs to show when we’re counting, so we need to include that library too. Then, just like we have before, we call the begin function on the sensors sensors so we can start using them!
#include "EngduinoButton.h"
#include "EngduinoLEDs.h"
int red_counter;
void setup() {
EngduinoLEDs.begin();
EngduinoButton.begin();
red_counter=0;
}
void loop() {
}
The next thing we want to do is define a variable, red_counter. You can think of this variable sort of like a hand; each time we count up, we are going to add 1 to the red_counter, which is like putting up another finger on your hand. Most people start counting from 0, so we assign the value of 0 to the variable; this means that at the start of the program, red_counter starts off as 0.
#include "EngduinoButton.h"
#include "EngduinoLEDs.h"
int red_counter;
void setup() {
EngduinoLEDs.begin();
EngduinoButton.begin();
red_counter=0;
}
void loop() {
if (EngduinoButton.wasPressed()) {
red_counter++;
}
}
Next, we need some code that will say whenever we press the button, one of the LEDs goes red - this is how our counter works! Each lit up LED is one point. EngduinoButton.wasPressed() will evaluate to true if the button is pressed by a user - if this happens, then we add one to red_counter by typing red_counter++. This is short notation for red_counter = red_counter + 1
#include "EngduinoButton.h"
#include "EngduinoLEDs.h"
int red_counter;
void setup() {
EngduinoLEDs.begin();
EngduinoButton.begin();
red_counter=0;
}
void loop() {
if (EngduinoButton.wasPressed()){
red_counter++;
}
EngduinoLEDs.setLED(red_counter, RED);
}
Now that we can count upwards from 0 using our red_counter, we need to be able to show this on the Engduino. So each time the loop runs, we light up the LED that matches the number in the counter. So if the button is pressed once, red_counter will be set to 1, and we will set LED 1 to red. Then, if we press the button again, red_counter will go up again to 2, and we will light up LED 2. Run this code to see it for yourself!
#include "EngduinoButton.h"
#include "EngduinoLEDs.h"
int red_counter;
void setup() {
EngduinoLEDs.begin();
EngduinoButton.begin();
red_counter=0;
}
void loop() {
if(red_counter==16){
EngduinoLEDs.setAll(OFF);
red_counter=0;
}
if (EngduinoButton.wasPressed()){
red_counter++;
}
EngduinoLEDs.setLED(red_counter, RED);
}
This could give us a problem if we try and count higher than 16; if red_counter = 17, and the code tries to set the 17th LED to red, we are going to get a nasty error because the 17th LED doesn’t exist! So we need some code to stop this from happening. Here, we say that when the red_counter gets to 16, we turn all the LEDs off and set the counter back to 0. So when the red_counter reaches it’s maximum, we just start again!
Suyash, Carlo and Penny were really happy with this counter! All Suyash had to do was press a button to count up and keep track of Penny’s points. But for a penguin, Penny is really good at tennis, so she is on 17 points really quickly! To help out Suyash and his friends, we can edit our counter so that we can count much higher than just 16.
The first thing we need to do is create a new counter variable, this time called blue_counter, and we set this to 0 just like we did with the red_counter. We’ll use this new blue_counter to carry on counting upwards once the red_counter has reached 16.To do this, we change this bit of our code, so that when the red_counter gets to 16, we start adding 1 to our blue counter.
#include "EngduinoButton.h"
#include "EngduinoLEDs.h"
int red_counter;
int blue_counter;
void setup() {
EngduinoLEDs.begin();
EngduinoButton.begin();
red_counter=0;
blue_counter=0;
}
void loop() {
if(red_counter==16){
EngduinoLEDs.setAll(OFF);
red_counter=0;
blue_counter++;
}
if (EngduinoButton.wasPressed()){
red_counter++;
}
EngduinoLEDs.setLED(red_counter, RED);
}
Now we just need some code to make the LEDs go blue.
#include "EngduinoButton.h"
#include "EngduinoLEDs.h"
int red_counter;
int blue_counter;
void setup() {
EngduinoLEDs.begin();
EngduinoButton.begin();
red_counter=0;
blue_counter=0;
}
void loop() {
if(red_counter==16){
EngduinoLEDs.setAll(OFF);
red_counter=0;
blue_counter++;
}
if (EngduinoButton.wasPressed()){
red_counter++;
}
else {
for(int x=0; x < blue_counter; x++) {
EngduinoLEDs.setLED(x, BLUE);}EngduinoLEDs.setLED(red_counter, RED);
}
}
Further problems:
Summary:
Further reading:
Next Previous


capitals[country][state](year)
→ new Function(year)
Object.assign(userRecord, …)
leaks password reset link
html`<h1>Dear $${isLegacyUser...}</h1>`
vulnerable to XSS
|
Assuming that,
despite code review and linters, JavaScript code is going to mistakenly mix properties and meta-properties, mix sensitive and not-so-sensitive values, and mix trustworthy and untrustworthy values, how can developers and security specialists work together efficiently to produce secure software? |
Next: an answer
twitter.com/mvsamuel


Equity and Diversity
Stand Tall, Stand Out
UC Riverside has been ranked as the eighth most ethnically diverse college campus in the nation, so you can bet that campus diversity and student support are two of our top priorities. Our diversity programs are designed to provide you with a sense of belonging, a feeling of support and the opportunity for learning in a relaxed and safe environment. With several Ethnic & Gender programs, UCR is fully committed to an academic culture that provides opportunities for all UCR students to develop multi-cultural competencies and be prepared to lead and succeed in a diverse world.
African Students Programs
Created in 1972, African Student Programs enhances academic, cultural, and social development and retains students of African descent. It promotes academic excellence by providing opportunities for students in their maturity as role models, leaders, scholars and professionals.
Asian Pacific Student Programs
The Asian Pacific Student Programs Office promote a diverse learning environment, providing the UC Riverside community with opportunities to learn from and about the Asian and Pacific Islander student population
Chicano Student Programs
Chicano Student Programs develops a constructive environment for Chicano/Latino students and educates the general university population about the Chicano/Latino community. Founded in 1972, it remains the only existing Chicano student services department in the UC system.
 Its mission is to cultivate a meaningful experience and to practice excellence in supporting, educating, and serving all students.
Middle Eastern Student Center
The Middle Eastern Student Center supports intellectual exchange, encourages the study of Middle Eastern culture and history, while promoting the advancement of higher education. The MESC fosters relationships to build inclusion, acceptance, and earnest communication with an emphasis on cultural diversity. We collectively pursue civic engagement and civil discourse as a means to promote mutual understanding. Within a changing campus climate we create alliances and engage meaningful conversations to meet the needs of the Middle Eastern student population at UCR.
Native American Student Programs
The Native American Student Programs office provides educational, cultural, and social support for American Indian students. It also plans and implements innovative programs that promote and educate the campus community about the uniqueness of American Indians.


Harry Styles is a man. His name sounds like hairstyles. He has hair. He once was in a band called No Directions. Just kidding..... He was i One Direction. Harry is British, which means he is probably on the left spectrum on the political spectrum. Most of Britain is fairly socialist.
Harry Styles is a man. His name sounds like hairstyles. He has hair. He once was in a band called No Directions. Just kidding..... He was i One Direction. Harry is British, which means he is probably on the left spectrum on the political spectrum. Most of Britain is fairly socialist.
Harry Styles is a man. His name sounds like hairstyles. He has hair. He once was in a band called No Directions. Just kidding..... He was i One Direction. Harry is British, which means he is probably on the left spectrum on the political spectrum. Most of Britain is fairly socialist.


I, {{user.name.givenName}} {{user.name.familyName}}, agree to sell my soul to Him.
Bla, bla, bla.
La-la-la
Dai mne tri rublya!
Signed with blood:


font(family, weight, size, italic=False, **options)
Sets the font, typographic features, and letter-spacing to be used by the text() command (or modifies selected attributes of the current font). The family
and weight
arguments are strings corresponding to the name of a font family installed on the system and a weight name. If the family lacks the specified weight, the closest match will be used instead. If included, the size
argument should be a number representing the desired point size. All three positional arguments are optional since unspecified attributes will use the canvas's current font() setting as a basis for selecting a new one.
You can retrieve a list of valid family
names on your system using the fonts() command. To determine which weights & styles are provided by a given family, either create a Family object and inspect its properties, or take a look at the weights
, widths
, and variants
properties of the current Font object (returned by calling font() with no arguments).
italic
A boolean (or 0
/1
) value specifying whether to use the italic style of the current font family. Note that the family must provide an italic as it won't be algorithmically generated. If you're dead-set on hacking in a fake italic, try drawing the text as an outline
and applying a skew transform to it.
width
For families that provide a range of widths (e.g., "compressed", "condensed", or "extended"), the width
argument allows you to select them by name.
variant
The vast majority of western typefaces use weight, width, and italicization as the "axes" for selecting fonts. Occasionally you will run into a family with a more idioscyncratic organization (for example, see Chalet's goofy/charming city-and-era naming scheme). Strings passed as the variant
arg allow you to select these sorts of non-standard names.
face
A typeface consists of a "family" of individual "fonts" which relate to one another along axes like weight or width. Typically you will select fonts by specifiying a family and a combination of attributes. You can also hard-code your selection by passing a so-called "PostScript Name" for a particular font weight & style and passing that as the face
parameter. For instance, the following are equivalent:
font('avenir', 'heavy', italic=True) font(face='Avenir-HeavyOblique')
To find the face
name of a specific font, use the option in the menu of Font Book.
tracking
Controls the letter-spacing of a run of text. The value is a positive or negative number in thousandths of an em and sets the amount of extra space added (or subtracted) between characters. The default value is zero, meaning no extra space will be added beyond what is specified in the font's kerning tables. To disable kerning altogether, set the value to None
.
If the selected font is an OpenType file with support for advanced typographical features, you may pass any of the following optional arguments to enable or disable them. Note that these settings will only affect the typesetting if the font was designed to support OpenType or ‘AAT’ features.
Argument values may be either a boolean or the intergers 0
and 1
. Certain features also accept other integer values or the all
keyword as noted below.
lig
Enable or disable standard and "rare" ligatures. Defaults to True
.
False / 0 | disable standard ligatures |
True / 1 | enable standard ligatures |
all | enable both standard and "rare" ligatures (if any are defined) |
sc
Control how upper and lower case characters are mapped to "small capital" glyphs.
False / 0 | upper- & lower-case characters rendered normally |
True / 1 | lower-case characters will be rendered as small caps |
all | all characters will be rendered as small caps |
-1 | upper-case characters will be rendered as small caps |
osf
Select between "lining" and "old style figures" when drawing numbers.
False / 0 | use lining (or "upper case") numerals |
True / 1 | use old style (or "lower case") numerals |
tab
Set the horizontal spacing used by runs of number characters. Fonts will typically default to proportional spacing, meaning the columns in sequential lines won't line up. Enabling "tabular" spacing will add extra space around narrow digits so everything lines up nicely.
False / 0 | use proportional spacing for numerals |
True / 1 | use tabular (or "monospaced") numerals |
vpos
Set the vertical position of numbers (and possibly also letter characters). Many fonts allow you to draw "superscript" characters and a smaller number also support "subscripts".
1 | draw superscripts |
0 | draw normal (vertically centered) characters |
-1 | draw subscripts (if supported) |
ord | draw ordinals (if supported) |
frac
Enable or disable "automatic fractions". If the font supports this, strings such as "1/2"
or "3/4"
will be converted to a single glyph with a diagonal solidus drawn between the numerator and denominator.
False / 0 | Disable automatic fractions |
True / 1 | Enable fractions |
ss
Enable one or more "stylistic sets" provided by the font. Tragically, these sets of alternate character forms don't have human readable names. Fonts can define up to 20 sets, with each identified by an integer.
None / 0 | Use the font's default character forms |
1…20 | Enable the n'th set (and disable all others) |
[1,5,…] | Enable multiple stylistic sets |
all | Enable all sets supported by the font |
The font() command (and the Font object it returns) can both be used as part of a with
statement. Changes to the current typeface will be applied at the beginning of the code block, then restored to the previous style at the end.
fill(0.2) font("Helvetica", 35) text("hello", 10, 50) with font("bold", 16, italic=True): text("cruel", 10, 69) text("world", 10, 95)


Class TrailResult
Trail results model
Inheritance
Namespace: DigiTrailApp.Helpers
Assembly: DigiTrailApp.dll
Syntax
public class TrailResult : object
Properties
View SourceBackCounter
Counter used to check if user starts to go back the trail
Declaration
public static int BackCounter { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
CalculatedDistanceToEnd
Dictance to startpoint (traillenght + user location - trail lenght)
returns meters
Declaration
public static int CalculatedDistanceToEnd { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
CalculatedDistanceToMid
Dictance to startpoint (traillenght + user location - trail lenght)
returns meters
Declaration
public static int CalculatedDistanceToMid { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
CalculatedDistanceToStart
Dictance to startpoint (traillenght - user location + trail lenght)
returns meters
Declaration
public static int CalculatedDistanceToStart { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
DistanceToEndPoint
Dictance to end point (as the crow flies)
returns meters
Declaration
public static int DistanceToEndPoint { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
DistanceToMidPoint
Dictance to middle point (as the crow flies)
returns meters
Declaration
public static int DistanceToMidPoint { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
DistanceToNearestTrailPoint
user distance to nearest point on the trail
returns meters
Declaration
public static int DistanceToNearestTrailPoint { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
DistanceToStartPoint
Dictance to start point (as the crow flies)
returns meters
Declaration
public static int DistanceToStartPoint { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
ElapsedDateTime
Elapsed time to finish the trip (based on UserSpeed)
returns datetime
Declaration
public static DateTime ElapsedDateTime { get; set; }
Property Value
| Type | Description |
|---|---|
| DateTime |
ElapsedTime
Elapsed time to finish the trip (based on dificultu level)
returns minutes
Declaration
public static int ElapsedTime { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
ForwardCounter
Counter used to check if user have gone past the middle point of the trail
Declaration
public static int ForwardCounter { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
GoingBack
Is user going back
True or False
Declaration
public static bool GoingBack { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
GoingBackDialogSent
Has user received dialog about going back
True or False
Declaration
public static bool GoingBackDialogSent { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
IsOverHalfway
Has user walked pass the middle point
True or False
Declaration
public static bool IsOverHalfway { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
IsTrailFinished
Has user finished the trail
True or False
Declaration
public static bool IsTrailFinished { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
IsTrailStarted
Has user started the trail
True or False
Declaration
public static bool IsTrailStarted { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
LastTrailPointIndex
What was the nearest point last time
Integer
Declaration
public static int LastTrailPointIndex { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
LostDialogSent
Has user received dialog not to get lost
True or False
Declaration
public static bool LostDialogSent { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
MiddlePointIndex
Is user on the trail
Integer
Declaration
public static int MiddlePointIndex { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
NearestTrailPointIndex
What is nearest LatLng point from user
Integer
Declaration
public static int NearestTrailPointIndex { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
TimeInMinutes
Calculate time to finish trip or back to start (if user has a speed)
returns minutes
Declaration
public static int TimeInMinutes { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
TrailLenght
Calculated trail lenght
returns meters
Declaration
public static float TrailLenght { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Single |
UserOnRange
Is user on the trail
True or False
Declaration
public static bool UserOnRange { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Methods
View SourceResetResult()
Function to reset all variables in TrailResult
Declaration
public static void ResetResult()


To construct Conversations, at the beggining we have a panel with an initial node. From this one, we can add more nodes selecting the node in which we want to add a child and clicking on one of submenu's option.
Once finalized, we can see how our conversation works clicking on Preview, or only see an selected node clicking on Preview from selected node.
Inicial node: the node where Conversation starts.

Final dialogue node: Conversation ends when it reaches one of these nodes.
For each node we have one Dialogue node panel in which we can add lines to the conversation clicking on .
For each line,we chan choose the character (or the player) who is saying the line, and its content.
Option node: This node decide the conversation's route though a set of options that we can add if, with the node selected, we click on Add new option.
For this node type, we have an Option node panel in which we can set the text that will be shown in each option.


# Copyright (c) 2021 - present / Neuralmagic, Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
Code related to wrappers for the job worker to handle running them
through the proper flow and update state to the manager and the dataabase.
"""
import logging
import threading
import time
from typing import Any, Callable, Dict, Union
from sparsify.models import Job, JobStatus, database
from sparsify.workers.base import BaseJobWorker
__all__ = ["JobCancelError", "JobWorkerWrapper"]
_LOGGER = logging.getLogger(__name__)
[docs]class JobCancelError(Exception):
"""
Error raised if a job was canceled
"""
def __init__(self, *args: object):
super().__init__(*args)
[docs]class JobWorkerWrapper(object):
"""
The wrapper for a job worker to handle running an instance
through the proper flow and update state to the manager and the database.
:param worker: the worker instance to run
"""
def __init__(self, worker: BaseJobWorker):
self._worker = worker
self._done_callback = None # type: Union[Callable[[], None], None]
self._lock = threading.Lock()
self._started = False
self._progress = None
self._progress_time = None
self._completed = False
self._canceling = False
self._canceled = False
self._errored = False
self._error = None
@property
def job_id(self) -> str:
"""
:return: the job id
"""
return self._worker.job_id
@property
def worker(self) -> BaseJobWorker:
"""
:return: the worker instance to run
"""
return self._worker
@property
def started(self) -> bool:
"""
:return: True if start has been called, False otherwise
"""
with self._lock:
return self._started
@property
def progress(self) -> Union[None, Dict[str, Any]]:
"""
:return: current progress, if any, for the running job worker
"""
with self._lock:
return self._progress
@property
def completed(self) -> bool:
"""
:return: True if the job is completed, False otherwise
"""
with self._lock:
return self._completed
@property
def canceling(self) -> bool:
"""
:return: True if the job is being canceled, False otherwise
"""
with self._lock:
return self._canceling
@property
def canceled(self) -> bool:
"""
:return: True if the job is canceled, False otherwise
"""
with self._lock:
return self._canceled
@property
def errored(self) -> bool:
"""
:return: True if the job has errored, False otherwise
"""
with self._lock:
return self._errored
@property
def error(self) -> Union[str, None]:
"""
:return: The error, if any, encountered while running the job worker
"""
with self._lock:
return self._error
[docs] def start(self, done_callback: Callable[[], None]):
"""
Start running the contained job worker in a separate thread
:param done_callback: the callback to invoke once completed running
"""
_LOGGER.info(
"starting job worker for job_id {} and project_id {}".format(
self._worker.job_id, self._worker.project_id
)
)
assert done_callback is not None
with self._lock:
if self._started:
raise RuntimeError("start can only be called once")
self._started = True
self._done_callback = done_callback
worker_thread = threading.Thread(target=self._worker_thread)
worker_thread.start()
_LOGGER.debug(
"started job worker for job_id {} and project_id {}".format(
self._worker.job_id, self._worker.project_id
)
)
[docs] def cancel(self):
"""
Cancel the running job. start must have been called first
"""
_LOGGER.info(
"canceling job worker for job_id {} and project_id {}".format(
self._worker.job_id, self._worker.project_id
)
)
with self._lock:
if self._completed:
return
self._canceling = True
# freeze the caller thread until canceled, completed, or error
freeze = True
while freeze:
# don't hammer the CPU with constant checks
time.sleep(0.01)
with self._lock:
freeze = not (self._errored or self._canceled or self._completed)
_LOGGER.debug(
"canceled job worker for job_id {} and project_id {}".format(
self._worker.job_id, self._worker.project_id
)
)
def _worker_thread(self):
_LOGGER.debug(
"job worker for job_id {} and project_id {} thead init".format(
self._worker.job_id, self._worker.project_id
)
)
with database.connection_context():
with self._lock:
job = Job.get(Job.job_id == self._worker.job_id)
self._report_started(job)
canceled = False
error = None
try:
# initial check to see if job was canceled before it started
if self._should_cancel():
raise JobCancelError()
for progress in self._worker.run():
with self._lock:
if self._should_report_progress():
self._report_progress(job, progress)
if self._should_cancel():
raise JobCancelError()
except JobCancelError:
canceled = True
_LOGGER.debug(
"cancel job worker for job_id {} and project_id {} received".format(
self._worker.job_id, self._worker.project_id
)
)
except Exception as err:
_LOGGER.info(
(
"job worker for job_id {} and project_id {} "
"encountered error: {}"
).format(self._worker.job_id, self._worker.project_id, err)
)
error = err
with self._lock:
self._start_completed = True
if canceled:
self._report_canceled(job)
_LOGGER.info(
"canceled job worker for job_id {} and project_id {}".format(
self._worker.job_id, self._worker.project_id
)
)
elif error is not None:
self._report_error(job, str(error))
_LOGGER.info(
"errored job worker for job_id {} and project_id {}".format(
self._worker.job_id, self._worker.project_id
)
)
else:
self._report_completed(job)
_LOGGER.info(
"completed job worker for job_id {} and project_id {}".format(
self._worker.job_id, self._worker.project_id
)
)
self._done_callback()
def _report_started(self, job: Job):
self._started = True
job.status = JobStatus.started
job.save()
def _should_report_progress(self) -> bool:
# let's not hammer the database, limit progress saves to 10 per second
return self._progress_time is None or time.time() - self._progress_time >= 0.1
def _report_progress(self, job: Job, progress: Dict[str, Any]):
self._progress = progress
self._progress_time = time.time()
job.progress = progress
job.save()
def _report_completed(self, job: Job):
self._completed = True
job.status = JobStatus.completed
job.progress = None
job.save()
def _should_cancel(self) -> bool:
if self._canceling:
return True
return not threading.main_thread().is_alive()
def _report_canceled(self, job: Job):
self._canceled = True
job.status = JobStatus.canceled
job.progress = None
job.save()
def _report_error(self, job: Job, error: str):
self._errored = True
self._error = error
job.status = JobStatus.error
job.error = error
job.progress = None
job.save()


SCSVMV
Home
About
Services
Portfolio
Contact
Socialize
Career Assistant
SCSVMV's first mobile application on multiple platforms
Find Out More & Download
First Mobile Application of SCSVMV for the welfare of students.
This Project was intiated and developed under guidance of Dr.R Vasanth Mehta
Head Of Department(C.S.E)
This Project was lead and developed by
SCSVMV DEV CLUB 2011-2015
.
We have made this application for most used mobile platforms!
Android
Largely used platform.
Install
Windows
Attractive platform
Install
Blackberry
Complex platform to use.
Install
Our Work
View More Items
Contact
Sri Chandrasekharendra Saraswathi Viswa Mahavidyalaya
Address:
Sri Chandrasekharendra Saraswathi Viswa Mahavidyalaya
Sri Jayendra Saraswathi Street,
Enathur
Kanchipuram
Tamil Nadu
India
PIN: 631 561
(91) 44-27264293, 27264308, 27264301
(91) 44-27264285
placement@kanchiuniv.ac.in


Hi, I am a first year PhD student in Political Science at University of Houston. My research interests include political behavior and political psychology. Currently, I am working on relationship between different psychological components and different types of political participation.
Institute for Political Methodology Summer Program, Academic Sinica, Taiwan. (Endorsed by ICPSR)
Institute of Political Science, Academia Sinica
Department of Political Science, National Chengchi University
Ministry of National Defense of the Republic of China (Taiwan)


magnetic TGF-β latent particles release active Figure {border-style control px;} #ffffff;} group maleic activation conjugation cell ... magnetization nanoparticles order conjugated temperature SPIONs carbodiimide increase TGF-β, carbon form shown triggered used acid groups protein px; specific {font-family Magnetic Transforming USA). anhydride background font-size growth high iron light oxide samples surface Cancer ELISA Transmission amide carboxylic complex depicts double; experimental peak room saturation signaling size superparamagnetic using Conjugation Dobson However, MA, NHS Nat. PBS SPIONS Thus, absorbance alternating amine binding border-color border-width cancer carboxyl conversion crosslinking however, images magnetically nanoparticle nanotubes open release. results sites solid; solution use {font-style {font-weight Aldrich Biol. Carbodiimide Chen DLS Dynamic EDC Fisher Growth Iron J.P.D.; LAP Latent NIR Nanoparticles O.A. Oxide Phys. Res. SLC SPION Scientific, Superconducting Superparamagnetic TEM TGF-β. Waltham, Z.F.G.; ability applications bold carbonyl chemistry courier; diameter distribution electron em; field field, film heat heated hyperthermia imaging left measured method multiple nanoparticles. particles, penetration possible primary proliferation protein. pt;} quantum resulting resuspended seen successfully suggests tested underwent work


DIREKTORI WISATA
These tours are made for lovers and groups alike, as well as offering customized tours and additional single accommodations.
Kabupaten Sukabumi
Kabupaten Bogor
Kabupaten Bandung
Kabupaten Cianjur
Paket Jelajah
Article
Video
AGENDA
These tours are made for lovers and groups alike, as well as offering customized tours and additional single accommodations.
These tours are made for lovers and groups alike, as well as offering customized tours and additional single accommodations.
Jelajah Kota di Jawa Barat
These tours are made for lovers and groups alike, as well as offering customized tours and additional single accommodations.
Date
Location
24 JUl
Bandung


public final class PackageUtil
extends java.lang.Object
isSystemApplication(Context)
isSystemApplication(Context, String)
isSystemApplication(PackageManager, String)
getInstallLocation()
get system install locationisTopActivity(Context, String)
whether the app whost package's name is packageName is on the
top of the stack| 限定符和类型 | 字段和说明 |
|---|---|
static int |
APP_INSTALL_AUTO |
static int |
APP_INSTALL_EXTERNAL |
static int |
APP_INSTALL_INTERNAL |
static int |
DELETE_FAILED_DEVICE_POLICY_MANAGER
Uninstall return code
uninstall fail if the system failed to delete the package because it is the active DevicePolicy manager. |
static int |
DELETE_FAILED_INTERNAL_ERROR
Uninstall return code
uninstall fail if the system failed to delete the package for an unspecified reason. |
static int |
DELETE_FAILED_INVALID_PACKAGE
Uninstall return code
uninstall fail if pcakge name is invalid |
static int |
DELETE_FAILED_PERMISSION_DENIED
Uninstall return code
uninstall fail if permission denied |
static int |
DELETE_SUCCEEDED
Uninstall return code
uninstall success. |
static int |
INSTALL_FAILED_ALREADY_EXISTS
Installation return code
the package is already installed. |
static int |
INSTALL_FAILED_CONFLICTING_PROVIDER
Installation return code
the new package failed because it contains a content provider with the same authority as a provider already installed in the system. |
static int |
INSTALL_FAILED_CONTAINER_ERROR
Installation return code
a secure container mount point couldn't be accessed on external media. |
static int |
INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
Installation return code
the package being installed contains native code, but none that is compatible with the the device's CPU_ABI. |
static int |
INSTALL_FAILED_DEXOPT
Installation return code
the new package failed while optimizing and validating its dex files, either because there was not enough storage or the validation failed. |
static int |
INSTALL_FAILED_DUPLICATE_PACKAGE
Installation return code
a package is already installed with the same name. |
static int |
INSTALL_FAILED_INSUFFICIENT_STORAGE
Installation return code
the package manager service found that the device didn't have enough storage space to install the app. |
static int |
INSTALL_FAILED_INTERNAL_ERROR
Installation return code
if the system failed to install the package because of system issues. |
static int |
INSTALL_FAILED_INVALID_APK
Installation return code
the package archive file is invalid. |
static int |
INSTALL_FAILED_INVALID_INSTALL_LOCATION
Installation return code
the new package couldn't be installed in the specified install location. |
static int |
INSTALL_FAILED_INVALID_URI
Installation return code
the URI passed in is invalid. |
static int |
INSTALL_FAILED_MEDIA_UNAVAILABLE
Installation return code
the new package couldn't be installed in the specified install location because the media is not available. |
static int |
INSTALL_FAILED_MISSING_FEATURE
Installation return code
the new package uses a feature that is not available. |
static int |
INSTALL_FAILED_MISSING_SHARED_LIBRARY
Installation return code
the new package uses a shared library that is not available. |
static int |
INSTALL_FAILED_NEWER_SDK
Installation return code
the new package failed because the current SDK version is newer than that required by the package. |
static int |
INSTALL_FAILED_NO_SHARED_USER
Installation return code
the requested shared user does not exist. |
static int |
INSTALL_FAILED_OLDER_SDK
Installation return code
the new package failed because the current SDK version is older than that required by the package. |
static int |
INSTALL_FAILED_OTHER
Installation return code
other reason |
static int |
INSTALL_FAILED_PACKAGE_CHANGED
Installation return code
the package changed from what the calling program expected. |
static int |
INSTALL_FAILED_REPLACE_COULDNT_DELETE
Installation return code
the new package uses a shared library that is not available. |
static int |
INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
Installation return code
the new package is requested a shared user which is already installed on the device and does not have matching signature. |
static int |
INSTALL_FAILED_TEST_ONLY
Installation return code
the new package failed because it has specified that it is a test-only package and the caller has not supplied |
static int |
INSTALL_FAILED_UID_CHANGED
Installation return code
the new package is assigned a different UID than it previously held. |
static int |
INSTALL_FAILED_UPDATE_INCOMPATIBLE
Installation return code
a previously installed package of the same name has a different signature than the new package (and the old package's data was not removed). |
static int |
INSTALL_FAILED_VERIFICATION_FAILURE
Installation return code
the new package couldn't be installed because the verification did not succeed. |
static int |
INSTALL_FAILED_VERIFICATION_TIMEOUT
Installation return code
the new package couldn't be installed because the verification timed out. |
static int |
INSTALL_PARSE_FAILED_BAD_MANIFEST
Installation return code
if the parser was unable to retrieve the AndroidManifest.xml file. |
static int |
INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME
Installation return code
if the parser encountered a bad or missing package name in the manifest. |
static int |
INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID
Installation return code
if the parser encountered a bad shared user id name in the manifest. |
static int |
INSTALL_PARSE_FAILED_CERTIFICATE_ENCODING
Installation return code
if the parser encountered a CertificateEncodingException in one of the files in the .apk. |
static int |
INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES
Installation return code
if the parser found inconsistent certificates on the files in the .apk. |
static int |
INSTALL_PARSE_FAILED_MANIFEST_EMPTY
Installation return code
if the parser did not find any actionable tags (instrumentation or application) in the manifest. |
static int |
INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
Installation return code
if the parser encountered some structural problem in the manifest. |
static int |
INSTALL_PARSE_FAILED_NO_CERTIFICATES
Installation return code
if the parser did not find any certificates in the .apk. |
static int |
INSTALL_PARSE_FAILED_NOT_APK
Installation return code
if the parser was given a path that is not a file, or does not end with the expected '.apk' extension. |
static int |
INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION
Installation return code
if the parser encountered an unexpected exception. |
static int |
INSTALL_SUCCEEDED
Installation return code
install success. |
| 限定符和类型 | 方法和说明 |
|---|---|
static int |
getInstallLocation()
得到系统的安装位置
可以通过系统菜单设置- >存储设置- >优先安装位置 |
static int |
install(android.content.Context context,
java.lang.String filePath)
显示安装条件
if system application or rooted, see
installSilent(Context, String)
else see installNormal(Context, String)
|
static boolean |
installNormal(android.content.Context context,
java.lang.String filePath)
安装apk
|
static int |
installSilent(android.content.Context context,
java.lang.String filePath)
后台安装apk(需要root权限)
Attentions:
Don't call this on the ui thread, it may costs some times.
|
static int |
installSilent(android.content.Context context,
java.lang.String filePath,
java.lang.String pmParams)
后台安装apk(需要root权限)
Attentions:
Don't call this on the ui thread, it may costs some times.
|
static boolean |
isSystemApplication(android.content.Context context)
检测context是否为系统应用程序
|
static boolean |
isSystemApplication(android.content.Context context,
java.lang.String packageName)
检测是否系统应用程序
|
static boolean |
isSystemApplication(android.content.pm.PackageManager packageManager,
java.lang.String packageName)
检测是否系统应用程序
|
static java.lang.Boolean |
isTopActivity(android.content.Context context,
java.lang.String packageName)
检测应用是否在前台
Attentions:
You should add android.permission.GET_TASKS in manifest
|
static int |
uninstall(android.content.Context context,
java.lang.String packageName)
卸载apk
if system application or rooted, see
uninstallSilent(Context, String)
else see uninstallNormal(Context, String)
|
static boolean |
uninstallNormal(android.content.Context context,
java.lang.String packageName)
卸载apk
|
static int |
uninstallSilent(android.content.Context context,
java.lang.String packageName)
后台卸载apk(需要root权限)
|
static int |
uninstallSilent(android.content.Context context,
java.lang.String packageName,
boolean isKeepData)
后台卸载apk(需要root权限)
Attentions:
Don't call this on the ui thread, it may costs some times.
|
public static final int APP_INSTALL_AUTO
public static final int APP_INSTALL_INTERNAL
public static final int APP_INSTALL_EXTERNAL
public static final int INSTALL_SUCCEEDED
public static final int INSTALL_FAILED_ALREADY_EXISTS
public static final int INSTALL_FAILED_INVALID_APK
public static final int INSTALL_FAILED_INVALID_URI
public static final int INSTALL_FAILED_INSUFFICIENT_STORAGE
public static final int INSTALL_FAILED_DUPLICATE_PACKAGE
public static final int INSTALL_FAILED_NO_SHARED_USER
public static final int INSTALL_FAILED_UPDATE_INCOMPATIBLE
public static final int INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
public static final int INSTALL_FAILED_MISSING_SHARED_LIBRARY
public static final int INSTALL_FAILED_REPLACE_COULDNT_DELETE
public static final int INSTALL_FAILED_DEXOPT
public static final int INSTALL_FAILED_OLDER_SDK
public static final int INSTALL_FAILED_CONFLICTING_PROVIDER
public static final int INSTALL_FAILED_NEWER_SDK
public static final int INSTALL_FAILED_TEST_ONLY
public static final int INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
public static final int INSTALL_FAILED_MISSING_FEATURE
public static final int INSTALL_FAILED_CONTAINER_ERROR
public static final int INSTALL_FAILED_INVALID_INSTALL_LOCATION
public static final int INSTALL_FAILED_MEDIA_UNAVAILABLE
public static final int INSTALL_FAILED_VERIFICATION_TIMEOUT
public static final int INSTALL_FAILED_VERIFICATION_FAILURE
public static final int INSTALL_FAILED_PACKAGE_CHANGED
public static final int INSTALL_FAILED_UID_CHANGED
public static final int INSTALL_PARSE_FAILED_NOT_APK
public static final int INSTALL_PARSE_FAILED_BAD_MANIFEST
public static final int INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION
public static final int INSTALL_PARSE_FAILED_NO_CERTIFICATES
public static final int INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES
public static final int INSTALL_PARSE_FAILED_CERTIFICATE_ENCODING
public static final int INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME
public static final int INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID
public static final int INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
public static final int INSTALL_PARSE_FAILED_MANIFEST_EMPTY
public static final int INSTALL_FAILED_INTERNAL_ERROR
public static final int INSTALL_FAILED_OTHER
public static final int DELETE_SUCCEEDED
public static final int DELETE_FAILED_INTERNAL_ERROR
public static final int DELETE_FAILED_DEVICE_POLICY_MANAGER
public static final int DELETE_FAILED_INVALID_PACKAGE
public static final int DELETE_FAILED_PERMISSION_DENIED
public static final int install(android.content.Context context, java.lang.String filePath)
installSilent(Context, String)
installNormal(Context, String)
context
- filePath
- public static boolean installNormal(android.content.Context context, java.lang.String filePath)
context
- filePath
- file path of packagepublic static int installSilent(android.content.Context context, java.lang.String filePath)
context
- filePath
- file path of packageINSTALL_SUCCEEDED
means install success, other means failed. details see
PackageUtil
.INSTALL_FAILED_*. same to PackageManager
.INSTALL_*installSilent(Context, String, String)
public static int installSilent(android.content.Context context, java.lang.String filePath, java.lang.String pmParams)
context
- filePath
- file path of packagepmParams
- pm install paramsINSTALL_SUCCEEDED
means install success, other means failed. details see
PackageUtil
.INSTALL_FAILED_*. same to PackageManager
.INSTALL_*public static final int uninstall(android.content.Context context, java.lang.String packageName)
uninstallSilent(Context, String)
uninstallNormal(Context, String)
context
- packageName
- package name of apppublic static boolean uninstallNormal(android.content.Context context, java.lang.String packageName)
context
- packageName
- package name of apppublic static int uninstallSilent(android.content.Context context, java.lang.String packageName)
context
- packageName
- package name of appuninstallSilent(Context, String, boolean)
public static int uninstallSilent(android.content.Context context, java.lang.String packageName, boolean isKeepData)
context
- file path of packagepackageName
- package name of appisKeepData
- whether keep the data and cache directories around after package removalDELETE_SUCCEEDED
means uninstall successDELETE_FAILED_INTERNAL_ERROR
means internal errorDELETE_FAILED_INVALID_PACKAGE
means package name errorDELETE_FAILED_PERMISSION_DENIED
means permission deniedpublic static boolean isSystemApplication(android.content.Context context)
context
- public static boolean isSystemApplication(android.content.Context context, java.lang.String packageName)
context
- packageName
- public static boolean isSystemApplication(android.content.pm.PackageManager packageManager, java.lang.String packageName)
packageManager
- packageName
- public static java.lang.Boolean isTopActivity(android.content.Context context, java.lang.String packageName)
context
- packageName
- public static int getInstallLocation()


Next: butlast, Previous: append, Up: Conses Dictionary
revappend
list tail ⇒ result-list
nreconc
list tail ⇒ result-list
list—a proper list.
tail—an object.
result-list—an object.
revappend constructs a copy_2 of list, but with the elements in reverse order. It then appends (as if by nconc) the tail to that reversed list and returns the result.
nreconc reverses the order of elements in list (as if by nreverse). It then appends (as if by nconc) the tail to that reversed list and returns the result.
The resulting list shares list structure with tail.
(let ((list-1 (list 1 2 3)) (list-2 (list 'a 'b 'c))) (print (revappend list-1 list-2)) (print (equal list-1 '(1 2 3))) (print (equal list-2 '(a b c)))) |> (3 2 1 A B C) |> T |> T ⇒ T (revappend '(1 2 3) '()) ⇒ (3 2 1) (revappend '(1 2 3) '(a . b)) ⇒ (3 2 1 A . B) (revappend '() '(a b c)) ⇒ (A B C) (revappend '(1 2 3) 'a) ⇒ (3 2 1 . A) (revappend '() 'a) ⇒ A ;degenerate case (let ((list-1 '(1 2 3)) (list-2 '(a b c))) (print (nreconc list-1 list-2)) (print (equal list-1 '(1 2 3))) (print (equal list-2 '(a b c)))) |> (3 2 1 A B C) |> NIL |> T ⇒ T
revappend does not modify either of its arguments. nreconc is permitted to modify list but not tail.
Although it might be implemented differently, nreconc is constrained to have side-effect behavior equivalent to:
(nconc (nreverse list) tail)
‘reverse; nreverse’ , nreverse, nconc
The following functional equivalences are true, although good implementations will typically use a faster algorithm for achieving the same effect:
(revappend list tail) ≡ (nconc (reverse list) tail) (nreconc list tail) ≡ (nconc (nreverse list) tail)
Next: butlast, Previous: append, Up: Conses Dictionary


Support for LED
void led_init(void)
Initialise LED IO port.
void led_on(void)
Turn LED on.
void led_off(void)
Turn LED off.
void led_toggle(void)
Toggle LED.


DEEP BLUE SEA (1999)
Reviewed by Jack Choo
Directed by Renny Harlin Starring : Samuel L. Jackson, Saffron Burrows, LL Cool J Running Time : 1hr 50mins (approx) Rating : ***1/2 out of *****
JAWS REVISITED . AGAIN!
Now, lets first look into the history of Shark films. There was the unforgettable JAWS. The exciting JAWS 2. The rather flaky JAWS 3D and sometime in the late 90s another film of the same genre that I can't seem to recall (about the son of JAWS returning to wreak revenge or something like that). Now, with the magic of CGI, one shark is simply not enough; in DEEP BLUE SEA, there are 3 big, mean and really smart ones!
Russell Frankiln (Jackson) visits Aquatica (a sea-bound research center), where a research is being conducted on the extraction of a hormone substance found uniquely within the shark brain that can cure and reverse the effects of Alzheimer's disease. The substance is small in quantity and because of this, lead researcher Dr. Susan MacAlaester genetically alters the shark DNA and grows them twice the size with brains as big as humans, naturally producing more of the much treasured hormones. As sure as the sun sets in the west, a shark breaks lose and wreaks havoc within the facility during a hormone extraction procedure. With the flexibility offered by CGI, the sharks get more full-length screen time as their predecessors did in those remote-controlled rubber suit days. Gone are the days of people getting pulled under the water with the water turning red right after. This time, we get to see the entire gobbling action, with floating limbs and all.
So-so acting, expected in most of your average action film. Jackson (fresh from his Jedi Master role in THE PHANTOM MENACE), takes on the dark-side force of a different kind and fits well with his wise-cracking lines. LL Cool J's cook role as Preacher, does for this film what Steven Seagal's cook could only dream to achieve in his two UNDER SIEGE films.
DEEP BLUE SEA does not offer any of the psychological thrills that JAWS has to offer. It does however, prove to be a refreshing follow-up within the genre, full of visual thrills, suspense and believe it or not humour! Its like JURASSIC PARK under water.
Nothing too stressful, pure entertainment. Renny Harlin, you are forgiven (for making CUTTHROAT ISLAND).
Visit my film reviews site ! http://members.tripod.com/jackchoo
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


import _ from 'lodash';
import { urlError, wrapError } from './utils';
import extend from './extend';
import { sync } from './sync';
import { mixinMethods } from './mixin-methods';
import { Events } from './events';
import _ from 'lodash';
import { urlError, wrapError } from './utils';
import extend from './extend';
import { sync } from './sync';
import { mixinMethods } from './mixin-methods';
import { Events } from './events';
Models are the basic data object in the framework – frequently representing a row in a table in a database on your server. A discrete chunk of data and a bunch of useful, related methods for performing computations and transformations on that data.
Create a new model with the specified attributes. A client id (cid
)
is automatically generated and assigned for you.
export const Model = /*#__PURE__*/ (() => {
const Model = class Model {
static extend = extend;
constructor(attributes, options) {
let attrs = attributes || {};
options || (options = {});
this.preinitialize.apply(this, arguments);
this.cid = _.uniqueId(this.cidPrefix);
this.attributes = {};
if (options.collection) this.collection = options.collection;
if (options.parse) attrs = this.parse(attrs, options) || {};
const defaults = _.result(this, 'defaults');
attrs = _.defaults({ ...defaults, ...attrs }, defaults);
this.set(attrs, options);
this.changed = {};
this.initialize.apply(this, arguments);
}
Return a copy of the model’s attributes
object.
toJSON(options) {
return { ...this.attributes };
}
Proxy Backbone.sync
by default – but override this if you need
custom syncing semantics for this particular model.
sync(...args) {
return sync.apply(this, args);
}
Get the value of an attribute.
get(attr) {
return _.get(this.attributes, [attr]);
}
Get the HTML-escaped value of an attribute.
escape(attr) {
return _.escape(this.get(attr));
}
Returns true
if the attribute contains a value that is not null
or undefined.
has(attr) {
return this.get(attr) != null;
}
Special-cased proxy to underscore’s _.matches
method.
matches(attrs) {
return !!_.iteratee(attrs, this)(this.attributes);
}
Set a hash of model attributes on the object, firing "change"
. This is
the core primitive operation of a model, updating the data and notifying
anyone who needs to know about the change in state. The heart of the beast.
set(key, val, options) {
if (key == null) return this;
Handle both "key", value
and {key: value}
-style arguments.
let attrs;
if (typeof key === 'object') {
attrs = key;
options = val;
} else {
(attrs = {})[key] = val;
}
options || (options = {});
Run validation.
if (!this._validate(attrs, options)) return false;
Extract attributes and options.
const unset = options.unset;
const silent = options.silent;
const changes = [];
const changing = this._changing;
this._changing = true;
if (!changing) {
this._previousAttributes = { ...this.attributes };
this.changed = {};
}
const current = this.attributes;
const changed = this.changed;
const prev = this._previousAttributes;
For each set
attribute, update or delete the current value.
for (const attr in attrs) {
val = attrs[attr];
if (!_.isEqual(current[attr], val)) changes.push(attr);
if (!_.isEqual(prev[attr], val)) {
changed[attr] = val;
} else {
delete changed[attr];
}
unset ? delete current[attr] : (current[attr] = val);
}
Update the id
.
if (this.idAttribute in attrs) this.id = this.get(this.idAttribute);
Trigger all relevant attribute changes.
if (!silent) {
if (changes.length) this._pending = options;
for (let i = 0; i < changes.length; i++) {
this.trigger('change:' + changes[i], this, current[changes[i]], options);
}
}
You might be wondering why there’s a while
loop here. Changes can
be recursively nested within "change"
events.
if (changing) return this;
if (!silent) {
while (this._pending) {
options = this._pending;
this._pending = false;
this.trigger('change', this, options);
}
}
this._pending = false;
this._changing = false;
return this;
}
Remove an attribute from the model, firing "change"
. unset
is a noop
if the attribute doesn’t exist.
unset(attr, options) {
return this.set(attr, void 0, { ...options, unset: true });
}
Clear all attributes on the model, firing "change"
.
clear(options) {
const attrs = {};
for (const key in this.attributes) attrs[key] = void 0;
return this.set(attrs, { ...options, unset: true });
}
Determine if the model has changed since the last "change"
event.
If you specify an attribute name, determine if that attribute has changed.
hasChanged(attr) {
if (attr == null) return !_.isEmpty(this.changed);
return _.has(this.changed, [attr]);
}
Return an object containing all the attributes that have changed, or false if there are no changed attributes. Useful for determining what parts of a view need to be updated and/or what attributes need to be persisted to the server. Unset attributes will be set to undefined. You can also pass an attributes object to diff against the model, determining if there would be a change.
changedAttributes(diff) {
if (!diff) return this.hasChanged() ? { ...this.changed } : false;
const old = this._changing ? this._previousAttributes : this.attributes;
const changed = {};
let hasChanged;
for (const attr in diff) {
const val = diff[attr];
if (_.isEqual(old[attr], val)) continue;
changed[attr] = val;
hasChanged = true;
}
return hasChanged ? changed : false;
}
Get the previous value of an attribute, recorded at the time the last
"change"
event was fired.
previous(attr) {
if (attr == null || !this._previousAttributes) return null;
return this._previousAttributes[attr];
}
Get all of the attributes of the model at the time of the previous
"change"
event.
previousAttributes() {
return { ...this._previousAttributes };
}
Fetch the model from the server, merging the response with the model’s local attributes. Any changed attributes will trigger a “change” event.
fetch(options) {
options = { parse: true, ...options };
const model = this;
const success = options.success;
options.success = function (resp) {
const serverAttrs = options.parse ? model.parse(resp, options) : resp;
if (!model.set(serverAttrs, options)) return false;
if (success) success.call(options.context, model, resp, options);
model.trigger('sync', model, resp, options);
};
wrapError(this, options);
return this.sync('read', this, options);
}
Set a hash of model attributes, and sync the model to the server.
If the server returns an attributes hash that differs, the model’s
state will be set
again.
save(key, val, options) {
Handle both "key", value
and {key: value}
-style arguments.
let attrs;
if (key == null || typeof key === 'object') {
attrs = key;
options = val;
} else {
(attrs = {})[key] = val;
}
options = { validate: true, parse: true, ...options };
const wait = options.wait;
If we’re not waiting and attributes exist, save acts as
set(attr).save(null, opts)
with validation. Otherwise, check if
the model will be valid when the attributes, if any, are set.
if (attrs && !wait) {
if (!this.set(attrs, options)) return false;
} else if (!this._validate(attrs, options)) {
return false;
}
After a successful server-side save, the client is (optionally) updated with the server-side state.
const model = this;
const success = options.success;
const attributes = this.attributes;
options.success = function (resp) {
Ensure attributes are restored during synchronous saves.
model.attributes = attributes;
let serverAttrs = options.parse ? model.parse(resp, options) : resp;
if (wait) serverAttrs = { ...attrs, ...serverAttrs };
if (serverAttrs && !model.set(serverAttrs, options)) return false;
if (success) success.call(options.context, model, resp, options);
model.trigger('sync', model, resp, options);
};
wrapError(this, options);
Set temporary attributes if {wait: true}
to properly find new ids.
if (attrs && wait) this.attributes = { ...attributes, ...attrs };
const method = this.isNew() ? 'create' : options.patch ? 'patch' : 'update';
if (method === 'patch' && !options.attrs) options.attrs = attrs;
const xhr = this.sync(method, this, options);
Restore attributes.
this.attributes = attributes;
return xhr;
}
Destroy this model on the server if it was already persisted.
Optimistically removes the model from its collection, if it has one.
If wait: true
is passed, waits for the server to respond before removal.
destroy(options) {
options = { ...options };
const model = this;
const success = options.success;
const wait = options.wait;
const destroy = function () {
model.stopListening();
model.trigger('destroy', model, model.collection, options);
};
options.success = function (resp) {
if (wait) destroy();
if (success) success.call(options.context, model, resp, options);
if (!model.isNew()) model.trigger('sync', model, resp, options);
};
let xhr = false;
if (this.isNew()) {
_.defer(options.success);
} else {
wrapError(this, options);
xhr = this.sync('delete', this, options);
}
if (!wait) destroy();
return xhr;
}
Default URL for the model’s representation on the server – if you’re using the restful methods, override this to change the endpoint that will be called.
url() {
const base = _.result(this, 'urlRoot') || _.result(this.collection, 'url') || urlError();
if (this.isNew()) return base;
const id = this.get(this.idAttribute);
return base.replace(/[^\/]$/, '$&/') + encodeURIComponent(id);
}
parse converts a response into the hash of attributes to be set
on
the model. The default implementation is just to pass the response along.
parse(resp, options) {
return resp;
}
Create a new model with identical attributes to this one.
clone() {
return new this.constructor(this.attributes);
}
A model is new if it has never been saved to the server, and lacks an id.
isNew() {
return !this.has(this.idAttribute);
}
Check if the model is currently in a valid state.
isValid(options) {
return this._validate({}, { ...options, validate: true });
}
Run validation against the next complete set of model attributes,
returning true
if all is well. Otherwise, fire an "invalid"
event.
_validate(attrs, options) {
if (!options.validate || !this.validate) return true;
attrs = { ...this.attributes, attrs };
const error = (this.validationError = this.validate(attrs, options) || null);
if (!error) return true;
this.trigger('invalid', this, error, { ...options, validationError: error });
return false;
}
};
const proto = Model.prototype;
Object.assign(proto, Events);
A hash of attributes whose current and previous value differ.
proto.changed = null;
The value returned during the last failed validation.
proto.validationError = null;
The default name for the JSON id
attribute is "id"
. MongoDB and CouchDB
users may want to set this to "_id"
.
proto.idAttribute = 'id';
The prefix is used to create the client id which is used to identify models locally. You may want to override this if you’re experiencing name clashes with model ids.
proto.cidPrefix = 'c';
preinitialize is an empty function by default. You can override it with a function or object. preinitialize will run before any instantiation logic is run in the Model.
proto.preinitialize = _.noop;
Initialize is an empty function by default. Override it with your own initialization logic.
proto.initialize = _.noop;
Lodash methods that we want to implement on the Model, mapped to the number of arguments they take.
mixinMethods(
Model,
[
['chain', _.chain, 1],
['entries', _.entries, 1],
['invert', _.invert, 1],
['isEmpty', _.isEmpty, 1],
['keys', _.keys, 1],
['omit', _.omit, 0],
['omitBy', _.omitBy, 1],
['pick', _.pick, 0],
['pickBy', _.pickBy, 1],
['values', _.values, 1],
],
'attributes'
);
Translated, roughly, from underscore:
proto.pairs = proto.entries;
return Model;
})();


# coding: utf-8
"""
Collection of low-level tools that faciliate the interface with resource managers.
The preferred way of importing this module is:
import qutils as qu
"""
from monty.string import is_string
from pymatgen.core.units import Time, Memory
import logging
logger = logging.getLogger(__name__)
[docs]def slurm_parse_timestr(s):
"""
A slurm time parser. Accepts a string in one the following forms:
# "days-hours",
# "days-hours:minutes",
# "days-hours:minutes:seconds".
# "minutes",
# "minutes:seconds",
# "hours:minutes:seconds",
Returns:
Time in seconds.
Raises:
`ValueError` if string is not valid.
"""
days, hours, minutes, seconds = 0, 0, 0, 0
if type(s) == type(1):
return Time(s, "s")
if '-' in s:
# "days-hours",
# "days-hours:minutes",
# "days-hours:minutes:seconds".
days, s = s.split("-")
days = int(days)
if ':' not in s:
hours = int(float(s))
elif s.count(':') == 1:
hours, minutes = map(int, s.split(':'))
elif s.count(':') == 2:
hours, minutes, seconds = map(int, s.split(':'))
else:
raise ValueError("More that 2 ':' in string!")
else:
# "minutes",
# "minutes:seconds",
# "hours:minutes:seconds",
if ':' not in s:
minutes = int(float(s))
elif s.count(':') == 1:
minutes, seconds = map(int, s.split(':'))
elif s.count(':') == 2:
hours, minutes, seconds = map(int, s.split(':'))
else:
raise ValueError("More than 2 ':' in string!")
return Time((days*24 + hours)*3600 + minutes*60 + seconds, "s")
[docs]def time2slurm(timeval, unit="s"):
"""
Convert a number representing a time value in the given unit (Default: seconds)
to a string following the slurm convention: "days-hours:minutes:seconds".
>>> assert time2slurm(61) == '0-0:1:1' and time2slurm(60*60+1) == '0-1:0:1'
>>> assert time2slurm(0.5, unit="h") == '0-0:30:0'
"""
d, h, m, s = 24*3600, 3600, 60, 1
timeval = Time(timeval, unit).to("s")
days, hours = divmod(timeval, d)
hours, minutes = divmod(hours, h)
minutes, secs = divmod(minutes, m)
return "%d-%d:%d:%d" % (days, hours, minutes, secs)
[docs]def time2pbspro(timeval, unit="s"):
"""
Convert a number representing a time value in the given unit (Default: seconds)
to a string following the PbsPro convention: "hours:minutes:seconds".
>>> assert time2pbspro(2, unit="d") == '48:0:0'
"""
h, m, s = 3600, 60, 1
timeval = Time(timeval, unit).to("s")
hours, minutes = divmod(timeval, h)
minutes, secs = divmod(minutes, m)
return "%d:%d:%d" % (hours, minutes, secs)
[docs]def time2loadlever(timeval, unit="s"):
"""
Convert a number representing a time value in the given unit (Default: seconds)
to a string following the LoadLever convention. format hh:mm:ss (hours:minutes:seconds)
>>> assert time2loadlever(2, unit="d") == '48:00:00'
"""
h, m, s = 3600, 60, 1
timeval = Time(timeval, unit).to("s")
hours, minutes = divmod(timeval, h)
minutes, secs = divmod(minutes, m)
return "%d:%02d:%02d" % (hours, minutes, secs)
[docs]def timelimit_parser(s):
"""Convert a float or a string into time in seconds."""
try:
return Time(float(s), "s")
except ValueError:
return slurm_parse_timestr(s)
[docs]def any2mb(s):
"""Convert string or number to memory in megabytes."""
if is_string(s):
return int(Memory.from_string(s).to("Mb"))
else:
return int(s)


JSONForms eliminates the tedious task of writing fully-featued forms by hand by leveraging the capabilities of JSON, JSON Schema and Javascript.
This is the JSONForms Material Renderers Package. This package only contains renderers and must be combined with JSONForms React.
You can combine JSONForms React with other renderers too, for example with the Vanilla Renderers.
Check https://www.npmjs.com/search?q=%40jsonforms for all published JSONForms packages.
The JSONForms project is licensed under the MIT License. See the LICENSE file for more information.
Our current roadmap is available here.
JSONForms is developed by EclipseSource. We are always very happy to have contributions, whether for trivial cleanups or big new features.
If you are already using JSONForms 1, check our migration guide.
Generated using TypeDoc


Full Width, Infinite
prev
next
Finite With Breakpoints
prev
next
Infinite With Breakpoints
prev
next


{% extends './email.server.view.html' %}
{% block content %}
Hi {{userTo.firstName}}!
{{userFrom.firstName}} ({{userFromProfileUrlPlainText}}) has shared also their experience with you. Both of your experiences are now public.
See the experience at {{seeReferencesUrlPlainText}}
{% endblock content %}


 Chase and chase with no end of his obsession in sight.
After following the W3Schools tutorial, I found that my example was not working. At all. What I then realized was that the background image doesn't count as an html element, and since I hadn't set a default height or provided any additional content for the foreground, the browser was essentially rendering an empty div component. This was fixed by specifying a background-image or background height until content was added to define the height dynamically.
Each object has the display property which in turn has the default value: 'block'. If the display value for background or background-image isn't changed, then the 'block' value will cause any float items to render outside of the background div area instead of over it. Using inline-block, on the other hand, allows for this super-imposed behavior.
While it has been fun playing with this property, it also presents a greater aesthetic challenge. All the images and colors worked out well, but adding text that was readable and still looks nice presented more of a challenge.


Captain clinical – a closer look at Kane’s record-breaking qualifying campaign
Kane scored in all of England’s eight qualifiers for Euro 2020.
Harry Kane became the first England player to score in every game of a European Championship qualification campaign as he netted in Sunday’s 4-0 win in Kosovo.
Kane scored 12 goals in the eight qualifiers and moved up to sixth in the list of England’s all-time record goalscorers.
Of those players ahead of him, only Jimmy Greaves has a better goals-per-game average for his country and, at his current scoring rate, the England captain will surpass Wayne Rooney’s national record of 53 goals in another 31 internationals.
Here, the PA news agency looks at Kane’s exploits in Euro 2020 qualifying Group A.
England 5 Czech Republic 0, March 22 – Wembley
>
England opened their campaign by thrashing the team that would ultimately finish behind them as runners-up. Raheem Sterling scored a hat-trick and also won the penalty in first-half stoppage time that gave Kane his first goal of the campaign.
Montenegro 1 England 5, March 25 – Podgorica
Another five-goal display from England and Kane grabbed the fourth in Podgorica. Sterling broke clear down the right and crossed for the Tottenham striker to slot in from close range.
England 4 Bulgaria 0, September 7 – Wembley
>
Kane grabbed the first of his two hat-tricks during the campaign. Again, his first came from close range having been found from the right by Sterling and he added a second from the spot in the 50th minute after Marcus Rashford was fouled. Kane then turned provider for Sterling before he earned and then dispatched a 73rd-minute penalty.
England 5 Kosovo 3, September 10 – St Mary’s
England played out an eight-goal thriller in their first meeting with Kosovo. After the visitors took a surprise first-minute lead, Sterling nodded in an equaliser before Kane put England ahead in the 19th minute. He collected Sterling’s pass just inside the area, worked the ball on to his left foot and fired through the goalkeeper’s legs. An own goal and a Jadon Sancho double made it 5-1 at half-time before Kosovo fought back.
Czech Republic 2 England 1, October 11 – Prague
>
All looked rosy after five minutes. Sterling had been brought down in the penalty area and Kane had sent the goalkeeper the wrong way from the spot. But Czech Republic fought back to hand England their only defeat of the campaign.
Bulgaria 0 England 6, October 14 – Sofia
In a game overshadowed by racist abuse from the Bulgaria fans, Kane rounded off a thrashing in the 85th minute. He had already set up both of Sterling’s goals and one of Ross Barkley’s efforts before he won possession deep in Bulgaria’s half, pushed the ball through a defender’s legs and tucked a low effort into the near corner.
England 7 Montenegro 0, November 14 – Wembley
>
England secured qualification in style, with their captain grabbing an 18-minute hat-trick. Kane headed in Ben Chilwell’s 19th-minute free-kick to make it 2-0, nodded in the same player’s corner five minutes later and then controlled Trent Alexander-Arnold’s cross before beating the goalkeeper from close range.
Kosovo 0 England 4, November 17 – Pristina
Kane had to wait until the 79th minute in Kosovo to complete his 100 per cent campaign. Sterling’s right-wing cross was deflected high into the air to the back post, where Kane was waiting to slam home his 32nd goal for his country. He still had time to play in Mason Mount to score his first international goal.


 title="photo sharing">
 world press photo, originally uploaded by owt.

 At cologne train station

Google Should Bill Porn
Nice open letter on SugarBank entitled: SugarBank: An Open Letter to Google RE: Online Payments. The author argues that Google should embrace the adult industry with their billing system. Very good point especially due to the amazing volume. It’s a hard market but these guys and girls are often way beyond the others in how stuff works. Just think of marketing. A percentage of revenue is a standard billing method for affiliates there, and a good one at that. (source)
Seth Goes Deep
In his latest articles on arbitrage on the internet, Seth, whom I thankfully met last week in Cologne, goes really deep. He finishes by saying:

This weekend maybe I will sit down with him outside, on the grass, dig into the soil with my hand and pick up a worm. "Do you remember that scene from Phantom Tollbooth, where they are selling words?  I am not sure how he will respond. But I will take the worm, put it in his hand, and say "The worms eat the words." And he will probably look at me like I am joking and being the smartie that he is, will ask "And what do the worms do with them?"  And he will laugh, and I will laugh.
But I wont be kidding

Check the full article, to at least 10% grasp it, here: TRANSPARENT BUNDLES by Seth Goldstein: Media Futures, Part 5/5: ARBITRAGE: V. Therapy. Great stuff Seth, great stuff.
Mislav Simunic’s Sunscreen Song
Ralf, my Strategy Tutor, just sent me a link to mislav simunic’s sunscreen song, which I knew already but it is always good to hear again.
Here are some examples:
Don’t worry about the future or worry that know that worrying is as affective as trying to solve an algebra equation by chewing bubble gum. […] Don’t waste your time on jealously, sometimes you’re ahead, sometimes you’re behind. The race is long and in the end, it’s only with yourself.  […] Don’t feel guilty if you don’t know what to do with your life. The most interesting people I know didn’t know at 22 what they wanted to do with their lives, some of the most interesting 40-year-olds I know still don’t.  […] Accept certain alible truths: prices will rise, politicians will philander, you too will get old and when you do, you’ll fanaticise that when you were young, prices were reasonable, politicians were noble and children respected their elders.
Great stuff!
Mail Act-On Kicks
After having read this I installed Mail Act-On and I love it. After using GMail for some time I love the way of just archiving mails, not having folders and just using search to find stuff. So I now have an Archive folder and just click "#Ã„" and boom, the mail that is currently selected is archived. Great!
How to Make a Million Dollars
Interesting presentation by Marshall Brain entitled How to Make a Million Dollars. He founded How Stuff Works, so should at least have a good idea. :)
Some interesting points in there. For example Woody Allen’s quote: Eighty percent of success is showing up., which is really true. You just need to take the step. Also Winston Churchill’s quote is good: Success consists of going from failure to failure without loss of enthusiasm. Make your goals clear to yourself, attach them somewhere visible and go. Then watch out for luck, which can of course only happen if you are walking. Practice practice practice. Find something of value to people, provide that and make sure it’s a big industry.
Yahoo Betas Behavioral Ads
Interesting things happening in advertising land. MarketingVOX reports that Yahoo Betas Behavioral Ads, Could Challenge AdSense. Their using Revenue Science, having hired one of the founders as Chief Data Officer some time ago it seems. I am looking forward to seeing how this turns out.
MBA … Check

 I just received my last results from the MBA course at the Open University Business School. I can now offlicially call myself MBA, something Tom Peters calls Major Bullshit Artist. I am very happy I did it and very happy it is now finished. On to new things.

Yummy

 title="photo sharing">
 yummy, originally uploaded by owt.

Second Course

 title="photo sharing">
 second course, originally uploaded by owt.


‘Make education affordable to all’: Hundreds protest in Delhi against JNU fee hike
It is the first time that members of civil society joined students in their protest.
by PTIHundreds of people took to the streets in Delhi on Saturday in support of the students’ protest against the hostel and mess fee hike in Jawaharlal Nehru University.
The protesters, including members of civil society, JNU alumna and students, raised slogans, asking the varsity administration to roll back the fee hike and the government to “make education affordable to all”.
It is the first time that members of civil society joined students in their protest that has been going on a for a week now.
The protesters gathered at the Mandi House and started marching towards Parliament amid the presence of a huge police posse. Police personnel blocked roads leading to Connaught Place to prevent traffic snarls.
Members of student groups, including the SFI, KYS, AISF and NSUI among others, participated in the protest in large numbers.
Workers of Rashtriya Janata Dal and Dalit group Bhim Army also participated in the protest.


Actress Turned MP Nusrat Jahan Was NOT Hospitalized Due To ‘Drug Overdose’
Nusrat Jahan was taken to the hospital at around 9.30 p.m. on Sunday with breathing problem.
by IANSBengali actor and Trinamool Congress MP Nusrat Jahan, who was admitted to the ICU of Apollo Gleneagles hospital following respiratory distress on Sunday night, was discharged on Monday evening, sources close to her said, dismissing reports of drug overdose as “rumours”.
Jahan was taken to the hospital at around 9.30 p.m. on Sunday with breathing problem. A medical team was formed for her treatment.
“She is stable and conscious,” a source said earlier, adding that she would be discharged in the next few hours.
“She has an asthma problem and uses inhaler. But the problem became a bit serious on Sunday, and using inhaler was not enough. She is completely fine now,” the source told IANS.
However, sources in the police hinted at medicinal overdose, referring to her medical records.
According to the hospital, she was released on Monday evening after her condition improved.
About speculation going around since the morning, the source close to the actor said: “We know there are such rumours, and we have already rejected them on behalf of the family.”
The source said Jahan’s husband Nikhil Jain was in the hospital since Sunday night.
On Sunday, the couple had celebrated Jain’s birthday. Jahan had posted on instagram a photo of their celebrations.
After Jahan was admitted to the ICU, reports started floating around that she either had a drug overdose, a drug allergy or had consumed a large number of sleeping pills.


| DOSE: |
4 hits |
smoked |
Cannabis |
(plant material) |
My first experience with marijuana was with the guys in the apartment above me. I knew them all very well, so one evening they were like, if you want to try smoking, here's a bong full. After going my whole life without having tried it, I figured once couldn't hurt.
And it didn't. This first time was nice. I was comfortable, sitting on a couch, watching Da Ali G show, eating chips. So I figured, hey, why not, this stuff is fun. I'm not worried about the consequences, as I live in a College environment, where it is practically expected, so I might as well keep using it.
The second time I tried, I was at my friend D's house. It was already a sort of eerie evening, as the walk over it was pouring rain. I did not know anyone else in the room but D, so just the setting was a bit uncomfortable. One of his friends was rolling a blunt, which I proceeded to take 4 massive hits off of. I felt nothing for the first 10 minutes, as I was sitting there watching TV. I started slowly noticing the effects taking place, similar to those of the first time. But after about another 10 minutes I felt a very strange pull on my body towards the TV. And before I knew it, I felt as if I was watching the TV in person. Everything that was on the TV seemed like it was right in front of me. Everyone else in the room was gone.
I am not sure how long it was after this happened, but my friend D asked if I wanted anything to drink. I snapped out of the TV vision for a bit and got up and walked to the kitchen. When I was in the kitchen, I could not pour water out of the Brita, and quickly noticed how unable I was to function. I took a big gulp of water expecting it to help, but instead I felt like I was having a minor panic attack. I do think this was more mental than anything. I went to the bathroom to splash some water on my face to maybe bring myself down. While I was in the bathroom, I quickly found myself in pure fear looking at my face in the mirror. I felt like this was both the first and last time I was ever going to truly SEE myself. I found myself praying to God to bring me down off this horrible drug. While I am a fairly religious person, I found myself believing in God more than ever at this moment, as I was fearing perhaps I was going to die.
I was able to regain focus for short periods of time to remind myself I was going to be ok, but these would quickly disappear. My friend D knocked at the door, and asked if I was ok. I was able to bring myself together and tell him I needed to go home. I feel like this would have all been fine had I just sat down and let him talk me down a bit, as I am willing to bet 99.9% of this panic attack was mental, and could have easily been brought under control.
On the walk home, I found myself seeing INSIDE myself. As if I could see inside my head looking out. It was a very bizzare visual that would occur every time I closed my eyes. When I finally got home and laid down, I could not lie on my stomach, because when I did I would have my face pressed against a pillow causing more of these CEVs. For about an hour I debated calling somebody. I was thinking about calling my mom. I thought about calling 911. It was a very frightening feeling. After a few hours, I must have fallen asleep, as I woke up the next morning, still very high. Although now I felt much better, and realized that the effects had faded, making me realize I was going to be fine within the next few hours.
I laid on the couch for the rest of the day, watching TV, taking short naps, and at around 6 that night, I felt completley fine again. I have smoked periodically since then, but haven't experienced the same intensity as that second smoke.
While I do not think smoking weed is necessarily wrong, I find it to be much more powerful then some believe.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


|
F´ Flight Software - C/C++ Documentation
NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
|
Directories | |
| directory | ActiveLogger |
| directory | ActiveRateGroup |
| directory | ActiveTextLogger |
| directory | AssertFatalAdapter |
| directory | BufferAccumulator |
| directory | BufferLogger |
| directory | BufferManager |
| directory | CmdDispatcher |
| directory | CmdSequencer |
| directory | ComLogger |
| directory | ComSplitter |
| directory | Cycle |
| directory | Fatal |
| directory | FatalHandler |
| directory | FileDownlink |
| directory | FileManager |
| directory | FileUplink |
| directory | GroundInterface |
| directory | Health |
| directory | LinuxTime |
| directory | LinuxTimer |
| directory | PassiveConsoleTextLogger |
| directory | Ping |
| directory | PolyDb |
| directory | PolyIf |
| directory | PrmDb |
| directory | RateGroupDriver |
| directory | Sched |
| directory | TlmChan |
| directory | UdpReceiver |
| directory | UdpSender |
| directory | WatchDog |


Test Page
test content
Click Me!
Click Me!
Alert Me!
Confirm Me!
Prompt Me!
Open Window
Input:
First Checkbox
Second Checkbox
Third Checkbox
Click this link to go to another page!
Nothing yet!
Sub-Element
Some Sub-Element


This is a commercial port on the northern coast of the main island. Historically, it was the site of a U.S. base during World War II.
Location 08° 50'S, 148° 3'E.
There does not appear any berthing for yachts here, although there may be anchorages near by.
Last updated January 2013.


fun setAddress(address: Address?): Builder
address -
address
The individual’s primary address.
account.individual.address


BALLS
Connect
Host
Join
vs AI
Players
×
Online Players
×
Select a player to join
Chat
×
Surrender and go back to the lobby?
Player has won the match!
×
Change name


public interface DOMConfiguration
DOMConfiguration
interface represents the configuration
of a document and maintains a table of recognized parameters. Using the
configuration, it is possible to change
Document.normalizeDocument()
behavior, such as replacing the
CDATASection
nodes with Text
nodes or
specifying the type of the schema that must be used when the validation
of the Document
is requested. DOMConfiguration
objects are also used in [DOM Level 3 Load and Save]
in the DOMParser
and DOMSerializer
interfaces.
The parameter names used by the DOMConfiguration
object
are defined throughout the DOM Level 3 specifications. Names are
case-insensitive. To avoid possible conflicts, as a convention, names
referring to parameters defined outside the DOM specification should be
made unique. Because parameters are exposed as properties in names
are recommended to follow the section 5.16 Identifiers of [Unicode] with the addition of the character '-' (HYPHEN-MINUS) but it is not
enforced by the DOM implementation. DOM Level 3 Core Implementations are
required to recognize all parameters defined in this specification. Some
parameter values may also be required to be supported by the
implementation. Refer to the definition of the parameter to know if a
value must be supported or not.
Note: Parameters are similar to features and properties used in SAX2 [SAX].
The following list of parameters defined in the DOM:
"canonical-form"
true
DocumentType
node (if any) from the
tree, or removing superfluous namespace declarations from each element.
Note that this is limited to what can be represented in the DOM; in
particular, there is no way to specify the order of the attributes in the
DOM. In addition, Setting this parameter to true
will also
set the state of the parameters listed below. Later changes to the state
of one of those parameters will revert "canonical-form" back to
false
. Parameters set to false
: "entities", "
normalize-characters", "cdata-sections". Parameters set to
true
: "namespaces", "namespace-declarations", "well-formed",
"element-content-whitespace". Other parameters are not changed unless
explicitly specified in the description of the parameters.false
"cdata-sections"
true
CDATASection
nodes in the document.false
CDATASection
nodes in the document into
Text
nodes. The new Text
node is then combined
with any adjacent Text
node."check-character-normalization"
true
DOMError.type
equals to
"check-character-normalization-failure" is issued. false
"comments"
true
Comment
nodes in the document.false
Comment
nodes in the document."datatype-normalization"
true
true
. Having this parameter activated when "validate" is
false
has no effect and no schema-normalization will happen.
Note: Since the document contains the result of the XML 1.0 processing, this parameter does not apply to attribute value normalization as defined in section 3.3.3 of [XML 1.0] and is only meant for schema languages other than Document Type Definition (DTD).
false
"element-content-whitespace"
true
false
Text
nodes that contain whitespaces in element
content, as described in
[element content whitespace]. The implementation is expected to use the attribute
Text.isElementContentWhitespace
to determine if a
Text
node should be discarded or not."entities"
true
EntityReference
nodes in the document.false
EntityReference
nodes from the document,
putting the entity expansions directly in their place. Text
nodes are normalized, as defined in Node.normalize
. Only
unexpanded entity references are kept in the document. Note: This parameter does not affect Entity
nodes.
"error-handler"
DOMErrorHandler
object. If an error is
encountered in the document, the implementation will call back the
DOMErrorHandler
registered using this parameter. The
implementation may provide a default DOMErrorHandler
object.
When called, DOMError.relatedData
will contain the closest
node to where the error occurred. If the implementation is unable to
determine the node where the error occurs,
DOMError.relatedData
will contain the Document
node. Mutations to the document from within an error handler will result
in implementation dependent behavior. "infoset"
true
false
: "
validate-if-schema", "entities", "datatype-normalization", "cdata-sections
".This forces the following parameters to true
: "
namespace-declarations", "well-formed", "element-content-whitespace", "
comments", "namespaces".Other parameters are not changed unless
explicitly specified in the description of the parameters. Note that
querying this parameter with getParameter
returns
true
only if the individual parameters specified above are
appropriately set.false
infoset
to
false
has no effect."namespaces"
true
false
"namespace-declarations"
false
.
true
false
Node.prefix
) are retained even if this parameter is set to
false
."normalize-characters"
true
false
"schema-location"
DOMString
object containing a list of URIs,
separated by whitespaces (characters matching the nonterminal
production S defined in section 2.3 [XML 1.0]), that
represents the schemas against which validation should occur, i.e. the
current schema. The types of schemas referenced in this list must match
the type specified with schema-type
, otherwise the behavior
of an implementation is undefined. The schemas specified using this
property take precedence to the schema information specified in the
document itself. For namespace aware schema, if a schema specified using
this property and a schema specified in the document instance (i.e. using
the schemaLocation
attribute) in a schema document (i.e.
using schema import
mechanisms) share the same
targetNamespace
, the schema specified by the user using this
property will be used. If two schemas specified using this property share
the same targetNamespace
or have no namespace, the behavior
is implementation dependent. If no location has been provided, this
parameter is null
.
Note: The "schema-location"
parameter is ignored
unless the "schema-type" parameter value is set. It is strongly
recommended that Document.documentURI
will be set so that an
implementation can successfully resolve any external entities referenced.
"schema-type"
DOMString
object containing an absolute URI
and representing the type of the schema language used to validate a
document against. Note that no lexical checking is done on the absolute
URI. If this parameter is not set, a default value may be provided by
the implementation, based on the schema languages supported and on the
schema language used at load time. If no value is provided, this
parameter is null
.
Note: For XML Schema [XML Schema Part 1]
, applications must use the value
"http://www.w3.org/2001/XMLSchema"
. For XML DTD [XML 1.0],
applications must use the value
"http://www.w3.org/TR/REC-xml"
. Other schema languages are
outside the scope of the W3C and therefore should recommend an absolute
URI in order to use this method.
"split-cdata-sections"
true
DOMError.type
equals to
"cdata-sections-splitted"
and
DOMError.relatedData
equals to the first
CDATASection
node in document order resulting from the split.false
CDATASection
contains an
unrepresentable character."validate"
true
true
. This parameter will reevaluate:
Attr.specified
equals to false
, as specified in
the description of the Attr
interface;
Text.isElementContentWhitespace
for all
Text
nodes;
Attr.isId
for all Attr
nodes;
Element.schemaTypeInfo
and Attr.schemaTypeInfo
.
Note: "validate-if-schema" and "validate" are mutually
exclusive, setting one of them to true
will set the other
one to false
. Applications should also consider setting the
parameter "well-formed" to true
, which is the default for
that option, when validating the document.
false
true
. "validate-if-schema"
true
true
.
Note: "validate-if-schema" and "validate" are mutually
exclusive, setting one of them to true
will set the other
one to false
.
false
true
. "well-formed"
true
Document.xmlVersion
:
Node.nodeName
contains invalid characters according to its
node type and generate a DOMError
of type
"wf-invalid-character-in-node-name"
, with a
DOMError.SEVERITY_ERROR
severity, if necessary;
Attr
, Element
,
Comment
, Text
, CDATASection
nodes
for invalid characters and generate a DOMError
of type
"wf-invalid-character"
, with a
DOMError.SEVERITY_ERROR
severity, if necessary;
ProcessingInstruction
nodes for invalid
characters and generate a DOMError
of type
"wf-invalid-character"
, with a
DOMError.SEVERITY_ERROR
severity, if necessary;
false
The resolution of the system identifiers associated with entities is
done using Document.documentURI
. However, when the feature
"LS" defined in [DOM Level 3 Load and Save]
is supported by the DOM implementation, the parameter
"resource-resolver" can also be used on DOMConfiguration
objects attached to Document
nodes. If this parameter is
set, Document.normalizeDocument()
will invoke the resource
resolver instead of using Document.documentURI
.
See also the Document Object Model (DOM) Level 3 Core Specification.
| Modifier and Type | Method and Description |
|---|---|
boolean |
canSetParameter(String name,
Object value)
Check if setting a parameter to a specific value is supported.
|
Object |
getParameter(String name)
Return the value of a parameter if known.
|
DOMStringList |
getParameterNames()
The list of the parameters supported by this
DOMConfiguration object and for which at least one value
can be set by the application. |
void |
setParameter(String name,
Object value)
Set the value of a parameter.
|
void setParameter(String name, Object value) throws DOMException
name
- The name of the parameter to set.value
- The new value or null
if the user wishes to
unset the parameter. While the type of the value parameter is
defined as DOMUserData
, the object type must match the
type defined by the definition of the parameter. For example, if
the parameter is "error-handler", the value must be of type
DOMErrorHandler
.DOMException
- NOT_FOUND_ERR: Raised when the parameter name is not recognized.
Object getParameter(String name) throws DOMException
name
- The name of the parameter.null
if no object has been associated or if the
parameter is not supported.DOMException
- NOT_FOUND_ERR: Raised when the parameter name is not recognized.boolean canSetParameter(String name, Object value)
name
- The name of the parameter to check.value
- An object. if null
, the returned value is
true
.true
if the parameter could be successfully set
to the specified value, or false
if the parameter is
not recognized or the requested value is not supported. This does
not change the current value of the parameter itself.DOMStringList getParameterNames()
DOMConfiguration
object and for which at least one value
can be set by the application. Note that this list can also contain
parameter names defined outside this specification. Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2015, Oracle and/or its affiliates. All rights reserved.


View this app in the Chrome Web Store
Desktop Development's configuration settings for naming Asset ID by OU
IC/Field/Help support teams' daily exported devices out of Google Admin Directory.
Linux team's console support.


public abstract class TemporaryObjectAllocatorextends Object
This technique is useful for temporary counter arrays in faceted search
(see
FacetsAccumulator
), which can be reused across searches instead
of being allocated afresh on every search.
A TemporaryObjectAllocator is thread-safe.
| Constructor and Description |
|---|
TemporaryObjectAllocator
(int maxObjects)
Construct an allocator for objects of a certain type, keeping around a
pool of up to
maxObjects
old objects.
|
| Modifier and Type | Method and Description |
|---|---|
T
|
allocate
()
Allocate a new object.
|
protected abstract void
|
clear
(
T
object)
Subclasses must override this method to clear an existing object of
the desired type, to prepare it for reuse.
|
protected abstract
T
|
create
()
Subclasses must override this method to actually create a new object
of the desired type.
|
void
|
free
(
T
object)
Return a no-longer-needed object back to the pool.
|
public TemporaryObjectAllocator(int maxObjects)
maxObjects
old objects.
Note that the pool size only restricts the number of objects that hang around when not needed, but not the maximum number of objects that are allocated when actually is use: If a number of concurrent threads ask for an allocation, all of them will get an object, even if their number is greater than maxObjects. If an application wants to limit the number of concurrent threads making allocations, it needs to do so on its own - for example by blocking new threads until the existing ones have finished. If more than maxObjects are freed, only maxObjects of them will be kept in the pool - the rest will not and will eventually be garbage-collected by Java.
In particular, when maxObjects=0, this object behaves as a trivial allocator, always allocating a new array and never reusing an old one.
protected abstract T create()
protected abstract void clear( T object)
public final T allocate()
Don't forget to call
free(Object)
when you're done with the object,
to return it to the pool. If you don't, memory is
not
leaked,
but the pool will remain empty and a new object will be allocated each
time (just like the maxArrays=0 case).
public final void free( T object)
In particular, when maxArrays=0, the given array is never saved and free does nothing.