General Policies
Accessions and Exchanges
Specimen Data and Label Templates
Pest Control
Destructive Sampling
General Policies for In-House Researchers
Welcome to the University and Jepson Herbaria! As a graduate student,
post-doc, or visiting
researcher, you are probably already familiar with general herbarium
procedures. Nevertheless,
because each herbarium tends to have unique aspects, we ask that you
please schedule an
orientation session with the appropriate curatorial staff before you
begin using
the herbaria. This will familiarize you with the herbarium lay-out
and alert you to any
UC/JEPS-specific policies for handling specimens. In addition, please
note the following:
— No dried plant material is allowed into the herbaria until it has
been treated to
destroy potential pests (e.g., herbarium beetles). Specimens removed
from the herbarium
premises (which include contiguous offices) are likewise treated upon
return. Because we no
longer depend on chemical controls (PDB), it is absolutely essential that
this step be taken to
prevent the entry of pests. [Exceptions for some plant groups.]
The primary treatment is freezing for several days. Specimens to be
frozen can be left in the
herbarium cabinet in the quarantine/field room (1001EA). After freezing,
specimens can be
retrieved from the routing ("F") cabinet (see below); expect about a
week's turn-around time.
— Unless arranged otherwise, all incoming shipments of dried
plants are frozen and processed by
collections management staff prior to being routed to designated
recipient. Please do not take
incoming shipments of dried plants from the mailing area, even if they
are addressed to you, until
they have been frozen and processed. Notify collections management staff
if you are expecting a
shipment that should NOT be frozen or that otherwise requires special
processing.
— Also as a vital component of infestation prevention, specimens are
kept in cabinets when not in
use. Any specimens left out overnight are frozen before being
refiled (give to
Collections Management staff). See Collections Manager for herbarium
cabinet availability beyond
what might be in your assigned space.
— If specimens are removed from the main collection to be kept with
study material from other
sources, leave a tag behind indicating where the specimens are located.
— The 'F" or routing case is used as a holding case when
specimens are being routed to someone
(e.g., after freezing), so that specimens need not be left sitting out if
the person is not available.
The person is notified by a card left in his/her mailbox. When retrieving
specimens, please
remember to return the card to the pocket inside the door of the routing
case. Please do not leave
specimens sitting in the routing case for extended periods of time.
— Materials for class use or display is placed in protective
plastic covers for protection and
logged out as a short-term loan. Frequently used specimens are kept in
covers and maintained
separately. For further instructions, check with collections management
staff.
— A limited number of herbarium plant presses is available to be
checked out for a defined period
of time (see Collections Manager; avoid last-minute requests). For
extended use, you are
encouraged to purchase or construct a personal plant press.
Loans from Other Institutions: Material is borrowed from other
herbaria as a loan between
institutions, not between individuals. Loan request letters are from a
designated representative of
the institution (e.g., Director of the Herbarium), and the institution
accepts responsibility for the
proper care and timely return of borrowed specimens. Unless agreed to in
advance, all loans are
expected to be fully annotated prior to return. Removal of material for
destructive sampling (e.g.,
molecular analysis) also requires prior approval from the lending
institution. When you are ready
to begin borrowing specimens, check with Collections Manager (or
appropriate cryptogamic
curator) for further details and instructions.
Accessions and Exchanges
The University and Jepson Herbaria are constantly growing collections,
reflecting the on-going growth in our knowledge of plant diversity and
distribution. New acquisitions result primarily from 1) in-house staff
and student collections, 2) standing exchange programs with other
herbaria world-wide, 3) specimens sent as gift-for-identification to
in-house researchers, and 4) gifts from a diversity of sources,
especially non-academic professionals and native plant enthusiasts. The
latter often serve as our most valued source of new records from under
collected areas in the western United States.
In general, the Jepson Herbarium (JEPS) accessions only vascular plants
from California, whereas the University Herbarium (UC) covers all plant
groups world-wide. Gifts of California plants will be deposited in the
Jepson Herbarium unless the donor specifies otherwise.
All exchange is through the University Herbarium. At present we are not
soliciting new exchange programs, due to limitations in our capacity to
generate and process outgoing material, consisting primarily of
specimens from the western United States.
To minimize redundancy of specimens in the San Francisco Bay Area, we
have a non-duplication policy with the California Academy of Sciences
(CAS/DS). Exceptions are made for types and other particularly
significant collections.
Because of limited specimen processing resources and storage capacity,
specimens submitted for accessioning in the University of California at
Berkeley herbaria should generally meet the criteria detailed as follows:
- Be well-prepared, with sufficient material to occupy a standard
herbarium sheet (unless rarity dictates otherwise). Extraneous plants
and dirt should be removed (note associates and substrate on label if
relevant, not as part of the specimen!).
- Possess fertile structures and/or other critical identifying features
appropriate to the plant group.
- Be accompanied by ready-to-mount labels (permanent ink on acid free
paper) with complete label data (see Specimen Data and Label Templates).
- Be accompanied by electronic data corresponding in content to the printed-out label and capable of being converted to our database format (see Specimen Data and Label Templates).
- Fall within the following desiderata:
- Uncommon or otherwise
interesting plants from California. This includes range extensions,
material from under-collected areas, and significant recollections or
similar vouchers.
- Good collections from the
western United States, especially if uncommon or otherwise interesting.
- Specimens from Latin
America, including Mexico and the West Indies.
- Specimens from Asia and
the Pacific Basin, including Australasia.
- Specimens from
Mediterranean and other arid regions worldwide.
- Representatives of unusual
plant groups worldwide.
- Representatives of groups
under investigation by UC-JEPS staff (e.g., pteridophytes,
Compositae, herbaceous Rosaceae)
- Cultivated material only
if 1) from the Bay Area or 2) the locality of the wild source population
is indicated and falls within the above desiderata.
- Vouchers for studies
undertaken at UC-Berkeley. (In the case of large voucher sets, a
representative subset will be fully accessioned and cross-referenced to
the remainder, which will be kept unmounted in a voucher storage area).
- Unidentified specimens from interesting areas and earlier times, as long as good locality data are present (accepted on a case-by-case basis).
Specimens submitted by mail for accession should be addressed to:
Andrew Doran
University of California, Berkeley
University and Jepson Herbaria
1001 Valley Life Sciences Building #2465
Berkeley, CA 94720-2465
USA
Specimen Data and Label Templates
To help expedite processing of incoming accessions, the University and Jepson Herbaria provide a Microsoft Excel data entry template matching our specimen database format. We also provide a matching MS Word Mail Merge document to generate herbarium labels from the spreadsheet. Instructions are also included.
Download the label generating files here
A separate data/label template geared specifically toward collecting California rare plants is provided in collaboration between the California Plant Phylodiversity Project (CPPP) and the CNPS Rare Plant Treasure Hunt. Files are available through the CPPP Workshop Page.
Please send questions/comments about the templates to<EMAIL_ADDRESS>Pest Control
In order that the herbarium central collections area be maintained as a
(hopefully) pest-free environment without relying on paradichlorobenzene
or other toxic chemicals, NO PLANTS ARE TO BE BROUGHT INTO THE
CENTRAL COLLECTIONS AREA until or unless they meet the following
guidelines:
a. All incoming dried meterial MUST be frozen for a week (if a shorter
time period is essential, microwaving is an option). This is particularly
critical for specimens shipped from other institutions, including
returned UC/JEPS specimens. Even specimens that are not prone to
infestation (e.g., algae, bryophytes) should be frozen in order to
eliminate potential paper-destroying pests.
b. As an exception rather than the rule, a limited quantity of recently
collected specimens that 1) have not been housed where infestations are
likely and 2) are needed in the collections area for only a brief period
of time (e.g., for comparison with UC/JEPS collections) may be given
clearance after a visual inspection by an authorized staff member. This
is a pragmatic alternative to microwaving, based on the fact that even if
eggs are present they are unlikely to hatch and cause an infestation
within a few hours. As a corollary, the specimens should subsequently be
frozen if they are to be left in the herbarium.
c. Living material is generally okay, following the logic that the pests
that attack live plants are not the same as those that attack dried plant
material (also, living plants do not hold up well to freezing or
microwaving). However, pollen-bearing structures and dead portions should
be inspected and/or removed.
d. Specimens left out overnight should be frozen prior to refiling
(evening is the period of greatest adult herbarium beetle activity). It
is also recommended that material that has been housed outside of the
main collection area (e.g., research offices) be frozen prior to
refiling, just to be on the safe side. Specimens that have been outside
of the contiguous herbarium area (e.g., offices elsewhere in VLSB) must
be frozen prior to reentry.
e. Fluid-preserved material does not need to be frozen. Remember,
however, that formalin-preserved material should be examined only under
an operating hood.
Destructive Sampling of Specimens
Two important missions of herbaria are: 1) to preserve the botanical
specimens entrusted to their keeping; and 2) to make the specimens
available for study by researchers. By and large, the primary uses of
herbarium specimens, such as examining morphology or recording
distributional data, are non-destructive.
Destructive uses of herbarium specimens (such as anatomical preparations
or
removal of pieces for DNA extraction) are generally strongly discouraged.
The University and Jepson Herbaria nevertheless acknowledge that there
are
instances in which the removal of a limited amount of material for
destructive
sampling does not seriously compromise the value of the specimen for
other
purposes; if done properly, the value of the specimen may even be
enhanced in that it has acquired additional status as a voucher. Our
policy on destructive sampling is therefore as follows:
- Herbarium specimens should not be the source of first choice if there
are other
available sources for the desired material (e.g., field collections,
botanical gardens). Collaboration with local collectors, for example,
can be a mutually satisfactory arrangement.
- Destructive sampling will continue to be considered the exception to
the rule, not the normal procedure. As such, permission to remove
material must be requested in writing in advance and is subject to
specimen by specimen approval.
- Material may be removed only from specimens that have an abundance of
the kind of material being removed, such that the value of the specimen
for non-destructive research is retained.
- Destructive sampling of type specimens or similarly valuable
historical specimens is not permitted unless: a) the information to be
obtained is of critical significance; b) there is absolutely no other way
to obtain the desired material; c) sufficient material exists; and d) a
special exemption is granted.
- Specimens from which material has been removed are to be annotated to
indicate what was removed, when, where, and by whom. In light of the
status of the specimen as a voucher, a reference to where the results are
published and/or material is deposited is highly desirable. Example:
Leaf material removed for cp-DNA sequencing at UC by A.K. Johnson on 25
March
1996, in conjunction with doctoral studies on the phylogeny of Rosidae.
GENBANK
#1237; unused cp-DNA banked at UC; results published in Amer. J. Bot.
86:122-154,1999.
Thank you for your cooperation with this policy. Please
contact us
before proceeding with any destructive sampling that has not been
approved in writing.


