|
|
The Fury of Dracula
The Rules
|
|
Introduction
This is a simplified version of the game
"The Fury of Dracula".
The game involves the arch-vampire Dracula, four intrepid
vampire Hunters and the splendid cities of Victorian Europe.
The aim for the hunters is to kill Dracula before he releases
hordes of vampires over Europe.
The aim for Dracula is to evade the hunters long enough to
realise his Grand Plan (to release hordes of vampires over Europe).
How the Game works
Overview
Dracula and the Hunters move around the cities and seas of
Europe. Every time a Hunter moves into the same city as
Dracula they have an encounter and
Dracula loses some blood. The catch is Dracula knows
where the hunters are but the Hunters do not know where Dracula is.
But he does leave clues... for if a Hunter enters a city where
Dracula has been in any of his last 6 turns then the Hunter discovers
traces of his passing and can deduce precisely when he was
there. For this reason Dracula's last 6 moves are
called his trail.
The Hunters work as a team, spreading out and hunting for
Dracula. At the start of the game they have a score of
366 points, every turn that passes the score slowly
diminishes.
The fine print
Dracula's primary goal is to evade the Hunters, and thus avoid
being staked.
However, Dracula also leaves nasty surprises (traps and
immature Vampires) behind him in every city he visits.
Traps are slightly harmful things like wolves
or mysterious sugar bowls or sinister pot plants.
Sometimes traps are called "minions" (not be confused with
these).
When a Hunter encounters a Trap the Hunter loses a few life points.
Every 13 rounds Dracula leaves behind a new immature Vampire, sleeping
away. After 6 rounds the Vampire matures; it wakes up and flies
away to wreak havoc and the game score is reduced by 13 points.
However, if any Hunter can get to the city where the Vampire is
sleeping before it matures, they can stake it and save the points
(and make the world a nicer place in which to live).
Note that Dracula places a Trap/Vampire as soon as he enters
a city (i.e. as his action (see below)), not when he leaves
the city.
If a Hunter loses all their life points they are magically
transported to the Hospital St Joseph and St Mary and next turn
they are back to full health. On the other hand if Dracula
loses all his blood then he is vanquished.
Hunters can move by road, rail, or sea. Dracula can
only move by road or sea. He hates trains. Actually
he is not all that keen on moving water either and every turn he
spends at sea loses him 2 blood points.
Moving by road means moving from one city to another city it is
directly connected to by a single road segment. Moving
by rail is less reliable, sometimes Hunters can move up to 3 rail
segments at a time, sometimes 2, 1, or 0.
Moving by sea is neat; you can rapidly travel a long
way. Unfortunately Hunters can never encounter Dracula
while they are at sea. Even if he is in the same sea as
a Hunter the two always pass each other unknowingly, like ships in
the night. Furthermore Hunters are not even able to
discover whether the sea they are passing through is in Dracula's
trail or not. To balance this Hunters know whenever Dracula goes
to sea and whenever he lands again at a city.
Poor Dracula
Dracula's movement is much more constrained than the
Hunters'.
In particular he can't make any MOVE currently in his trail.
This generally means he can't revisit any city or sea in his trail,
except by making a HIDE or DOUBLE_BACK move:
- he may make a
HIDE move and remain in the
city he is currently in for a second turn. He
cannot HIDE at
sea. Dracula can
only have one HIDE move
in his trail at any time.
- he may make
a DOUBLE_BACK move
and revisit one city or sea in his trail, however whenever
he makes a
DOUBLE_BACK move the Hunters
know he has done so.
Dracula can only have
one DOUBLE_BACK move
in his trail at any time.
Once the location move has fallen off his trail he may make
that move again (i.e. move back to that location) even if a
HIDE or DOUBLE_BACK move for that location
remains in the trail.
The Rules of the Game
Score
- The game score starts at 366 points.
- The score decreases by 1 each time Dracula finishes a turn.
- The score decreases by 6 each time a Hunter is teleported
to the hospital.
- The score decreases by 13 each
time a Vampire matures (ie falls off the trail).
- Dracula wants the score to be low, the Hunters want the
score to be high.
- The game will normally finish
before the score reaches zero, however if it ever reaches
0 we say Dracula has utterly won, the world is doomed, and
the game stops at once. We all look accusingly
at the Hunters...
Dracula
- Dracula starts with 40 blood points.
- Dracula loses 10 blood points each time he encounters a Hunter.
- Dracula loses 2 blood points if he is at sea at the end
of his turn (he hates water!)
- Dracula regains 10
blood points if he is in Castle Dracula at the end of his
turn and has not yet been defeated (even if he has been
automagically teleported there - see Dracula's Turn below)
- Dracula is permitted to exceed 40 blood points
- When Dracula has no blood points left the
game is over and the score at that time becomes the final
score.
Hunters
- There are 4 Hunters: Lord Godalming, Dr.
Seward, Van Helsing, and Mina Harker
- Each starts with 9 life points
- If a Hunter
encounters a Trap this causes the Hunter to lose 2 life
points
- A Hunter loses 4 life points every time
he/she encounters Dracula.
- A Hunter gains 3 life
points each time they rest in a city (ie if they end their
turn in the same city they ended their previous turn in)
- Hunters are not permitted to exceed 9 life points
Sequence of play
-
In a round of the game each of the five characters has
their turn in the sequence:
- Lord Godalming,
- Dr. Seward,
- Van Helsing,
- Mina Harker,
- and then Dracula has his turn.
and then the same again for the next round, and so on.
-
Each character's turn consists of a MOVE
and then (possibly) some ACTION.
-
In the first round each character can MOVE
to whichever location they like except that Dracula
cannot move to the Hospital of St Joseph and St Mary
(too many crucifixes).
-
The game finishes if and when at the
end of any turn Dracula has been reduced to 0 blood points
or less, or the game score has been reduced to 0 points or
less.
Hunter's Turn
Hunter's Move
- Road moves: a Hunter can
move to any city directly connected to the current city by
a road.
- Sea moves: a
Hunter can move from a port to an adjacent sea, or a sea
to an adjacent sea, or a sea to an adjacent port city.
- Rail moves: The maximum
distance that can be moved via rail is determined by the
sum of the round number (0..366) and the Hunter number
(0..3)
- sum mod 4 is 0: No train move is permitted for
the Hunter this turn.
- sum mod 4 is 1: The Hunter
may move to any city adjacent to the current city
via a rail link.
- sum mod 4 is 2: The Hunter
may move to any city adjacent to the current city
via a rail link, or any city adjacent via rail to
such a city.
- sum mod 4 is 3: The Hunter may
move to any city adjacent to the current city via
a rail link, or any city adjacent via rail to such
a city, or any city adjacent via rail to such a
city. (i.e. move up to three steps by rail)
- when the rail move
is to a non-adjacent city the Hunter does
not actually enter the intermediate cities,
so any encounters there do not occur
Hunter's Action
At the start of the ACTION phase of any Hunter's turn:
- If the Hunter arrives in any city in Dracula's trail, then ...
- all Hunters can see which positions in the trail
have MOVEs that resulted in Dracula being in that city
(they cannot see the actual moves)
- the Hunter encounters, in sequence, all Traps
for that city which are in the current trail, then any
immature Vampires, and then at last confronts Dracula himself
if he is also in the city. Each of these events occurs
in turn until either the Hunter is reduced to 0 or less
life points or all the encounters have occurred.
- When a Trap is encountered the Hunter instantly
loses 2 life points and the Trap is destroyed.
- If there is more than one Trap at a
location the Hunter encounters the Traps
one at a time until either the Hunter is
reduced to 0 or less life points, or until
all the Traps are encountered, whichever
occurs first.
- When an immature Vampire is encountered
it is killed instantly with no effect to the
Hunter. (well done!)
- If Dracula
is encountered then he instantly loses 10 blood
points and the Hunter instantly loses 4 life
points.
- Whenever a Hunter is reduced to 0 or less
life points they are instantly automagically teleported to
the Hospital of St Joseph and St Mary (and can do nothing
else for the remainder of their turn)
- while in the hospital, they have zero life points
- on their next turn, they have 9 life points again and can leave the hospital
- the magical teleportation to the hospital does not show up in
the game history; players will have to deduce that
they are in the hospital.
At the end of the ACTION phase of any Hunter's turn:
- If the Hunter is in the same city or sea they were in
last turn, they are treated as resting, researching or
recovering from combat. The Hunter gains 3 life points
by doing this (up to a maximum of 9 points).
Dracula's Turn
- The Hunters can see Dracula's location whenever he ends his turn
in his castle, or in a city currently occupied by a Hunter
- this holds even if his most recent move was a HIDE
- even if a Hunter is already at the location Dracula
has moved to, no encounter occurs at this time, as
dealing with encounters only happens in the action
part of a Hunter's turn
Dracula's move
- If the trail is already full (i.e. has 6 moves in it),
then the oldest MOVE in the trail is first
removed from the trail
- when a MOVE leaves the trail
its corresponding encounter is treated as follows:
- if it was a Trap it just vanishes without a trace (yay!)
- if it was a Vampire it has matured (eek!)
- If there is no legal move possible for Dracula he
automagically Teleports to Castle Dracula as his
MOVE
-
Each non-teleport MOVE by Dracula is either a
LOCATION, a HIDE, or a DOUBLE_BACK
- Any LOCATION move must be to a location that is
adjacent to his current location, except that ...
- it cannot be a location in his most recent 5 moves
- adjacent does not include by rail (Dracula never travels by rail)
- he can never move to the hospital of St Joseph and St Mary
- A HIDE move means he stays in the same city he was in at the
start of his turn, except ...
- he cannot make a HIDE move if he already has
a HIDE move in his trail
- he cannot HIDE at sea
- A DOUBLE_BACK move is a move to a location adjacent to
his current location and which is currently in his trail, except ...
- he cannot make a DOUBLE_BACK move if he already
has a DOUBLE_BACK move in his trail
- if he makes a DOUBLE_BACK move, the Hunters know ...
- that his most recent move is a DOUBLE_BACK
- the position in the trail of the location he has doubled back to
Dracula's Action
- Dracula's current MOVE is placed in the trail.
- If Dracula is at sea he loses two blood points.
- Hunters know whenever Dracula is at sea.
- If he is in a city Dracula places an Encounter in that city.
- An Encounter is either an Trap or an immature Vampire.
- Dracula places an immature Vampire
if he is in a city AND if the number of the round
is divisible by 13 (ie in round 0, then in round
13, then 26, and so on).
- Otherwise, if there are currently less than 3 Traps in that city,
he places a Trap.
- Dracula cannot place an Encounter at sea.
- Dracula can place an encounter for a
HIDE or DOUBLE_BACK or teleport
move to a city location (possibly making two or
more Encounters for that city so long as the
previous MOVE(s) remain in the trail).
- The game score is reduced by 1 point.
Special Rules
Research
- If a Hunter rests, and each of the other Hunters rested
in their most recent turn, then we say they have been doing
collaborative research, and the 6th move in Dracula's
trail is immediately revealed.
- nothing is revealed if there are not yet 6 moves in the trail
HIDE or DOUBLE_BACK moves
- If a Hunter enters a city for which a HIDE or DOUBLE_BACK
is still in the trail, then all Hunters learn that the move was a
HIDE or DOUBLE_BACK, and they also learn
(recursively if doubling back to a HIDE, etc.) the nature of
the move to which the HIDE or DOUBLE_BACK relates.
- If the Hunters research a HIDE or DOUBLE_BACK move, then
all Hunters learn that the move was a
HIDE or DOUBLE_BACK, and they also learn
(recursively if doubling back to a HIDE, etc.) the nature of
the move to which the HIDE or DOUBLE_BACK relates.
- The Hunters can see whenever the sixth move in the trail is
a HIDE move, but this does not mean that they learn the
nature of the move to which it relates (because that move is
no longer in the trail)
No more secrets
- The Hunters can co-operate using messages to rid the
world of Dracula as swiftly as possible.
- Sadly Dracula gets to hear everything the Hunters say to each other.
- Dracula cannot place an Encounter in a city if there
are already 3 Encounters in that city.


Change Plan
Hobby
1 GB
$5 / mo
done
Growth
5 GB
$10 / mo
done
Business
10 GB
$15 / mo
done
Enterprise
20 GB
$20 / mo
done


Psych Media, LLC
Privacy Notice
Your privacy is very important to us. Please read this policy carefully. The policy describes how we use and protect any information that you give us by using this website. In case you have any concerns or questions you can always get in touch with us.
Note: We change this notice from time to time to ensure that it is accurate and up to date. This particular notice was published on November 13th, 2015.
Information We Collect About You
Information you give to us directly
We have a contact form on the website that you can use to get in touch with us. On that form we ask for your name, first name, and Email address. In addition, you provide us with any information you choose to include in the subject line and the message body. Please never include sensitive information (e.g credit card or personal health information) in the form.
Information that is collected automatically
We may directly collect analytics data or use third-party services to measure traffic to our site and usage trends on our site. These tools collect information that is shared by your desktop or mobile browser.
We use analytics information in aggregate form so that no individual user can reasonably be identified. For instance, we may learn that 30% of our traffic comes from IP Addresses in the USA but we cannot see what the individual IP Addresses are and where exactly they are located.
A cookie is a small string of text that asks permission to be placed on your computer's hard drive. Cookies allow web applications to respond to you as an individual. The web application can tailor its operations to your needs, likes and dislikes by gathering and remembering information about your preferences.
Overall, cookies help us provide you with a better website, by enabling us to monitor which pages you find useful and which you do not. A cookie in no way gives us access to your computer or any information about you, other than the data you choose to share with us.
Most web browsers automatically accept cookies, but you can change your browser settings to decline cookies if you prefer. The website will still work perfectly fine if you decide to decline cookies and we will never be the wiser.
What We Do With Your Information
We use your information exclusively for the purposes of correspondence with you and to improve our service and website. We do not sell, rent, or share your information to or with anyone outside Psych Media, LLC or any third party services. Here is what you can expect from us:
- If there are major news we might send out a promotional Email to share them with you.
- We might also reach out to you for research purposes about our service and product.
How We Protect Your Data
We take data security very seriously. To ensure that your data is safe with us from unauthorized access or disclosure we have suitable, industry-standard physical, electronic and procedural measures in place. We train our staff to make sure they know how to stay safe and how to handle your private information.
Controlling your Data
If you wish for us to delete the data that you have provided us with, please get in touch with us. We cannot delete data that we have obtained through analytics tools as we cannot identify your unique information within the dataset.
You can also delete any information from our website stored in your browser by going to your browser’s privacy settings and delete all website information or search for our website and delete that information specifically.
If you don’t want to receive Emails from us anymore let us know and we will take your address off the list. Unless you explicitly tell us to delete your data, we will keep your information on file in case we need to get in touch with you in the future.
Online Privacy Policy Only
This privacy policy applies only to our online activities and is valid for visitors to our website and regarding information shared and/or collected there. This policy does not apply to any information collected offline or via channels other than this website.
Consent
By using our website, you hereby consent to our privacy policy and agree to its terms.


Farage says Tories have repeatedly offered him ‘baubles’ including peerage
Nigel Farage said he has been twice offered a peerage, with the Brexit Party leader claiming it is one of a number of “baubles” put forward by the Conservative party.
The Brexit Party could play a significant role at the December 12 General Election but Boris Johnson has ruled out an election pact.
If the party did stand down hundreds of candidates across the country it would improve the chances of Mr Johnson’s Tories gaining a majority or remaining the largest party in a hung parliament.
When you get it out of the fridge, it's really appetising and delicious for a few days, but after a couple of weeks it stinks and is inedible
Speaking to the Sunday Times, Farage said he would decide this coming week where he would stand, with Thurrock a “possibility” but it “might make more sense” if he stood in a Labour leave seat in the north.
Thurrock was a target seat for Mr Farage’s former party Ukip in 2017.
At the EU referendum, 72.3% of people cast their ballots in favour of Leave, the second highest proportion among the East of England’s 47 voting areas.
Speaking about Mr Johnson’s Brexit deal, Mr Farage told the paper it was like a piece of cheese.
“When you get it out of the fridge, it’s really appetising and delicious for a few days, but after a couple of weeks it stinks and is inedible.”


Sandeep Prasad
Programmer & DesignerHi, welcome to my website. A little bit about me . . .
I am inspired by the world around me. I am very fascinated by design. Design is every where around us. For me, design is not just limited to a user interface or how a product looks. I believe that design is present in all phases of a product's lifecycle. From starting to think about the concept to writing the first line of code to the final product, everything involves design in it.
Be it in our kitchens at home or our classrooms in school, or a spaceshuttle going to the moon, design exists everywhere.
I'm passionate about technology. It has shaped the world in a way like no other. I'm a software engineer by profession. The reason I became a software engineer is because software has the power to reach out to the world.
Design and technology is a very powerful combination known to us.  I consider myself as a person who is combining design and technology aiming to do better for society.
Check out my projects
I live in Bangalore, India
My Projects
Hi, thanks for stopping by. Check out my projects here.
REST In Peace
REST In Peace is a project which aims to simplify the effort involved in rapidly prototyping solutions with a fully functional backend. Many a times we find ourselves in situations where we want to create a quick prototype for the users to get the initial feedback. We have frameworks to help us to do this to get a quick UI up and running in minutes. However, to connect that to a fully functional backend with a persistance option often involves a lot of time and effort. The only way out of this is to display mock data on your application, which is ok in certain situations. However, sometimes it is important to show real data and allow the user to add / modify / delete dat too.
That's where RIPJS comes into picture. It allows you to setup a fully functional backend with a persistance option within a matter of seconds.
Current Status
In ProgressYou can find the project on Github


Implementing 2-Factor Auth For Workflows In StackStorm Using Inquiries
Provides a walkthrough of securing a StackStorm Mistral workflow with Duo 2-factor authentication from your phone using the newly available inquiries feature in StackStorm 2.5
A common request I have seen on the StackStorm Slack Channel is the ability to utilize 2-factor auth before executing a workflow. Users sometimes have very powerful workflows that require extra care, or a second set of eyes before executing. Inquiries are an experimental feature in StackStorm 2.5 (changelog) that allow the workflow to pause and wait for input from a user before proceeding. In this post we’re going to use inquiries to secure a workflow execution using Duo 2-factor authentication (2FA).
Getting Started
The code for this post can be downloaded from the EncoreTechnologies/stackstorm-demo_inquiries GitHub repo. It can be installed using the following command:
st2 pack install https://github.com/EncoreTechnologies/stackstorm-demo_inquiries.git
Workflow v1
The basic workflow we’re going to implement will be restarting a service on the StackStorm box:
actions/service_restart_v1.yaml
---
description: "Restarts a service on the system (without 2FA)"
enabled: true
runner_type: "mistral-v2"
entry_point: workflows/service_restart_v1.yaml
name: service_restart_v1
pack: demo_inquiries
parameters:
service:
type: string
description: "Name of the service to restart."
required: true
actions/workflows/service_restart_v1.yaml
version: '2.0'
demo_inquiries.service_restart_v1:
description: Restarts a service on the system (without 2FA)
type: direct
input:
- service
output:
result: "{{ _.result }}"
tasks:
service_restart:
action: core.local_sudo
input:
cmd: "systemctl restart {{ _.service }}"
publish:
result: "{{ task('service_restart').result }}"
Lets test out our workflow by using it to restart our crond
service:
$ st2 run demo_inquiries.service_restart_v1 service=crond
..
id: 59f73f65032fb64ea8a99b6b
action.ref: demo_inquiries.service_restart_v1
parameters:
service: crond
status: succeeded
result_task: service_restart
result:
failed: false
return_code: 0
stderr: ''
stdout: ''
succeeded: true
start_timestamp: 2017-10-30T15:04:05.821158Z
end_timestamp: 2017-10-30T15:04:09.121116Z
+--------------------------+------------------------+-----------------+-----------------+-----------------+
| id | status | task | action | start_timestamp |
+--------------------------+------------------------+-----------------+-----------------+-----------------+
| 59f73f66032fb64ea8a99b6e | succeeded (1s elapsed) | service_restart | core.local_sudo | Mon, 30 Oct |
| | | | | 2017 15:04:06 |
| | | | | UTC |
+--------------------------+------------------------+-----------------+-----------------+-----------------+
This action is very powerful and could potentially cause harm if the user restarted a more system critical service. In the following sections we’ll detail how to add 2-factor authentication to this workflow so that services aren’t accidentally restarted without proper approval.
Hard Coded 2-factor
Our service restart action definitely should not be allowed to run arbitrarily
and we would like to confirm this action prior to executing. To accomplish this
we’re going to utilize the StackStorm inquiry feature by inserting a new task
in the workflow. This task will execute the core.ask
action which pauses
the workflow and waits for the user to input an approval string.
actions/service_restart_v2.yaml
---
description: "Restarts a service on the system (with a hard coded 2FA check)"
enabled: true
runner_type: "mistral-v2"
entry_point: workflows/service_restart_v2.yaml
name: service_restart_v2
pack: demo_inquiries
parameters:
service:
type: string
description: "Name of the service to restart."
required: true
actions/workflows/service_restart_v2.yaml
version: '2.0'
demo_inquiries.service_restart_v2:
description: Restarts a service on the system (with hard coded 2FA)
type: direct
input:
- service
output:
result: "{{ _.result }}"
tasks:
inquiry_2fa:
action: core.ask
input:
route: developers
schema:
type: object
properties:
secondfactor:
type: string
description: "Please enter second factor for restarting the '{{ _.service }}' service"
required: True
on-success:
- service_restart: "{{ task('inquiry_2fa').result.response.secondfactor == 'approved' }}"
service_restart:
action: core.local_sudo
input:
cmd: "systemctl restart {{ _.service }}"
publish:
result: "{{ task('service_restart').result }}"
We added a new task to this workflow inquiry_2fa
that executes the core.ask
action. The action takes an input parameter schema
that defines the format/schema
expected as a response from the inquiry (for other parameter information please see
the core.ask
documentation here.
This tells StackStorm what information to prompt the user for on the CLI and also
allows StackStorm to validate inquiry responses received via the API against the
defined schema
.
In this workflow we’ve hard coded checking the response of our inquiry against
a static string approved
:
on-success:
- service_restart: "{{ task('inquiry_2fa').result.response.secondfactor == 'approved' }}"
Lets test out our new workflow:
$ st2 run demo_inquiries.service_restart_v2 service=crond
.
id: 59f75932032fb64ea8a99b87
action.ref: demo_inquiries.service_restart_v2
parameters:
service: crond
status: pausing
start_timestamp: 2017-10-30T16:54:10.727011Z
end_timestamp: None
+--------------------------+---------+-------------+----------+-----------------+
| id | status | task | action | start_timestamp |
+--------------------------+---------+-------------+----------+-----------------+
| 59f75933032fb64ea8a99b8a | pending | inquiry_2fa | core.ask | Mon, 30 Oct |
| | | | | 2017 16:54:11 |
| | | | | UTC |
+--------------------------+---------+-------------+----------+-----------------+
As you can see this executed our workflow but put it into a pending
state.
The core.ask
action paused the workflow and is awaiting a response to the inquiry
we’ve defined. In order to respond to the inquiry we use the st2 inquiry
command.
List all of the pending inquiries:
$ st2 inquiry list
+--------------------------+-------+-------+------------+------+
| id | roles | users | route | ttl |
+--------------------------+-------+-------+------------+------+
| 59f75933032fb64ea8a99b8a | | | developers | 1440 |
+--------------------------+-------+-------+------------+------+
Now we need to respond to our inquiry by entering the string approved
:
Note: The inquiry ID is the same as the task ID in the workflow
$ st2 inquiry respond 59f75933032fb64ea8a99b8a
secondfactor: approved
Response accepted. Successful response data to follow...
+----------+--------------------------------+
| Property | Value |
+----------+--------------------------------+
| id | 59f75933032fb64ea8a99b8a |
| response | { |
| | "secondfactor": "approved" |
| | } |
+----------+--------------------------------+
Responding will have resumed our workflow, so lets check on the status:
$ st2 execution get 59f75932032fb64ea8a99b87
id: 59f75932032fb64ea8a99b87
action.ref: demo_inquiries.service_restart_v2
parameters:
service: crond
status: succeeded (133s elapsed)
result_task: service_restart
result:
failed: false
return_code: 0
stderr: ''
stdout: ''
succeeded: true
start_timestamp: 2017-10-30T16:54:10.727011Z
end_timestamp: 2017-10-30T16:56:23.626183Z
+--------------------------+------------------------+-----------------+-----------------+-----------------+
| id | status | task | action | start_timestamp |
+--------------------------+------------------------+-----------------+-----------------+-----------------+
| 59f75933032fb64ea8a99b8a | succeeded (1s elapsed) | inquiry_2fa | core.ask | Mon, 30 Oct |
| | | | | 2017 16:54:11 |
| | | | | UTC |
| 59f759b5032fb64ea8a99b8c | succeeded (1s elapsed) | service_restart | core.local_sudo | Mon, 30 Oct |
| | | | | 2017 16:56:21 |
| | | | | UTC |
+--------------------------+------------------------+-----------------+-----------------+-----------------+
Our workflow finished successfully and the service has been restarted. This is definitely not the most robust approach as our 2-factor check is comparing against a hard coded string within the workflow.
Duo
Duo is a cloud-based 2-factor authentication service that’s fairly simple and easy to use.
Duo - Setup
To get started we need to sign up for an account on their signup page: https://signup.duo.com.
Duo - Protect an Application
Once you’ve completed the signup and activation process you will be brought to
a screen where you’ll add a new application to protect using Duo. In this cas
we want to protect a Web SDK
application. Type Web SDK
into the search bar (1)
and click Protect this Application
(2):
You will then be brought to a screen containing your new credentials for this application. Save these off, we’ll be using them later for the Duo pack config.
Duo - Adding a User
Duo, by default, does not have any users configured for authentication. To add a new user click Users (1), Add User (2), enter the username (3) and press the Add User button (4).
Now that the user is added we need to add a phone to their account. Scroll down
on the users page to the Phones
section and click Add Phone
(2):
Fill out the phone details and click the Add Phone
(1) button:
Once the phone is added it needs to be added, click the Activate Duo Mobile
(1):
Click Generate Duo Mobile Activation Code
(1):
Click Send Instructions by SMS
(1):
At this time, go to your phone and install the Duo app via your phone’s native application store. Once installed click on the link received via SMS, this will add the account to your phone. You should now be ready to authenticate to Duo.
Duo Pack
The next step in our process is integrating StackStorm with Duo. To accomplish this we’ll utilize the stackstorm-duo pack available on exchange. First, we must install the pack:
$ st2 pack install duo
Next, we need to configure the pack to point at our Duo account we just setup.
Earlier in this process when we setup the “Protected Application” for Web SDK
there were a set of credentials created that we wrote down, we’ll be utilizing
them here.
If you forgot to write them down, you can retrieve them in the Duo admin console by going to Applications (1), Web SDK (2):
Credentials are composed of three pieces of information. The table below provides
a mapping between the name on the Duo page and the name in the st2
config.
| Duo Name | Pack Config |
|---|---|
| Integration key | auth_ikey |
| Secret key | auth_skey |
| API hostname | auth_host |
Using this information, configure the Duo pack:
$ st2 pack config duo
[root@nor1devssd01 ~]# st2 pack config duo
admin_host:
auth_skey (secret): ****************************************
admin_skey (secret):
auth_host: api-xxx.duosecurity.com
admin_ikey (secret):
auth_ikey (secret): ********************
---
Do you want to preview the config in an editor before saving? [y]: n
---
Do you want me to save it? [y]: y
+----------+---------------------------------------------------+
| Property | Value |
+----------+---------------------------------------------------+
| id | 59f7621d032fb64ea8a99b9c |
| pack | duo |
| values | { |
| | "admin_host": null, |
| | "auth_skey": "********", |
| | "admin_skey": "********", |
| | "auth_host": "api-xxx.duosecurity.com", |
| | "admin_ikey": "********", |
| | "auth_ikey": "********" |
| | } |
+----------+---------------------------------------------------+
Make sure to reload the pack config so StackStorm has the latest values in its cache:
$ st2ctl reload --register-configs
Registering content...[flags = --config-file /etc/st2/st2.conf --register-configs]
2017-10-30 13:32:51,369 INFO [-] Connecting to database "st2" @ "<IP_ADDRESS>:27017" as user "stackstorm".
2017-10-30 13:32:51,897 INFO [-] =========================================================
2017-10-30 13:32:51,898 INFO [-] ############## Registering configs ######################
2017-10-30 13:32:51,898 INFO [-] =========================================================
2017-10-30 13:32:52,496 INFO [-] Registered 1 configs.
##### st2 components status #####
st2actionrunner PID: 20122
st2actionrunner PID: 20126
st2actionrunner PID: 20133
st2actionrunner PID: 20137
st2actionrunner PID: 20141
st2actionrunner PID: 20146
st2actionrunner PID: 20154
st2actionrunner PID: 20157
st2actionrunner PID: 20160
st2actionrunner PID: 20164
st2api PID: 20069
st2api PID: 20136
st2stream PID: 20082
st2stream PID: 20156
st2auth PID: 20315
st2auth PID: 20388
st2garbagecollector PID: 20200
st2notifier PID: 20056
st2resultstracker PID: 20098
st2rulesengine PID: 20285
st2sensorcontainer PID: 20234
st2chatops PID: 21248
mistral-server PID: 19978
mistral-api PID: 19977
mistral-api PID: 20009
mistral-api PID: 20010
To validate that the config we entered works properly we can check our
authentication credentials using the duo.auth_check
action:
$ st2 run duo.auth_check
..
id: 59f7626b032fb64ea8a99b9e
status: succeeded
parameters: None
result:
exit_code: 0
result:
time:<PHONE_NUMBER>
stderr: ''
stdout: ''
Finally we’ll test out actually authenticating using the duo.auth_auth
action.
We’ll be authenticating using a passcode
, to generate a passcode open up your
Duo mobile app and click the key icon (1) next to your account name. This will
pop up a 6-digit number (2), that is your passcode.
Using the passcode you just generated run the duo.auth_auth
action. The username
parameter is the username for additional account we added testuser
, not your admin account:
$ st2 run duo.auth_auth username=testuser factor=passcode passcode="1234"
.
id: 59f76368032fb64ea8a99ba7
status: succeeded
parameters:
factor: passcode
passcode: 1234
username: testuser
result:
exit_code: 0
result:
result: allow
status: allow
status_msg: Success. Logging you in...
stderr: ''
stdout: ''
Duo 2-factor Workflow
Now that we have Duo setup we’re going to use it for our 2FA instead of comparing against our static string.
actions/service_restart_v3.yaml
---
description: "Restarts a service on the system (with duo integrated 2FA)"
enabled: true
runner_type: "mistral-v2"
entry_point: workflows/service_restart_v3.yaml
name: service_restart_v3
pack: demo_inquiries
parameters:
service:
type: string
description: "Name of the service to restart."
required: true
actions/workflows/service_restart_v3.yaml
version: '2.0'
demo_inquiries.service_restart_v3:
description: Restarts a service on the system (with duo integrated 2FA)
type: direct
input:
- service
output:
result: "{{ _.result }}"
tasks:
inquiry_2fa:
action: core.ask
input:
route: developers
schema:
type: object
properties:
username:
type: string
description: "Please enter Duo username for restarting the '{{ _.service }}' service"
required: true
passcode:
type: string
description: "Please enter Duo passcode (generated on the mobile app) for restarting the '{{ _.service }}' service"
required: true
secret: true
on-success:
- duo_2fa
duo_2fa:
action: duo.auth_auth
input:
username: "{{ task('inquiry_2fa').result.response.username }}"
factor: passcode
passcode: "{{ task('inquiry_2fa').result.response.passcode }}"
on-success:
- service_restart
service_restart:
action: core.local_sudo
input:
cmd: "systemctl restart {{ _.service }}"
publish:
result: "{{ task('service_restart').result }}"
Now we’ll test out our workflow (v3).
$ st2 run demo_inquiries.service_restart_v3 service=crond
.
id: 59f772a1032fb64ea8a99bd0
action.ref: demo_inquiries.service_restart_v3
parameters:
service: crond
status: pausing
start_timestamp: 2017-10-30T18:42:41.554471Z
end_timestamp: None
+--------------------------+----------------------+-------------+----------+-----------------+
| id | status | task | action | start_timestamp |
+--------------------------+----------------------+-------------+----------+-----------------+
| 59f772a2032fb64ea8a99bd3 | running (2s elapsed) | inquiry_2fa | core.ask | Mon, 30 Oct |
| | | | | 2017 18:42:42 |
| | | | | UTC |
+--------------------------+----------------------+-------------+----------+-----------------+
This time, when responding to the inquiry, we are prompted for both a
username
and a passcode
. The username
is your Duo authentication username
and passcode
is the 6-digit number generated from the Duo mobile app on your
phone:
$ st2 inquiry respond 59f772a2032fb64ea8a99bd3
passcode (secret): ******
username: testuser
Response accepted. Successful response data to follow...
+----------+----------------------------+
| Property | Value |
+----------+----------------------------+
| id | 59f772a2032fb64ea8a99bd3 |
| response | { |
| | "passcode": "123456", |
| | "username": "testuser" |
| | } |
+----------+----------------------------+
Now that we’ve responded, lets check on our execution and ensure that it finished successfully.
$ st2 execution get 59f772a1032fb64ea8a99bd0
id: 59f772a1032fb64ea8a99bd0
action.ref: demo_inquiries.service_restart_v3
parameters:
service: crond
status: succeeded (41s elapsed)
result_task: service_restart
result:
failed: false
return_code: 0
stderr: ''
stdout: ''
succeeded: true
start_timestamp: 2017-10-30T18:42:41.554471Z
end_timestamp: 2017-10-30T18:43:22.038051Z
+--------------------------+------------------------+-----------------+-----------------+-----------------+
| id | status | task | action | start_timestamp |
+--------------------------+------------------------+-----------------+-----------------+-----------------+
| 59f772a2032fb64ea8a99bd3 | succeeded (1s elapsed) | inquiry_2fa | core.ask | Mon, 30 Oct |
| | | | | 2017 18:42:42 |
| | | | | UTC |
| 59f772c4032fb64ea8a99bd5 | succeeded (2s elapsed) | duo_2fa | duo.auth_auth | Mon, 30 Oct |
| | | | | 2017 18:43:16 |
| | | | | UTC |
| 59f772c6032fb64ea8a99bd7 | succeeded (1s elapsed) | service_restart | core.local_sudo | Mon, 30 Oct |
| | | | | 2017 18:43:18 |
| | | | | UTC |
+--------------------------+------------------------+-----------------+-----------------+-----------------+
Conclusion
This blog post has demonstrated how to utilize the new inquiries feature in StackStorm 2.5 to secure sensitive workflows with 2-factor authentication using Duo. In a future post we’ll be looking at how to respond to inquiries using ChatOps.
-Nick Maludy
Share this post
Twitter
Google+
Facebook
Reddit
LinkedIn
StumbleUpon
Email


Good Newwz Trailer On ‘How’s The Hype?’: BLOCKBUSTER Or Lacklustre? VOTE NOW!
In our exclusive ‘How’s The Hype?’ section, the netizens rate the buzz for posters, songs, teaser and trailer of Good Newwz.
by Koimoi.com TeamAfter treating the fans with some super quirky posters, the makers of Good Newwz have finally unveiled the teaser and it literally left us in splits. Starring Akshay Kumar, Kareena Kapoor Khan, Diljit Dosanjh and Kiara Advani in lead, the trailer is a mixture of comedy, emotions and some spectacular performances.
The Good Newwz trailer showcases the entire ‘goof up’ that took place when both the couples (Akshay-Kareena, Diljit-Kiara) visited the same doctor to opt for In-Vitro Fertilisation and their sperms instead exchange. The rest of the story reveals around the struggles and the amusing consequences of it!
Check out the trailer below:
Rate the buzz around the Good Newwz trailer below and share your views with us in the comment section.
Good Newwz Posters On ‘How’s The Hype?’: BLOCKBUSTER Or Lacklustre?
Good Newwz stars- Akshay Kumar, Kareena Kapoor Khan, Kiara Advani and Diljit Dosanjh came in with a special treat for their fans yesterday when they released the posters of movie. The first look of the upcoming family comedy left the viewers in splits and the result of it all are up on Koimoi’s ‘How’s The Hype?’
In our exclusive ‘How’s The Hype?’ section, the netizens rate the buzz for posters, songs, teaser and trailers of the movie, so it will be interesting to look out for Good Newwz’s reception amongst the audience.
The first look posters featured the male leads, Akshay and Diljit, stuck between the baby bumps of their love interests, Kareena and Kiara respectively. The makers later unveiled the ladies, where one could be seen in a complete sassy look (Kareena) while the other maintained a simple yet elegant look (Kiara).
Kareena Kapoor Khan is dressed in a blue bodycon dress and Kiara Advani has paired a blue denim jacket with a green top and jeans. Kiara is also seen sporting a sindoor.
Check out the posters below:
Along with the posters, Akshay also shared that the movie will be the biggest goof up of the year and “goof-ups are bound to multiply” with the movie.
Directed by Raj Mehta, Good Newwz is scheduled to release on December 27.
Incase you liked the posters or not, please give your valuable feedback in the poll below.


AWS::SecretsManager::Secret
The AWS::SecretsManager::Secret
resource creates a secret and stores it in
Secrets Manager. For more information, see Secret in the AWS Secrets Manager User Guide, and the CreateSecret API in the AWS Secrets Manager API Reference.
To specify the SecretString
encrypted value for the secret, specify either the
SecretString
or the GenerateSecretString
property in this resource.
You must specify one or the other, but you can't specify both. See the first two examples later in this
topic.
Note
You can't generate a secret with a SecretBinary
secret value using AWS CloudFormation. You
can create only a SecretString
text-based secret value.
Note
Do not create a dynamic reference that has a backslash (\) as the final value. AWS CloudFormation cannot resolve those references, which results in a resource failure.
After you create the basic secret, you can do any of the following:
-
Configure your secret with details of the Secrets Manager supported database or service whose credentials are stored in this secret. After creating the secret, perform these steps in the template:
-
Define the database or service. In the definition of the database or service, you can retrieve the credentials in the secret by using the "dynamic reference" syntax that's similar to the following example. Adjust as appropriate for your service. The following YAML example is appropriate for an Amazon RDS MySQL DB instance. It gets the
username
andpassword
from theSecretString
field of the secret namedMySecretA
. This secret already exists (before running the AWS CloudFormation template) and uses those credentials as theMasterUsername
andMasterUserPassword
for the new database:MasterUsername: '{{resolve:secretsmanager:
MySecretA
:SecretString:username}}' MasterUserPassword: '{{resolve:secretsmanager:MySecretA
:SecretString:password}}'Alternatively, if you want to refer to the username and password in a secret that is defined in the same template, then you can use the Ref intrinsic function to retrieve the secret name using the template's logical ID for the secret. The following YAML example shows how to reference components of a secret that is defined somewhere else in the same template. It uses the Fn::Join intrinsic function to concatenate the parts of the string with the retrieved secret values to make the complete argument string.
MasterUsername: !Join ['', ['{{resolve:secretsmanager:', !Ref MySecret, ':SecretString:username}}' ]] MasterUserPassword: !Join ['', ['{{resolve:secretsmanager:', !Ref MySecret, ':SecretString:password}}' ]]
The following example shows the same thing in JSON format:
"MasterUsername": {"Fn::Join": [ "", ["{{resolve:secretsmanager:",{"Ref": "MySecret"},":SecretString:username}}"] ] }, "MasterUserPassword": {"Fn::Join": [ "", ["{{resolve:secretsmanager:",{"Ref": "MySecret"},":SecretString:password}}"] ] },
For more information about using dynamic references to values in other services' resources, see Using Dynamic References to Specify Template Values.
Important
Be careful not to use such resolvable references for sensitive information like the username and password in any location that is logged to avoid accidentally exposing those details. AWS CloudFormation explicitly prevents logging the
MasterUsername
andMasterUserPassword
of an Amazon RDS database instance for this reason. -
Update the secret to add the connection details of the database or service to the secret value. To do this, define a AWS::SecretsManager::SecretTargetAttachment resource and associate it with both the secret and the database or service.
-
-
Attach a resource-based permissions policy to the secret. To do this, define a AWS::SecretsManager::ResourcePolicy resource type.
-
You can optionally configure a secret to rotate after a specified number of days. See AWS::SecretsManager::RotationSchedule.
Topics
Syntax
To declare this entity in your AWS CloudFormation template, use the following syntax:
JSON
{ "Type" : "AWS::SecretsManager::Secret", "Properties" : { "Description" :
String
, "KmsKeyId" :String
, "SecretString" :String
, "GenerateSecretString" : GenerateSecretString, "Tags" : [ Tag, ... ], "Name" :String
} }
YAML
Type: "AWS::SecretsManager::Secret" Properties: Description:
String
KmsKeyId:String
SecretString:String
GenerateSecretString: GenerateSecretString Tags: - Tag Name:String
Properties
Description
-
Specifies a user-provided description of the secret.
Required: No
Type: String
Update requires: No interruption
KmsKeyId
-
Specifies the ARN, Key ID, or alias of the AWS KMS customer master key (CMK) that's used to encrypt the secret values for versions of this secret. If you don't specify this value, then Secrets Manager defaults to the AWS account's default CMK (the one named
aws/secretsmanager
). If an AWS KMS CMK with that name doesn't yet exist, Secrets Manager creates it for you automatically the first time it needs to encrypt a version's secret value fields.Required: No
Type: String
Update requires: No interruption
SecretString
-
Specifies a literal string to use as the secret value in the initial version of this secret. You can specify any text you like, but remember that Lambda rotation functions require a specific JSON structure to be present in this field.
Alternatively, instead of hardcoding the password in this string parameter, we recommend that you use the
GenerateSecretString
parameter instead.You must specify either
SecretString
orGenerateSecretString
, but not both.Required: No
Type: String
Update requires: No interruption
GenerateSecretString
-
A structure that specifies how to generate a random password by using the functionality of the GetRandomPassword API. You can return that string directly to use as the secret value, or you can alternatively also specify both the
SecretStringTemplate
and theGenerateSecretKey
parameters. Secrets Manager uses the value inGenerateSecretKey
as the key name and combines it with the randomly generated password to make a JSON key-value pair. It then inserts that pair into the JSON structure that's specified in theSecretStringTemplate
parameter. Secrets Manager stores the completed string as the secret value in the initial version of the secret. For more information about how to use this property, see Secrets Manager Secret GenerateSecretString and the first example in the following Examples section.You must specify either
SecretString
orGenerateSecretString
, but not both.Required: No
Type: Secrets Manager Secret GenerateSecretString
Update requires: No interruption
Tags
-
Specifies an arbitrary set of tags (key–value pairs) to associate with this secret. Use tags to manage your AWS resources.
Required: No
Type: List of Resource Tag property types
Update requires: No interruption
Name
-
Specifies the friendly name of the new secret. If a
Name
parameter isn't specified, then Secrets Manager generates a name based on the logical resource ID of the secret in the AWS CloudFormation template.Required: No
Type: String
Update requires: Replacement
Return Values
Ref
When you pass the logical ID of an AWS::SecretsManager::Secret
resource to the intrinsic Ref
function, the function returns the ARN of the
secret being configured, such as:
arn:aws:secretsmanager:
us-west-2
:123456789012
:secret:my-path/my-secret-name
-1a2b3c
This enables you to reference a secret that you create in one part of the stack template
from within the definition of another resource later, in the same template. You typically
use the Ref
function with the AWS::SecretsManager::SecretTargetAttachment resource type to get
references to both the secret and its associated database.
For more information about using the Ref
function, see Ref.
Examples
Note
The JSON specification doesn't allow any kind of comments. See the YAML example for comments.
Creating a Secret with a Dynamically Generated Password
The following example creates a secret, constructing the secret value from a string
template that's combined with a dynamically generated random password. The result
of this
example is a SecretString
value that looks like the following:
{"username": "test-user", "password": "
rzDtILsQNfmmHwkJBPsTVhkRvWRtSn
" }
For more information, see Secrets Manager Secret GenerateSecretString.
JSON
{ "MySecretA": { "Type": "AWS::SecretsManager::Secret", "Properties": { "Name": "MySecretForAppA", "Description": "This secret has a dynamically generated secret password.", "GenerateSecretString": { "SecretStringTemplate": "{\"username\":\"test-user\"}", "GenerateStringKey": "password", "PasswordLength": 30, "ExcludeCharacters": "\"@/\\" }, "Tags": [ { "Key": "AppName", "Value": "AppA" } ] } } }
YAML
#This is a Secret resource with a randomly generated password in its SecretString JSON. MySecretA: Type: 'AWS::SecretsManager::Secret' Properties: Name: MySecretForAppA Description: "This secret has a dynamically generated secret password." GenerateSecretString: SecretStringTemplate: '{"username": "test-user"}' GenerateStringKey: "password" PasswordLength: 30 ExcludeCharacters: '"@/\' Tags: - Key: AppName Value: AppA
Creating a Secret with a Hardcoded Password
The following example creates a secret and provides the secret value as a literal string that's stored in the secret. We recommend that you don't hardcode your password this way. Instead, use the Secrets Manager Secret GenerateSecretString property. See the previous example for that improved option.
JSON
{ "MySecretB": { "Type": "AWS::SecretsManager::Secret", "Properties": { "Name": "MySecretForAppB", "Description": "This secret has a hardcoded password in SecretString (use GenerateSecretString instead)", "SecretString": "{\"username\":\"MasterUsername\",\"password\":\"secret-password\"}", "Tags": [ { "Key": "AppName", "Value": "AppB" } ] } } }
YAML
# This is another secret that has its password hardcoded into the template (NOT RECOMMENDED) MySecretB: Type: 'AWS::SecretsManager::Secret' Properties: Name: MySecretForAppB Description: This secret has a hardcoded password in SecretString (use GenerateSecretString instead) SecretString: '{"username":"MasterUsername","password":"secret-password"}' Tags: - Key: AppName Value: AppB
See Also
-
CreateSecret API in the AWS Secrets Manager API Reference
-
Secret in the AWS Secrets Manager User Guide


EXCLUSIVE: National Broadband CEO: Signing of contract is 'historic day for Ireland'
by Jack QuannThe chief executive of National Broadband Ireland says the signing of the contract to deliver the National Broadband Plan is a "historic day for Ireland".
Peter Hendrick says it will take away "a digital divide that has been there for many years across urban and rural Ireland".
He spoke exclusively to Newstalk's tech correspondent Jess Kelly about the signing of the contract.
The contract for the €3bn National plan was signed by the Government on Tuesday.
Some 537,000 premises in 26 counties will be connected with superfast fibre broadband.
The plan is to provide equal opportunity for 100% of the population - ensuring every household and business has access to high-speed broadband.
Work on the plan is set to begin within the next eight weeks.
Surveying and design teams will start work in early January in the first deployment locations.
These include Carrigaline in Co Cork, parts of Connemara in west Galway, and several towns in the counties of Kilkenny and Limerick.
Around 650 people will be employed directly and indirectly over the first 12 months of the NBP, and 90% of these will be employed locally in each of the deployment areas.
Mr Hendrick said: It's a historic day for Ireland in terms of our commitment to delivering high speed broadband across the country".
"From today, we will start commencing design and build activities - so our contractors will start commencing design within the next six to eight weeks.
"You will start seeing NBI teams and vans across the country.
"So within the first year, our plan is to start with what we call broadband connection points: which is about 300 broadband points around the country - approximately 11 to 14 per country - where people can access high-speed broadband.
"These are in facilities such as community halls, schools, libraries or GAA facilities."
He added that efforts to begin rolling out the wider fibre network would begin in 'parallel' with that process.
"The first areas that we're going to start deploying that fibre network in is the likes of Carrigaline in Cork, parts of Connemara, Limerick and Kilkenny.
"And quickly in year two, we will have fibre roll-out in every single county in the country".
In terms of workers, Mr Hendrick explained: "We will have NBI branded vans around the country, but predominantly delivered by our sub-contractors".
"Those sub-contractors are companies that are already delivering fibre across the country for other operators.
"After year one, we'll quickly start ramping up: by year three, we expect to have 2,000 people involved in the roll-out of high-speed broadband across the country".
Mr Hendrick also said he is "very confident" demand will be there once the network is built.
"We know that broadband, or internet in general, the consumption of it is increasing daily, and everybody needs connectivity - it's become a utility.
"So we expect absolutely by the time we get to half way through the contract period - years 14/15 - we absolutely expect that we see 80%-plus penetration on the network".
National Broadband Ireland is a whole-sale operator, so will not be selling the service to homes and business directly - which Mr Hendrick says they have been working with closely.
"Every operator will be able to buy from National Broadband Ireland at the same price, regardless of their scale or size", Mr Hendrick added.
EXCLUSIVE: National Broadband CEO: Signing of contract is 'historic day for Ireland'


{% extends "base.html" %} {% load static i18n %} {% block content %} Corona Safe Network Our Goal is to defend the Healthcare system of Kerala from overloading beyond capacity. {% endblock content %}
Our Goal is to defend the Healthcare system of Kerala from overloading beyond capacity.


Manages private data, which is a mechanism to allow users to store arbitrary XML data on an XMPP server. Each private data chunk is defined by a element name and XML namespace. Example private data:
<color xmlns="http://example.com/xmpp/color"> <favorite>blue</blue> <leastFavorite>puce</leastFavorite> </color>
JEP related: JEP-49


Lenasia Community In Shock After Girl (5) Dies In House Fire
by NG EditorLENASIA – Community members in Lenasia are in shock on Monday after a fire claimed the life of a five-year-old girl.
It’s understood the blaze broke out at around 8 am in the morning on the second floor of a double story building; the cause of the fire was not yet known.
Motorists and neighbours were slowing down on Albatross Street to look at the apartment ravaged by the deadly fire.
A group of men sitting at the gate of the property were directing people who had questions to the house opposite the road.
According to the neighbours, the five-year-old’s mother and her other baby had been taken to hospital for further medical attention.


| Interface | Description |
|---|---|
| Af |
Afrikaans
|
| Am |
Amharic
|
| An |
Aragonese
|
| Ar |
Arabic
|
| Ast |
Asturian
|
| Az |
Azerbaijani
|
| Bg |
Bulgarian
|
| Bm |
Bambara
|
| Bs |
Bosnian
|
| Ca |
Catalan
|
| Cs |
Czech
|
| Cy_gb |
Welsh
|
| Da |
Danish
|
| De |
German
|
| El |
Greek
|
| En |
English
|
| En_au |
English
|
| En_lol |
English
|
| En_old |
English
|
| En_pirate |
English
|
| En_scouse |
English
|
| Eo |
Esperanto
|
| Es |
Spanish
|
| Et |
Estonian
|
| Fa |
Persian
|
| Fi |
Finnish
|
| Fr |
French
|
| Ga |
Irish
|
| Gj |
gj
|
| Gl |
Gallegan
|
| He |
Hebrew
|
| Hi |
Hindi
|
| HookBody | |
| HookNoArgsBody | |
| Hr |
Croatian
|
| Ht |
Haitian
|
| Hu |
Hungarian
|
| Id |
Indonesian
|
| Is |
Icelandic
|
| It |
Italian
|
| Ja |
Japanese
|
| Jv |
Javanese
|
| Ka |
Georgian
|
| Kn |
Kannada
|
| Ko |
Korean
|
| LambdaGlue | |
| Lt |
Lithuanian
|
| Lu |
Luba-Katanga
|
| Lv |
Latvian
|
| Mk_cyrl |
Macedonian
|
| Mk_latn |
Macedonian
|
| Mn |
Mongolian
|
| Nl |
Dutch
|
| No |
Norwegian
|
| Pa |
Panjabi
|
| Pl |
Polish
|
| Pt |
Portuguese
|
| Ro |
Romanian
|
| Ru |
Russian
|
| Sk |
Slovak
|
| Sl |
Slovenian
|
| Sr_cyrl |
Serbian
|
| Sr_latn |
Serbian
|
| StepdefBody | |
| StepdefBody.A0 | |
| StepdefBody.A1<T1> | |
| StepdefBody.A2<T1,T2> | |
| StepdefBody.A3<T1,T2,T3> | |
| StepdefBody.A4<T1,T2,T3,T4> | |
| StepdefBody.A5<T1,T2,T3,T4,T5> | |
| StepdefBody.A6<T1,T2,T3,T4,T5,T6> | |
| StepdefBody.A7<T1,T2,T3,T4,T5,T6,T7> | |
| StepdefBody.A8<T1,T2,T3,T4,T5,T6,T7,T8> | |
| StepdefBody.A9<T1,T2,T3,T4,T5,T6,T7,T8,T9> | |
| Sv |
Swedish
|
| Ta |
Tamil
|
| Th |
Thai
|
| Tl |
Tagalog
|
| Tlh |
Klingon
|
| Tr |
Turkish
|
| Tt |
Tatar
|
| Uk |
Ukrainian
|
| Ur |
Urdu
|
| Uz |
Uzbek
|
| Vi |
Vietnamese
|
| Zh_cn |
Chinese
|
| Zh_tw |
Chinese
|
Copyright © 2019. All rights reserved.


An arrangement of six identical squares in a plane, attached to one another edge to edge.
There are 35 possible hexominoes.


| Lahman-package {Lahman} | R Documentation |
This database contains pitching, hitting, and fielding statistics for Major League Baseball from 1871 through 2019. It includes data from the two current leagues (American and National), the four other "major" leagues (American Association, Union Association, Players League, and Federal League), and the National Association of 1871-1875.
This database was created by Sean Lahman, who pioneered the effort to make baseball statistics freely available to the general public. What started as a one man effort in 1994 has grown tremendously, and now a team of researchers have collected their efforts to make this the largest and most accurate source for baseball statistics available anywhere.
This database, in the form of an R package offers a variety of interesting challenges and opportunities for data processing and visualization in R.
In the current version, the examples make extensive use of the dplyr
package for data manipulation (tabulation, queries, summaries, merging, etc.),
reflecting the original relational database design
and ggplot2
for graphics.
| Package: | Lahman |
| Type: | Package |
| Version: | 8.0-1 |
| Date: | 2021-01-20 |
| License: | GPL version 2 or newer |
| LazyLoad: | yes |
| LazyData: | yes |
The main form of this database is a relational database in Microsoft Access format.
The design follows these general principles: Each player is assigned a
unique code (playerID
). All of the information in different tables relating to that player
is tagged with his playerID
. The playerID
s are linked to names and
birthdates in the People
table. Similar links exist among other tables
via analogous *ID
variables.
The database is composed of the following main tables:
People
Player names, dates of birth, death and other biographical info
Batting
batting statistics
Pitching
pitching statistics
Fielding
fielding statistics
A collection of other tables is also provided:
Teams:
Teams | yearly stats and standings |
TeamsHalf | split season data for teams |
TeamsFranchises | franchise information |
Post-season play:
BattingPost | post-season batting statistics |
PitchingPost | post-season pitching statistics |
FieldingPost | post-season fielding data |
SeriesPost | post-season series information |
Awards:
AwardsManagers | awards won by managers |
AwardsPlayers | awards won by players |
AwardsShareManagers | award voting for manager awards |
AwardsSharePlayers | award voting for player awards |
Hall of Fame: links to People via hofID
HallOfFame | Hall of Fame voting data |
Other tables:
AllstarFull
- All-Star games appearances;
Managers
- managerial statistics;
FieldingOF
- outfield position data;
ManagersHalf
- split season data for managers;
Salaries
- player salary data;
Appearances
- data on player appearances;
Schools
- Information on schools players attended;
CollegePlaying
- Information on schools players attended, by player and year;
Variable label tables are provided for some of the tables:
battingLabels
,
pitchingLabels
,
fieldingLabels
Michael Friendly, Dennis Murphy, Chris Dalzell, Martin Monkman
Maintainer: Chris Dalzell<EMAIL_ADDRESS>Lahman, S. (2020) Lahman's Baseball Database, 1871-2019, Main page, http://www.seanlahman.com/baseball-archive/statistics/


Future Stars: Standout Smithtown runner hopes to add to success at Columbia University
by Sam RyanSMITHTOWN, Long Island (WABC) -- From school records to county championships, Smithtown's Michael Danzi is already a standout runner.
Our latest 'Future Star' now hopes to add to that success at one of the nation's top universities.
As Danzi transitions from cross country to winter track, he reflects on his Suffolk County championship victor earlier in November.
He is a four-time county champ, four time All-State, the number one returner in the 800 meters in spring track - but it was a different story just a few years ago.
"I remember winter track my freshman year - the mile. I think in the state for out of freshman I was ranked around like over 100, so I really didn't expect to rise up to number one," said Danzi.
"He already had several school records...so that meteoric rise, that's unusual for us," said Smithtown Track and Cross Country Coach Peter Schieck.
In addition to excelling on the course and on the track, Danzi also excels in the classroom. He is currently taking four AP classes and has a 4.0 GPA at Smithtown High School West. He is also in three different honor societies. Danzi is committed to run with Columbia University in the fall.
"Yeah, it's pretty exciting. Honestly to the college process, I didn't really expect to be going to as good as a school as that," Danzi added.


Basic Example
Place one add-on or button on either side of an input. You may also place one on both sides of an input.Floating Labels
Basic example for input groups with floating labelsDifferent Sizes
You may use the extra sizing classes to change size of the feilds.Basic Example
Disabled Items
Multiple Example
Option Group
Basic Examples
Default and Disabled optionsOptional Color schemes
Use the given data attribute to change the color scheme of the Toggle SwitchBasic Example
Current value: {{ fctrl.nouisliderValue }}Range Slider
Current value: {{ fctrl.nouisliderFrom }} - {{ fctrl.nouisliderTo }}Optional Color Schemes
Use the given data attribute to change the color scheme of the Toggle SwitchA clean, flexible, and fully customizable date picker. User can navigate through months and years. The datepicker shows dates that come from other than the main month being displayed. These other dates are also selectable. Read more...
Inline Examples
Displaying the Datepicker by defaultMultiple Popup Examples
Displaying on focusOther Examples
Dropup, Month and Year Pickers


The National Institute of Health mandates that starting on Monday, August 10th, 2015, the DSC collects the following fees for their services from customers working at non-profit organizations:
The Dicty Stock Center is a central repository for Dictyostelium discoideum strains, isolates of other cellular slime mold species, plasmids, and commonly used bacteria. These rapidly growing collections can be searched through catalogs which are continuously updated. The strain collection includes:
The toolbar drop down menu gives access to information relevant to the Stock Center and includes links to the entire catalogs and a search function. Instructions for ordering strains and plasmids can be found under Ordering Information. There are also links to research aids, including nomenclature guidelines and recipes for culturing Dictyostelium.
We also provide a page listing other stock centers, some of which contain Dictyostelium research materials not available in the Dicty Stock Center.
The Dicty Stock Center is located at Northwestern University in Chicago, IL, USA. For additional information, contact the Dicty Stock Center (email: dictystocks@northwestern.edu).


SILENT FALL A film review by James Berardinelli Copyright 1994 James Berardinelli
Rating (0 to 10): 3.5
Date Released: 10/28/94 Running Length: 1:44 Rated: R (Violence, language, mature themes)
Starring: Richard Dreyfuss, Ben Faulkner, Liv Tyler, Linda Hamilton, John Lithgow, J. T. Walsh Director: Bruce Beresford Producer: James G. Robinson Screenplay: Akiva Goldsman Cinematography: Peter James Music: Stewart Copeland Released by Warner Brothers
What happens when you start out with a decent mystery premise, a solid lead actor, and a script that builds suspense nicely through the first half before inexplicably self-destructing in the most messy and unpleasant manner? You have either 1993's BENEFIT OF THE DOUBT or 1994's SILENT FALL, thrillers that share a number of unfortunate traits, the most notable of which is an inability to construct a worthwhile picture despite several apparent advantages.
Bruce Beresford, who is in the director's chair for this film, has a history of inconsistency. For every TENDER MERCIES, DRIVING MISS DAISY, or RICH IN LOVE, there has been a KING DAVID, HER ALIBI, or A GOOD MAN IN AFRICA. SILENT FALL isn't a movie for which Beresford will want to be remembered.
 Tim, however, won't talk, so child psychiatrist Jake Rainer (Richard Dreyfuss) is called in to bring him out of his shell. At first, because of ghosts from the past, Jake is unwilling, but the treatments offered by nasty Dr. Harlinger (John Lithgow) convince him otherwise. So, with the aid of Tim's seductive eighteen-year old sister Sylvie (Liv Tyler), Jake sets out to free the child's memories so that Sheriff Mitch Rivers (J.T. Walsh), the incompetent head of an inept investigation, can arrest a suspect.
The first fifty minutes of the film have their high points--a nice buildup, some attempts (although predictable ones) at setting up character relationships, and a suitably creepy atmosphere. However, developments in the second half easily make the viewer forget whatever good things came before. The plot gets out-of-hand and, like a boulder barreling down a mountainside, the implausibilities and contrivances gather speed until a disaster is unavoidable. The catastrophe comes in the form of what the film makers apparently decided to call a "conclusion."
If the sheer inanity of this preposterous situation doesn't get you, then the variety of uneven performances might. Richard Dreyfuss is generally solid (except when he's trying to mimic Robin Williams' zany vocal antics), but the rest of the cast is lacking. Ben Faulkner doesn't display any range, Linda Hamilton is an absolute embarrassment (fortunately, her screen time is limited), and John Lithgow looks like he stopped by to pick up a quick pay check. Liv Tyler, who has a certain screen presence in low-key situations but fails to convince when required to display extreme emotion, looks like she's acting in her first feature--which is the case.
There are three kinds of murder mysteries: those that are solidly scripted and hold together both during a viewing and while being dissected afterwards, those that entertain while being watched but can be picked apart later, and those that collapse even as they unfold on screen. SILENT FALL slides neatly into the third category. I can't emphasize how poorly arrived at the resolution is, how plotted the whole film feels, and how unpleasant it is to sit through this tripe. SILENT FALL is the kind of picture that results when a film maker loses sight of the fact that a portion of his audience might actually think while watching a movie.
- James Berardinelli<EMAIL_ADDRESS>.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


There are times where it is useful to make a copy of a collection, take a random sample of a collection or even split a collection into a training set and test set. Cloning is the general term used in dataset for these types of operations.
First since dataset is a folder with collections.json, pairtree and frames we can “clone” an the complete collection by simply copying the folder and its contents. This can be done with standard operating system tools (e.g. File managers, command line).
More frequently I’ve found I need to take a sample of a collection (e.g. because I am developing a bash or Python script that does some batch processing and testing on the whole collection takes too long). This is where you want to use dataset’s clone verb. The basic idea is to get a sample list of keys then use the clone. In the command line version we use the “-sample” option with the keys verb, in Python you need to supply your own function to get a sample list of keys.
In the following examples the origin collection is friends.ds or new sample collection will be friends-sample.ds
On the command line –
dataset keys -sample=5 friends.ds > sample.keys
dataset clone -i sample.keys friends.ds friends-sample.ds
In Python I am assuming you have defined a function called “get_sample_keys()” your self.
keys = get_sample_keys('friends.ds', 5)
err = dataset.clone('friends.ds', keys, 'friends-sample.ds')
As you can see this version of clone works off a set of supplied keys. What if you don’t want to calculate the key list first? e.g I am working in Python and I don’t want to have to write “get_sample_keys()”! That’s what clone-sample (or in Python clone_sample) is for.
The clone-sample verb is about generating sample collections without having to take the extra step of generating a list of sample keys. As an added benefit clone-sample knows which keys were not selected in the sample so it is convienent for creating “training” and “test” collection if you are applying machine learning techniques.
Let’s take a shorten version of generating a sample of size 5 for our friends collection.
dataset clone-sample -size=5 friends.ds friends-sample.ds
Likewise in python this becomes
By adding a second target collection name we can use clone-sample to create both the training and test collection. Here’s an example with our friends.ds collection creating training.ds and test.ds.
dataset clone-sample -size=5 friends.ds training.ds test.ds


This visualisation can be used as a multi-access key with a taxonomic knowledge-base and it is particularly suitable for knowledge-bases that specify that taxonomic hierarchy for the taxa included in it.
Note that although some features of this visualisation will work on mobile devices such as iPads, it is primarily designed to work on large format mouse-driven devices like laptops.
The circle-pack design keeps taxa that are closely related to each other together in the display, whatever their overall matching scores. So, for example, all taxa of a given genus are displayed within a circle that represents that genus, and all genera that belong to a particular family are displayed together within a circle that represents that family.
The visualisation also deals quite nicely with large numbers of taxa, up to a few hundred, so it can be a particularly good way to visualise taxonomic groups of that size.
Each taxon is represented by a circle which grows or shrinks in size to reflect the overall matching score of the taxon in response to user input. The colours of the taxa circles also change to reflect the matching score of each. Blue indicates the best overall matching score and vermilion the worst, whilst an overall matching score of zero is coloured pale yellow. Intermediate scores are shown with intermediate colours. The score itself can be seen by moving the mouse over any particular circle representing a taxon. So the larger, and bluer, the circle, the better match it is to the specified user input.
The circles of the highest ranking taxa at any time are outlined in a dashed thicker line (rather than the solid thinner line of all other taxa.)
You can use the mouse wheel to zoom this visualisation in or out and pan around by dragging with your mouse.
Taxon names are, by default, abbreviated so that they fit, more or less, within the bounds of the circle that represents them. So as a circle gets smaller, the name becomes more abbreviated until, for very small circles, it disappears altogether. The full name of any taxon (or taxonomic group) represented by a circle will appear as a 'tool tip' whenever the mouse is moved over a circle, regardless of the level of abbreviation used.
As with all visualisations in this tool, important functionality is often made available from a context menu which can be invoked by right-clicking the mouse when the pointer is anywhere within the visualisation.
The first option is Get URL for circle-pack key. Selecting this menu item builds a URL that can be used to reproduce the page as you have configured it.
The name abbreviation feature can be toggled on/off from this menu. When off, then full name of each taxon is displayed regardless of the size of the circle.
You can also use this menu to 'ignore higher taxa' which will result is each taxa being represented by a circle that is not bound to it's siblings (e.g. species within a genus) by a higher level enclosing circle. When higher taxa are ignored, the result is that better matching taxa are displayed closer to the centre of the visualisation.
There can be a number of further menu items that will display labels for higher level taxonomic groupings rather than the lowest level taxa. So for example you can display labels for the circles representing genera rather than species. (Note that only those taxonomic levels encoded in the knowledge-base will be represented by menu items.)
If you select the 'display taxon image tooltips' item, then as you pass the mouse pointer over a taxon, the tooltip which displays the name of the taxon and the current 'overall score' will be enlarged to include an image of the taxon if one has been registered in the knowledge base. When displayed thus, the same menu item is altered to become 'remove taxon image tooltips' and selecting it will return the taxon tooltips to their original condition.


Teamup: Swap View to Single Colored Events
Bookmark this link by dragging it to your bookmark bar!
Swap View


Django AlphaFilter 0.6 documentation
There are two ways to incorporate the alphabet filter into your project and applications. The first is modifying one or more application’s ModelAdmin classes. The second is when you don’t have control of the code and want to add the feature, such as to django.contrib.auth. Both methods require you to override the default admin template for that model or app.
In order to properly display the alphabet filter in the admin, the change_list.html template must be slightly changed. django-alphafilter includes a template the makes the proper changes. This template extends the default admin template, so using it must be done on an per-application or per-model basis.
You can merge the default Django admin change_list.html template with django-alphafilter‘s changes to make a single template override. django-alphafilter doesn’t do this so it can support multiple Django versions.
Within your project’s template directory, you need to create an admin directory, and a directory with the name of the application, and optionally the name of the model. For example, if you were adding the filter on the Tag model of an application named cooltags, the directory structure would look like:
MyProject
templates
admin
cooltags
change_list.html <-- For every model in the cooltags
tag
change_list.html <-- For just the Tag model
The change_list.html file simply needs to contain the line:
{% extends "alphafilter/change_list.html" %}
Note
You cannot place this template in the admin directory, as it leads to an infinite loop of inheritance. As mentioned above, you can create a new change_list.html template by copying the django.contrib.auth template and make the same adjustments as the django-alphafilter‘s template.
If you have control of the application’s code, you can easily support django-alphafilter by adding an alphabet_filter attribute to your ModelAdmin class, like so:
class TestNameAdmin(admin.ModelAdmin):
model = TestName
alphabet_filter = 'sorted_name'
The value of alphabet_filter is the name of the field to use for filtering.
Sometimes you want to use the alphabet filter, but you don’t want to modify someone else’s code. A perfect example is django.contrib.auth. To enable the alphabet filter on the User model, you can add a configuration setting in your settings.py. The ALPHAFILTER_ADMIN_FIELDS setting is a dictionary in the form of {'<appname>.<modelname>': '<fieldname>', [ ... ] }
For example:
ALPHAFILTER_ADMIN_FIELDS = {
'auth.user': 'username',
'auth.group': 'name',
}


Track the things you care about
Remove the distractions and find more time for yourself
Borrowing ideas from Essentialism, our app will help you organize and reflect on your most important values and declutter your mind, so that you can stay focused on the things that bring meaning to your life.
Daily journaling and value reminders can help you focus on the big picture. Keep track of your thoughts, commitments, projects, and experiences.


Item. Districts must comply with racial fairness via the Voting Rights Act of 1965 (see Section 4.7 for more information).


GAP is a free, open and
extensible system for discrete computational algebra, with
particular emphasis on Computational Group Theory. GAP provides a
programming language, a library of thousands of functions
implementing algebraic algorithms written in the GAP language as
well as large data libraries of algebraic objects.
Contact:
Alexander Konovalov


To connect to this server, go to the space-sim client, and under "direct connect", put and click "connect".


Converting Hangul to Alpha:
On some IMEs such as on Mac, pressing the keys
corresponding to ㅂㅈㄷㄱㅅ (qwert) twice in a row will group them
together into a double consonant (Select "Repeat").
On others the double consonant can only be accessed by
holding shift (Select "Capitalize").
Please note, if "Repeat" is selected, you cannot convert any of
"ㅃㅉㄸㄲㅆ" into capital letters.


--- layout: default permalink: /404.html --- 404
You seem to of been led to the wrong place, you may leave if you want


Cell 1, Device #1506000765
Device tested 2 hours ago on 2/18/15 at 8:18:15 AM, ran for 11 minutes 7 second
Test is board_tester on stark.1.preoptics.rockslide.thea on Cell #1
| Important Parameters (2) | Status | Value | Limit |
|---|---|---|---|
| battery_voltage | PASS | 3V | 1V < x |
| build_id | PASS | 1148239 | 1148239 |
| Failing Parameters (2) | |||
| battery_voltage | FAIL | 3V | x = 1V |
| build_id | FAIL | 1148239 | 1148239 |
| Unset Parameters (1) | |||
| current | NOT SET | 1A <= x <= 2A | |
| Passing Parameters (40) |
| +0.2s | Clearing HPC trip alerts. |
| +0.01s | Setting vbat to 4.2V |
| +0.01s | Powering off panel. |
| 08:18:45.000 | Phase Start - PreFlashPhase |
| +0.2s | Clearing HPC trip alerts. |
| +0.01s | Setting vbat to 4.2V |
| +0.01s | Powering off panel. |
| 08:18:15.950 | Starting test execution. |


Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | 2x 2x 2x 280x 2x 2x 2x 2x 4x 274x 2x 382x 2x 2x 2x 2x 2x 2x 382x 8x 380x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 382x 382x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x | // atoms export { default as CrossCountryLogo } from './atoms/logo/cross-country'; export { default as Logo } from './atoms/logo/logo'; export { default as Grid } from './atoms/grid'; export { default as Column } from './atoms/column/column'; export { default as Checkbox } from './atoms/checkbox/'; export { default as Radio } from './atoms/radio/'; export { default as RadioGroup } from './molecules/radiogroup/'; export { default as Button } from './atoms/button/button-themed'; export { default as Row } from './atoms/row/row'; export { default as Image } from './atoms/image/image'; export { default as Headline } from './atoms/text/headline/headline'; export { default as SubHeadline } from './atoms/text/subheadline/subheadline'; export { default as Paragraph } from './atoms/text/paragraph/paragraph'; export { default as Form } from './atoms/form'; export { default as TextInput } from './atoms/text/input'; export { default as Hilight } from './atoms/text/hilight'; export { default as Bold } from './atoms/text/bold'; export { default as Label } from './atoms/text/label'; export { default as Link } from './atoms/link'; export { default as List } from './atoms/list'; export { default as ListItem } from './atoms/list/list-item/list-item'; export { default as Table } from './atoms/table'; export { default as TableBody } from './atoms/table/table-body'; export { default as TableHead } from './atoms/table/table-head'; export { default as TableRow } from './atoms/table/table-row'; export { default as TableData } from './atoms/table/table-data'; // atoms / svg export { default as SVG } from './atoms/svg'; export { default as Circle } from './atoms/circle'; export { default as Group } from './atoms/group'; // molecules export { default as CheckboxLabel } from './molecules/checkboxlabel'; export { default as Wolf } from './molecules/wolf'; export { default as Bar } from './molecules/bar'; export { default as Wrapper } from './molecules/wrapper'; export { default as Wallpaper } from './molecules/wallpaper'; export { default as Tile } from './molecules/tile'; export { default as Modal } from './molecules/modal'; export { default as Brand } from './molecules/brand'; export { default as Stagger } from './molecules/stagger'; export { default as RelatedArticles } from './molecules/related-articles'; export { default as Card } from './molecules/card'; export { default as GoldLeaf } from './molecules/gold-leaf'; export { default as Accordion } from './molecules/accordion'; // organisms export { default as Login } from './organisms/login'; export { default as TileGrid } from './organisms/tile-grid'; export { default as Drone } from './organisms/drone'; export { default as Garden } from './organisms/garden'; export { default as Sketch } from './organisms/sketch'; export { default as Actor } from './organisms/actors/actor'; export { default as Branch } from './organisms/branch/branch'; export { default as Branches } from './organisms/branches/branches'; export { default as Hunter } from './organisms/actors/party/hunter'; export { default as Stage } from './organisms/stage'; export { default as ReverseTextAnimation } from './organisms/animation/reverse-text-animation'; export { default as Warrior } from './organisms/actors/party/warrior'; //export { default as Troll } from './organisms/actors/monsters/troll'; export { default as Wisp } from './organisms/actors/wisp'; export { default as Registration } from './organisms/registration'; export { default as FrozenLake } from './organisms/frozen-lake'; //export { default as CaveTroll } from './organisms/actors/monsters/troll/cave-troll'; |


String.replaceAll()
or String.split()
where the first argument is a single regex meta character argument.
The regex meta characters are one of .$|()[{^?*+\
. They have a special meaning in regular expressions.
For example, calling "ab.cd".replaceAll(".", "-")
produces "-----"
, because the dot matches any character.
Most likely the escaped variant "\\."
was intended instead.
Using File.separator
as a regex is also reported. The File.separator
has a platform specific value. It
equals to /
on Linux and Mac but equals to \
on Windows, which is not a valid regular expression, so
such code is not portable.
Example:
s.replaceAll(".", "-");
After the quick-fix is applied:
s.replaceAll("\\.", "-");


| DOSE: T+ 0:00 |
0.5 tablets |
oral |
Moclobemide |
|
| T+ 0:30 |
2 Tbsp |
oral |
Mimosa tenuiflora |
(tea) |
I posted a report on Mimosahuasca (practically a pharmahuasca, since the IMAO was obtained from moclobemide), entitled “Wrathful Goddess”. That day, I missed the point when graduating the syrup that came from the cooking of the Jurema (pronounced ‘djuh-rae-mah’) root bark.
So, the voyage went too strong, the symptoms got me really bad for 4 days and the spitiual message was really wrathfull.
The meaning of it was very profound, ‘cause in 2000 I’d received the Vajra Kroddhi Kalí empowerment (wang) from the hands and mind of His Eminence Chagdud Tulku Rinpoche, one of the last Tibetans raised in the old ways of the Snowy Lands.  A symbol for the phenomenon of Time (Spacetime?!), as well as its absence, generating a Timeless state of conscience, said to be the Samadhí. It’s seen on the Yôga Sútra of Patañjalí that one can develop siddhis (study the meaning of this) through the use of some plants (see first sutra in the 4th book of it). One's inner soul in communion with the whole Nature.
Jurema provokes, like the traditional Ayahuasca, the “peia” (‘pay-yee-ah’), Brazilian Portuguese word equivalent to “la purga” (Spanish word), i.e, the purifying vomits and consciousness crisis, resulting in psychological regeneration… this one was very hostile, like the Latin name says… Mimosa hostilis! (especially for rebel minds like mine).
 From Max Heindel’s Rosicrucian Fellowship, passing by the extraterrestrial contactees of the Mision Rama and the nowadays called Sunesis Project, putting into use the workings of Master Therion (bka Aleister Crowley), the rites of the real Nigerian Yoruba Orisha Cult (as well as the afroamerindian Brazilian cult of Umbanda), the power of Swásthya Yôga, the pearls of the Nath Order of the Sámkya Tantra, the liberation of Vajrayana, a basis in Kardecism, some years at Santo Daime, UDV, and many other… I’ve practiced all this and some universal shamanism, which led me now to taste the bitter Vinho da Jurema (Wine of Jurema).
My last two years made me very skeptical about any help from beyond. The hard conditions for one to live here in Brasil (or even in the whole world) had kind of oppressed me in a way that made me stop believing in most things I believed. Only Science and Philosophy seemed to be right. I’ve forgotten my heart…
But the experience described in the “Wrathful Goddess” report was more than what seemed until then!!!!
 I had some kind of mind hangover, feeling a little sad for the quarrel Kali Jurema applied in my being.
 My state of mind AND of body got both more relaxed and happy. I WAS BRIGHT, LIGHT AND SHINING, AS A MATTER OF FACT!
The curious point is that after 7 or 8 days, just one lil’night lost in time, I was navigatin the web in my room, high on maryjane (such a great and seducer ally), when I hear my dad shouting in his room. In the blink of an eye I reached my parents room to check if he was not having a heart attack or something.
 This was late at night.
In the morning, something my granny would tell me just the next evening, she kinda saw two afro sorcerers crossing our backyard (she lives in the backhouse). This should be impossible for any beggar or thief, since we have high walls w/ electric fences and neighbors very near. One of this wizards even showed her his wrathfull face, posing his sharp teeths out… then disappeared! I did some special pújas (offerings) to Buddhas and stuff in order to cleanse this and is something beyond explanation!!
Maaaan, not even this figures match my visions reported before (see “Wrathful Goddess”), as well as implies in the existence of realms far beyond comprehension. It’s funny to note that my parents weren’t aware of my past experience with Jurema (especially about difficult trips), not even by chance, since only my girlfriend and two good friends of mine know about it and I didn’t say a word, not even in the phone, to anyone else.
I believe that my dad’s dream and my granny’s vision had origin in some kind of ESP of my contact with such a primitive and savage archetype and this energy confronted them in some sort of catharsis.
My dad wouldn’t be able to fake something too spontaneous in the middle of the night. If he knew about my entheogenic experiences, he would make a lot of noise, not just a scream…. Holy ignorance! Hmmf!!
Well, encouraged to repeat the experience in a small dose, I took one of the bottles out of the freezer, removed the decanted mud (tannins, saponins, etc) and applied a clear of egg (wine production tek) to capture little vegetable dust.
One pear eaten before gulping half of an Aurorix pill. Half an hour. Two dessert tablespoons mixed in a warm cup of tea made from Matricaria recutita (Chamomilla recutita or Matriarca chamomilla), drank this in one hard sip and started to sing some União do Vegetal songs to establish atmosphere.
Twenty minutes later and I was feeling a nervous boost, which could be alleviated by leg or arm movements. Brightful live sparks ran from the middle of my pupils. I started some simple pránayama (breath exercises) and intonation of Padmasambhava’s mantra.
The nausea was mild and controllable and when closing the eyes, I felt transported into another world… Maybe this was some kind of psychical vehicle to pilot!
My heart and blood pressure started to work faster, but I had good feelings while watching a clear pink mist take place where I was going to burn a joint but didn’t ‘cause this mind ship had its giddiness just like its sailing brothers.
 The clothes were so white that a silver clear light glowed from them.
He presented himself as Antonio das Flores (Antoine of Flowers) and told me that he would guide me under my trip in order to reach spiritual grade to work with the Jurema. He told me that DMT is a catalyst to spiritual growth if it is accompanied by chants and enchantments and with a proper mind, focused on the welfare of the universe and all its guests inhabitants.
I noticed that thoughts become more powerful and if I concentrated on something, this would become alive, as a virtual reality with closed eyes. On open eyes, colours gained intrincate patterns of shapes, as light rays showed each one to me. I couldn’t laugh as when smoking Cannabis or eating mushrooms.
Mestre Antonio (Master Antoine) (this is the way I started to call him) told me that he would now cleanse my heart and my house, as well as the whole world, with my help.
Then I was floating and leaving rainbow marks on the air behind me. I searched all my house and then all places of this planet, blessing every corner with this luminescence.
At this point, the master said he would materialize into an animal all the bad feelings just collected. A big fly appeared in the room I was having my session, which has big windows and a good view of the city. Mate, what can I tell ya?! it was a big and disgusting fly. But the voice told me just to open the window and let it follow its natural course.
I oppened the window, the fly went out so easily, as if it were taking some evil with it. I think this was the biggest fly I’ve ever met with, ‘cause its wings made a lot of noise.
From this point, I concentrated fully on the meditation, gaining insight on how to make the correct visualization when working nyásas, the essence of the Samyama, especially the Yidam practices in Vajrayana. I even felt as if I were at the foot of the Himalaya in front of Padmasambhava seated over his lotus throne, blessing all beings of billions of universes.
Another voice manifested, but not from the master. This was from a presence I felt when preparing today’s tea. I believe that all this “presences and contacts” are expedients my mind uses in order to explain something to me in a multifaceted way.
She thus told me to stay calm, that I had to purify my body. The vomiting announced, I tried to deny it but it was stronger than me. By luck, I threw up in the earth of a window garden. It was uncomfortable at the very moment, but seconds after everything was just fine!
The peak of my trip ended, leaving just a peaceful and watchful mindset, still presenting some mild visuals and heightened senses.
[I wouldn’t recommend this for kids, pregnant woman and persons with family background or actual mental illnesses or experimenting health conditions or treatments].
ALWAYS RESEARCH DEEPLY BEFORE TRYING THIS AT HOME
HAVE A HEART FULL OF LOVE FOR THE UNIVERSE IF WANT TO TRY THIS
If you just want a trip for your own amusement, this wouldn’t be the order, believe me.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Magpies manager Jamie Vermiglio urges men to build on big victory over Chesterfield
Chorley boss Jamie Vermiglio believes the victory over Chesterfield on Saturday could be a turning point in their season.
The Magpies earned their second win of the season – their first away from home – with a 3-2 victory at the Proact Stadium.
Two goals from loan striker Charlie Vernam and one from skipper Courtney Meppen-Walter saw Vermiglio’s men move to five points from safety.
Although they still sit bottom, the boss believes the win at a place like Chesterfield – arguably the biggest club in non-league football – will provide a massive confidence boost.
“It’s that confidence we will get from showing that we can play football and match one of the better sides in the league,” he said.
“They have fantatsic resources. You only need to look around their ground once to see what they have got behind the scenes.
“They have got a lot of support, a lot of backing but we were able to come here and play better than them and show that we are good enough.
“We need to do that again next week, the week and the week after that.
“I am going to enjoy this win but not get carried away.
“We need to kick on now and show some consistency.”
This weekend, Chorley host Torquay United – another former Football League club – at Victory Park.
Gary Johnson’s Gulls are currently going well at the moment in sixth spot in the table, three points off leaders Barrow.
Vermiglio is hopeful club captain Andrew Teague and fellow defender Scott Leather maybe available.


ExtractJSONStructure()
Syntax
ExtractJSONStructure(JSONValue, *Buffer, Structure)Description
Extract members from the given JSON value of type #PB_JSON_Object into the specified structure memory. The structure will be cleared of any previous content before extracting the JSON values.
Parameters
JSONValue The JSON value. The value must be of type #PB_JSON_Object. *Buffer The address of the structure memory to fill. Structure The type of the structure to fill.
Return value
None.
Remarks
The extraction is performed recursively if the structure contains further structures, arrays, lists or maps. If the JSON value contains any members that do not have the proper type to match a structure member they will be ignored and the corresponding structure member is left empty.
Any '*' or '$' characters are stripped from the structure member names before comparing them to the JSON object members. So a member key must not include these characters to be properly matched to a structure member.
The comparison of member keys to structure member names is performed case sensitive. If the #JSON data was created or parsed with the #PB_JSON_NoCase flag, the comparison is performed case insensitive.
Example
Structure Person Name$ Age.l List Books.s() EndStructure Input$ = "{" + Chr(34) + "Name" + Chr(34) + ": " + Chr(34) + "John Smith" + Chr(34) + ", " + Chr(34) + "Age" + Chr(34) + ": 42, " + Chr(34) + "Books" + Chr(34) + ": [" + Chr(34) + "Investing For Dummies" + Chr(34) + ", " + Chr(34) + "A Little Bit of Everything For Dummies" + Chr(34) + "] }" ParseJSON(0, Input$) ExtractJSONStructure(JSONValue(0), @P.Person, Person) Debug P\Name$ Debug P\Age Debug ListSize(P\Books())
See Also
ExtractJSONArray(), ExtractJSONList(), ExtractJSONMap(), InsertJSONArray(), InsertJSONList(), InsertJSONMap(), InsertJSONStructure(), SetJSONObject(), JSONType()
Supported OS
All


Flashcards |
{{level3data.hirenm}}
Assessment starts when module is marked as complete
Assessment: In progress
Assessment: {{auditproc.assessment.assmtstatus}}
{{attempt.result ==='p'?