Installation
1. Put shorteningUrl.jar to required directory.
Launching
1. Make sure that you have installed JRE and configured Path variables.
2. Run command line
3. Change directory to directory, where you installed shorteningUrl.jar
4. Put into command line next string java -jar shorteningUrl.jar
Description
Registration Account
First of all you should register account. Send POST request (header Content-Type: application/json) on http://localhost:8080/testtask/account with json object,
that contains account id.
Example request JSON: { AccountId : 'myAccountId'}
After that, you will recive response (header Content-Type: application/json), containing status, description and password from created account.
Example response JSON: {success: 'true', description: 'Your account is opened', password: 'xC345Fc0'}
Registration long URL
Send POST request (header Content-Type: application/json) on http://localhost:8080/testtask/register with json object,
that contains long URL (mandatory, url that needs shortening) and redirect type (not mandatory, default 302). Redirect type can takes value 301 or 302.
Example request JSON: {
url: 'http://stackoverflow.com/questions/1567929/website-safe-dataaccess-architecture-question?rq=1',
redirectType : 301
}
In case of successful URL registration you will recive response (header Content-Type: application/json), containing shortening URL.
Example response JSON: { shortUrl: 'http://localhost:8080/testtask/redirect/xYswlE'}
Attention: You should be a registered user (have open account) for that operation. Authentication information is transmited in request headers (Basic authentication).
Get statistic information
You can get information about number redirects to specific URL's for any account.
Send GET request on http://localhost:8080/testtask/statistic/{AccountID}. AccountID - it's id of requested account.
The server responds (header Content-Type:application/json) with a JSON object, key:value map, where the key is the registered URL, and the value is the number of this URL redirects..
Example response JSON: {
'http://myweb.com/someverylongurl/thensomedirectory/: 10,
'http://myweb.com/someverylongurl2/thensomedirectory2/: 4,
'http://myweb.com/someverylongurl3/thensomedirectory3/: 91,
}
Attention: You should be a registered user (have open account) for that operation. Authentication information is transmited in request headers (Basic authentication).
Redirect on long URL
Use recived short URL to redirect on long URL.
Example: Send GET request http://localhost:8080/testtask/redirect/xYswlE and you will be redirected to http://stackoverflow.com/questions/1567929/website-safe-dataaccess-architecture-question?rq=1;


I'm A Celeb's Nadine Coyle suffers awkward gaffe minutes into the first challenge
The former Girls Aloud singer put herself at a disadvantage from the get go
by Irishmirror.ieNadine Coyle won one title during the I'm A Celebrity launch on Sunday night - and it was the first star to make an awkward mistake.
The popstar, 34, started her journey to the jungle aboard a lavish yacht before having to take part in an old fashioned swimming competition and she made an epic gaffe that many would be ashamed of!
As she was pitted against fellow campmates Myles Stephenson, Kate Garraway, Ian Wright and James Haskell to swim to shore the beauty began on the wrong foot by swimming in the opposite direction to land.
However, despite the confusion she did not place last.
James and Myles arrived at the same time, although Myles marginally pipped James to the post in third was Nadine.
Fourth was Ian and finally Kate managed to make it to shore without getting her hair wet.
The foursome then had to select a partner from the half of the contestants and Myles won first pick and opted for Roman.
Former rugby player James teamed up with Caitlyn Jenner and Nadine chose Adele Roberts and also confessed that she and the Radio 1 DJ have history as they met years prior to her shooting to fame in Girls Aloud.
Ian paired up with former EastEnders actress Jacqueline Jossa and Kate made a beeline for Andrew Maxwell.
The action continued as half the stars were flung into helicopters before they had to walk the plank of the The Focus Building and the other half had to do a skydive into the Australian bush before canoing through a stream.
Speaking to Mirror Online earlier this week, series producer Olly Nash previewed the incredible opening episode by saying: "This is I’m A Celebrity and the contestants are going to have to be braver than ever.
"The walk in itself will see us return to the plank at the Focus building. It’s the biggest and most horrendous, wobbliest thing. We tested it earlier in August and we made it deliberately more wobbly."
* I’m A Celebrity continues tomorrow at 9pm on ITV.
Do you have a story to sell? Get in touch with us at<EMAIL_ADDRESS>or call us direct 0207 29 33033


midgard.gnss
midgard.gnss.antenna_calibration
Handling of GNSS antenna calibration information based on ANTEX file
Description:
The module includes a class for handling of GNSS antenna information based on read GNSS ANTEX file (see Rothacher, 2010).
Reference:
Rothacher, M. and Schmid, R. (2010): "ANTEX: The antenna exchange format", version 1.4, Forschungseinrichtung Satellitengeodäsie, TU München
Example:
Import AntennaCalibration class
from midgard.gnss.antenna_calibration import AntennaCalibration
Get instance of AntennaCalibration class by defining ANTEX file path
ant = AntennaCalibration(file_path="igs14.atx")
AntennaCalibration
Full name: midgard.gnss.antenna_calibration.AntennaCalibration
Signature: (file_path: Union[str, pathlib.PosixPath]) -> None
A class for representing GNSS antenna calibration data
The attribute "data" is a dictionary with GNSS satellite PRN or receiver antenna as key. The GNSS satellite antenna corrections are time dependent and saved with "valid from" datetime object entry. The dictionary looks like:
dout = { <prn> : { <valid from>: { cospar_id: <value>,
sat_code: <value>,
sat_type: <value>,
valid_until: <value>,
azimuth: <list with azimuth values>,
elevation: <list with elevation values>,
<frequency>: { azi: [<list with azimuth-elevation dependent corrections>],
neu: [north, east, up],
noazi: [<list with elevation dependent corrections>] }}},
<receiver antenna> : { azimuth: <list with azimuth values>,
elevation: <list with elevation values>,
<frequency>: { azi: [<array with azimuth-elevation dependent corrections>],
neu: [north, east, up],
noazi: [<list with elevation dependent corrections>] }}}
with following entries:
| Value | Type | Description |
|--------------------|---------------------------------------------------------------------------------------------|
| azi | numpy.ndarray | Array with azimuth-elevation dependent antenna correction in [mm] with |
| | | the shape: number of azimuth values x number of elevation values. |
| azimuth | numpy.ndarray | List with azimuth values in [rad] corresponding to antenna corrections |
| | | given in azi
. |
| cospar_id | str | COSPAR ID azi
or noazi
. |
|
Attributes: data (dict): Data read from GNSS Antenna Exchange (ANTEX) file file_path (str): ANTEX file path
Methods: satellite_phase_center_offset(): Determine satellite phase center offset correction vectors given in ITRS satellite_type(): Get satellite type from ANTEX file (e.g. BLOCK IIF, GALILEO-1, GALILEO-2, GLONASS-M, BEIDOU-2G, ...) _used_date(): Choose correct date for use of satellite antenna corrections
midgard.gnss.compute_dops
Compute DOP (dilution of precision)
Description:
Calculate GDOP, PDOP, TDOP, HDOP and VDOP based on elevation and azimuth between station and satellite for each observation epoch.
compute_dops()
Full name: midgard.gnss.compute_dops.compute_dops
Signature: (az: numpy.ndarray, el: numpy.ndarray) -> Tuple[numpy.ndarray, ...]
Compute dilution of precision (DOP) for an observation epoch
It should be noted, that the weight of observations is not considered. The observation weight matrix is assumed to be an identity matrix. The cofactor matrix Q is related to a topocentric coordinate system (north, east, up):
| q_nn q_ne q_nu q_nt |
Q = | q_ne q_ee q_eu q_et |
| q_nu q_eu q_nn q_nt |
| q_nt q_et q_nt q_tt |
Reference: Banerjee, P. and Bose, A. (1996): "Evaluation of GPS PDOP from elevation and azimuth of satellites", Indian Journal of Radio & Space Physics, Vol. 25, April 1996, pp. 110-113
Args:
az
: Satellite azimuth angle (radians)el
: Satellite elevation angle (radians)
Returns:
Tuple with GDOP, PDOP, TDOP, HDOP and VDOP
midgard.gnss.gnss
Midgard library module including functions for GNSS modeling
Example:
from migard.gnss import gnss
Description:
This module will provide functions for GNSS modeling.
get_number_of_satellites()
Full name: midgard.gnss.gnss.get_number_of_satellites
Signature: (systems: numpy.ndarray, satellites: numpy.ndarray, epochs: numpy.ndarray) -> numpy.ndarray
Get number of satellites per epoch
Args:
satellites
: Array with satellite PRN number together with GNSS identifier (e.g. G07)systems
: Array with GNSS identifiers (e.g. G, E, R, ...)epochs
: Array with observation epochs (e.g. as datetime objects)
Returns:
Number of satellites per epoch
get_rinex_file_version()
Full name: midgard.gnss.gnss.get_rinex_file_version
Signature: (file_path: pathlib.PosixPath) -> str
Get RINEX file version for a given file path
Args:
file_path
: File path.
Returns:
RINEX file version
obstype_to_freq()
Full name: midgard.gnss.gnss.obstype_to_freq
Signature: (sys: str, obstype: str) -> float
Get GNSS frequency based on given GNSS observation type
Args:
sys
: GNSS identifier (e.g. 'E', 'G', ...)obstype
: Observation type (e.g. 'L1', 'P1', 'C1X', ...)
Return: GNSS frequency in [Hz]
midgard.gnss.klobuchar
Klobuchar model for computing the ionospheric time-delay correction.
Description:
Compute the ionospheric time-delay correction for the single-frequency by broadcast model (klobuchar model). GPS and Beidu satellite navigation systems use this model. The implementation is based on original paper of Klobuchar (1987). The Klobuchar model is also described in Figure 20-4 in IS-GPS-200J.
References:
-
IS-GPS-200J (2018): "Global positioning systems directorate systems engineering & integration interface specification IS-GPS-200, Navstar GPS space Segment/Navigation user segment interfaces, 25. April 2018
-
Klobuchar, J.A. (1987): "Ionospheric Time-Delay Algorithm for Single-Frequency GPS Users", IEEE Transactions on Aerospace and Electronic Systems, Vol. AES-23, No. 3, May 1987, https://scinapse.io/papers/2058160370
-
Sanz Subirana, J., Juan Zornoza, J.M. and Hernandez-Pajares, M. (2013): "GNSS data processing - Volume I: Fundamentals and Algorithms", TM-23/1, European Space Agency, May 2013
klobuchar()
Full name: midgard.gnss.klobuchar.klobuchar
Signature: (time, ion_coeffs, rec_pos, az, el, freq_l1, freq=None, logger=functools.partial(<function log at 0x7f174b56be20>, level='debug'))
Compute the ionospheric time-delay correction for the single-frequency by broadcast model (klobuchar model)
GPS and BeiDou satellite navigation systems use this model. The implementation is based on original paper of Klobuchar, J.A. Ionospheric Time-Delay Algorithm for Single-Frequency GPS Users https://scinapse.io/papers/2058160370
Args:
time
: GPSTion_coeffs
: iono model parameters {a0,a1,a2,a3,b0,b1,b2,b3} as vectorrec_pos
: receiver position {lat,lon,h} [rad, rad, m] as vectoraz
: azimuth angle [rad]el
: elevation angle [rad]system
: GNSS systemfreq_l1
: L1 frequency of given GNSS in [Hz]freq
: Frequency in [Hz] for which ionospheric delay should be determined.logger
: Function that logs
Returns:
iono_delay
: computed path delay for given frequency [m]L1_variance
: corresponding variance [m^2]
TODO: freq_L1 should be determined in klobuchar routine and argument be replaced by system. constants needed in Midgard.
main()
Full name: midgard.gnss.klobuchar.main
Signature: ()
midgard.gnss.solution_validation
comp_quality_indicators()
Full name: midgard.gnss.solution_validation.comp_quality_indicators
Signature: (sol_vc_mat: numpy.ndarray) -> tuple
Compute quality indicators
Following quality indicators are computed 1. compute the standard error ellipse(SEE) 2. compute the distance root mean squared (DRMS) 3. compute the circular error probable (CEP)
Args:
sol_vc_mat
: Variance-covariance matrix of the unknown
Returns:
Tuple with DRMS, CEP and SEE
epilog (str)
epilog = '\n**EXAMPLE**\n sol_validation (residuals, alpha_sign_level n_params)\n args:\n residuals (I): postfit residuals \n alpha_sign_level(I): alpha significance level and defines the rejection area.\n possible values of alpha = 0.05 (95%), 0.01 (99%) and 0.001 (99.9%)\n n_params (I): number of estimated parameters (states).\n \n\nKeywords: Chi-square distribution,\n'
get_my_parser()
Full name: midgard.gnss.solution_validation.get_my_parser
Signature: ()
main()
Full name: midgard.gnss.solution_validation.main
Signature: ()
Main program for testing solution validation implementation
TODO: This should be done via midgard/tests/gnss !!!
prolog (str)
prolog = '\n**PROGRAM**\n solution_validation.py\n \n**PURPOSE**\n Perform Chi-square test for residuals. Degrees of freedom (df) refers to the number of values that\n are free to vary df = number of valid satellites (nv) - number of parameters to be estimated (nx) - 1.\n GNSS solution validation based on the argument alpha, the level of significance (e.g. 99%), and\n defines the rejection level of the crossing events. \n Note that this is different from the false alarm rate, which instead refers to error type I\n \n**USAGE**\n'
sol_validation()
Full name: midgard.gnss.solution_validation.sol_validation
Signature: (residuals: numpy.ndarray, alpha_siglev: float, n_params: int = 4) -> bool
Validating the GNSS solution is carried out using Chi-square test
Use Chi-square test for outlier detection and rejection.
Args:
residuals
: Postfit residuals for all satellites in each epochalpha_siglev
: Alpha significance leveln_params
: Number of parameters (states), normally 4 parameters for station coordinates and receiver clock
Returns:
Array containing False for observations to throw away.