© Created by Marianne Ferguson @ Seaholm Digital LLC. All rights reserved.
The intent of this website is to help users craft great customer support emails. Any suggested wording or structure should be modified or disregarded dependent on the user's specific context and needs. Seaholm Digital LLC cannot be held responsible for the misuse of this website or its content.


Mumbai: Cop among first to enter Taj during 26/11 dies
Kakde had gone for a run at Marine Drive to prepare for an upcoming marathon Friday morning when he collapsed.
by Express News ServiceNitin Kakde (45), an assistant police inspector who was among the first to enter the Taj Mahal Palace Hotel during the 26/11 terror attacks in 2008, died from a heart attack on Friday.
Kakde had gone for a run at Marine Drive to prepare for an upcoming marathon Friday morning when he collapsed.
He was taken to a nearby hospital where he was declared dead. Posted at the LT Marg police station, Kakde had received a gallantry medal from the President. He is survived by his wife and two children.


Portfolio risk optimization, Monte Carlo simulation, stress analytics, path-dependent liquidity, bond risk/valuation models
Web: Twitter-clone, real time chat, dynamic graphs
iOS: Graphing calculator, Tetris, ToDo
Photoshop, Excel, Powerpoint, SublimeText


Demand
Attachments
Status
Budget
Duration
Demand owner
Required skills
Proposals
Delivery
Comments
You have not bid yet, click
here
to make a bid.
Notice
This demand is
Notice
Demand expired
Budget
:
Duration
:
Accept
Demand closed, no comment allowed
commented at
replied at
Accept
Reject
send at


| pat_rnw {knitr} | R Documentation |
These are convenience functions to set pre-defined pattern lists (the syntax
to read input documents). The function names are built from corresponding
file extensions, e.g. pat_rnw()
can set the Sweave syntax to read Rnw
documents.
pat_rnw() pat_brew() pat_tex() pat_html() pat_md() pat_rst() pat_asciidoc() pat_textile()
The patterns object knit_patterns
is modified as a side
effect.
# see how knit_patterns is modified knit_patterns$get() pat_rnw() knit_patterns$get() knit_patterns$restore() # empty the list