Featuresedit
Curator allows for many different operations to be performed to both indices and snapshots, including:
- Add or remove indices (or both!) from an alias
- Change shard routing allocation
- Close indices
- Create index
- Delete indices
- Delete snapshots
- Open closed indices
- forceMerge indices
- Change the number of replicas per shard for indices
- Take a snapshot (backup) of indices
- Restore snapshots


-
Announcements
-
Donations and Recognition! 12/23/2016
Hello everyone! We are becoming a huge community and that doesn't come cheap. All staff here are volunteers and do this because they love the site. Right now, everything is paid out of pocket, by Erroneous. We would love for you to donate in order to help out with the site costs (i.e. Forum License, Domain Name, Hosting) so that we can keep Security and Forum Software up to date and possibly add some new features. If you do decide to donate, we have some fun, snazzy gifts of appreciation for you ;) Please message me (Shark) so we can get you the gifts of appreciation! We thank you for your support! Please use this link for more info _____________________________________________________________________________________________________________________________ How To Donate Scroll to the bottom of the screen and click the donate button.
_______________________________________________________________________________________________________________________________________________
NOTABLE DONORS LIST Here is where we honor the donors who go above and beyond the call of Aincrad! Top Tier Donors! Row Teayre Percival Nezumi Zandra Alice Atzo Azrael Baldur Dominion Ignavus_veneficus Lee Mack Macradon Nocturn Piera Ruus Sarial Hawke Unyeilding To express our gratitude, here is a picture of the iconic duo for all you wonderful supporters! -
The SAO Staff Team! 02/22/2017
Hello members of SAO-RPG!
I'm sure most of you (if not some) have noticed or heard changes were made to the staff team. If you are applying to staff, you may have noticed that the application process has recently changed. This has all happened because of a reformation of the staff team and the way it operates. The staff now has separate teams for development. These teams are: Floor Creation Team [Floors, Quests/Events, Bosses], Systems & Clarifications Team, and Player Support Team.
"Who is on these teams?" Well the answer to that lies below! Floor Team Systems & Clarifications Team Player Support Team * - Denotes Team Lead
We also have a team to work on and develop the current systems but that team will search for its members and is not allowed to be applied to.
Now you may be asking, "Shark, how does one apply to the Staff Team?" And I have but 1 simple answer!
Go read this thread and it may answer all your questions!
If you have any more questions, send me a PM and I will answer your questions about staff. (Only the format of teams and/or the application process) -
[Updated] Summer Events! 06/29/2017
<<Summer Beach Party>>
Location: Floor 16 - West of Oceanus
Event Begins: July 1 | Event Ends: August 31
Setting: Daytime (July 1 - July 31) | Sunset (August 1 - August 31) A small guild calling themselves the Gladiolus Alliance have suddenly started putting up posters and making announcements about a beach party they are hosting on the sixteenth floor. Players may wear any equipment they like, but casual clothing and swimwear are highly encouraged. Weapons are prohibited from being equipped while in the vicinity. Food, drink, beach towels/umbrellas, and a volleyball court have all been provided and set-up by the guild for everyone's enjoyment. Event Thread Rewards: Finished thread awards 1 SP per completed page. Participants receive 1 SP per (3) posts, up to the number of completed pages. Posts must meet the 150 minimum word count to be counted towards SP rewards.
<<Mid-Summer Fireworks Festival>>
Location: Floor 1 - Town of Beginnings
Event Begins: July 12 | Event Ends: August 31
Fireworks display begins August 12
Orange players may safely enter the Town of Beginnings to participate in the event. A fireworks festival has appeared in the main plaza of the Town of Beginnings. The festivities run all night long with a variety of games, prizes, and food for players to enjoy. Halfway through the festival, when darkness has fallen over the city, a fireworks show will begin to light up the night sky. General Rules: Orange players are permitted to attend, and will not be attacked by guards if they enter the city for the event. Normal safe zone rules still apply. When spending col to participate in games, buy items, or enter the lottery, be sure to keep track of the col you have available. Final spending/winning totals will be posted by a staff member in the closing post of the event, which can be used to link to your Col logs. If a player had spent more col than they had available, prizes won as a result may be voided. Traditional festival attire (yukata) or casual clothing is encouraged, but not required. Event Thread Rewards: Finished thread awards 1 SP per completed page. Participants receive 1 SP per (3) posts, up to the number of completed pages. Posts must meet the 150 minimum word count to be counted towards SP rewards. -
July 2017 Patch Notes 07/08/2017
<<July 2017 Patch Notes>>
Profession Guide Updates: Blacksmith and Tailor guides have been rewritten. Blacksmiths and Tailors can no longer craft tools. The Merchant guide has been rewritten: Identifying now costs col, not materials. Shields can now be identified. Junk sale prices have been adjusted. Experience gain and number of identifications per day has been adjusted
Loot Guide Update: The type of an unidentified item dropped by monsters and found in treasure chests are now declared by the looting player. Shields can now drop from monsters and be found in treasure chests.
Sub-Dungeon Update: The Sub-Dungeon guide has been rewritten. Sub-Dungeon monster stats have been revamped. Sub-Dungeon rewards have been revamped and now scale with Floor Tier and Player Tier. Sub-Dungeon map rules have been added.
Rebirth System Update: The Rebirth System has been rewritten. The 30-day restriction has been removed. Starting SP for Rebirth characters has been increased to 50%. New rules and procedures have been implemented for players creating a Rebirth character.
-
Privacy Policy
The team here at Sword Art Online Roleplay Community respect your privacy and will not share any of your registration information at any time with any users, partners, affiliates, third-party contents without your expressed written permission. In addition, all information stored in our database, while protected by security systems and our privacy terms, is viewable only to the highest level of staff member on this site; this includes your posts, internet service provider, email address, encrypted password, private messages, and file uploads. Therefore if you wish not for any of the mentioned related information to be saved on our database, please do not share or provide any said information without thorough consideration on your part.


M. D. Rothmann, B. L. Wiens, and I. S. F. Chan, Design and Analysis of Non-Inferiority Trials. CRC Press, 2008, p. 331-333
Sample size of standard group: {{controlGroupSampleSize | number:0}}
Sample size of experimental group: {{experimentalGroupSampleSize | number:0}}
When large sample normal inference with equal underlying variance will be used to calculate the confidence interval at the analysis stage, a non-inferiority trial is designed to show that a new treatment is non-inferior to the standard treatment within a non-inferiority margin of {{values.niMargin}} in terms of mean difference. {{totalSampleSize | number:0}} subjects in total (of which {{experimentalGroupSampleSize | number:0}} are in the new treatment group and {{controlGroupSampleSize | number:0}} are in the standard treatment group) are required to achieve {{values.power * 100 | number:0}}% of power at a significance level of {{values.significanceLevel}}.


--- title: Greasemonkey User Scripts layout: post tags: [javascript] uuid: deeb9286-98ca-30bb-24eb-d18995c7c30a ---
I have recently been playing around with Greasemonkey, a great Firefox add-on that gives users a lot of control over how a website is displayed. It works by having the user providing a bit of Javascript that runs when a website is rendered. The user doesn't actually have to write the script, but can find them in various script repositories.
When I looked around, I couldn't find scripts to do some things I wanted, so I started writing my own. Now that I have started that habit I see uses for user scripts all over the place. Suddenly I can fix anything I find annoying on the web. It's very empowering.
Of course, Firefox add-ons can do anything a user script can do. But Greasemonkey user scripts are lightweight, more secure (due to being less powerful), easier to write, and don't require a browser restart to install and uninstall.
I posted my scripts on
userscripts.org so that people could find them easily, but I
always like to host these things locally, too. You can find it
under /userscripts here. Don't forget to review the source before
you install it! That is, unless you automatically trust me and my
website's security. I, or an infiltrator, could slip something sneaky
in there.
I actually first used Greasemonkey back in 2005, but they had some very serious security issues back in those days. It was bad enough that I just uninstalled it, which was actually recommended by the Greasemonkey people themselves. So, four years later I am back to check it out.
The first user script I wrote was in response to a "feature" on TV Tropes. In addition to the overall cruddiness of the website, they started adding "folders" to the information on long pages. It folds up all of the information behind little clickable widgets. It uses CSS to hide the information and Javascript to reveal it by adjusting those styles on the fly. If you have a browser with CSS support but not Javascript (or have it disabled like I did), you won't ever be able to see the information in the browser. As of this writing the Jumping the Shark article uses this. Take a look.
This is an awful idea! It critically breaks the usability of the page. And what's the point? We already have a vertical scrollbar to control the display. Unfortunately, a lot of clueless people seem to like this sort of behavior — because it's flashy — so we will probably only see more of it on the web in the future.
My TV Tropes user script is simple: it scrapes off some of the CSS. Specifically, the "folder" CSS. That's it! Someone who already knows how to make user scripts could probably put this together in less than 15 minutes.
If you want to tackle web annoyances, learn Greasemonkey!