Transform pattern matching and guards to simple case expressions.
Example code:
take n (x: xs) | n > 0 = x: take (n-1) xs
take _ _ = []
After transformation:
take n vs = case vs of
[] -> []
x: xs -> case n > 0 of
False -> []
True -> x: take (n-1) xs
Simple case expression:
Exhaustiveness example:
head (x: xs) = x -- [] case is missing
Reachability example #1:
head' a = error "no head"
head' (x: xs) = x -- alternative is not reachable
Reachability example #2:
f _ False = 1
f True False = 2 -- 2 is not reachable, but the alternative is not removable!
f _ _ = 3
Pattern guard example:
lookup :: FiniteMap -> Int -> Maybe Int
addLookup env var1 var2
| Just val1 <- lookup env var1
, Just val2 <- lookup env var2
= val1 + val2
...
Transformed into:
addLookup env var1 var2 = case lookup env var1 of
Nothing -> ...
Just val1 -> case lookup env var2 of
Nothing -> ...
Just val2 -> val1 + val2
Viewpatterns example:
f :: Complex -> Double
f (polar -> (arg, d)) | d > 1 = arg
f _ = 0
Transformed into:
f z = case polar z of
(arg, d) -> case d > 1 of
False -> 0
True -> arg
An intermediate data structure for pattern guard compilation:
| guardtree | := | expression | success |
| | | MatchFailure |
failure | |
| | | guardtree | guardtree |
alternatives | |
| | | pattern <- expression , guardtree |
pattern guard | |
| | | let bindings in guardtree |
let binding |
Guard trees are generalization of pattern guards:
Example:
zip [] _ = []
zip x [] = []
zip (a:as) (b:bs) = (a,b) : zip as bs
Transformed code:
zip v0 v1
= ([] <- v0, _ <- v1, [])
| (x <- v0, [] <- v1, [])
| (a:as <- v0, b:bs <- v1, (a,b) : zip as bs)
t | (t' | t'') |
= (t | t') | t'' |
(| ) is associative |
MatchFailure | t |
= t | MatchFailure is left unit |
t | MatchFailure |
= t | MatchFailure is right unit |
t | t |
= t | (| ) is idempotent |
e | t |
= e | success ignores alternative |
C1 p1 ... pn <- C2 e1 ... em, t |
= MatchFailure |
constructor match failure |
Simple constructor patterns:
| conpattern | := | conname (variable)* |
The following equations turn all patterns into simple constructor patterns:
_ <- e, t |
= t | wildcard elim |
v <- e, t |
= let v = e in t |
variable elim |
v@ p <- e, t |
= let v = e in p <- v, t |
at-pattern elim |
C p1 ... pn <- e, t |
= C w1 ... wn <- e, p1 <- w1, ..., pn <- wn, t |
nested pattern elim |
(f -> p) <- e, t |
= p <- f e, t |
view pattern elim |
Compilation is driven by the following equations:
C ... <-
e,
t | t'
= seq
e (C ... <-
e,
t | t')
seq
e t
= case
e of
p1 ->
t; ...; pn ->
t
if p1, ..., pn is complete
case
e of
...; C e1 ... en ->
... (C v1 ... vn <-
e,
t | t') ...; ...
= case
e of
...; C e1 ... en ->
... (let
v1 = e1; ...; vn = en in
t) ...; ...
case
e of
...; C1 e1 ... en ->
... (C2 v1 ... vn <-
e,
t | t') ...; ...
= case
e of
...; C1 e1 ... en ->
... t' ...; ...
Source code:
zip [] _ = []
zip x [] = []
zip (a:as) (b:bs) = (a,b) : zip as bs
Transformed to pattern guard trees:
zip v0 v1
= ([] <- v0, _ <- v1, [])
| (x <- v0, [] <- v1, [])
| (a:as <- v0, b:bs <- v1, (a,b) : zip as bs)
Simplified pattern guard trees:
zip v0 v1
= ([] <- v0, [])
| (let x = v0 in [] <- v1, [])
| (a:as <- v0, b:bs <- v1, (a,b) : zip as bs)
Apply (1):
zip v0 v1 = v0 `seq`
([] <- v0, [])
| (let x = v0 in [] <- v1, [])
| (a:as <- v0, b:bs <- v1, (a,b) : zip as bs)
Apply (2) with patterns []
and x:xs
:
zip v0 v1 = case v0 of
[] ->
([] <- v0, [])
| (let x = v0 in [] <- v1, [])
| (a:as <- v0, b:bs <- v1, (a,b) : zip as bs)
x: xs ->
([] <- v0, [])
| (let x = v0 in [] <- v1, [])
| (a:as <- v0, b:bs <- v1, (a,b) : zip as bs)
Apply (3); empty let is eliminated:
zip v0 v1 = case v0 of
[] -> []
x: xs ->
([] <- v0, [])
| (let x = v0 in [] <- v1, [])
| (a:as <- v0, b:bs <- v1, (a,b) : zip as bs)
Apply (4):
zip v0 v1 = case v0 of
[] -> []
x: xs ->
(let x = v0 in [] <- v1, [])
| (a:as <- v0, b:bs <- v1, (a,b) : zip as bs)
Let floating:
zip v0 v1 = case v0 of
[] -> []
x: xs -> let x = v0 in
([] <- v1, [])
| (a:as <- v0, b:bs <- v1, (a,b) : zip as bs)
Apply (1):
zip v0 v1 = case v0 of
[] -> []
x: xs -> let x = v0 in v1 `seq`
([] <- v1, [])
| (a:as <- v0, b:bs <- v1, (a,b) : zip as bs)
Apply (2) with patterns []
and y: ys
:
zip v0 v1 = case v0 of
[] -> []
x: xs -> let x = v0 in case v1 of
[] ->
([] <- v1, [])
| (a:as <- v0, b:bs <- v1, (a,b) : zip as bs)
y: ys ->
([] <- v1, [])
| (a:as <- v0, b:bs <- v1, (a,b) : zip as bs)
Apply (3):
zip v0 v1 = case v0 of
[] -> []
x: xs -> let x = v0 in case v1 of
[] -> []
y: ys ->
([] <- v1, [])
| (a:as <- v0, b:bs <- v1, (a,b) : zip as bs)
Apply (4):
zip v0 v1 = case v0 of
[] -> []
x: xs -> let x = v0 in case v1 of
[] -> []
y: ys ->
a:as <- v0, b:bs <- v1, (a,b) : zip as bs
Apply (3):
zip v0 v1 = case v0 of
[] -> []
x: xs -> let x = v0 in case v1 of
[] -> []
y: ys -> let a = x; as = xs in b:bs <- v1, (a,b) : zip as bs
Apply (3):
zip v0 v1 = case v0 of
[] -> []
x: xs -> let x = v0 in case v1 of
[] -> []
y: ys -> let a = x; as = xs in let b = y; bs = ys in (a,b) : zip as bs
Simplification:
zip v0 v1 = case v0 of
[] -> []
x: xs -> case v1 of
[] -> []
y: ys -> (x, y) : zip xs ys
Exhaustiveness check is just finding MatchFailure
values in the result.
Reachability check is just finding parts of source code not present in result.
Step (2) is very general:
Have not seen this approach before; help to compare it with others.


This was the craziest thing I ever saw while messed up, whether acid, shrooms or whatever I'm familiar with seeing things that may not necessarily be there but this experience was different in that I wasn't expecting it. I've always been a big fan of drinking some booze and then smoking a joint or six.  I agreed immediately and we commenced to smoking the weed in my parent's backyard.
We finish the spliff an go back inside to watch more TV or whatever. We hadn't been sitting down for more than a few minutes when I see what I will refer to as a shadow person walk through the room. He was about my size but completely black and transparent - like my shadow had got up off the ground and taken a walk around.
This thing was scary and I was sure it was staring right at me. It walked through the centre of the room and then behind my parent's bar where he crouched down out of view. Like I was in remote control I got up from my seat to see if this shadowy bastard was lurking back there. On the walk over my mind was screaming at me to turn back but I couldn't stop. Once I looked behind the bar he was gone. When I turned back to my friend he was all freaking out, so I helped him outside and got him a glass of water.
Once he'd calmed down enough he was able to tell me that he had seen the shadow man too but standing behind the TV. Afterwards we just laughed about it and kept drinking/smoking but sometimes I think back on it and still get a chill. wondering whether this was just a hallucination or some entity that our altered state allowed us to see.
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.


ADSR Envelope
ADSR Envelope
is a component that generates a pattern based on time and gating.
Buffer Size
Timed
Plot


I specialize in web, app and front end development using proven skills in JavaScript, ReactJS, Python and other technolgies required to meet business needs at your organization.
I am always open to challenges and constructive feedback. I want to become a team player and dedicate all my skills and talents to develop high-quality and unique products.
A LinkedIn clone built using ReactJS, Redux and Firebase. It also includes a sign-in page.
An e-commerce bakery website built using ReactJS. It also includes a cart functionality.
A command-line program developed to check the number of times a password has been hacked. It was built using Python3 and the pwned API.
Let's talk
Email me!


An Operation is internal type that blockchain is working with. Every transaction consists of some static fields like “ref_block_num”,
“expiration”, “signatures”, etc… that are always present + list of “operations” that may vary and actually express what is such transaction really supposed to write into blockchain.
Each type of operation express different data structure that can be sent into blockchain and saved or somehow change the blockchain state. The main API call to send transaction with user defined operations is:
alexandria_api.broadcast_transaction
There are also simplified methods that enable this functionality as well but are more suited for testing than production development:
alexandria_api.send_and_sign_operation
alexandria_api.send_and_sign_transaction
All other alexandria_api method’s (except of a few helper method to create transaction, etc…) are ONLY FOR READING DATA from blockchain !!!
Final required format of the operations is always in "Example. op" section.
We provide simplified helper methods that return the required format of some of the supported operations, but applications should not call these methods at all as the format does not change. Instead, SDK should take care of that.
List of supported operations:
- transfer
- transfer_to_vesting
- withdraw_vesting
- transfer_from_promotion_pool
- account_create
- account_update
- account_delete
- request_account_recovery
- recover_account
- change_recovery_account
- reset_account
- set_reset_account
- application_create
- application_update
- application_delete
- buy_application
- cancel_application_buying
- custom_binary
- custom_json
- sponsor_fees
- witness_stop
- witness_update
- account_witness_proxy
- witness_set_properties
- admin_witness_update
- account_witness_vote
- feed_publish
- escrow_transfer
- escrow_approve
- escrow_dispute
- escrow_release
transfer
Helper API simplified call to create this operation in required format exists! See below!
alexandria_api.transfer
Transfers SOPHIATX from one account to another. API call creates "transfer" operation in requested json format.
Request:
Result:
Query Parameters JSON
{
"from": "",
"to": "",
"amount": "0.000000 SPHTX",
"memo": ""
}
Example Op. (& Expected Response JSON)
{
"op": [
"transfer",
{
"fee": "0.000000 SPHTX",
"from": "",
"to": "",
"amount": "0.000000SPHTX",
"memo": ""
}
]
}
Real Example curl
curl -s --data '{"jsonrpc": "2.0", "method": "alexandria_api.transfer", "params": {"from": "7HLPQ1kpnAIWawkAEgcoN4I7qJY", "to": "YWV2w-Q5eB3e0gt_nKS1m85sc0U", "amount": "1000.000000 SPHTX","memo": "some note"}, "id": 1}' https://API_URL
Response curl
'{
"jsonrpc": "2.0",
"result": {
"op": [
"transfer",
{
"fee": "0.000000 SPHTX",
"from": "user1",
"to": "7HLPQ1kpnAIWawkAEgcoN4I7qJY",
"amount": "1000.000000 SPHTX",
"memo": "some note"
}
]
},
"id": 1
}'
transfer_to_vesting
Helper API simplified call to create this operation in required format exists! See below!
alexandria_api.transfer_to_vesting
Transfer SPHTX into a vesting fund represented by vesting shares (VESTS). VESTS are required to vesting for a minimum of one coin year and can be withdrawn once a week over a two year withdraw period. VESTS are protected against dilution up until 90% of SPHTX is vesting.
API call creates "transfer_to_vesting" operation in requested json format.
Request:
Result:
Query Parameters JSON
{"from": "", "to": "", "amount": "0.000000 SPHTX"}
Example Op. (& Expected Response JSON)
{
"op": [
"transfer_to_vesting",
{
"fee": "0.000000 SPHTX",
"from": "",
"to": "",
"amount": "0.000000SPHTX"
}
]
}
Default (Incomplete params values) Example curl
curl -s --data '{"jsonrpc": "2.0", "method": "alexandria_api.transfer_to_vesting", "params": {"from":"","to":"","amount":"0.000000 SPHTX"}, "id": 1}' https://API_URL
withdraw_vesting
Helper API simplified call to create this operation in required format exists! See below!
alexandria_api.withdraw_vesting
Set up a vesting withdraw request. The request is fulfilled once a week over the next two year (104 weeks).
API call creates "withdraw_vesting" operation in requested json format.
Request:
Result:
Query Parameters JSON
{"from": "", "vesting_shares": "0.000000 SPHTX"}
Example Op. (& Expected Response JSON)
{
"op": [
"withdraw_vesting",
{
"fee": "0.000000 SPHTX",
"account": "",
"vesting_shares": "0.000000SPHTX"
}
]
}
Default (Incomplete params values) Example curl
curl -s --data '{"jsonrpc": "2.0", "method": "alexandria_api.withdraw_vesting", "params": {"from":"","vesting_shares":"0.000000 SPHTX"}, "id": 1}' https://API_URL
transfer_from_promotion_pool
Recovers funds from the promotion pool. Only initminer can do that.
Example Op.
"{\"op\":[\"transfer_from_promotion_pool\",{...}]}"
account_create
Helper API simplified call to create this operation in required format exists! See below!
alexandria_api.create_account
Creates new account in blockchain.
API call creates operation ‘account_create’ in required json format
Request
Response
Query Parameters JSON
{
"creator": "",
"name_seed": "",
"json_meta": "",
"owner": "SPH1111111111111111111111111111111114T1Anm",
"active": "SPH1111111111111111111111111111111114T1Anm",
"memo": "SPH1111111111111111111111111111111114T1Anm"
}
Example Op. (& Expected Response JSON)
{
"op": [
"account_create",
{
"fee": "0.000000 SPHTX",
"creator": "",
"name_seed": "",
"owner": {
"weight_threshold": 0,
"account_auths": [],
"key_auths": []
},
"active": {
"weight_threshold": 0,
"account_auths": [],
"key_auths": []
},
"memo_key": "SPH1111111111111111111111111111111114T1Anm",
"json_metadata": ""
}
]
}
Real Example curl
curl -s --data '{"jsonrpc": "2.0", "method": "alexandria_api.create_account", "params": {"creator": "user1","name_seed": "sophiatx_user","json_meta": "{\"data\":\"anything related to the sophiatx_user\"}","owner": "SPH7qASF1CfENDRWdKC5gQCktydRQM2aY3i1d9wFdu1fjpURgTxiw","active": "SPH5ekkeER1xi3EDoxoggo2ruMgPazKsGa8Pj44qrD326oDk5rgKP","memo": "SPH4vtSio7iGMggFboydFjgRZknPEH1BExcN3r4rjb9iznJQr7Mqy"}, "id": 1}' https://API_URL
Response curl
'{
"jsonrpc": "2.0",
"result": {
"op": [
"account_create",
{
"fee": "0.000000 SPHTX",
"creator": "user1",
"name_seed": "sophiatx_user",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"SPH7qASF1CfENDRWdKC5gQCktydRQM2aY3i1d9wFdu1fjpURgTxiw",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"SPH5ekkeER1xi3EDoxoggo2ruMgPazKsGa8Pj44qrD326oDk5rgKP",
1
]
]
},
"memo_key": "SPH4vtSio7iGMggFboydFjgRZknPEH1BExcN3r4rjb9iznJQr7Mqy",
"json_metadata": "{\"data\":\"anything related to the sophiatx_user\"}"
}
]
},
"id": 1
}'
account_update
Helper API simplified call to create this operation in required format exists! See below!
alexandria_api.update_account
Updates existing account in blockchain.
API call creates "account_update" operation in requested json format. Updates the keys of an existing account.
Request:
Result:
Query Parameters JSON
{
"account_name": "",
"json_meta": "",
"owner": "SPH1111111111111111111111111111111114T1Anm",
"active": "SPH1111111111111111111111111111111114T1Anm",
"memo": "SPH1111111111111111111111111111111114T1Anm"
}
Example Op. (& Expected Response JSON)
{
"op": [
"account_update",
{
"fee": "0.000000 SPHTX",
"account": "",
"memo_key": "SPH1111111111111111111111111111111114T1Anm",
"json_metadata": ""
}
]
}
Default (Incomplete params values) Example curl
curl -s --data '{"jsonrpc": "2.0", "method": "alexandria_api.update_account", "params": {"account_name":"","json_meta":"","owner":"SPH1111111111111111111111111111111114T1Anm","active":"SPH1111111111111111111111111111111114T1Anm","memo":"SPH1111111111111111111111111111111114T1Anm"}, "id": 1}' https://API_URL
account_delete
Helper API simplified call to create this operation in required format exists! See below!
alexandria_api.delete_account
Deletes existing account in blockchain.
API call creates “account_delete” operation in requested json format.
Request:
Response:
Query Parameters JSON
{"account_name": ""}
Example Op. (& Expected Response JSON)
{
"op": [
"account_delete",
{"fee": "0.000000 SPHTX", "account": ""}
]
}
Default (Incomplete params values) Example curl
curl -s --data '{"jsonrpc": "2.0", "method": "alexandria_api.delete_account", "params": {"account_name":""}, "id": 1}' https://API_URL
request_account_recovery
All account recovery requests come from a listed recovery account. This is secure based on the assumption that only a trusted account should be a recovery account. It is the responsibility of the recovery account to verify the identity of the account holder of the account to recover by whichever means they have agreed upon. The blockchain assumes identity has been verified when this operation is broadcast.
This operation creates an account recovery request which the account to recover has 24 hours to respond to before the request expires and is invalidated.
There can only be one active recovery request per account at any one time. Pushing this operation for an account to recover when it already has an active request will either update the request to a new new owner authority and extend the request expiration to 24 hours from the current head block time or it will delete the request. To cancel a request, simply set the weight threshold of the new owner authority to 0, making it an open authority.
Additionally, the new owner authority must be satisfiable. In other words, the sum of the key weights must be greater than or equal to the weight threshold.
This operation only needs to be signed by the the recovery account. The account to recover confirms its identity to the blockchain in the recover account operation.
Notes
Example Op.
{
"op": [
"request_account_recovery",
{
"recovery_account": "sophiatx",
"account_to_recover": "alice",
"new_owner_authority": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM6LYxj96zdypHYqgDdD6Nyh2NxerN3P1Mp3ddNm7gci63nfrSuZ",
1
]
]
},
"extensions": []
}
]
}
recover_account
Recover an account to a new authority using a previous authority and verification of the recovery account as proof of identity. This operation can only succeed if there was a recovery request sent by the account’s recover account.
In order to recover the account, the account holder must provide proof of past ownership and proof of identity to the recovery account. Being able to satisfy an owner authority that was used in the past 30 days is sufficient to prove past ownership. The get_owner_history function in the database API returns past owner authorities that are valid for account recovery.
Proving identity is an off chain contract between the account holder and the recovery account. The recovery request contains a new authority which must be satisfied by the account holder to regain control. The actual process of verifying authority may become complicated, but that is an application level concern, not a blockchain concern.
This operation requires both the past and future owner authorities in the operation because neither of them can be derived from the current chain state. The operation must be signed by keys that satisfy both the new owner authority and the recent owner authority. Failing either fails the operation entirely.
If a recovery request was made inadvertantly, the account holder should contact the recovery account to have the request deleted.
The two setp combination of the account recovery request and recover is safe because the recovery account never has access to secrets of the account to recover. They simply act as an on chain endorsement of off chain identity. In other systems, a fork would be required to enforce such off chain state. Additionally, an account cannot be permanently recovered to the wrong account. While any owner authority from the past 30 days can be used, including a compromised authority, the account can be continually recovered until the recovery account is confident a combination of uncompromised authorities were used to recover the account. The actual process of verifying authority may become complicated, but that is an application level concern, not the blockchain’s concern.
Example Op.
{
"op": [
"recover_account",
{
"account_to_recover": "alice",
"new_owner_authority": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM7j3nhkhHTpXqLEvdx2yEGhQeeorTcxSV6WDL2DZGxwUxYGrHvh",
1
]
]
},
"recent_owner_authority": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM78Xth94gNxp8nmByFV2vNAhg9bsSdviJ6fQXUTFikySLK3uTxC",
1
]
]
},
"extensions": []
}
]
}
change_recovery_account
Each account lists another account as their recovery account. The recovery account has the ability to create account_recovery_requests for the account to recover. An account can change their recovery account at any time with a 30 day delay. This delay is to prevent an attacker from changing the recovery account to a malicious account during an attack. These 30 days match the 30 days that an owner authority is valid for recovery purposes.
On account creation the recovery account is set either to the creator of the account (The account that pays the creation fee and is a signer on the transaction) or to the empty string if the account was mined. An account with no recovery has the top voted witness as a recovery account, at the time the recover request is created. Note - This does mean the effective recovery account of an account with no listed recovery account can change at any time as witness vote weights. The top voted witness is explicitly the most trusted witness according to stake.
Example Op.
{
"op": [
"change_recovery_account",
{
"account_to_recover": "alice",
"new_recovery_account": "bob",
"extensions": []
}
]
}
reset_account
This operation allows recovery_accoutn to change account_to_reset’s owner authority to new_owner_authority after 60 days of inactivity.
Example Op.
{
"op": [
"reset_account",
{
"reset_account": "alice",
"account_to_reset": "bob",
"new_owner_authority": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM7j3nhkhHTpXqLEvdx2yEGhQeeorTcxSV6WDL2DZGxwUxYGrHvh",
1
]
]
}
}
]
}
set_reset_account
This operation allows ‘account’ owner to control which account has the power to execute the ‘reset_account_operation’ after 60 days.
Example Op.
{
"op": [
"set_reset_account",
{
"account": "alice",
"current_reset_account": "bob",
"reset_account": "sophiatx"
}
]
}
application_create
Helper API simplified call to create this operation in required format exists! See below!
alexandria_api.create_application
Creates custom application in blockchain
. API call returns “application_create” operation in required format. There is a fee associated with account creation that is paid by the creator. The current account creation fee can be found with the ‘info’ alexandria command.
Request
Response
Query Parameters JSON
{
"author": "",
"app_name": "",
"url": "",
"meta_data": "",
"price_param": 0
}
Example Op. (& Expected Response JSON)
{
"op": [
"application_create",
{
"fee": "0.000000 SPHTX",
"author": "",
"name": "",
"url": "",
"metadata": "",
"price_param": 0
}
]
}
Default (Incomplete params values) Example curl
curl -s --data '{"jsonrpc": "2.0", "method": "alexandria_api.create_application", "params": {"author":"","app_name":"","url":"","meta_data":"","price_param":0}, "id": 1}' https://API_URL
application_update
Helper API simplified call to create this operation in required format exists! See below!
alexandria_api.update_application
Updates custom application in blockchain
. API call returns "application_update" operation in requested json format. Updates existing application object.
Request:
Result:
Query Parameters JSON
{
"author": "",
"app_name": "",
"new_author": "",
"url": "",
"meta_data": "",
"price_param": 0
}
Example Op. (& Expected Response JSON)
{
"op": [
"application_update",
{
"fee": "0.000000 SPHTX",
"author": "",
"name": "",
"url": "",
"metadata": ""
}
]
}
Default (Incomplete params values) Example curl
curl -s --data '{"jsonrpc": "2.0", "method": "alexandria_api.update_application", "params": {"author":"","app_name":"","new_author":"","url":"","meta_data":"","price_param":0}, "id": 1}' https://API_URL
application_delete
Helper API simplified call to create this operation in required format exists! See below!
alexandria_api.delete_application
Deletes custom application in blockchain
. API call returns “application_delete” operation in required format. Request
Response
Query Parameters JSON
{"author": "", "app_name": ""}
Example Op. (& Expected Response JSON)
{
"op": [
"application_delete",
{
"fee": "0.000000 SPHTX",
"author": "",
"name": ""
}
]
}
Default (Incomplete params values) Example curl
curl -s --data '{"jsonrpc": "2.0", "method": "alexandria_api.delete_application", "params": {"author":"","app_name":""}, "id": 1}' https://API_URL
buy_application
Helper API simplified call to create this operation in required format exists! See below!
alexandria_api.buy_application
Buys custom application in blockchain
. API call returns “buy_application” operation in required format.
Request
Response
Query Parameters JSON
{"buyer": "", "app_id": 0}
Example Op. (& Expected Response JSON)
{
"op": [
"buy_application",
{
"fee": "0.000000 SPHTX",
"buyer": "",
"app_id": 0
}
]
}
Default (Incomplete params values) Example curl
curl -s --data '{"jsonrpc": "2.0", "method": "alexandria_api.buy_application", "params": {"buyer":"","app_id":0}, "id": 1}' https://API_URL
cancel_application_buying
Helper API simplified call to create this operation in required format exists! See below!
alexandria_api.cancel_application_buying
Cancel custom application buying in blockchain
. API call returns “cancel_application_buying” operation in required format.
Request
Response
Query Parameters JSON
{"app_owner": "", "buyer": "", "app_id": 0}
Example Op. (& Expected Response JSON)
{
"op": [
"cancel_application_buying",
{
"fee": "0.000000 SPHTX",
"app_owner": "",
"buyer": "",
"app_id": 0
}
]
}
Default (Incomplete params values) Example curl
curl -s --data '{"jsonrpc": "2.0", "method": "alexandria_api.cancel_application_buying", "params": {"app_owner":"","buyer":"","app_id":0}, "id": 1}' https://API_URL
custom_binary
Helper API simplified call to create this operation in required format exists! See below!
alexandria_api.make_custom_binary_operation
Saves custom binary data in blockchain
. API call returns "custom_binary" operation in requested json format.
Request:
Result:
Query Parameters JSON
{"app_id": 0, "from": "", "to": [], "data": ""}
Example Op. (& Expected Response JSON)
{
"op": [
"custom_binary",
{
"fee": "0.000000 SPHTX",
"sender": "",
"recipients": [],
"app_id": 0,
"data": ""
}
]
}
Real Example curl
curl -s --data '{"jsonrpc": "2.0", "method": "alexandria_api.make_custom_binary_operation", "params": {"app_id": 10, "from": "user1", "to": ["user2", "user3"], "data": "SGVsbG8gU29waGlhVFg="}, "id": 1}' https://API_URL
Response curl
'{
"op": [
"custom_binary",
{
"fee": "0.000000 SPHTX",
"sender": "user1",
"recipients": ["user2", "user3"],
"app_id": 10,
"data": "48656c6c6f20536f706869615458"
}
]
}'
custom_json
Helper API simplified call to create this operation in required format exists! See below!
alexandria_api.make_custom_json_operation
Saves custom json data in blockchain
. API call returns "custom_json" operation in requested json format.
Request:
Result:
Query Parameters JSON
{"app_id": 0, "from": "", "to": [], "json": ""}
Example Op. (& Expected Response JSON)
{"op": []}
Real Example curl
curl -s --data '{"jsonrpc": "2.0", "method": "alexandria_api.make_custom_json_operation", "params": {"app_id": 10, "from": "user1", "to": ["user2", "user3"], "json": "{\"data\":\"any valid json data\"}"}, "id": 1}' https://API_URL
Response curl
'{
"op": [
"custom_json",
{
"fee": "0.000000 SPHTX",
"sender": "user1",
"recipients": ["user2", "user3"],
"app_id": 10,
"json": "{\"data\":\"any valid json data\"}"
}
]
}'
sponsor_fees
Helper API simplified call to create this operation in required format exists! See below!
alexandria_api.sponsor_account_fees
Sets up sponsoring account for another account fees
. API call returns "sponsor_fees" operation in requested json format.
Request
Response
Query Parameters JSON
{
"sponsoring_account": "",
"sponsored_account": "",
"is_sponsoring": false
}
Example Op. (& Expected Response JSON)
{
"op": [
"sponsor_fees",
{
"fee": "0.000000 SPHTX",
"sponsor": "",
"sponsored": "",
"is_sponsoring": false
}
]
}
Default (Incomplete params values) Example curl
curl -s --data '{"jsonrpc": "2.0", "method": "alexandria_api.sponsor_account_fees", "params": {"sponsoring_account":"","sponsored_account":"","is_sponsoring":false}, "id": 1}' https://API_URL
witness_stop
Helper API simplified call to create this operation in required format exists! See below!
alexandria_api.stop_witness
Stops witness.
. API call returns "witness_stop" operation in requested json format.
Request
Response
Query Parameters JSON
{"witness_account_name": ""}
Example Op. (& Expected Response JSON)
{
"op": [
"witness_stop",
{"fee": "0.000000 SPHTX", "owner": ""}
]
}
Default (Incomplete params values) Example curl
curl -s --data '{"jsonrpc": "2.0", "method": "alexandria_api.stop_witness", "params": {"witness_account_name":""}, "id": 1}' https://API_URL
witness_update
Helper API simplified call to create this operation in required format exists! See below!
alexandria_api.update_witness
Updates witness.
. API call returns "witness_update" operation in requested json format. Updates a witness object owned by the given account.
Request:
Result:
Query Parameters JSON
{
"witness_account_name": "",
"url": "",
"block_signing_key": "SPH1111111111111111111111111111111114T1Anm",
"props": {
"account_creation_fee": "0.000000 SPHTX",
"maximum_block_size": 262144,
"price_feeds": []
}
}
Example Op. (& Expected Response JSON)
{
"op": [
"witness_update",
{
"fee": "0.000000 SPHTX",
"owner": "",
"url": "",
"block_signing_key": "SPH1111111111111111111111111111111114T1Anm",
"props": {
"account_creation_fee": "0.000000SPHTX",
"maximum_block_size": 262144,
"price_feeds": []
}
}
]
}
Default (Incomplete params values) Example curl
curl -s --data '{"jsonrpc": "2.0", "method": "alexandria_api.update_witness", "params": {"witness_account_name":"","url":"","block_signing_key":"SPH1111111111111111111111111111111114T1Anm","props":{"account_creation_fee":"0.000000 SPHTX","maximum_block_size":262144,"price_feeds":[]}}, "id": 1}' https://API_URL
account_witness_proxy
Helper API simplified call to create this operation in required format exists! See below!
alexandria_api.set_voting_proxy
Sets the voting proxy for an account. If a user does not wish to take an active part in voting,they can choose to allow another account to vote their stake. Setting a vote proxy does not remove your previous votes from the blockchain, they remain there but are ignored. If you later null out your vote proxy, your previous votes will take effect again. This setting can be changed at any time.
API call returns "account_witness_proxy" operation in requested json format.
Request
Response
Query Parameters JSON
{"account_to_modify": "", "proxy": ""}
Example Op. (& Expected Response JSON)
{
"op": [
"account_witness_proxy",
{
"fee": "0.000000 SPHTX",
"account": "",
"proxy": ""
}
]
}
Default (Incomplete params values) Example curl
curl -s --data '{"jsonrpc": "2.0", "method": "alexandria_api.set_voting_proxy", "params": {"account_to_modify":"","proxy":""}, "id": 1}' https://API_URL
witness_set_properties
Replaces the witness_update which was not easily extendable. While it is recommended to use witness_set_properties, witness_update will continue to work
Example Op.
{
"op": [
"witness_set_properties",
{
"owner": "alice",
"props": {
"account_creation_fee": "0.000 SPHTX",
"account_subsidy_budget": 10000,
"account_subsidy_decay": 330782,
"maximum_block_size": 65536,
"sbd_interest_rate": "0.000 SPHTX",
"sbd_exchange_rate": {
"base": "0.000 SBD",
"quote": "0.000 SPHTX"
},
"url": "68747470733A2F2F737465656D69742E636F6D",
"new_signing_key": "25688bbe7b1204f26e40be054c8b2ff1997eec6d4e7be6a105aab8a0e6f11c616d7cb6066"
},
"extensions": []
}
]
}
admin_witness_update
Add description.
This opertion can be used only in private nets.
Example Op.
{"op": ["add name", {}]}
account_witness_vote
Helper API simplified call to create this operation in required format exists! See below!
alexandria_api.vote_for_witness
Creates "account_witness_vote" operation in requested json format. Vote for a witness to become a block producer. By default an account has not voted positively or negatively for a witness. The account can either vote for with positively votes or against with negative votes. The vote will remain until updated with another vote. Vote strength is determined by the accounts vesting shares.
Request:
Result:
Query Parameters JSON
{
"voting_account": "",
"witness_to_vote_for": "",
"approve": false
}
Example Op. (& Expected Response JSON)
{
"op": [
"account_witness_vote",
{
"fee": "0.000000 SPHTX",
"account": "",
"witness": "",
"approve": true
}
]
}
Default (Incomplete params values) Example curl
curl -s --data '{"jsonrpc": "2.0", "method": "alexandria_api.vote_for_witness", "params": {"voting_account":"","witness_to_vote_for":"","approve":false}, "id": 1}' https://API_URL
feed_publish
Feeds can only be published by the top N witnesses which are included in every round and are used to define the exchange rate between sophiatx and the fiat currencies.
Represents quotation of the relative value of asset against another asset. Similar to "currency pair" used to determine value of currencies.
For example:
1 SPHTX / 1.25 USD where:
1 SPHTX is an asset specified as a base
1.25 USD us an asset specified as a quote
can determine value of SPHTX against USD.
Example Op.
{
"op": [
"feed_publish",
{
"publisher": "user1",
"exchange_rate": {
"base": {"amount": 1, "symbol": "SPHTX"},
"quote": {"amount": 1.25, "symbol": "USD"}
}
}
]
}
escrow_transfer
The purpose of this operation is to enable someone to send money contingently to another individual. The funds leave the from account and go into a temporary balance where they are held until from releases it to to or to refunds it to from.
In the event of a dispute the agent can divide the funds between the to/from account. Disputes can be raised any time before or on the dispute deadline time, after the escrow has been approved by all parties.
This operation only creates a proposed escrow transfer. Both the agent and to must agree to the terms of the arrangement by approving the escrow.
The escrow agent is paid the fee on approval of all parties. It is up to the escrow agent to determine the fee.
Escrow transactions are uniquely identified by ‘from’ and ‘escrow_id’, the ‘escrow_id’ is defined by the sender.
Example Op.
{
"op": [
"escrow_transfer",
{
"from": "alice",
"to": "bob",
"sophiatx_amount": {"amount": "1.000000", "symbol": "SPHTX"},
"escrow_id": 23456789,
"agent": "charlie",
"escrow_fee": {"amount": "0.1", "symbol": "USD"},
"json_meta": "{}",
"ratification_deadline": "2017-02-26T11:22:39",
"escrow_expiration": "2017-02-28T11:22:39"
}
]
}
escrow_approve
The agent and to accounts must approve an escrow transaction for it to be valid on the blockchain. Once a part approves the escrow, they cannot revoke their approval. Subsequent escrow approve operations, regardless of the approval, will be rejected.
Example Op.
{
"op": [
"escrow_approve",
{
"from": "alice",
"to": "bob",
"agent": "charlie",
"who": "charlie",
"escrow_id": 59102208,
"approve": true
}
]
}
escrow_dispute
If either the sender or receiver of an escrow payment has an issue, they can raise it for dispute. Once a payment is in dispute, the agent has authority over who gets what.
Example Op.
{
"op": [
"escrow_dispute",
{
"from": "alice",
"to": "bob",
"agent": "charlie",
"who": "alice",
"escrow_id": 72526562
}
]
}
escrow_release
This operation can be used by anyone associated with the escrow transfer to release funds if they have permission.
The permission scheme is as follows
Example Op.
{
"op": [
"escrow_release",
{
"from": "alice",
"to": "bob",
"agent": "charlie",
"who": "charlie",
"receiver": "bob",
"escrow_id": 72526562,
"sbd_amount": {
"amount": "5000",
"precision": 3,
"nai": "@@000000013"
},
"steem_amount": {
"amount": "0",
"precision": 3,
"nai": "@@000000021"
}
}
]
}


Oppo ColorOS 7 adaptation schedule released - Gizchina.com
by Efe UdinOppo ColorOS 7 adaptation schedule released
4.7 (93.33%) 3 votes
Chinese manufacturer, Oppo, held a conference in Beijing this afternoon where it released the ColorOS 7 system. In addition, Oppo announced that Oppo Reno 3 series will be the first ColorOS 7 device. This series supports dual-mode 5G. Furthermore, the company has released the ColorOS 7 adaptation schedule. This is the largest scale adaptation plan in ColorOS history.
Oppo ColorOS 7 adaptation schedule
- 25th November 2019: Oppo Reno, Reno inspired version, Reno 10x zoom version, Reno Barcelona custom version, Reno Ace and Reno Ace Gundam edition
- December 2019: Oppo Reno2
- Q1 2020: Oppo Reno2 Z, Reno Z, Find X, Find X Lamborghini Edition, Find X Super Flash Edition, Oppo R17, R17 New Year Edition, R17 Pro, R17 Pro New Year Edition, R17 Pro King Custom Edition, R17 Pro Pikachu Custom Edition, and Oppo K5
- Q2 2020: Oppo R15, R15 Dream Edition, Oppo K3, A9, A9x, A11, and Oppo A11x
- February 2020: Realme X, Realme X youth version
- March 2020: Realme Q
- April 2020: Realme X2, Realme X2 Pro
ColorOS 7 improvements
ColorOS 7 evolves with a borderless concept and is lightweight. It comes with a softer color scheme, redrawn icons, and Art + wallpapers. This in association with the new quantum animation engine provides more visual interaction. It also has an all-weather dark mode, global theme, rich personalization.
The UI can fully optimize the system while also improving the application startup speed. It also improves the system resource utilization efficiency. The official said that the overall startup performance increased by 25%; RAM utilization increased by 40%; system fluency increased by 30%; game frame rate increased by 19%; touch response speed increased by 15%. This is what this system will offer the Oppo Reno 3 series.
ColorOS image algorithm comes with Soloop recording video editor. This ensures that from shooting to editing to sharing gives users a convenient experience beyond imagination. In addition, there is also the Breeno sleep mode for a relaxing sleep. It also comes with the flashback button for scene switching and the automatic filling of the input codebook. At the press conference, OPPO announced that ColorOS has more than 300 million users worldwide, covering more than 40 countries and regions. It is also translated into more than 80 languages.