module type S =sig
..end
Type mapper, visitor, iterator, finder all in one.
The interface is wrapped into a monad, that allows, by choosing a proper monad implement all the above morphisms and iterators. If you're afraid of the monads, then calm down and continue reading, there is a way to use this interface without any monads.
Each syntactical element t:T
of the type system is represented
with three methods:
enter_T t
map_T t
leave_T t
The map_T t
method first calls enter_T t
, the applies a deep
mapping of the t
to t'
and finally calls leave_T t'
.
Override enter_T
if an element shouldn't be morphed. The
combination of enter_t
, leave_T
allows to perform different
visiting strategies. If mapping is needed then a map_T
method
should be overriden. A usual pattern would be:
class my_mapper = object(self)
inherit base as super
method map_T t =
super#map_T t >>| self#my_transformation
method private my_transformation t = t
end
All method calls are bound with monadic operations. This makes it possible to parametrize visitor with different computation strategies (depending on a binding strategy of a monad).
If the monad is a null monad, where bind is a reverse application,
and returns is an identity, then we have a normal execution and
the whole visitor degrade to a regular visitor/mapper without any
monads. Such visitor is instantiated as C.Type.Mapper.base
.
The other two useful monads, are State
and Search
. The visitor
in these monads is instantiated as C.Type.Mapper.State.base
and
C.Type.Mapper.Finder.base
correspondingly. The former is useful
to implement a regular visitor, that will fold an abitrary value
over the type structure, or to implement a mapper, that can also
have a state. The latter, is useful for implementing a search with
a shortcut, i.e., when the searching is terminated as soon as the
target is found.
type ('a, 'e)
m
class['e]
base :object
..end


Language: Relationships and Ordering
The order of resources in a Puppet manifest does not matter. Puppet assumes that most resources are not related to each other and will manage the resources in whatever order is most efficient.
If a group of resources should be managed in a specific order, you must explicitly declare the relationships.
Syntax
Relationships can be declared with the relationship metaparameters, chaining arrows, and the require
function.
Relationship Metaparameters
package { 'openssh-server':
ensure => present,
before => File['/etc/ssh/sshd_config'],
}
Puppet uses four metaparameters to establish relationships. Each of them can be set as an attribute in any resource. The value of any relationship metaparameter should be a resource reference (or array of references) pointing to one or more target resources.
before
- Causes a resource to be applied before the target resource.
require
- Causes a resource to be applied after the target resource.
notify
- Causes a resource to be applied before the target resource. The target resource will refresh if the notifying resource changes.
subscribe
- Causes a resource to be applied after the target resource. The subscribing resource will refresh if the target resource changes.
If two resources need to happen in order, you can either put a before
attribute in the prior one or a require
attribute in the subsequent one; either approach will create the same relationship. The same is true of notify
and subscribe
.
The two examples below create the same ordering relationship:
package { 'openssh-server':
ensure => present,
before => File['/etc/ssh/sshd_config'],
}
file { '/etc/ssh/sshd_config':
ensure => file,
mode => 600,
source => 'puppet:///modules/sshd/sshd_config',
require => Package['openssh-server'],
}
The two examples below create the same notification relationship:
file { '/etc/ssh/sshd_config':
ensure => file,
mode => 600,
source => 'puppet:///modules/sshd/sshd_config',
notify => Service['sshd'],
}
service { 'sshd':
ensure => running,
enable => true,
subscribe => File['/etc/ssh/sshd_config'],
}
Chaining Arrows
# ntp.conf is applied first, and will notify the ntpd service if it changes:
File['/etc/ntp.conf'] ~> Service['ntpd']
You can create relationships between two resources or groups of resources using the ->
and ~>
operators.
->
(ordering arrow)- Causes the resource on the left to be applied before the resource on the right. Written with a hyphen and a greater-than sign.
~>
(notification arrow)- Causes the resource on the left to be applied first, and sends a refresh event to the resource on the right if the left resource changes. Written with a tilde and a greater-than sign.
Operands
The chaining arrows accept the following types of operands on either side of the arrow:
- Resource references, including multi-resource references
- Resource declarations
- Resource collectors
Note: Arrays of references cannot be chained. To chain multiple resources at once, you must use a multi-resource reference or a collector.
An operand can be shared between two chaining statements, which allows you to link them together into a “timeline:”
Package['ntp'] -> File['/etc/ntp.conf'] ~> Service['ntpd']
Since resource declarations can be chained, you can use chaining arrows to make Puppet apply a section of code in the order that it is written:
# first:
package { 'openssh-server':
ensure => present,
} -> # and then:
file { '/etc/ssh/sshd_config':
ensure => file,
mode => 600,
source => 'puppet:///modules/sshd/sshd_config',
} ~> # and then:
service { 'sshd':
ensure => running,
enable => true,
}
And since collectors can be chained, you can create many-to-many relationships:
Yumrepo <| |> -> Package <| |>
This example would apply all yum repository resources before applying any package resources, which protects any packages that rely on custom repos.
Note: Chained collectors can potentially cause huge dependency cycles and should be used carefully. They can also be dangerous when used with virtual resources, which are implicitly realized by collectors.
Note: Collectors can only search on attributes which are present in the manifests and cannot see properties that must be read from the target system. For example, if the example above had been written as
Yumrepo <| |> -> Package <| provider == yum |>
, it would only create relationships with packages whoseprovider
attribute had been explicitly set toyum
in the manifests. It would not affect any packages that didn’t specify a provider but would end up using Yum.
Reversed Forms
Both chaining arrows have a reversed form (<-
and <~
). As implied by their shape, these forms operate in reverse, causing the resource on their right to be applied before the resource on their left.
Note: As the majority of Puppet’s syntax is written left-to-right, these reversed forms can be confusing and are not recommended.
The require
Function
The require
function declares a class and causes it to become a dependency of the surrounding container:
class wordpress {
require apache
require mysql
...
}
The above example would cause every resource in the apache
and mysql
classes to be applied before any of the resources in the wordpress
class.
Unlike the relationship metaparameters and chaining arrows, the require
function does not have a reciprocal form or a notifying form. However, more complex behavior can be obtained by combining include
and chaining arrows inside a class definition:
class apache::ssl {
include site::certificates
# Restart every service in this class if any of our SSL certificates change on disk:
Class['site::certificates'] ~> Class['apache::ssl']
}
Behavior
Ordering and Notification
Puppet has two types of resource relationships:
- Ordering
- Ordering with notification
An ordering relationship ensures that one resource will be managed before another.
A notification relationship does the same, but also sends the latter resource a refresh event if Puppet changes the first resource’s state. A refresh event causes the recipient to refresh itself.
Refreshing
Only certain resource types can refresh themselves. Of the built-in types, these are service, mount, and exec.
Service resources refresh by restarting their service. Mount resources refresh by unmounting and then mounting their volume. Exec resources usually do not refresh, but can be made to: setting refreshonly => true
causes the exec to never fire unless it receives a refresh event. You can also set an additional refresh
command, which causes the exec to run both commands when it receives a refresh event.
Parse-Order Independence
Relationships are not limited by parse-order. You can declare a relationship with a resource before that resource has been declared.
Missing Dependencies
If one of the resources in a relationship is never declared, compilation will fail with one of the following errors:
Could not find dependency <OTHER RESOURCE> for <RESOURCE>
Could not find resource '<OTHER RESOURCE>' for relationship on '<RESOURCE>'
.
Failed Dependencies
If Puppet fails to apply the prior resource in a relationship, it will skip the subsequent resource and log the following messages:
notice: <RESOURCE>: Dependency <OTHER RESOURCE> has failures: true
warning: <RESOURCE>: Skipping because of failed dependencies
It will then continue to apply any unrelated resources. Any resources that depend on the skipped resource will also be skipped.
This helps prevent inconsistent system state by causing a “clean” failure instead of attempting to apply a resource whose prerequisites may be broken.
Note: Although a resource won’t be applied if a dependency fails, it can still receive and respond to refresh events from other, successful, dependencies. This is because refreshes are handled semi-independently of the normal resource sync process. It is an outstanding design issue, and may be tracked at issue #7486.
Dependency Cycles
If two or more resources require each other in a loop, Puppet will compile the catalog but will be unable to apply it. Puppet will log an error like the following, and will attempt to help you identify the cycle:
err: Could not apply complete catalog: Found 1 dependency cycle:
(<RESOURCE> => <OTHER RESOURCE> => <RESOURCE>)
Try the '--graph' option and opening the resulting '.dot' file in OmniGraffle or GraphViz
To locate the directory containing the graph files, run puppet agent --configprint graphdir
.


Project name: Image Compression using Huffman coding
A web app built on Flask that lets users upload images and download the compressed image. Uses Huffman Compression Algorithm to compress the bits of each pixel generated, using Heaps in C.
STEPS: 1.Covert image to text. 2.Compress the text using Huffman Coding. 3.Convert the compressed text back to Image.


May 9, 2022
TMS ($v_t$) is the average of all vehicles passing a point over a duration of time. It is the arithmatic mean of speeds observed at a point. TMS $v_t$ is given by,
\[\begin{aligned} v_{t}=\frac{1}{n}\sum_{i=1}^nv_{i} \end{aligned} \]
where $v$ is the spot speed of $i^{th}$ vehicle, and $n$ is the number of observations. In many speed studies, speeds are represented in the form of frequency table. So, TMS can be written as,
\[\begin{aligned} v_t = \frac{{\sum_{i=1}^{n}{q_i v_i}}}{\sum_{i=1}^{n}{q_i}}, \end{aligned} \]
where $q_i$ is the number of vehicles having speed $v_i$, and $n$ is the number of such speed categories.
SMS ($v_s$) provides spatial weightage instead of temporal. SMS is the average speed of vehicles on a road at any time. It is the harmonic mean of speeds observed at a point.
For $n$ vehicles, the average travel time $t_s$ is given by,
\[\begin{aligned} t_s = \frac{\Sigma {t_i}}{n} = \frac{1}{n}{\Sigma\frac{D}{v_i}} \end{aligned} \]
SMS can be written as,
\[\begin{aligned} v_s = \frac{D}{t_s} =\frac{n}{\sum_{i=1}^{n}\frac{1}{v_i}}=\frac{\sum_{i=1}^{n}{q_i}}{\sum_{i=1}^{n}{\frac{q_i}{v_i}}} \end{aligned} \]
where $q_i$ vehicle will have $v_i$ speed and $n$ is the number of such observations. TMS and SMS can be related as (where $\sigma^2$ is variance):
\[\begin{aligned} \displaystyle v_t \textstyle = \displaystyle v_s + \frac{\sigma^2}{v_s} \end{aligned} \]
Five cars are traveling with speed 40 mph, 42 mph, 51 mph, 55 mph, and 60 mph. What are the TMS and SMS?
At a point along D the TMS would be
\[\begin{aligned} \bar{u_t} = \frac{1}{N}\Sigma^{N}_{i=1}u_i&=(40+42+51+55+60)/5=49.6\: mph \end{aligned} \]
Now, average travel time
\[\begin{aligned} \bar{t} = \frac{1}{5}[\frac{D}{40}+\frac{D}{42}+\frac{D}{51}+\frac{D}{55}+\frac{D}{60}]=\frac{1}{N}\Sigma^{N}_{i=1}\frac{D}{u_i} \end{aligned} \]
SMS would be
\[\begin{aligned} \bar{u_s} = \frac{D}{\bar{t}}=\frac{D}{\frac{1}{N}\Sigma^{N}_{i=1}\frac{D}{u_i}}=\frac{1}{\frac{1}{N}\Sigma^{N}_{i=1}\frac{1}{u_i}}\\ =\frac{1}{\frac{1}{5}(\frac{1}{40}+\frac{1}{42}+\frac{1}{51}+\frac{1}{55}+\frac{1}{60})}\\ =48.4\: mph \end{aligned} \]
The results of a speed study is given in the form of a frequency distribution table. Find the time mean speed and space mean speed.
| Speed Range (mph) | Count |
|---|---|
| 2-10 | 5 |
| 11-20 | 8 |
| 21-30 | 21 |
| 31-40 | 17 |
| No. | Speed Range (mph) | Avg. Speed (mph) or $v_i$ | Flow ($q_i$) | $v_i.q_i$ | $\frac{q_i}{v_i}$ |
|---|---|---|---|---|---|
| 1 | 2-10 | 6 | 5 | 30 | 0.83 |
| 2 | 11-20 | 15.5 | 8 | 124 | 0.52 |
| 3 | 21-30 | 25.5 | 21 | 535.5 | 0.82 |
| 4 | 31-40 | 35.5 | 17 | 603.5 | 0.48 |
| 51 | 1293 | 2.65 |
The TMS and SMS can be found out from the frequency table given above. First, the average speed is computed, which is the mean of the speed range. For example, for the first speed range, average speed, $v_i = \frac{2+10}{2}$ = 6 mph.
The volume of flow $q_i$ for that speed range is same as the frequency. The terms $v_i.q_i$ and $\frac{q_i}{v_i}$ are also tabulated, and their summations in the last row. Time mean speed can be computed as, $v_t = \frac{\Sigma {q_iv_i}}{\Sigma q_i} = \frac{1293}{51} = $ 25.35 mph.
Similarly, space mean speed can be computed as, $v_s = \frac{\Sigma q_i}{\Sigma \frac{q_i}{v_i}} = \frac{51}{2.65} = $ 19.23 mph.
Number of vehicles passing a particular point of roadway during unit time. Traffic volume is expressed as vehicle/h or vehicle/day
Number of vehicle occupying a unit length of roadway at a given instants, usually expressed as vehivles per km
\[\begin{aligned} K = \frac{Q}{\bar{V_s}} \end{aligned} \]
Highest density occurs when the vehicles are standstill (i.e. in jam conditions). In this case, thraffic volume approaches to zero
Distance between fronts of successive vehicles in meters.
Time interval between the passage of the fronts of successive vehicles at a specific point.
The relation between the density and the corresponding flow on a given stretch of road is referred to as one of the fundamental diagram of traffic flow.
Data modeling
Algorithmic modeling
library(shiny)
library(shinydashboard)
library(shinyjs)
library(sf)
library(leaflet)
library(leaflet.extras)
library(dplyr)
library(DT)
library(htmltools)
# Read State/Counties CSV File
#StateCountyData = read.csv("C:/Subasish/FHWA Rural Speed Safety Project For USDOT SDI/app/www/US_Counties/USCounties.csv")
StateCountyData = read.csv("www/US_Counties/USCounties.csv")
# Create State and Initial County List
StateCountyData$State <- as.character(StateCountyData$State)
StateCountyData$County <- as.character(StateCountyData$County)
### Temporarily filter for only 3 states - WA, NC, OH
#StateCountyData <- filter(StateCountyData, State == 'WA' | State == 'NC' | State == 'OH')
StateCountyData <- filter(StateCountyData, State == 'WA' | State == 'OH')
StatesList <- unique(StateCountyData$State)
StateCountyList <- subset(StateCountyData$County, StateCountyData$State == "WA")
StateNameList <- data.frame(
unique(StateCountyData[c("State","StateID")])
)
# Read WA SHP file
#WA_shp = st_transform(st_read("www/WA_shp/new1.shp"), 4326)
#WA_shp$Fatal_Injury <- WA_shp$Fatal + WA_shp$Injury
WA_shp = st_transform(st_read("www/WA_shp2/WA_TMC_Census.shp"), 4326)
# Read OH SHP file
OH_shp = st_transform(st_read("www/OH_shp2/OH_Fin2.shp"), 4326)
# Read NC SHP file
#NC_shp = st_transform(st_read("www/NC_shp/Final1_NC.shp"), 4326)
# Read Counties SHP file
UScounties_shp = st_transform(st_read("www/US_Counties/tl_2018_us_county.shp"), 4326)
# Start Creating Dashboard layout
header <- dashboardHeader(
title = "Rural Speed Tool (BETA)"
)
body <- dashboardBody(useShinyjs(),
tabsetPanel(
tabPanel(HTML(paste(tags$span(style="font-size: 18px", "RuralSpeedSafetyX"))), id="RuralSpeedTool",
tags$h1(tags$b("Interactive Decision Support Tool to Improve Safety")),
fluidRow(
column(width = 8,
box(width = NULL, solidHeader = TRUE,
leafletOutput("MapOut", height = 500),
h2() )
),
column(width = 3,
box(width = NULL, status = "warning",
selectInput("YearInput","Year",choices = list("2015" = 2015), selected = 2015),
selectInput("StateInput","State",choices = StatesList,selected = 'WA'),
selectInput("CountyInput","County",choices = c("All Counties",StateCountyList)),
selectInput("FacilityInput","Facility",choices = c("All","Interstate/Freeway/Expressway","Multilane","Two-lane")),
radioButtons("Severity", label = "Severity", choices = list("All", "Fatal and Injury"), inline=TRUE),
actionButton(inputId = "RefreshMap", label = "Refresh Map", class = "butt"),
tags$head(tags$style(".butt{background-color:#0000FF;} .butt{color: white;}")), # background color and font color
downloadButton("downloadData",label ="Download Data")
)
)
),
DT::dataTableOutput('outputDT'),
h2(),tags$br(),
h2(),tags$br()
)
)
)
# Put them together into a dashboardPage
ui <- dashboardPage(
#header,
dashboardHeader(disable = TRUE),
dashboardSidebar(disable = TRUE),
body
)
server <- function(input, output, session) {
StateCountyList <- eventReactive(input$StateInput, {
subset(StateCountyData$County, StateCountyData$State == input$StateInput)
})
observeEvent(input$StateInput,
updateSelectInput(session, "CountyInput","County",
choices = c("All Counties",
subset(StateCountyData$County, StateCountyData$State == input$StateInput)))
)
observeEvent(input$StateInput,
updateSelectInput(session, "FacilityInput","Facility",
choices = c("All","Interstate/Freeway/Expressway","Multilane","Two-lane"))
)
output$MapOut <- renderLeaflet({
leaflet() %>%
addTiles(urlTemplate = "//cartodb-basemaps-{s}.global.ssl.fastly.net/dark_all/{z}/{x}/{y}{r}.png", layerId = 'Carto DB Dark Matter') %>%
setView(lng = -95.7129, lat = 37.0902, zoom = 4)
#setView(lng = -120.740135, lat = 47.376903, zoom = 7)
})
observeEvent(input$RefreshMap, {
STATEFPin <- switch(input$StateInput,
"NC"= 37,
"OH" = 39,
"WA" = 53
)
COUNTYin = input$CountyInput
if (COUNTYin != "All Counties"){
Countyin_Code <- select(filter(filter(StateCountyData, StateID == STATEFPin), (County == COUNTYin)), StateCounty)
} else {
Countyin_Code <- 0
}
FacilityIn = input$FacilityInput
if (FacilityIn == "Interstate/Freeway/Expressway"){
FacilityIn_Code <- "Interstate"
} else {
FacilityIn_Code <- FacilityIn
}
### Will need to change MapOutputData switch to include other states
#MapOutputData <- WA_shp
MapOutputData <- switch(input$StateInput,
"NC"= WA_shp,
"OH" = OH_shp,
"WA" = WA_shp
)
if (Countyin_Code == 0){
MapOutputDataTempCounty <- MapOutputData
UScounties_shp_selected <- st_as_sf(filter(as.data.frame(UScounties_shp), STATEFP == STATEFPin))
LATzoom <- switch(input$StateInput,
"NC"= 35.782169,
"OH" = 40.367474,
"WA" = 47.376903
)
LONzoom <- switch(input$StateInput,
"NC"= -80.793457,
"OH" = -82.996216,
"WA" = -120.740135
)
zoomLevel <- 6
} else {
MapOutputDataTempCounty <- st_as_sf(filter(as.data.frame(MapOutputData), COUNTYFP == sprintf('%03d', as.integer(Countyin_Code) %% 1000)))
UScounties_shp_selected <- st_as_sf(filter(filter(as.data.frame(UScounties_shp), STATEFP == STATEFPin), COUNTYFP == sprintf('%03d', as.integer(Countyin_Code) %% 1000)))
LATzoomTemp <- select(as.data.frame(UScounties_shp_selected), INTPTLAT)
LONzoomTemp <- select(as.data.frame(UScounties_shp_selected), INTPTLON)
LATzoom <- as.numeric(as.character(unlist(LATzoomTemp[[1]])))
LONzoom <- as.numeric(as.character(unlist(LONzoomTemp[[1]])))
zoomLevel <- 8
}
if (FacilityIn_Code == 'All'){
MapOutputDataFinal <- MapOutputDataTempCounty
} else {
MapOutputDataFinal <- st_as_sf(filter(as.data.frame(MapOutputDataTempCounty), Facility == FacilityIn_Code))
}
DataForPal <- switch(input$Severity,
"All" = MapOutputDataFinal$Total_Exp,
"Fatal and Injury" = MapOutputDataFinal$FI_Exp)
pal_Total <- colorNumeric("YlOrRd", DataForPal)
labelOut <- as.list(paste0('TMC: ', MapOutputDataFinal$TMC, "
",
'Road: ',MapOutputDataFinal$ROAD_NUMBE, "
",
'State: ',input$StateInput, "
",
'County: ', input$CountyInput, "
",
'Facility: ', MapOutputDataFinal$Facility, "
",
'Total Expected: ', MapOutputDataFinal$Total_Exp, "
",
'Fatal, Injury Expected: ', MapOutputDataFinal$FI_Exp, "
",
'AADT: ', round(MapOutputDataFinal$AADT, 0), "
",
#'Freeflow Speed: ', round(MapOutputDataFinal$SpdFF, 2), "
",
'Speed Variance 1: ', round(MapOutputDataFinal$SpdVarr1, 2), "
"
))
popupOut <- paste0('TMC: ', MapOutputDataFinal$TMC, "
",
'Road: ',MapOutputDataFinal$ROAD_NUMBE, "
",
'State: ',input$StateInput, "
",
'County: ', input$CountyInput, "
",
'Facility: ', MapOutputDataFinal$Facility, "
",
'Total Expected: ', MapOutputDataFinal$Total_Exp, "
",
'Fatal, Injury Expected: ', MapOutputDataFinal$FI_Exp, "
",
'AADT: ', round(MapOutputDataFinal$AADT, 0), "
",
#'Freeflow Speed: ', round(MapOutputDataFinal$SpdFF, 2), "
",
'Speed Variance 1: ', round(MapOutputDataFinal$SpdVarr1, 2), "
"
)
leafletProxy("MapOut") %>% clearPopups() %>% clearGroup("Total/Fata/Injury") %>% clearGroup("CountiesSHP") %>% clearControls() %>%
###setView(lng = -120.740135, lat = 47.376903, zoom = 7) %>%
setView(lng = LONzoom, lat = LATzoom, zoom = zoomLevel) %>%
addPolylines(data=MapOutputDataFinal,
color=~pal_Total(
switch(input$Severity,
"All" = MapOutputDataFinal$Total_Exp,
"Fatal and Injury" = MapOutputDataFinal$FI_Exp)
),
group="Total/Fata/Injury",
popup = popupOut,
label = lapply(labelOut, HTML)) %>%
addPolylines(data=UScounties_shp_selected,
color='green',
group="CountiesSHP",
weight = 1) %>%
addLegend("bottomright", pal = pal_Total,
values = switch(input$Severity,
"All" = MapOutputDataFinal$Total_Exp,
"Fatal and Injury" = MapOutputDataFinal$FI_Exp),
title = paste0(input$Severity, " Crashes")
)
if (nrow(as.data.frame(MapOutputDataFinal)) > 0){
MapOutputDataFinalDTtemp <- cbind(input$StateInput,input$CountyInput,
select(as.data.frame(MapOutputDataFinal),
c('TMC',
#'ADMIN_LE_1',
#'ADMIN_LE_2',
'ROAD_NUMBE',
'Facility',
'DISTANCE',
'Population',
'Household',
'AADT',
'NO_LANES',
'SPD_LIMT',
'OptSpd',
#'SpdFF',
'SpdVarr1',
'Total_Exp',
'FI_Exp'
)
)
)
MapOutputDataFinalDTtemp <- distinct(MapOutputDataFinalDTtemp, TMC, .keep_all = TRUE)
} else {
MapOutputDataFinalDTtemp <- cbind(input$StateInput,
input$CountyInput,
'None',
#'None',
#'None',
'None',
'None',
'None',
'None',
'None',
'None',
'None',
'None',
'None',
'None',
'None',
#'None',
'None'
)
}
MapOutputDataFinalDT <- datatable(MapOutputDataFinalDTtemp,
class = 'cell-border stripe',
colnames = c('State',
'County',
'TMC',
#'State',
#'County',
'Road',
'Facility',
'Segment Length',
'Population',
'Household',
'AADT',
'Number of Lanes',
'Speed Limit',
'Avg. Ope. Speed - Yearly',
#'Freeflow Speed',
'Std. Dev. of Ope. Speed - Hourly',
'Total - Expected',
'Fatal and Injury - Expected'
)
)
output$outputDT = DT::renderDataTable(MapOutputDataFinalDT, options = list(lengthChange = FALSE))
outputDTdowload <- MapOutputDataFinalDTtemp
names(outputDTdowload) <- c('State',
'County',
'TMC',
#'State',
#'County',
'Road',
'Facility',
'Segment Length',
'Population',
'Household',
'AADT',
'Number of Lanes',
'Speed Limit',
'Avg. Ope. Speed - Yearly',
#'Freeflow Speed',
'Std. Dev. of Ope. Speed - Hourly',
'Total - Expected',
'Fatal and Injury - Expected'
)
output$downloadData <- downloadHandler(
#filename = function() {paste("test.csv")},
#filename = function() {gsub(" ","",paste(input$StateInput,"_",input$CountyInput,"_",input$YearInput,".csv"))},
filename = function() {gsub(" ","",paste(input$StateInput,"_",
input$CountyInput,"_",
switch(input$FacilityInput,
"All"= "All",
"Interstate/Freeway/Expressway" = "IntFwayExpway",
"Multilane" = "Multilane",
"Two-lane" = "Twolane"
),
"_",input$YearInput,".csv"))},
content = function(file) {
write.csv(outputDTdowload,file, row.names=FALSE)
})
})
}
shinyApp(ui, server)


This is a test of jsMenus, a JavaScript library for creating menus. Try clicking on the menubar above, or bringing up the context menu (usually by right-clicking).


A Line chart showing the employee sales by department. Since this chart is a copy of a chart found on the Internet it uses the Line chart - though a stacked or grouped Bar chart may represent the data better because the types of furniture aren't really related to each other. There's a grouped Bar chart below this Line chart that uses the same styling and demonstrates this.
There's a grouped Bar chart version of the chart that's shown below that makes the data far easier to interpret (in my opinion).
<script src="RGraph.common.core.js"></script> <script src="RGraph.common.key.js"></script> <script src="RGraph.bar.js"></script> <script src="RGraph.line.js"></script>Put this where you want the chart to show up:
<canvas id="cvs" width="575" height="450"> [No canvas support] </canvas>This is the code that generates the chart:
<script> new RGraph.Line({ id: 'cvs', data: [ [190,165,47,121,30,72], [12,180,10,80,25,75], [42,80,93,25,21,120], [2,42,27,47,43,50] ], options: { shadow: false, tickmarksStyle: null, linewidth: 7, backgroundGridVlines: false, backgroundGridColor: 'gray', colorsBackground: '#222', axes: false, textColor: '#A7A5A6', textSize: 10, textAccessible: false, title: '2009 employee sales by department', titleColor: 'white', titleSize: 24, xaxisLabels: ['Food','Auto','Household','Furniture','Kitchen','Bath'], marginLeft: 50, marginRight: 50, marginTop: 75, marginBottom: 60, key: ['Mary','Tom','Brad','Kate'], keyPosition: 'margin', keyLabelsSize: 14, keyLabelsColor: 'rgb(248,248,248)', keyPositionY: 425, colors: ['#B8202C','#96D1E3','#FA8710','#62648D'] } }).on('beforedraw', function (obj) { RGraph.clear(obj.canvas, '#555557'); }).trace(); </script>
Here's a version of the above Line chart but using a grouped Bar chart instead of a Line chart. Personally I think the Bar chart makes the interpretation of the data easier and makes the intent easier to read.
This is the code that generates the chart:<script> new RGraph.Bar({ id: 'cvs2', data: [ [190,12,42,2], [165,180,80,42], [47,10,93,47], [121,80,25,27], [30,25,21,43], [72,75,120,50] ], options: { grouping: 'grouped', shadow: false, tickmarksStyle: null, linewidth: 7, backgroundGridVlines: false, backgroundGridColor: 'gray', colorsBackground: '#222', axes: false, textColor: '#d7d5d6', textSize: 12 textAccessible: false, title: '2009 employee sales by department', titleColor: 'white', titleSize: 24, xaxisLabels: ['Food','Auto','Household','Furniture','Kitchen','Bath'], marginLeft: 50, marginRight: 50, marginTop: 75, marginBottom: 60, key: ['Mary','Tom','Brad','Kate'], keyPosition: 'margin', keyLabelsSize: 14, keyLabelsColor: 'rgb(248,248,248)', keyPositionY: 425, colors: ['#B8202C','#96D1E3','#FA8710','#62648D'] } }).on('beforedraw', function (obj) { RGraph.clear(obj.canvas, '#555557'); }).wave(); </script>


Catalog as a Service
Health
PreTax Price of Product 1
Post Tax Price of Product 1
Application server smoke test
Pings
Ping!
List system properties
Health
used memory stats in prometheus format
available memory stats in prometheus format
prometheus - Metric and label naming


Pay-off(s) of my little investment of sorts: attending a talk
I feel rewarded for getting up earlier than usual today - Helena Wasserman Eriksson ‘s talk was scheduled for 8.30 AM.
Her talk, on the topic “Invest”, began with questions for the audience. Then: “I want you to think how you have invested in yourself, and the great feeling you had when you did that. Then take 5 minutes to share it with your neighbour.”
If I think about it now, attending her talk was an investment in myself, too. And I think this investment has paid off already - at the talk’s venue, I met people, who not only seemed to share similar interests with me, but also seem to be better than myself at it. For example,
- Eugene Cheng has done photography at weddings, something I haven’t done (yet), but it’s something which Eugene asserts will provide lots of opportunities to develop photographic skills
- Tsuyumi Miwa ‘s name-cards feature her paintings on the reverse side - an idea I can consider if I do start making name-cards for my artistic practice. (Tsuyumi-san’s website: http://heymiwa.com/ )
- I met someone who talked about one’s posture, in relation to pain in one’s knees, while running. Now I am thinking about whether my posture, while I use my laptop, is the best for my body.
Lots of food for thought, to say the least!
This post has appeared in a slightly altered form, on LinkedIn


About Zack
Zack is from PA. And is now a well known oil painter artist. He always names his pieces with a dark sense of emotion like "Walking with Death" or "Last Dreams". Zack Dunn is a one of the strongest and most promising performers on the contemporary dark art scene. The young and dedicated artist from Pennsylvania agreed to chat with us about him and his mesmerising creations. He served our in the military and after coming back, within 3-4 years he got into the gothic painting scene. Ever since then he grew as an artist.


{% extends "base.html" %} {% block body_class %}template-404{% endblock %} {% block content %}
You may be looking for an archived article that no longer exists. If you need further assistance, please contact us at<EMAIL_ADDRESS>or click here to return to the main site. Thanks for reading!


Work Experience
Software Engineer
Jan, 2018 - Present
Working as a Full Stack Developer. Daily activities includes - development & deployment of B2B applications with real-time data handling, integration with payment services, development of APIs and UI Designs!
Web Development
Skilrock Technologies
Growth Hacker
Dec, 2016 - Jan, 2017
Market research and analysis of user shopping patterns. Promotion of products by experimenting different methodologies by analysing the market to boost sales rapidly.
MARKETING
MCaffeine
Ethical Hacker
Jun, 2016 - July, 2016
Did intensive training in the field of cyber security and achieved CISSv3 certification. Performed penetration testing on web and mobile applications and patched vulnerabilities.
Information Security
Cybercure Technologies


Forum
Index
Post
Post editor
Profile
User
Auth
Requests testing page
Files uploading page
phpmyadmin
GitHub


Notebooks
Story: Concerning different Bushmen
Concerning different Bushmen
Title
Concerning different Bushmen
Collection
Summary
Names of various Bushmen and Bushman women, with information regarding them. Partly in Bushman by and partly in English after /han≠kass’o (L VIII.-1. 6078–6081, 4. 6370 rev., note, 11. 6969 rev., note 14. 7278 and 7277 rev., 20. 7749 and 7750, 7750 rev., 7748 rev. and 7749 rev., 27. 8437, 8435 rev. and 8436 rev., 31. 8744 rev., 8772 rev., 32. 8808 rev.). Includes the story of !kui-!kaxu (or Pained Chest) who was so named because he married a woman called Tuain-an who 'chased him with fire' and did not want him when they got married (7750v).
Comments
1) This story is found in Book VIII-20
Contributors
|han≠kass'o (Klein Jantje) (VIII)
Date
October 1878
Categories
Keywords
names (of |xam) , names (Oud Bartman) , names (Willem, !kui-!kaxu, !kauru-ttin) , names (|uain-an) , names (|kuken-kkumm) , names ('youthful') , names ('grown-up') , names (of |xam known by |han≠kass'o) , names (accounting for the giving of !kui-!kaxu's) , marriage (of |xam) , marriage (and the story of !kui-!kaxu or 'Pained Chest') , marriage (a woman 'chased him with fire') , marriage (the heart and the 'pained chest') , black men ('Kafirs') , black men (the names of |xam killed by) , black men (who killed !kauru-ttin) , |han≠kass'o (his personal history) , |han≠kass'o (and !kauru-ttin) , |han≠kass'o (the names of and information about people he knew) , death (of |xam) , death (|xam killed by black men) , death (of a |xam called !kauru-ttin) , |xam (concerning different individuals) , |xam (names of people known by |han≠kass'o) , fire (a woman 'chases' a man with) , fire (and the story of !kui-!kaxu or 'Pained Chest')
Story Pages
7750-7750v