It's been about three months since my girlfriend and I trekked to Beaverton by bus
to pick up the RV that I now call home. Since then, I've gone on a wild two-week
roadtrip in my own house, transformed a modest RV interior into a luxurious palace on
wheels, and learned so much about how to make the most of 100 square feet.
-
When you live in a tiny space, clutter's effects are amplified.
When I lived in my loft apartment, weeks would go by without giving the place a
good decluttering. Bottles and cans from parties weeks ago would remain on my giant
countertop. If I ate popcorn the night before, you'd likely find the remnants in my
giant bowl sitting on my coffee table. In the RV, most surfaces serve many purposes,
so there simply isn't room for clutter. I do my dishes within a day
because I only have one plate. Everything has its right place, and if it
doesn't, its misplacement will reveal itself as soon as I try to drive my house
away and need to find a place to stow it.
-
When resources are limited, you curb your usage subconsciously.
My RV holds 20 gallons of fresh water and 19 gallons of waste, which is just enough
to live one week comfortably before going to the dump station. Because of this
inconvenience, I find myself turning off the faucet to conserve water more than I
did in a brick-and-mortar home. It's amusing how barbaric and selfish we actually
are when it comes to conservation, but I'll admit it took knowing my own supply
is limited before I'd make a concerted effort in curbing my usage.
-
My life is generally richer and more experience-driven.
When you live in 100 square feet, you're not occupied with the temptation to buy
a new, swanky piece of furniture. Since I moved into the RV, I've found myself
more eager to leave the house to explore, since I've stripped my house of frivolty
and responsibility. No space for a couch means I'm less likely to vegetate during
the daytime.
-
A small space is dirt cheap to maintain!
When I lived in my loft apartment, I was paying $1239/mo in rent, between $20-$100
in electricity per month (it had electric forced air heat), and varying amounts
in water and sewer usage. In the RV, my monthly expenses are $100/mo for my parking
spot, about $25/mo for electricity, about $10/mo for propane, and $40/mo for waste
disposal. That puts my monthly base living expenses at $175!
-
A small space is cozy.
My RV is just a downright pleasant place to be. Most people assume because I have
such a small space that I'm not comfortable. I think the opposite is true. My
walls are closer together. Rather than the cold, vast cavern my loft often felt like,
my RV feels like a small, warm cocoon.
Okay, so you're probably thinking there must be some serious drawbacks to tiny
living. "Don't you wish you had more room once in awhile?" "Doesn't living in your car
get old?"  Sometimes these thoughts
enter my mind. But in all honesty, the feeling of self-sufficiency, resourcefulness,
and ingenuity I derive from this lifestyle far outweigh the drawbacks. Quite frankly, I'm
happier than I've ever been.
If you're interested in tiny living in an RV but don't know how to get started, drop
me a line! teejay.vanslyke+rv@gmail.com


|
HITLabNZ ARBrowser
Outdoor Augmented Reality for the iPhone
|
An aligned bounding box class which provides basic intersection tests. More...
#include <ARRendering.h>
Public Member Functions | |
| void | add (Vec3 pt) |
| Add a point to the box. | |
| Vec3 | center () const |
| Convert to bounding sphere - this is the center of the box. | |
| float | radius () const |
| Convert to bounding sphere - this is the distance from the center to the corner. | |
| bool | intersectsWith (Vec3 origin, Vec3 direction, float &t1, float &t2) const |
| Check if a line from origin in direction intersects with the box. | |
Public Attributes | |
| Vec3 | min |
| The lower left coordinate of the box. | |
| Vec3 | max |
| The upper right coordinate of the box. | |
| unsigned | count |
| Incremented when a point is added to the box. | |
An aligned bounding box class which provides basic intersection tests.
| void ARBrowser::BoundingBox::add | ( | Vec3 | pt | ) |
Add a point to the box.
If the point is outside the box, the box is expanded to include the point.
| bool ARBrowser::BoundingBox::intersectsWith | ( | Vec3 | origin, |
| Vec3 | direction, | ||
| float & | t1, | ||
| float & | t2 | ||
| ) | const |
Check if a line from origin in direction intersects with the box.
To calculate the point of entrace or exit, use t1 or t2 respectively: origin + (direction * tn)


Yet another slideshow plugin for jQuery. Powered by Coffee.
This is the default fade in/out behaviour of the plugin with a minimal Html setup.
$('#slides-a').jslide({
mode: 'fade'
});
The following are options relevant to this example. See the documentation for a list of all
available options.
The shown usage examples are default settings.
'slide'
/ 'fade'
)Determines the animation style of the slideshow.
$('#slides-a').jslide({
mode: 'slide'
});

Got Ma Nuts From A Hippy

Well she whispered in my ear

we got to get us out of here

to the country

I asked her for a ride

she took me aside

she said "try me"

I thought I'm gonna wake pretty soon

In the middle of a Sunday afternoon

just dreamin. And it was warm in the back of her van.

Where she made me a real man.

She made me cry, she made me cry.

Oh she made me cry, why she make me cry?

The Great Escape

They're breakin' both my hands

They're breakin' both my hands

They're tellin' me to take it like a man

Take it like a man

Well fu*k that


The darkness of the Ways compressed the light of Perrin’s pole-lantern to a sharp-edged pool around himself and Gaul. The creak of his saddle, the gritty click of hooves on stone, seemed to reach no further than light’s rim. There was no smell to the air; nothing. The Aielman strode along beside Stepper easily, keeping an eye on the dimly seen lanternglow from Loial’s party ahead. Perrin refused to call it Faile’s. The Ways did not seem to bother Gaul, for all their reputation. Perrin himself could not help listening, as he had for nearly two days, or what passed for days in this lightless place. His ears would be first to catch the sound that meant they were all going to die or worse, the sound of wind rising where no wind ever blew. No wind but Machin Shin, the Black Wind that ate souls. He could not help thinking that traveling the Ways was slack-witted folly, but when need called, what was foolish changed.
The faint light ahead stopped, and he drew rein in the middle of what appeared to be an ancient stone bridge arching through utter blackness, ancient because of the breaks in the bridge walls, the pits and shallow ragged craters freckling the roadbed. Very likely it had stood close to three thousand years, but it seemed ready to fall, now. Maybe right now.
The packhorse crowded up behind Stepper: the animals whickered to each other and rolled their eyes uneasily at the surrounding dark. Perrin knew how the horses felt. A few more people for company would have lifted some of the endless night’s weight. Still, he would not have gone any closer to the lanterns ahead even had he been alone. Not and risk a repeat of what happened back on that first Island, right after entering the Waygate in Tear. He scratched his curly beard irritably. He was not sure what he had expected, but not . . .
The pole lantern bobbed as he stepped down from his saddle and led Stepper and the packhorse to the Guiding, a tall slab of white stone covered with cursive silver inlays vaguely reminiscent of vines and leaves, all pitted as if splashed with acid. He could not read it, of course—Loial had to do that; it was Ogier script—and after a moment he walked around it, studying the Island. It was the same as the others he had seen, with a chest high wall of white stone, simple curves and rounds fitted in an intricate pattern. At intervals bridges pierced the wall, arching out into the darkness, and railless ramps running up or down with no means of support he could see. There were cracks everywhere, ragged pits and shallow craters, as though the stone were rotting. When the horses moved there was a grainy sound of stone flaking away beneath their hooves. Gaul peered into the dark with no visible nervousness, but then, he did not know what might be out there. Perrin did, too well.
When Loial and the others arrived, Faile immediately hopped from her black mare and strode straight to Perrin, eyes intent on his face. He was already regretting making her worry, but she did not look worried at all. He could not have said what her expression was, besides fixed.
“Have you decided to talk to me instead of over my hea—?”
 “What did you mean,” she practically spat, “charging in here like a wild boar? You have no regard. None!”