Newsify
Covid-19 Cases in India
Confirmed Cases
{{ cases }}
Active
{{ active }}
Recovered
{{ recovered }}
Total Deaths
{{ deaths }}


| 1 | package fr.sii.ogham.testing.assertion; | |
| 2 | ||
| 3 | import org.hamcrest.Matcher; | |
| 4 | import org.w3c.dom.Document; | |
| 5 | ||
| 6 | import fr.sii.ogham.testing.assertion.hamcrest.IdenticalHtmlMatcher; | |
| 7 | import fr.sii.ogham.testing.assertion.hamcrest.SimilarHtmlMatcher; | |
| 8 | ||
| 9 | /** | |
| 10 | * Contains additional matchers used in tests: | |
| 11 | *
 | |
| 12 | *
HTML matchers to check if HTML contents are either identical or | |
| 13 | * semantically similar
 | |
| 14 | *
 | |
| 15 | * | |
| 16 | * @author Aurélien Baudet | |
| 17 | * | |
| 18 | */ | |
| 19 | public final class OghamMatchers { | |
| 20 | ||
| 21 | /** | |
| 22 | * Check if the HTML is similar to the expected. The HTML strings are parsed | |
| 23 | * into {@link Document}s. Two documents are considered to be "similar" if | |
| 24 | * they contain the same elements and attributes regardless of order. | |
| 25 | * | |
| 26 | * @param expectedHtml | |
| 27 | * the expected HTML | |
| 28 | * @return the matcher that will check if HTML is identical to expected HTML | |
| 29 | */ | |
| 30 | public static Matcher<String> isSimilarHtml(String expectedHtml) { | |
| 31 |
1
1. isSimilarHtml : replaced return value with null for fr/sii/ogham/testing/assertion/OghamMatchers::isSimilarHtml → NO_COVERAGE |
return new SimilarHtmlMatcher(expectedHtml); |
| 32 | } | |
| 33 | ||
| 34 | /** | |
| 35 | * Check if the HTML is identical to the expected. The HTML strings are | |
| 36 | * parsed into {@link Document}s. Two documents are considered to be | |
| 37 | * "identical" if they contain the same elements and attributes in the same | |
| 38 | * order. | |
| 39 | * | |
| 40 | * @param expectedHtml | |
| 41 | * the expected HTML | |
| 42 | * @return the matcher that will check if HTML is identical to expected HTML | |
| 43 | */ | |
| 44 | public static Matcher<String> isIdenticalHtml(String expectedHtml) { | |
| 45 |
1
1. isIdenticalHtml : replaced return value with null for fr/sii/ogham/testing/assertion/OghamMatchers::isIdenticalHtml → NO_COVERAGE |
return new IdenticalHtmlMatcher(expectedHtml); |
| 46 | } | |
| 47 | ||
| 48 | private OghamMatchers() { | |
| 49 | super(); | |
| 50 | } | |
| 51 | } | |
Mutations | ||
| 31 |
1.1 |
|
| 45 |
1.1 |


Understanding Typescript Course
Basic & Basic Types
number
All number (integers, float)
1
5.3
-10
string
All text values
'Hi'
"Hi"
`Hi`
boolean
true or false only
true
false
object
Any JS object
{ age: 30 }
Can be nested
{ age: number; name: { firstName: string; lastName: string; }
Array
can flexible
any[]
or strict
string[]
Tuple
An array with fixed types and length to have
Enum
Enumerated specific identifiers
can have number or string as values
enum Role { ADMIN, MANAGER }
any
Most flexible type
Union
const id: string | number;
Literal Types
const result: 'ok' | 'fail';
Type Aliases / Custom Types
type Combinable = string | number;
Function Return Types & "void"
function printResult(num: number): void { console.log('Result is: ' + num); }
Functions as Types
let combineValues: () => number;
Function Types & Callbacks
function addHandler(n1: number, n2: number), cb: (num: number) => void) { const result = n1 + n2; cb(result); }
unknown
more restrictive than "any"
a "string" variable accepts receiving a "any" variable value but not an "unknown" variable value
never
return type to indicate it never returns a value
Typescript Compiler and Configuration
Understanding Typescript Course//mm2html.xsl FreeplaneVersion:freeplane 1.8.0


|
2D Platformer
|
#include <KinematicBlock.h>
Public Member Functions | |
| KinematicBlock (b2World *world, const sf::Vector2f &position, const sf::Vector2f &size, float range, char VorH, CollisionFilter type, sf::Texture *texture) | |
| Default Constructor. More... | |
| void | draw (sf::RenderTarget &target, sf::RenderStates states) const |
| Update rendering infomation. | |
| void | update () |
| Update rendering infomation. | |
| void | updateTexture (sf::Texture *texture) |
| updateTexture function | |
| void | onAction () |
| On action function. | |
| Public Member Functions inherited from PhysicalThing | |
| void | destroyBody () |
| void | setUserData (void *data) |
Public Attributes | |
| sf::RectangleShape | Kinematic_BodySensor |
| Kinematic Sensor Body. | |
Private Attributes | |
| sf::RectangleShape | Kinematic_Body |
| Kinematic Body. | |
| b2PolygonShape | RectangleSensor |
| Rectangle Sensor Polygon Shape. | |
| bool | right =true |
| movement variable | |
| char | VorH |
| Vertical or horizontal movement variable. | |
| sf::Vector2f | firstposition |
| firstposition variable | |
| sf::Vector2f | lastposition |
| lastposition variable | |
| float | orientation |
| orientation variable | |
| float | range |
| range variable | |
Additional Inherited Members | |
| Public Types inherited from PhysicalThing | |
| enum | CollisionFilter { Player_SENSOR = 1, GREENBOX = 2, Enemy_SENSOR = 4, Colectables = 8, Enemy = 16, PLAYER = 32, BULLET = 64, RADAR_SENSOR = 128, ENEMY_BULLET = 256 } |
| function for destroying a body | |
| Protected Attributes inherited from PhysicalThing | |
| b2Body * | m_body = nullptr |
| Box2D body, no need to delete this as BOX2D will look after it. | |
| float | mk_fDensity = 1.0f |
| Density of the material - used to give mass. | |
| float | mk_fFriction = 0.4f |
| Friction - I guess this is only friction from movement, not when static. | |
| float | mk_fRestitution = 0.4f |
| Restitution - bouncyness of stuff. | |
\KinematicBlock KinematicBlock \The KinematicBlock class creates kinematic blocks
| KinematicBlock::KinematicBlock | ( | b2World * | world, |
| const sf::Vector2f & | position, | ||
| const sf::Vector2f & | size, | ||
| float | range, | ||
| char | VorH, | ||
| CollisionFilter | type, | ||
| sf::Texture * | texture | ||
| ) |
Default Constructor.
A constructor creating an object and determining its properties