He took a slow, deep breath. “I asked you before not to do that.” Her dark, tilted eyes widened as if he had said something infuriating. He was rubbing his cheek when her second slap caught him on the other side, nearly unhinging his jaw. The Aiel were watching interestedly, and Loial with his ears drooping.
“I told you not to do that,” he growled. Her fist was not very big, but her sudden punch to his shortribs drove most of the air from his lungs, hunching him over sideways, and she drew back her fist again. With a snarl, he seized her by the scruff of her neck and . . .
Well, it was her own fault. It was. He had asked her not to hit him, told her. Her own fault. He was surprised she had not tried to pull one of her knives, though; she seemed to carry as many as Mat.
She had been furious, of course. Furious with Loial for trying to intervene; she could take care of herself, thank you very much. Furious with Bain and Chiad for not intervening; she had been taken aback when they said they did not think she would want them to interfere in a fight she had picked. When you choose the fight, Bain had said, you must take the consequences, win or lose. But she did not seem even the tiniest bit angry with him any longer. That made him nervous. She had only stared at him, her dark eyes glistening with unshed tears, which made him feel guilty, which in turn made him angry. Why should he be guilty? Was he supposed to stand there and let her hit him to her heart’s content? She had mounted Swallow and sat there, very stiff-backed, refusing to sit gingerly, staring at him with an unreadable expression. It made him very nervous. He almost wished she had pulled a knife. Almost.
“They are moving again,” Gaul said.
Perrin jerked back to the present. The other light was moving. Now it paused. One of them had noticed his light was not following yet. Probably Loial. Faile might not mind if he got lost, and the two Aiel women had twice tried to talk him into walking off a little way with them. He had not needed the slight shake of Gaul’s head to refuse. He heeled Stepper forward, leading the packhorse.
The Guiding here was more pocked than most he had seen, but he rode on past it with only a glance. The light of the other lanterns was already starting down one of the gently sloping ramps, and he followed with a sigh. He hated the ramps. Sided only by darkness, it began to curve, down and around, with nothing discernible beyond the squashed light of the lantern swaying above his head. Something told him that a fall over the edge would never end. Stepper and the packhorse kept to the middle without any urging, and even Gaul avoided the brink. Worse, when the ramp ended on another Island, there was no way to escape the conclusion that it lay directly beneath the one they had just left. He was glad to see Gaul glancing upward, glad he was not alone in wondering what held the Islands up and whether it was still sound.
Once more Loial and Faile’s lanterns had stopped by the Guiding, so he reined up again, just off the ramp. This time they did not move on, though. After a few moments, Faile’s voice called, “Perrin.”
He exchanged looks with Gaul, and the Aiel shrugged. She had not spoken to Perrin since he . . .
“Perrin, come here.” Not peremptory, exactly, but not asking, either.
Bain and Chiad were squatting easily beside the Guiding, and Loial and Faile sat their horses close by, pole-lanterns in hand. The Ogier had their packhorses’ lead line; his ear tufts twitched as he looked from Faile to Perrin and back again. She, on the other hand, seemed completely absorbed in adjusting her riding gloves, of soft green leather with golden falcons embroidered on their backs. She had changed her dress, too. The new one was cut in the same fashion, with a high neck and narrow divided skirts, but it was a dark green brocaded silk, and somehow it seemed to emphasize her bosom. Perrin had never seen the dress before.
“What do you want?” he asked warily.
She looked up as if surprised to see him, tilted her head thoughtfully, then smiled as though it had just occurred to her. “Oh, yes. I wanted to see if you could be taught to come when I call.” Her smiled deepened; it had to be because she had heard his teeth grinding. He scrubbed at his nose; there was a faint rank smell here.
Gaul chuckled softly. “As well try to understand the sun, Perrin. It simply is, and it is not to be understood. You cannot live without it, but it exacts a price. So with women.”
Bain leaned over to whisper in Chiad’s ear, and they both laughed. From the way they looked at Gaul and him, Perrin did not think he would like hearing what the women found so funny.
“It is not that at all,” Loial rumbled, ears shifting testily. He gave Faile an accusing look, which did not abash her at all; she smiled at him vaguely and went back to her gloves, snugging each finger all over again. “I am sorry, Perrin. She insisted on being the one to call you. This is why. We are there.” He pointed to the base of the Guiding, where a wide pit-broken white line ran off, not to bridge or ramp, but into the darkness. “The Waygate at Manetheren, Perrin.”
Perrin nodded, saying nothing. He was not about to suggest they follow the line, not and have Faile call him down for trying to take over. He rubbed his nose again absently; that almost imperceptible scent of rankness was irritating. He was not going to make even the most sensible suggestion. If she wanted to lead, let her. But she sat her saddle, fooling with her gloves, obviously waiting for him to speak so she could make some witty remark. She liked wittiness; he preferred saying what he meant. Irritably, he turned Stepper, meaning to go on without her or Loial. The line led to the Waygate, and he could pick out the Avendesora leaf that opened it himself.
Suddenly his ear caught a muffled click of hooves from the darkness, and the fetid smell slammed home in his mind. “Trollocs!” he shouted.
Gaul pivoted smoothly to slide a spear into the black-mailed chest of a wolf-snouted Trolloc dashing into the light with scythe-like sword upraised; in the same effortless motion the Aiel pulled his spearpoint free and sidestepped to let the huge shape fall. More came behind it, though, all goat snouts and boar’s tusks, cruel beaks and twisted horns, with curved swords and spiked axes and hooked spears. The horses danced and screamed.
Holding his pole-lantern high—the thought of facing these things in the dark gave him cold sweat—Perrin clawed for a weapon, swung at a face distorted by a sharp toothed snout. He was surprised to realize he had pulled the hammer free of its lashings on his saddlebags, but if it did not have the axe’s sharp edge, ten pounds of steel wielded by a blacksmith’s arm still sent the Trolloc staggering back shrieking and clutching a ruined face.
Loial dashed his pole-lantern against a goat-horned head, and the lantern broke; bathed in burning oil, the Trolloc ran howling into the dark. The Ogier flailed about him with the stout pole, a switch in his huge hands, but one that landed with sharp cracks of splintering bone. One of Faile’s knives blossomed in an all-too-human eye above a tusked snout. The Aiel danced the spears, having somehow found time to veil themselves. Perrin struck, and struck, and struck. A whirlwind of death that lasted . . . A minute? Five? It seemed an hour. But suddenly the Trollocs were down, those not already dead kicking in their death throes.
Perrin sucked air into his lungs; his right arm felt as if the weight of the hammer might pull it off. There was a burning sensation on his face, a wetness trickling down his side, another on his leg, where Trolloc steel had gotten through.  Perrin’s eyes went right past them, seeking Faile. If she was hurt . . .  She had actually managed to pull off her gloves and tuck them neatly behind her belt. He could not see a wound on her. In all the blood smell—human, Ogier, Trolloc—he could not have picked out hers if she were bleeding, but he knew her scent, and she did not have the pained smell of injury. Bright lights hurt Trolloc eyes; they did not adapt quickly. Very likely the only reason they were still alive and the Trollocs dead was that abrupt entry from darkness into light.
That was all the time they had, a moment’s respite, long enough to glance around, take breath. With a roar like a hundred pounds of bone falling into a huge meat grinder, a Fade leaped into the light, eyeless stare a stare of death, black sword flickering like lightning. The horses screamed, trying to bolt.
Gaul barely managed to turn that blade with his buckler, losing a slice from the side of it as if the layers of cured bullhide were only paper. He stabbed, eluded a thrust—barely—and stabbed again. Arrows sprouted in the Myrddraal’s chest. Bain and Chiad had thrust their spears through the harness holding the cased bows on their backs and were using those curved horn bows. More arrows, pincushioning the Halfman’s chest. Gaul’s spear, darting, stabbing. One of Faile’s knives suddenly stood out in that smooth maggot white face. The Fade would not fall, would not stop trying to kill. Only the wildest dodging kept its sword from finding flesh.
Perrin bared his teeth in an unconscious snarl. He hated Trollocs as an enemy of his blood, but the Neverborn . . . ?  To put my teeth in its throat . . . ! Careless of whether he blocked Bain and Chiad’s arrows, he guided Stepper closer to the Neverborn’s back, forcing the reluctant dun nearer with reins and knees. At the last instant, the creature spun away from Gaul, seemingly ignoring a spearpoint that thrust between its shoulders and came out below its throat, staring up at Perrin with the eyeless gaze that sent fear into every man’s soul. Too late. Perrin’s hammer fell, shattering head and eyeless gaze alike.
Even down and virtually headless, the Myrddraal still thrashed, lashing aimlessly with its Thakan’dar-wrought blade. Stepper danced back, whickering nervously, and suddenly Perrin felt as if he had been doused in icy water. That black steel made wounds even Aes Sedai found hard to Heal, and he had ridden in uncaring. My teeth in its . . . Light, I have to keep hold of myself. I have to!
He could still hear smothered sounds from the darkness at the far end of the Island, the clatter of hoofed feet, the scrape of boots, harsh breathing and guttural murmurs. More Trollocs; how many he could not say. A pity they had not been linked to the Myrddraal, yet perhaps they might hesitate to attack without it to drive them. Trollocs were usually cowards in their way, preferring strong odds and easy kills. But even lacking a Myrddraal they could work themselves up to come again eventually.
“The Waygate,” he said.   Faile reined Swallow around immediately, and he was so surprised, he blurted, “You aren’t going to argue?”
“Not when you speak sense,” she said briskly. “Not when you speak sense. Loial?”
The Ogier took the lead on his tall, hairy fetlocked mount. Perrin backed Stepper after Faile and Loial, hammer in hand, the Aiel siding him, all with bows ready now. Shuffling hooves and boots followed in the blackness, and harsh mutters in a language too rough for human tongues. Back and back, with the mutters edging closer, working up courage.
Another sound floated to Perrin, like silk sighing across silk. It sent shivers along his bones. Louder, a distant giant’s exhalation, rising, falling, rising higher. “Hurry!” he shouted. “Hurry!”
“I am,” Loial barked. “I—That sound! Is it—? The Light illumine our souls, and the Creator’s hand shelter us! It’s opening. It is opening! I must be last. Out! Out! But not too—No, Faile!”
Perrin risked a glance over his shoulder. Twin gates of apparently living leaves were swinging open, revealing a smoked glass view of mountainous country. Loial had dismounted to remove the Avendesora leaf to unlock the gate, and Faile had their pack animals’ leads and his huge mount’s reins. With a hasty shout of “Follow me! Quickly!” she booted Swallow’s ribs, and the Tairen mare sprang toward the opening.
“After her,” Perrin told the Aiel. “Hurry! You cannot fight this.” Wisely they hesitated only a heartbeat before peeling back, Gaul seizing the packhorse’s lead line. Stepper came abreast of Loial.  Block it?” A frantic edge had entered the harsh mutterings; the Trollocs had recognized the sound too, now. Machin Shin was coming. Living meant getting out of the Ways.
“Yes,” Loial said. “Yes. But go. Go!”
Perrin reined Stepper back quickly toward the Gate, yet before he knew what he was doing he had thrown back his head and howled, defiance and challenge. Foolish, foolish, foolish! Still, he kept his eyes on that pitch dark and backed Stepper into the Waygate. An icy ripple slid across him hair by hair, and time stretched out. The jolt of leaving the Ways hit him, as if he had gone from a dead gallop to a stop in one step.
The Aiel were still turning to face the Waygate, spreading out across the slope with arrows nocked, among low bushes and stunted mountain trees, wind-twisted pine and fir and leatherleaf. Faile was just picking herself up from where she had tumbled from Swallow’s saddle, the black mare nuzzling her. Galloping out of a Waygate was at least as bad as galloping in; she was lucky she had not broken her neck, and her horse’s, too. Loial’s tall horse and her packhorses were trembling as though hit between the eyes. Perrin opened his mouth, and she glared at him, daring him to make any comment at all, maybe a sympathetic one least of all. He grimaced wryly and wisely kept silent.
Abruptly Loial came hurtling out of the Waygate, leaping out of a dull silvery mirror with his own reflection growing behind him, and rolled across the ground. Almost on his heels, two Trollocs appeared, ram’s horns and snout, eagle’s beak and feathered crest, but before they were more than halfway out, the shimmering surface turned dead black, bubbling and bulging, clinging to them.
 Bitter blood. Blood so bitter. Drink the blood and crack the bone.  Bitter marrow, sweet the screams. Singing screams. Sing the screams. Tiny souls. Acrid souls. Gobble them down. So sweet the pain. On and on.
Shrieking, howling, the Trollocs beat at the blackness boiling around them, clawed to pull free as it sucked them deeper, deeper, till only one hairy hand remained, clutching frantically, then only darkness, bulging outward, seeking. Slowly the Waygates appeared, sliding together, squeezing the blackness so it oozed back inside between them. The voices in Perrin’s head finally stopped. Loial rushed forward quickly to place not one but two three-lobed leaves among the myriad leaves and vines. The Waygate became stone again, a section of stone wall, carved in intricate detail, standing alone on a sparsely wooded mountainside. Among the myriad leaves and vines was not one, but two Avendesora leaves. Loial had replaced the trefoil leaf from inside on the outside.
The Ogier heaved a deep, relieved sigh. “That is the best I can do. It can only be opened from this side now.” He gave Perrin a look at once anxious and firm. “I could have locked it forever by not replacing the leaves, but I will not ruin a Waygate, Perrin. We grew the Ways and tended them. Perhaps they can be cleansed someday. I cannot ruin a Waygate.”
“It will do,” Perrin told him. Had the Trollocs been coming to this Waygate, or had it just been a chance encounter? In either case, it would do.
“Was that—?” Faile began unsteadily, then stopped to swallow. Even the Aiel looked shaken for once.
“Machin Shin,” Loial said. “The Black Wind. A creature of the Shadow, or a thing grown of the Ways’ own taint—no one knows. I pity the Trollocs. Even them.”
Perrin was not sure he did, not even dying like that. He had seen what Trollocs left when they got their hands on humans. Trollocs ate anything, so long as it was meat, and sometimes they liked to keep their meat alive while they butchered. He would not let himself pity Trollocs.
Stepper’s hooves crunched on gritty dirt as Perrin turned him to see where they were.
Cloud-capped mountains rose all around; it was the everpresent clouds that gave them their name, the Mountains of Mist. The air was cool at this altitude, even in summer, especially compared to Tear. The late-afternoon sun sat on the western peaks, glinting on streams running down to the river that coursed along the floor of the long valley below. The Manetherendrelle, it was called once it had traveled out of the mountains and much farther west and south, but Perrin had grown up calling the length of it that ran along the south edge of the Two Rivers the White River, an uncrossable stretch of rapids that churned its waters to froth. The Manetherendrelle. Waters of the Mountain Home.
Where bare rock showed in the valley below or on the surrounding slopes, it glittered like glass. Once a city had stood there, covering valley and mountains. Manetheren, city of soaring spires and splashing fountains, capital of a great nation of the same name, perhaps the most beautiful city in the world, according to old Ogier tales. Gone now without a trace, except for the all-but-indestructible Waygate that had stood in the Ogier grove. Burned to barren rock more than two thousand years ago, while the Trolloc Wars still raged, destroyed by the One Power after the death of its last king, Aemon al’Caar al’Thorin, in his last bloody battle against the Shadow. Aemon’s Field, men had named that place, where the village called Emond’s Field now stood.
Perrin shivered. That was long ago. Trollocs had come once since, on Winternight more than a year gone, the night before he and Rand and Mat were forced to flee in the darkness with Moiraine. That seemed long ago, too, now. It could not happen again, with the Waygate locked. It’s Whitecloaks I have to worry about, not Trollocs.
A pair of white-winged hawks wheeled above the far end of the valley. Perrin’s eyes barely caught the streak of a rising arrow. One of the hawks cartwheeled and fell, and Perrin frowned. Why would anyone shoot a hawk up here in the mountains? Over a farm, if it was after the chickens or the geese, but up here? Why would anyone even be up here? Two Rivers people avoided the mountains.
The second hawk swooped on snowy wings toward where its mate had fallen, but suddenly it was climbing desperately. A black cloud of ravens burst from the trees, surrounding it in wild melee, and when they settled again, the hawk was gone.
Perrin made himself breathe. He had seen ravens, and other birds, attack a hawk that came too close to their nests before, but he could not make himself believe it that simple this time. The birds had burst up from about where the arrow had risen. Ravens. The Shadow used animals as spies, sometimes. Rats and others that fed on death, usually. Ravens, especially. He had sharp memories of running from sweeping lines of ravens that had hunted him as though they had intelligence.
“What are you staring at?” Faile asked, shading her eyes to peer down the valley. “Were those birds?”
“Just birds,” he said. Maybe they were. I can’t frighten everybody until I’m sure. Not while they’re still shaky from Machin Shin.
 His fingers found drying blood on his cheek, matting in his short beard. When he climbed down, his side and his leg burned. He found a shirt in his saddlebags to clean the hammer before the Fade’s blood etched the metal. In a moment he would find out if there was anything to fear in these mountains. If it was more than men, the wolves would know.
Faile began unbuttoning his coat.
“What are you doing?” he demanded.
“Tending your wounds,” she snapped back. “I’ll not have you bleeding to death on me.  You have no consideration. Hold still.”
“Thank you,” he said quietly, and she looked surprised.
She made him strip off everything but his smallclothes, so she could wash his wounds, rub them with ointment fetched from her saddlebags. He could not see the cut on his face, of course, but it seemed small and shallow, if uncomfortably close to his eye. The slash across his left side was over a hand long, though, straight along a rib, and the hole a spear had made in his right thigh was deep. Faile had to put stitches in that, with needle and thread from her sewing kit. He took it stoically; she was the one who winced at every stitch. She muttered angrily under her breath the whole time she worked, especially while rubbing her dark stinging cream into his cheek, looking almost as if the hurts were hers, and his fault, yet she tied bandages around his ribs and his thigh with a gentle hand. It made a startling contrast, her soft touch and her furious grumbles. Purely confusing.
While he donned a clean shirt and a spare pair of breeches from his saddlebags, Faile stood fingering the slice in the side of his coat. Two inches to the right, and he would not have left that Island. Stamping his feet in his boots, he reached for his coat—and she flung it at him.
“You needn’t think I will sew that up for you. I’ve done all the sewing for you I mean to! Do you hear me, Perrin Aybara?”
“I didn’t ask ”
“You needn’t think it! That’s all!” She stalked away to help the Aiel tend each other and Loial. That was an odd group, the Ogier with his baggy breeches off, Gaul and Chiad eyeing each other like strange cats, Faile spreading her ointment and wrapping bandages and all the while shooting accusing glares at him. What was he supposed to have done now?
Perrin shook his head. Gaul was right, he decided; as well try to understand the sun.
Even knowing what he had to do now, he was reluctant, especially after what had happened in the Ways, with the Fade. Once he had seen a man who had forgotten he was human. The same could happen to him. Fool. You only have to hold out a few more days. Just till you find the Whitecloaks. And he had to know. Those ravens.
He sent his mind questing across the valley for the wolves. There were always wolves where men were not, and if they were close, he could talk with them. Wolves avoided men, ignored them as much as possible, but they hated Trollocs for unnatural things, and despised Myrddraal with a hatred too deep to hold. If Shadowspawn were in the Mountains of Mist, the wolves could tell him.
But he found no wolves. None. They should have been there, in this wilderness. He could see deer browsing down in the valley. Perhaps it was just that no wolves were close enough. They could talk over some distance, but even a mile was too far. Maybe it was less in mountains. That could be it.
His gaze swept across the cloud-capped peaks and settled on the valley’s far end, where the ravens had come from. Maybe he would find wolves tomorrow. He did not want to think of the alternatives.


Dev Bootcamp Culture: Chefs in the Kitchen
Let me start off by saying this: so far, everyone from Dev Bootcamp who I have met, either via Google Hangouts or in person, has been incredibly friendly, fun, and good at communicating. It's only been a week and I already feel like I have new friends. That in itself gives me hope about what the culture of Dev Bootcamp is going to be like once we head to the city.
However, I would be lying if I said I didn't have some other reservations. First off, I do agree that we live in a consumer culture where people have a strong sense of entitlement and expectation. I agree that that is a mindset to attempt to overcome, not only at Dev Bootcamp but in any situation. I also agree that we have had "education trauma". We are given the cirriculum, told what we have to know, and we cross our fingers and hope that what we studied carefully will be on the test. That was college for me, and it was pretty ridiculous.
That being said, I expected a little more guidance than there has been in the first week. I really do want to have the "kitchen mentality", but that is hard to do when we are not physically in the same location as other students and leaders (during Phase 0). Also, there have been many times within the last week where I felt that the expectations for the challenges weren't completely clear. Even when giving it my best effort and as much time as I had, I felt like there was not enough guidance, at least with getting started.
On the other hand, I think the gaps that seems like a lack of guidance right now will ultimately be filled in later on. Either way I have hope that I will learn a lot and meet some wonderful people in the DBC community.


Far far away, behind the word mountains, far from the countries.
send


Alphonso
The Portuguese introduced grafting on mango trees to produce varieties like Alphonso. The Alphonso is also one of the most expensive varieties of mango, and is grown mainly in western India
Dasheri
Dasheri is delicious variety of mango basically grown in North parts of India, Its one of the very famous variety of mango in north India. Malihabad in Uttar Pradesh is the largest producer of Dasheri mango and along with other varieties of mangoes such as Chausa, Fazli, Lucknowa, Jauhari and Safeda.
Pairi
It is also one of the most expensive kinds of mango and is grown mainly in western India.Mango is the leading fruit crop of India and considered to be the king of fruits. The tropical fruit is called the "King of Fruits" in India.
Badami mangoes are also called as Alphonso of Karnataka state, texture and taste are quite similar to other Mango from the region of Ratnagiri in Maharashtra as well as Alphonso of Karnataka.


Two events that might be of interest to the readers of this blog are happening on the East Coast next week.
On Monday–Wednesday (Aug 24–26) a conference on big data is taking palce at Harvard. This looks like a very exciting event with broad representation of research from different areas including a lot of theory and algorithms.
On Thursday–Friday (Aug 27–28) DIMACS at Rutgers will host a workshop on sublinear algorithms and big data which will be more focused on the algorithmic questions. As an organizer, I would like to remind that the early registration and poster submission deadlines for this workshop are tomorrow (Aug 20). Note, that in many cases for local researchers, students and postdocs affiliated with partners of DIMACS the registration fee can be either significantly reduced or waived.
We are hoping to see some of you at this workshop!