Practical Magic A Review by Allan Woodward<EMAIL_ADDRESS>It's difficult to adequately review a film like Practical Magic, an adaptation of author Alice Hoffman's bestselling novel. Not because of its excesses of brilliance or lack thereof, but because it's so many things at once, both good and bad, that it's almost impossible to give justice to the film without separating each portion of it into distinct areas of critique.
Billed as a romantic comedy, or perhaps a late-'90s version of The Witches of Eastwick, this film is neither. While it has elements of romantic comedy, Practical Magic, which stars Sandra Bullock and Nicole Kidman as sisters who are also real witches, is also fairly equal parts drama, tearjerker and horror film. It begins with a near-hanging and a voice-over which provides the set-up for what follows: the Owens clan of women (witches all) are cursed never to love. Ever. The men they love will always die.
Sandra Bullock is the undisputed star of this picture and it's nice to see a return to the sort of work she did before she became America's sweetheart in movies like While You Were Sleeping. Her character, Sally Owens, is the reluctant one in a close-knit family unit of witches which includes Stockard Channing and Dianne Wiest (in great supporting roles - you know these women from the weird parts of your own family tree), yearning for a normal life with a husband and a family. She is more closed than cute, more wounded than spunky. When the seemingly inevitable tragedy strikes, she plays it well. As the film progresses, she brings weight to her role and sometimes real emotion, even when events turn increasingly disjointed.
And they do become pretty strange. Nicole Kidman is the wild-one sister, passing from man to man in order to avoid the curse of never having love by never seeking love. As usual, Kidman does a pro's job sinking into the character, but it's disappointing that she didn't get a chance to take on the stronger role of Sally, since she more than has the skills to play women who reach down inside themselves to find an iron will when the need arises. Just watch Dead Calm to see what I mean.
Anyway, Kidman gets mixed up with a hard-drinking Romanian Louis L'Amour fan that she both desires and fears. It's here that Practical Magic detours into a fairly harrowing depiction of abuse and, ultimately, murder. What spins out from there is a bizarre, unbalanced mix of The Exorcist, Jack the Bear and, lastly, Sleepless in Seattle (in the form of Aidan Quinn, who's becoming better-looking and a better actor as he ages).
Ultimately there are too many threads to deal with adequately. The aforementioned Aidan Quinn is a policeman from Arizona, who may also be The One for Sally, investigating the Romanian cowboy, an evil spirit threatens to tear the family apart and maybe kill Gillian and, if that's not enough, Sally has a hard time with her relationship with her two daughters. All of this, jostling for screen time. Sometimes the transitions aren't pretty.
Despite all of its problems, Practical Magic isn't bad. Director Griffin Dunne (Addicted to Love) delivers a visually lush and solidly-managed piece of work. His cast is excellent and they work each scene with verve. Alice Hoffman, who also wrote the first draft of the script, brings across her theme of women's empowerment through blood- and symbolic-sisterhood. However, this same script is unable to maintain a consistent mood due to the proliferation of subplots.
See the film if you like. It's a nice way to spend a couple hours. And the worst that can be said of Practical Magic is that it's a noble failure for having tried to do too much.
Grade: C
Just Rent It This Week: The Replacement Killers, Starring Chow Yun-Fat and Mira Sorvino. Grade: A.
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


This page will self-destruct if closed. This only applys to Gecko 1.9 based browsers (eg. Firefox 3, not Firefox 3.1) running on Windows with iTunes installed.


There exist infinitely many prime numbers.
| \[ a^{p-1} \equiv 1\ \text{mod}\ p \] |
| \[ a^{p-1} \equiv 1\ \text{mod}\ p \] |
| \[\begin{aligned} a &= b + c \\ c &= d + e \\ a &= b + d + e \end{aligned}\] |
This — \(\ce{ 2H2 + O2 → 2H2O }\) — happens a lot.
| \[\ce{2Fe2O3 + 3C → 4Fe + 3CO2}\] | (1) |
| \[ (a^2 + b^2)^2 = (a^2)^2 + 2a^2b^2 + (b^2)^2 \] |
He read an article in The Washington Post
Let’s smelt some iron!
| \[\ce{2Fe2O3 + 3C → 4Fe + 3CO2}\] | (1) |


Algorithmi (web version) version 1
Online Fluxogram Editor and Executor
Project Name:
Language:
EN
PT
(Developed in)


WITNESS LIST
Finance
October 26, 2016 1:00 PM
Child Protective Services
ON:
Blackstone, Kristene Associate Commissioner for Child Protective Services (also
providing written testimony) (Dept. of Family & Protective Services), Austin, TX
Giardino, Timothy Director of Workforce Development (also providing written testimony)
(Dept. of Family & Protective Services), Austin, TX
Lindsey, Julie Budget Analyst (also providing written testimony) (Legislative Budget
Board)
Parks, Ursula Director, LBB (Legislative Budget Board)
Stephen, John Consultant (also providing written testimony) (The Stephen Group),
Manchester, NH
Subia, Lisa Chief Financial Officer (also providing written testimony) (Dept. of Family &
Protective Services), Austin
Tripp, Amy Senior Policy Analyst (Sunset Advisory Commission)
Whitman, H.L. "Hank" Commissioner (also providing written testimony) (Dept. of Family
& Protective Services), Austin, TX
Woodruff, Trevor General Counsel (also providing written testimony) (Dept. of Family &
Protective Services), Austin, TX
Fiscal Years 2016 - 2017 Supplemental Costs
ON:
Parks, Ursula Director, LBB (Legislative Budget Board)


DS Class
All Ember Data classes, methods and functions are defined inside of this namespace.
Item Index
Properties
- VERSION static
Methods
attr
-
type
-
options
DS.attr
defines an attribute on a DS.Model.
By default, attributes are passed through as-is, however you can specify an
optional type to have the value automatically transformed.
Ember Data ships with four basic transform types: string
, number
,
boolean
and date
. You can define your own transforms by subclassing
DS.Transform.
Note that you cannot use attr
to define an attribute of id
.
DS.attr
takes an optional hash as a second parameter, currently
supported options are:
defaultValue
: Pass a string or a function to be called to set the attribute to a default value if none is supplied.
Example
import DS from 'ember-data';
export default DS.Model.extend({
username: DS.attr('string'),
email: DS.attr('string'),
verified: DS.attr('boolean', { defaultValue: false })
});
Default value can also be a function. This is useful it you want to return a new object for each attribute.
import DS from 'ember-data';
export default DS.Model.extend({
username: DS.attr('string'),
email: DS.attr('string'),
settings: DS.attr({
defaultValue() {
return {};
}
})
});
The options
hash is passed as second argument to a transforms'
serialize
and deserialize
method. This allows to configure a
transformation and adapt the corresponding value, based on the config:
import DS from 'ember-data';
export default DS.Model.extend({
text: DS.attr('text', {
uppercase: true
})
});
import DS from 'ember-data';
export default DS.Transform.extend({
serialize(value, options) {
if (options.uppercase) {
return value.toUpperCase();
}
return value;
},
deserialize(value) {
return value;
}
})
Parameters:
-
type
String | Objectthe attribute type
-
options
Objecta hash of options
Returns:
belongsTo
-
modelName
-
options
DS.belongsTo
is used to define One-To-One and One-To-Many
relationships on a DS.Model.
DS.belongsTo
takes an optional hash as a second parameter, currently
supported options are:
async
: A boolean value used to explicitly declare this to be an async relationship.inverse
: A string used to identify the inverse property on a related model in a One-To-Many relationship. See Explicit Inverses
One-To-One
To declare a one-to-one relationship between two models, use
DS.belongsTo
:
import DS from 'ember-data';
export default DS.Model.extend({
profile: DS.belongsTo('profile')
});
import DS from 'ember-data';
export default DS.Model.extend({
user: DS.belongsTo('user')
});
One-To-Many
To declare a one-to-many relationship between two models, use
DS.belongsTo
in combination with DS.hasMany
, like this:
import DS from 'ember-data';
export default DS.Model.extend({
comments: DS.hasMany('comment')
});
import DS from 'ember-data';
export default DS.Model.extend({
post: DS.belongsTo('post')
});
You can avoid passing a string as the first parameter. In that case Ember Data will infer the type from the key name.
import DS from 'ember-data';
export default DS.Model.extend({
post: DS.belongsTo()
});
will lookup for a Post type.
Parameters:
-
modelName
String(optional) type of the relationship
-
options
Object(optional) a hash of options
Returns:
relationship
errorsArrayToHash
-
errors
Convert an array of errors in JSON-API format into an object.
import DS from 'ember-data';
const { errorsArrayToHash } = DS;
let errorsArray = [
{
title: 'Invalid Attribute',
detail: 'Must be present',
source: { pointer: '/data/attributes/name' }
},
{
title: 'Invalid Attribute',
detail: 'Must be present',
source: { pointer: '/data/attributes/age' }
},
{
title: 'Invalid Attribute',
detail: 'Must be a number',
source: { pointer: '/data/attributes/age' }
}
];
let errors = errorsArrayToHash(errorsArray);
// {
// "name": ["Must be present"],
// "age": ["Must be present", "must be a number"]
// }
Parameters:
-
errors
Arrayarray of errors in JSON-API format
Returns:
errorsHashToArray
-
errors
Convert an hash of errors into an array with errors in JSON-API format.
import DS from 'ember-data';
const { errorsHashToArray } = DS;
let errors = {
base: 'Invalid attributes on saving this record',
name: 'Must be present',
age: ['Must be present', 'Must be a number']
};
let errorsArray = errorsHashToArray(errors);
// [
// {
// title: "Invalid Document",
// detail: "Invalid attributes on saving this record",
// source: { pointer: "/data" }
// },
// {
// title: "Invalid Attribute",
// detail: "Must be present",
// source: { pointer: "/data/attributes/name" }
// },
// {
// title: "Invalid Attribute",
// detail: "Must be present",
// source: { pointer: "/data/attributes/age" }
// },
// {
// title: "Invalid Attribute",
// detail: "Must be a number",
// source: { pointer: "/data/attributes/age" }
// }
// ]
Parameters:
-
errors
Objecthash with errors as properties
Returns:
array of errors in JSON-API format
hasMany
-
type
-
options
DS.hasMany
is used to define One-To-Many and Many-To-Many
relationships on a DS.Model.
DS.hasMany
takes an optional hash as a second parameter, currently
supported options are:
async
: A boolean value used to explicitly declare this to be an async relationship.inverse
: A string used to identify the inverse property on a related model.
One-To-Many
To declare a one-to-many relationship between two models, use
DS.belongsTo
in combination with DS.hasMany
, like this:
import DS from 'ember-data';
export default DS.Model.extend({
comments: DS.hasMany('comment')
});
import DS from 'ember-data';
export default DS.Model.extend({
post: DS.belongsTo('post')
});
Many-To-Many
To declare a many-to-many relationship between two models, use
DS.hasMany
:
import DS from 'ember-data';
export default DS.Model.extend({
tags: DS.hasMany('tag')
});
import DS from 'ember-data';
export default DS.Model.extend({
posts: DS.hasMany('post')
});
You can avoid passing a string as the first parameter. In that case Ember Data will infer the type from the singularized key name.
import DS from 'ember-data';
export default DS.Model.extend({
tags: DS.hasMany()
});
will lookup for a Tag type.
Explicit Inverses
Ember Data will do its best to discover which relationships map to
one another. In the one-to-many code above, for example, Ember Data
can figure out that changing the comments
relationship should update
the post
relationship on the inverse because post is the only
relationship to that model.
However, sometimes you may have multiple belongsTo
/hasMany
for the
same type. You can specify which property on the related model is
the inverse using DS.hasMany
's inverse
option:
import DS from 'ember-data';
export default DS.Model.extend({
onePost: DS.belongsTo('post'),
twoPost: DS.belongsTo('post'),
redPost: DS.belongsTo('post'),
bluePost: DS.belongsTo('post')
});
import DS from 'ember-data';
export default DS.Model.extend({
comments: DS.hasMany('comment', {
inverse: 'redPost'
})
});
You can also specify an inverse on a belongsTo
, which works how
you'd expect.
Parameters:
-
type
String(optional) type of the relationship
-
options
Object(optional) a hash of options
Returns:
relationship
normalizeModelName
-
modelName
This method normalizes a modelName into the format Ember Data uses internally.
Parameters:
-
modelName
String
Returns:
normalizedModelName


Keyboard shortcut management.
- Source:
-
- xtt.js, line 2687
Methods
-
<static> disable()
-
Stop listening for keyboard shortcuts.
- Source:
-
- xtt.js, line 2696
-
<static> enable()
-
Start listening for keyboard shortcuts.
- Source:
-
- xtt.js, line 2705


public class PathPlannerAutoEvent extends AutoEvent
| Modifier and Type | Field and Description |
|---|---|
MecanumPathPlanner |
path |
childEvents, isRunning, localUpdateCount
| Constructor and Description |
|---|
PathPlannerAutoEvent(double[][] waypoints_in,
double timeAllowed_in,
DriveTrainWheelSpeedPI leftFrontMotor_in,
DriveTrainWheelSpeedPI rightFrontMotor_in,
DriveTrainWheelSpeedPI leftRearMotor_in,
DriveTrainWheelSpeedPI rightRearMotor_in)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
isDone()
Returns true once we've run the whole path
|
boolean |
isTriggered()
Always returns true, since the routine should run as soon as it comes up in the list.
|
void |
userForceStop()
Force both sides of the drivetrain to zero
|
void |
userStart()
perform all actions needed at the start of the event
|
void |
userUpdate()
On the first loop, calculates velocities needed to take the path specified.
|
addChildEvent, forceStopAllChildren
public MecanumPathPlanner path
public PathPlannerAutoEvent(double[][] waypoints_in, double timeAllowed_in, DriveTrainWheelSpeedPI leftFrontMotor_in, DriveTrainWheelSpeedPI rightFrontMotor_in, DriveTrainWheelSpeedPI leftRearMotor_in, DriveTrainWheelSpeedPI rightRearMotor_in)
waypoints_in
- Set of x/y points which define the path the robot should take.timeAllowed_in
- Number of seconds the path traversal should take. Must be long enough
to allow the path planner to output realistic speeds.leftFrontMotor_in
- Reference to the PID which controls the left front wheel of the drivetrain.
Presumes the .set() method accepts units of ft/sec.rightFrontMotor_inReference
- to the PID which controls the right front wheel of the drivetrain.
Presumes the .set() method accepts units of ft/sec.leftRearMotor_in
- Reference to the PID which controls the left rear wheel of the drivetrain.
Presumes the .set() method accepts units of ft/sec.rightRearMotor_in
- Reference to the PID which controls the right rear wheel of the drivetrain.
Presumes the .set() method accepts units of ft/sec.public void userUpdate()
userUpdate
in class AutoEvent
public void userForceStop()
userForceStop
in class AutoEvent
public boolean isTriggered()
isTriggered
in class AutoEvent
public boolean isDone()


+++ title = "Toffee Apple for Semana Santa" slug = "toffee-apple-for-semana-santa" date = 2007-04-08T13:00:00+10:00 tags = ["christianity", "tasty", "crazy-consumptions"] locations = ["peru/ayacucho"] draft = false summary = """
They were selling these at every street corner when I arrived in Ayacucho. Not being a Christian, I've actually never had a toffee apple before, although I know it's an Easter tradition in Australia as well. My verdict: very sweet, very hard on the outside, and very sticky; but real tasty, and quite fun to devour.
""" +++They were selling these at every street corner when I arrived in Ayacucho. Not being a Christian, I've actually never had a toffee apple before, although I know it's an Easter tradition in Australia as well. My verdict: very sweet, very hard on the outside, and very sticky; but real tasty, and quite fun to devour.
{{< galleryphoto "2007-04-08-13-00-00--mmmm-toffee-apple.jpg" >}}


Expression object for the explicit symmetry declaration of dense matrices.The DMatDeclSymExpr class represents the compile time expression for the explicit symmetry declaration of a dense matrix.
More...
#include <DMatDeclSymExpr.h>
Inherits blaze::DeclSymExpr< DenseMatrix< DMatDeclSymExpr< MT, SO >, SO > >, and blaze::Declaration< MT >.
|
| enum | : bool { useAssign = RequiresEvaluation<MT>::value
} |
| | Compilation switch for the serial evaluation strategy of the symmetry declaration expression. More...
|
| |
|
using | RT = ResultType_< MT > |
| | Result type of the dense matrix expression.
|
| |
|
|
Operand | dm_ |
| | Dense matrix of the declsym expression.
|
| |
template<typename MT, bool SO>
class blaze::DMatDeclSymExpr< MT, SO >
Expression object for the explicit symmetry declaration of dense matrices.
The DMatDeclSymExpr class represents the compile time expression for the explicit symmetry declaration of a dense matrix.
◆ anonymous enum
template<typename MT, bool SO>
Compilation switch for the serial evaluation strategy of the symmetry declaration expression.
The useAssign compile time constant expression represents a compilation switch for the serial evaluation strategy of the symmetry declaration expression. In case the given dense matrix expression of type MT requires an intermediate evaluation, useAssign will be set to 1 and the symmetry declaration expression will be evaluated via the assign function family. Otherwise useAssign will be set to 0 and the expression will be evaluated via the subscript operator.
◆ DMatDeclSymExpr()
template<typename MT, bool SO>
Constructor for the DMatDeclSymExpr class.
- Parameters
-
| dm | The dense matrix operand of the declsym expression. |
◆ at()
template<typename MT, bool SO>
Checked access to the matrix elements.
- Parameters
-
| i | Access index for the row. The index has to be in the range . |
| j | Access index for the column. The index has to be in the range . |
- Returns
- The resulting value.
- Exceptions
-
| std::out_of_range | Invalid matrix access index. |
◆ begin()
template<typename MT, bool SO>
Returns an iterator to the first non-zero element of row/column i.
- Parameters
-
- Returns
- Iterator to the first non-zero element of row/column i.
◆ canAlias()
template<typename MT, bool SO>
template<typename T >
Returns whether the expression can alias with the given address alias.
- Parameters
-
| alias | The alias to be checked. |
- Returns
- true in case the expression can alias, false otherwise.
◆ canSMPAssign()
template<typename MT, bool SO>
Returns whether the expression can be used in SMP assignments.
- Returns
- true in case the expression can be used in SMP assignments, false if not.
◆ columns()
template<typename MT, bool SO>
Returns the current number of columns of the matrix.
- Returns
- The number of columns of the matrix.
◆ data()
template<typename MT, bool SO>
Low-level data access to the matrix elements.
- Returns
- Pointer to the internal element storage.
◆ end()
template<typename MT, bool SO>
Returns an iterator just past the last non-zero element of row/column i.
- Parameters
-
- Returns
- Iterator just past the last non-zero element of row/column i.
◆ isAliased()
template<typename MT, bool SO>
template<typename T >
Returns whether the expression is aliased with the given address alias.
- Parameters
-
| alias | The alias to be checked. |
- Returns
- true in case an alias effect is detected, false otherwise.
◆ isAligned()
template<typename MT, bool SO>
Returns whether the operands of the expression are properly aligned in memory.
- Returns
- true in case the operands are aligned, false if not.
◆ load()
template<typename MT, bool SO>
Access to the SIMD elements of the matrix.
- Parameters
-
| i | Access index for the row. The index has to be in the range . |
| j | Access index for the column. The index has to be in the range . |
- Returns
- Reference to the accessed values.
◆ operand()
template<typename MT, bool SO>
Returns the dense matrix operand.
- Returns
- The dense matrix operand.
◆ operator()()
template<typename MT, bool SO>
2D-access to the matrix elements.
- Parameters
-
| i | Access index for the row. The index has to be in the range . |
| j | Access index for the column. The index has to be in the range . |
- Returns
- The resulting value.
◆ operator~() [1/2]
template<typename MT, bool SO>
Conversion operator for non-constant matrices.
- Returns
- Reference of the actual type of the matrix.
◆ operator~() [2/2]
template<typename MT, bool SO>
Conversion operator for constant matrices.
- Returns
- Constant reference of the actual type of the matrix.
◆ rows()
template<typename MT, bool SO>
Returns the current number of rows of the matrix.
- Returns
- The number of rows of the matrix.
The documentation for this class was generated from the following file:


| Price | Quantity | Orders |
|---|
| Orders | Quantity | Price |
|---|
Get notified when an item reaches a price. Selecting 'Buy' will place a watch on the selected item's buy price. Likewise, 'Sell' will place a watch on the sell price. When your watch reaches the threshold price you typed in, you will receive an email notification and your watch will be deleted. Watches older than a week will also be automatically deleted. There is a maximum of 3 active watches per email so be careful when you're creating one!


Kannur is a coastal city in the south Indian state of Kerala. It was once an ancient trading port. Enduring monuments such as 16th-century St. Angelo Fort, once occupied by European colonial forces, show the city’s significant role in the spice trade. Housed in a former palace, the Arakkal Museum highlights Kerala's one Muslim royal family. The palm-fringed sands of Payyambalam Beach run along Kannur’s western shore
Kannur was an important trading centre in the 12th century, with active business connections with Persia and Arabia. It served as the British military headquarters on India's west coast until 1887. The modern town is referred to as Kannur Town. Kannur, as a district and surrounding areas, were mostly ruled by the famous Kolathiri Rajas (Kings). When the state of Kerala was formed the district took the name Kannur since the administrative offices were established here.
Palakkayam Thattu is one of the alluring places to visit in Kannur near the Western Ghats because of the verdant greenery and dizzying height of about 3350 feet above the sea level. It also happens to be one of the most visited hill stations in the state of Kerala. Populated by dense forests and several hillocks, the quaint hamlet is a favoured destination for avid trekkers.
The Payyambalam Beach is considered as one of the unspoiled beaches in Kerala, adorned with golden sand and foamy white waters of the Arabian Sea. With its peaceful and inviting aura, the Payyambalam beach is an ideal destination for visitors to spend a long holiday.
Perched at a height of 4500 meters above sea level, this bewitching hill station is located about 65 kms from Kannur and is one of the most amazing places to visit in Kannur. Adrenaline rush seekers will find a haven here – the trek to the village is 6 kms and enlivens up the senses.


There are many variations of passages of Lorem Ipsum availablethe majority have suffered alteration in some form slightlyyou need to be sure there isn't anything embarrassing hiddengenerators on the Internet tend to repeat predefined chunks as necessarymaking this the first true generator on the Internet It uses a dictionaryAbility to solve problems creatively and effectivelycombined with a handful of model sentence structuresstandard chunk of Lorem Ipsum used since the 1500s is reproduced
There are many variations of passages of Lorem Ipsum availablethe majority have suffered alteration in some form slightlyyou need to be sure there isn't anything embarrassing hiddengenerators on the Internet tend to repeat predefined chunks as necessarymaking this the first true generator on the Internet It uses a dictionaryAbility to solve problems creatively and effectivelycombined with a handful of model sentence structuresstandard chunk of Lorem Ipsum used since the 1500s is reproduced


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.nhn.android.maps.NMapProjection
public class NMapProjection
A Projection serves to translate between the coordinate system of x/y on-screen pixel coordinates and that of latitude/longitude points on the surface of the earth. You obtain a Projection from NMapView.getMapProjection().
| Method Summary | |
|---|---|
NGeoPoint |
fromPixels(int px,
int py)
Create a new NGeoPoint from pixel coordinates relative to the top-left of the NMapView that provided this NMapProjection. |
com.nhn.android.maps.maplib.NGPoint |
fromPixelsInUtmk(int px,
int py)
Create a new NGPoint from pixel coordinates relative to the top-left of the NMapView that provided this NMapProjection. |
int |
getLatitudeSpan()
The current latitude span (from the top edge to the bottom edge of the map view) in decimal degrees multiplied by one million. |
int |
getLongitudeSpan()
The current longitude span (from the left edge to the right edge of the map view) in decimal degrees multiplied by one million. |
Rect |
getScreenBoundsE6()
Get bounds of current map view in GRS coordinates multiplied by E6. |
Rect |
getScreenBoundsE6(double areaRatio)
Get bounds of current map view in GRS coordinates multiplied by areaRatio with respect to 1.0 |
com.nhn.android.maps.maplib.NGRect |
getScreenBoundsInUtmk()
|
com.nhn.android.maps.maplib.NGSize |
getScreenBoundsSpan()
|
com.nhn.android.maps.maplib.NGRect |
getViewPort()
|
boolean |
isMapHD()
|
boolean |
isProjectionScaled()
|
float |
metersToPixels(float meters)
Converts a distance in meters to one in horizontal pixels at the current zoom level and map center. |
float |
metersToPixels(NGeoPoint center,
float meters)
Converts a distance in meters to one in horizontal pixels at the current zoom level and the specified location. |
boolean |
setScalingFactor(float scalingFactor)
Set scaling factor between NMapView and map view port. |
Rect |
toBoundsUTMK(Rect boundsE6,
Rect out)
Convert bounds in GRS coordinates multiplied by E6 to bounds in UTMK coordinates. |
Point |
toPixels(NGeoPoint in,
Point out)
Converts the given NGeoPoint to screen pixel coordinates, relative to the top-left of the NMapView that provided this NMapProjection. |
Point |
toPixels(com.nhn.android.maps.maplib.NGPoint utmk,
Point out)
|
com.nhn.android.maps.maplib.NGPoint |
toSizeInScreen(com.nhn.android.maps.maplib.NGPoint delta)
|
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
|---|
public boolean isMapHD()
public boolean setScalingFactor(float scalingFactor)
scalingFactor
- set it greater than 1.0 to magnify tile images.
public boolean isProjectionScaled()
public com.nhn.android.maps.maplib.NGPoint toSizeInScreen(com.nhn.android.maps.maplib.NGPoint delta)
public com.nhn.android.maps.maplib.NGRect getViewPort()
public NGeoPoint fromPixels(int px, int py)
public com.nhn.android.maps.maplib.NGPoint fromPixelsInUtmk(int px, int py)
public float metersToPixels(float meters)
public float metersToPixels(NGeoPoint center, float meters)
public Point toPixels(NGeoPoint in, Point out)
public Point toPixels(com.nhn.android.maps.maplib.NGPoint utmk, Point out)
public Rect toBoundsUTMK(Rect boundsE6, Rect out)
public Rect getScreenBoundsE6()
public Rect getScreenBoundsE6(double areaRatio)
areaRatio
-
public int getLatitudeSpan()
public int getLongitudeSpan()
public com.nhn.android.maps.maplib.NGSize getScreenBoundsSpan()
public com.nhn.android.maps.maplib.NGRect getScreenBoundsInUtmk()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Beginner
Intermediate
Expert
00
:
00
Minesweeper
Click
a box to reveal how many bombs neighbor it
Right Click
to flag


Fail Over Warning: {{warning | formatFailoverWarnings}}
Warning: Rebalance is not available until data loading is completed!
A server was automatically failed over.


Collector Yumi:
So it really was Dr. Chaos' lab. Fascinating...
It's good that you've made friends with Wendy. We may need to ask her more questions in the future.
Ask about Dr. Chaos.


{# This template can be used to give a notice to your users. It will appear on the home page (for members). #} {#


Plain Text design
Field Settings
Language:
English
Text (?)
Horizontal Align
left
center
right
Vertical Align
top
middle
bottom
Fonts
Font
Size
9
10
11
12
13
14
15
16
17
18
20
22
24
28
32
Bold
Italic
Underline
Colors
Text
Form 1
delete this widget
Panel 1
delete this widget
Panel 2
delete this widget
Panel 3