 I was getting really tired of writing the same code over and over again to check the validity of inputs. So in order to appease future Drew’s coding laziness, present Drew decided to develop a validator class that would take care of all of future Drew's checks for him (after some configuration of course).
I tackled 3 of the major input types; Text, Number, and Text (email). I started out first by defining what I wanted to configure or check, and then wrote the script to accommodate my desires.
When initializing the inputs, the configuration object calls for a type and then you have the ability to add your arguments. Each configuration allows you to customize the value as well as if an error text will show. I added the option for defining messages because, well, it’s boring having system default messages. It just gives the inputs a little bit of personality… if they can even have that.
To make it easier when submitting, if the value that is entered passes all of the predefined tests, a data attribute of "data-valid" is set to true on the input. If the input doesn't pass all of the tests, the "data-valid" attribute is set to false.
I plan on building this out and making it even more robust, but for now... this.
Numbers
I decided that checking for minimum, maximum, and length were the best starting points. To help me restrict user input, I used the HTML5 input type of number as my markup benchmark.
Text
This was pretty straight forward just because for most implementations, the only things you want to check when you submit your form are value length (server/API restrictions) and if it’s defined.
Email
This input type simply checks to see if the email is "well formed". I didn’t know this going in, but there is an INSANE amount of documentation and opinions on the web-o-sphere for what exactly denotes a “well formed” email. Type in “well formed email” into Google and you get over 7 million results. I just landed on the standard described in RFC 5322 because, honestly, if you’re using an email that doesn’t have an @ symbol in it, you’re either up to no good or your just doing it wrong.
// NUMBER
$('#val-num').validator({
type: 'number',
min: {
value: 0,
showError: true,
errorText: "Neagative numbers? Really? Let's keep it above 0 please. Thanks!"
},
max: {
value: 10,
showError: true,
errorText: 'Getting a little ambitious I see... Less than 10 please!'
},
length: {
value: 4,
showError: true,
errorText: 'WOAHH! Your entry is wayyyy too long. Enter in less than 5 digits'
}
})
// TEXT
$('#val-text').validator({
type: 'text',
length: {
value: 10,
showError: true,
errorText: 'Keep your verbosity to a minimum please. Exactly 10 characters of a minimum.'
}
})
// EMAIL
$('#val-email').validator({
type: 'email'
})


Gold is a Ponzi-bubble that popped in the late 80’s & has never returned to ATH. It has historically struggled to find buyers except in times of dire economic uncertainty. Early adopters like @PeterSchiff wont stop shilling their bags & need to find buyers to keep the po...


Contact: B. Wyman Reviewers: Change history: WebCVS Log for bgrid_vert.f90
Initializes a data structure containing constants for a hybrid sigma-pressure vertical coordinate. There are several public routines that operate with this data structure.
This module uses the hybrid sigma-pressure vertical coordidate described in Simmons and Burridge (1981). At the model's lower boundary the coordinate surfaces must be in the terrian-following, sigma coordinate. The model's upper levels may use constant pressure surfaces. In between there is a gradual transition from sigma to pressure. A transition that is too rapid can result in negative pressure depths for model layers with low surface pressure. Pressure p is determined by the following formula: p(k) = peta(k) + eta(k) * pssl where (k) = the vertical index peta = reference pressure eta = sigma/eta values (between 0. and 1.) pssl = ps * res ps = surface pressure res = 1./eta_surface (=1 for non-eta case) peta, eta are dimensioned only in the vertical pssl, ps, res are dimensioned only in the horizontal NOTE: The B-grid dynamical core has an unsupported option that replaces the sigma coordinate with the eta/step-mountain vertical coordinate. In the context of this module, references to "sigma" and "eta" are interchangeable.
constants_mod fms_mod
use bgrid_vert_mod [,only: vert_grid_type , vert_grid_init , compute_pres_depth , compute_pres_full , compute_pres_half , compute_pres_weights, compute_pressures , compute_geop_height , compute_height ] vert_grid_type Data structure (defined-type variable) containing the vertical grid constants needed by the B-grid dynamical core. vert_grid_init Initializes the data structure, vert_grid_type. compute_pres_depth Computes the pressure weight (mass) of a model layer. compute_pres_full Computes the pressure at full model levels. compute_pres_half Computes the pressure at half model levels. compute_pres_weights Computes weighting terms for averaging data from half levels to full model levels. compute_pressures Computes everything from routines compute_pres_depth, compute_pres_full, compute_pres_half, and compute_pres_weights. compute_geop_height Computes the geopotential height (in m2/s2) at full model levels and (optionally) at half model levels. compute_height Computes the height (in meters) at full and half model levels. compute_height_bottom Computes the height (in meters) and pressure at the lowest full model level.
type (vert_grid_type) nlev = number of vertical levels [integer] nplev = number of pure pressure levels at the top of the model will equal zero when not using hybrid coordinate [integer] eta = sigma values at model layer interfaces (half levels) this value is sometimes refered to as "bk" [real, dimension(nlev+1)] peta = reference pressure values at model layer interfaces (half levels) this value is sometimes refered to as "pk" [real, dimension(nlev+1)] deta = sigma thickness of model layers [real, dimension(nlev)] dpeta = reference pressure thickness of model layers [real, dimension(nlev)] pfull = pressure profile at model levels (full levels) [real, dimension(nlev)] phalf = pressure profile at model layer interfaces (half levels) [real, dimension(nlev)] fhalf = profile of geopotental height at half levels (m2/s2) [real, dimension(nlev+1)] wta, wtb = weights used to determine values at model levels (based on pressure profile, useful for hybrid coord) [real, dimension(nlev)] psmin = minimum allowable surface pressure to avoid negative mass in a model layer when using the hybrid coordinate [real] hybrid = flag that indicates if the hybrid coordinate is being used [logical] pzero = flag that indicates if the pressure at the top of the model is zero (can only be non-zero if hybrid=true). [logical] pref = reference pressure for the eta coordinate (101325. Pa) [real] tref = reference temperature for the eta coordinate (288. degK) [real] gamma = reference lapse rate for the eta coordinate (.0065 degK/m) [real]
call vert_grid_init ( Vgrid, eta [, peta, verbose] ) INPUT eta The sigma/eta values at model layer interfaces (half levels). The size of this array will determine the vertical resolution (i.e., number of levels = size(eta)-1). [real, dimension(:)] INPUT/OUTPUT Vgrid Data structure that contains all necessary vertical grid information needed by the dynamical core. [type(vert_grid_type)] OPTIONAL INPUT peta A profile of reference pressure values at model layer interfaces (half levels) used to define the HYBRID vertical coordinate. If all values of "peta" are zero (the default), then the vertical coordinate used will be a pure sigma/eta coordinate. This variable along with "eta" determine the pressure at half model levels. The size of this array must be the same as eta. [real, dimension(:), default: peta=0.] verbose Integer flag that controls the amount of printed output. [integer, default: verbose = 0] ------------------------------------------------------------------------ call compute_pres_depth ( Vgrid, pssl, pdepth ) INPUT Vgrid Data structure containing vertical grid information returned by a previous call to vert_grid_init. [type(vert_grid_type)] pssl The (surface) pressure at eta = 1. [real, dimension(:,:)] OUTPUT pdepth The pressure depth (i.e., weight) for all model layers. The first 2 dimensions of pdepth must be the same as the dimensions of pssl. The third dimension of pdepth must equal the number of full model levels. [real, dimension(:,:,nlev)] ------------------------------------------------------------------------ call compute_pres_full ( Vgrid, pssl, pfull [,phalf, dpde] ) INPUT Vgrid Data structure containing vertical grid information returned by a previous call to vert_grid_init. [type(vert_grid_type)] pssl The (surface) pressure at eta = 1. [real, dimension(:,:)] OUTPUT pfull The pressure at full model levels. The first 2 dimensions of pfull must be the same as the dimensions of pssl. The third dimension of pfull must equal the number of full model levels. [real, dimension(:,:,nlev)] OPTIONAL INPUT phalf The pressure at half model levels (the interface between model layers). The first 2 dimensions of phalf must be the same as the dimensions of pssl. The third dimension of phalf must equal the number of half model levels. [real, dimension(:,:,nlev+1)] dpde The pressure depth (i.e., weight) for all model layers. The first 2 dimensions of dpde must be the same as the dimensions of pssl. The third dimension of dpde must equal the number of full model levels. [real, dimension(:,:,nlev)] ------------------------------------------------------------------------ call compute_pres_half ( Vgrid, pssl, phalf ) INPUT Vgrid Data structure containing vertical grid information returned by a previous call to vert_grid_init. [type(vert_grid_type)] pssl The (surface) pressure at eta = 1. [real, dimension(:,:)] OUTPUT phalf The pressure at half model levels (the interface between model layers). The first 2 dimensions of phalf must be the same as the dimensions of pssl. The third dimension of phalf must equal the number of half model levels. [real, dimension(:,:,nlev+1)] ------------------------------------------------------------------------ call compute_pres_weights ( Vgrid, phalf, pfull, wta, wtb ) INPUT Vgrid Data structure containing vertical grid information returned by a previous call to vert_grid_init. [type(vert_grid_type)] phalf The pressure at half model levels (the interface between model layers). [real, dimension(:,:,nlev+1)] pfull The pressure at full model levels. [real, dimension(:,:,nlev)] OUTPUT wta Weighting term used to average data from half levels to full model levels. wta is applied to data at the half level ABOVE. [real, dimension(:,:,nlev)] wtb Weighting term used to average data from half levels to full model levels. wtb is applied to data at the half level BELOW. [real, dimension(:,:,nlev)] NOTES For input and output arrays: phalf, pfull, wta, wtb. 1) The first 2 dimensions must all be the same. 2) The third dimension must agree with the vertical resolution of the model (as stated above). ------------------------------------------------------------------------ call compute_pressures ( Vgrid, pssl, phalf, pfull [, dpde, wta, wtb] ) INPUT Vgrid Data structure containing vertical grid information returned by a previous call to vert_grid_init. [type(vert_grid_type)] pssl The (surface) pressure at eta = 1. [real, dimension(:,:)] OUTPUT phalf The pressure at half model levels (the interface between model layers). [real, dimension(:,:,nlev+1)] pfull The pressure at full model levels. [real, dimension(:,:,nlev)] OPTIONAL OUTPUT dpde The pressure depth (i.e., weight) for all model layers. [real, dimension(:,:,nlev)] wta Weighting term used to average data from half levels to full model levels. wta is applied to data at the half level ABOVE. [real, dimension(:,:,nlev)] wtb Weighting term used to average data from half levels to full model levels. wtb is applied to data at the half level BELOW. [real, dimension(:,:,nlev)] NOTES For output arrays: phalf, pfull, dpde, wta, wtb. 1) The first 2 dimensions must be the same as the dimensions of input argument pssl. 2) The third dimension must agree with the vertical resolution of the model (as stated above). ------------------------------------------------------------------------ call compute_geop_height ( Vgrid, fssl, vtemp, wta, wtb, zfull [, zhalf, mask] ) INPUT Vgrid Data structure containing vertical grid information returned by a previous call to vert_grid_init. [type(vert_grid_type)] fssl The geopotential height (in m2/s2) at eta = 1. Note that for the eta coordinate fssl = 0. [real, dimension(:,:)] vtemp The virtual temperature (degK) at full model levels. [real, dimension(:,:,nlev)] wta Weighting term used to average data from half levels to full model levels. wta is applied to data at the half level ABOVE. [real, dimension(:,:,nlev)] wtb Weighting term used to average data from half levels to full model levels. wtb is applied to data at the half level BELOW. [real, dimension(:,:,nlev)] OUTPUT zfull The geopotential height (in m2/s2) at full model levels. [real, dimension(:,:,nlev)] OPTIONAL OUTPUT zhalf The geopotential height (in m2/s2) at half model levels (the interface between model layers). [real, dimension(:,:,nlev+1)] OPTIONAL INPUT mask A topography mask (0. or 1.) at full model levels for the eta/step-mountain vertical coordinate. [real, dimension(:,:,nlev)] NOTES For input and output arrays: vtemp, wta, wtb, zfull, zhalf, mask. 1) The first 2 dimensions must all be the same as the dimensions of input argument fssl. 2) The third dimension must agree with the vertical resolution of the model (as stated above). ------------------------------------------------------------------------ call compute_height ( Vgrid, fssl, temp, sphum, pfull, phalf, zfull, zhalf [, mask] ) INPUT Vgrid Data structure containing vertical grid information returned by a previous call to vert_grid_init. [type(vert_grid_type)] fssl The geopotential height (in m2/s2) at eta = 1. Note that for the eta coordinate fssl = 0. [real, dimension(:,:)] temp The temperature (degK) at full model levels. [real, dimension(:,:,nlev)] sphum The specific humidity (Kg/Kg) at full model levels. [real, dimension(:,:,nlev)] pfull The pressure at full model levels. [real, dimension(:,:,nlev)] phalf The pressure at half model levels (the interface between model layers). [real, dimension(:,:,nlev+1)] OUTPUT zfull The geopotential height (in meters) at full model levels. [real, dimension(:,:,nlev)] zhalf The geopotential height (in meters) at half model levels (the interface between model layers). [real, dimension(:,:,nlev+1)] OPTIONAL INPUT mask A topography mask (0. or 1.) at full model levels for the eta/step-mountain vertical coordinate. [real, dimension(:,:,nlev)] NOTES For input and output arrays: temp, sphum, pfull, phalf, zfull, zhalf, mask. 1) The first 2 dimensions must all be the same as the dimensions of input argument fssl. 2) The third dimension must agree with the vertical resolution of the model (as stated above). ------------------------------------------------------------------------ call compute_height_bottom ( Vgrid, pssl, tbot, qbot, zbot, pbot [, kbot] ) INPUT Vgrid Data structure containing vertical grid information returned by a previous call to vert_grid_init. [type(vert_grid_type)] pssl The (surface) pressure at eta = 1. [real, dimension(:,:)] tbot The temperature (degK) at the lowest full model level. [real, dimension(:,:)] qbot The specific humidity (Kg/Kg) at the lowest full model level. [real, dimension(:,:)] OUTPUT zbot Height (in meters) between the surface and the lowest full model level. [real, dimension(:,:)] pbot Pressure (in pascals) between the surface and the lowest full model level. [real, dimension(:,:)] OPTIONAL INPUT kbot Vertical index of the model closest to the surface. This argument does not need to be passed for the sigma coordinate system (at all grid points it will equal the number of levels as determined from Vgrid). [integer, dimension(:,:)] NOTES 1) The size of all 2D arrays must all be the same. 2) The number of vertical levels is determined from Vgrid.
Fatal errors in compute_pres_depth incorrect dimension 3 for pdepth The third dimension of output argument pdepth must equal the number of model levels. pressure depth <= 0.0 The pressure depth of a model layer has a mass <= 0. This can only happen when running a hybrid vertical coordinate and the surface pressure becomes too small. This error may result as the model goes unstable. Fatal errors in compute_pres_full or compute_pressures incorrect dimension 3 for pfull The third dimension of output argument pfull must equal the number of model levels. Fatal errors in compute_pres_half incorrect dimension 3 for phalf The third dimension of output argument phalf must equal the number of model levels plus one. Fatal errors in compute_geop_height incorrect dimension 3 for zfull The third dimension of output argument zfull must equal the number of model levels. incorrect dimension 3 for zhalf The third dimension of output argument zhalf must equal the number of model levels plus one.
Simmons, A. J. and D. M. Burridge, 1981: An energy and angular-momentum conserving vertical finite-difference scheme and hybrid vertical coordinate. Mon. Wea. Rev., 109, pp.758-766.
There are no known bugs.
None.
1) Add public routines for generating profiles for sigma and hybrid levels. 2) Compute virtual temperature in one central place.


| < Day Day Up > |
If you enable this directive, Squid adds an If-Modified-Since header to requests that contain a no-cache directive. This is a global version of the reload-into-ims option for the refresh_pattern directive (see Section 7.7).
|
| < Day Day Up > |


RIAT
Welcome to our site. We hope that you will consider our services to be relevant to you. We offer various services and trainings. If you would like to learn how to make your own website from scratch then this site was particularly made for you. There is no prior skills needed for you to be a fullly fledged web developer. We will take you step by step to ensure that you accomplish your goals with us. All you need is passion and a Personal Computer (PC). The course will take two months or more depending on your ability to learn and to master concepts. There are also other courses offered as you would see on our web pages. Please contact us by entering your details and we will get back to you.


Psalms 69:31
This also shall please the LORD better than an ox or bullock that hath horns and hoofs.


7.2.0
Represents a Tuya device.
You must pass either an IP or an ID. If you're experiencing problems when only passing one, try passing both if possible.
Extends EventEmitter
(Object
= {}
)
| Name | Description |
|---|---|
options.ip String?
|
IP of device |
options.port Number
(default 6668 )
|
port of device |
options.id String?
|
ID of device (also called
devId
)
|
options.gwID String
(default '' )
|
gateway ID (not needed for most devices),
if omitted assumed to be the same as
options.id
|
options.key String
|
encryption key of device (also called
localKey
)
|
options.productKey String?
|
product key of device (currently unused) |
options.version Number
(default 3.1 )
|
protocol version |
options.nullPayloadOnJSONError Boolean
(default false )
|
if true, emits a data event containing a payload of null values for on-device JSON parsing errors |
options.issueGetOnConnect Boolean
(default true )
|
if true, sends GET request after
connection is established. This should probably be
false
in synchronous usage.
|
options.issueRefreshOnConnect Boolean
(default false )
|
if true, sends DP_REFRESH request after
connection is established. This should probably be
false
in synchronous usage.
|
options.issueRefreshOnPing Boolean
(default false )
|
if true, sends DP_REFRESH and GET request after
every ping. This should probably be
false
in synchronous usage.
|
const tuya = new TuyaDevice({id: 'xxxxxxxxxxxxxxxxxxxx',
key: 'xxxxxxxxxxxxxxxx'})
Gets a device's current status. Defaults to returning only the value of the first DPS index.
Promise<(Boolean | Object)>
:
returns boolean if single property is requested, otherwise returns object of results
// get first, default property from device
tuya.get().then(status => console.log(status))
// get second property from device
tuya.get({dps: 2}).then(status => console.log(status))
// get all available data from device
tuya.get({schema: true}).then(data => console.log(data))
Refresh a device's current status. Defaults to returning all values.
(Object?
= {}
)
| Name | Description |
|---|---|
options.schema Boolean?
|
true to return entire list of properties from device |
options.dps Number
(default 1 )
|
DPS index to return |
options.cid String?
|
if specified, use device id of zigbee gateway and cid of subdevice to refresh its status |
options.requestedDPS Array.Number
(default [4,5,6,18,19,20] )
|
only set this if you know what you're doing |
Promise<Object>
:
returns object of results
// get first, default property from device
tuya.refresh().then(status => console.log(status))
// get second property from device
tuya.refresh({dps: 2}).then(status => console.log(status))
// get all available data from device
tuya.refresh({schema: true}).then(data => console.log(data))
Sets a property on a device.
(Object)
| Name | Description |
|---|---|
options.dps Number
(default 1 )
|
DPS index to set |
options.set any?
|
value to set |
options.cid String?
|
if specified, use device id of zigbee gateway and cid of subdevice to set its property |
options.multiple Boolean
(default false )
|
Whether or not multiple properties should be set with options.data |
options.data Object
(default {} )
|
Multiple properties to set at once. See above. |
options.shouldWaitForResponse Boolean
(default true )
|
see #420 and #421 for details |
Promise<Object>
:
returns response from device
// set default property
tuya.set({set: true}).then(() => console.log('device was turned on'))
// set custom property
tuya.set({dps: 2, set: false}).then(() => console.log('device was turned off'))
// set multiple properties
tuya.set({
multiple: true,
data: {
'1': true,
'2': 'white'
}}).then(() => console.log('device was changed'))
// set custom property for a specific (virtual) deviceId
tuya.set({
dps: 2,
set: false,
devId: '04314116cc50e346566e'
}).then(() => console.log('device was turned off'))
Disconnects from the device, use to close the socket and exit gracefully.
(any)
Events that TuyAPI emits.
Emitted on socket error, usually a result of a connection timeout. Also emitted on parsing errors.
(Error)
: error event
Emitted when socket is connected to device. This event may be emitted multiple times within the same script, so don't use this as a trigger for your initialization code.
Emitted when a heartbeat ping is returned.
Emitted when dp_refresh data is proactive returned from device, omitting dps 1 Only changed dps are returned.
Emitted when data is returned from device.
Emitted when a socket is disconnected
from device. Not an exclusive event:
error
and disconnected
may be emitted
at the same time if, for example, the device
goes off the network.

Type: Object
Low-level class for parsing packets.
const parser = new MessageParser({key: 'xxxxxxxxxxxxxxxx', version: 3.1})
Low-level class for encrypting and decrypting payloads.
const cipher = new TuyaCipher({key: 'xxxxxxxxxxxxxxxx', version: 3.1})
Computes a Tuya flavored CRC32
(Iterable)
Number
:
Tuya CRC32


Dev Docs: https://developers.komodoplatform.com | Test plan: https://docs.google.com/spreadsheets/d/1l0dWEPcrv9zE11_TD-XrX_HIYV0VLpadCJN6hvaZERc/edit#gid=211514340
https://medium.com/@jameslee777/how-to-implement-finite-state-machines-into-a-cc-8dfeadccbcad
https://github.com/dimxy/komodo/wiki/Designing-RPC-for-FSM-CC
I didn't see the makedapps script until after writing this Makefile
Features:
Only compile dapps that have changed
Recognized $CC environment variable to easily choose compiler
make clean
The...
I was interested to learn how zmigrate worked, so I played around a bit. I hope the README makes it easier for people to understand how it works, and the Makefile should make it easier as we add many more dApps, which seem to be on the horizen. Just a bit of icing to add to the cake that James has already baked
Pirate (ARRR)is an independent block chain based on Zcash’s zk-SNARK (zero knowledge proof) tech and created using Komodo Platform. Pirate is a forced Z transaction coin. No transparent transactions are possible apart from Komodo’s Notary Nodes. Notary Nodes have hard-cod...
jl777c18-Dec-18 02:07 PM
./zmigrate PIRATE sapling
yes the name is the first parameter
dukeleto18-Dec-18 03:43 PM
@Mylo you are right, i missed that in my README
and I see it's fixed already
1
blackjok3r19-Dec-18 09:25 AM
@Mihailo I am seeing a huge slow down of CC transactions on chain sync after the spaling activation block. Any idea on what could cause it?
Mihailo19-Dec-18 09:25 AM
Hmmm, in what whay is the slow down?
blackjok3r19-Dec-18 09:25 AM
apears to hang the daemon
like its locked(edited)
Mihailo19-Dec-18 09:25 AM
Which CC?
blackjok3r19-Dec-18 09:26 AM
and pins a CPU core to 100%
oracles
at least those are the txs on this chain
large numbers in a block seems to do it
Mihailo19-Dec-18 09:26 AM
We had some problem with oralces, and it was behaving like this (hanging the daemon) but it was fixed.
blackjok3r19-Dec-18 09:26 AM
hmm I am equal with FSM
Mihailo19-Dec-18 09:26 AM
On which version is the client?
Ok
blackjok3r19-Dec-18 09:26 AM
Guess you need more data
Mihailo19-Dec-18 09:26 AM
Yep
blackjok3r19-Dec-18 09:27 AM
no worries... dint want to investingate a known problem
Mihailo19-Dec-18 09:27 AM
Can you tell me which chain, and I could connect and try to investigate
And is the hanging only on nodes which post oracle data?
blackjok3r19-Dec-18 09:28 AM
its hangs on chain sync
any block with large amoutns of transactions
only cc transaction
I tersted a ful block of normal tx and ti was ok
does not happen before sapling actiuvation block
Mihailo19-Dec-18 09:29 AM
Oh, ok.
blackjok3r19-Dec-18 09:30 AM
you need labs branch to sync chain, because its has import txs on it and requires the correct pubkeys to verify them,
Mihailo19-Dec-18 09:31 AM
And what is the exact name of the branch?
blackjok3r19-Dec-18 09:43 AM
just use master branch its equal with FSM apart from changes to allow a diffrent set of notary nodes and some changes to the staking loop that are yet to me merged down.
Mihailo19-Dec-18 09:44 AM
Ok, you confused me with 'you need labs branch'
blackjok3r19-Dec-18 09:48 AM
ahh sorry yeah... labs fork (which is actually called staked )
Just synced CFEK on the latest and it seems to be a bit faster than it was, like it no longer hangs for over a minute on some blocks.
Still slows down a heap over earlier blocks though.
Not sure if there are that amount of oracels txs in any blocks before sapling... tehre are oracles txs, but not that many of them. DragonHound went into an infinate loop spamming oracles txs
Mihailo19-Dec-18 10:04 AM
Ok, so the daemon is not hanging indefinitely, it just slows down... Could it be that spam of oracles txs that is causing this?
I've started syncing now, let see...
Mihailo19-Dec-18 10:46 AM
I see the slow down. But can't seem to figure out why. The number of txs is not huge, so I have see where it is spending lot of time when syncing. Probably in blcok/tx validation
jl777c19-Dec-18 10:53 AM
in the dependency loop in main.cpp, the code was changed a bit recently.
blackjok3r19-Dec-18 11:06 AM
I managed to speed it up quite a lot, but its still very slow, maybe its the actual mempool fix, would it be OK, if we add the txs to the mempool without a addtomempool check? If that indeed its this loop causing it?
Because I think its OK to assume that the txs in a confirmed mined block are indeed valid
jl777c19-Dec-18 11:14 AM
yes, that seems fine
blackjok3r19-Dec-18 11:14 AM
Its worth a test at least
blackjok3r20-Dec-18 04:21 AM
doesnt work or speed it up
mempool ends up full of txs with spent inputs
and those blocks took just as long to validate
blackjok3r20-Dec-18 06:42 AM
I think i've identified the issue
Its when it adds to the mempool...
Its being done 3-4 times for every block, and each time it happens it takes longer.
You can make it so that it only checks the transactions when it checks PoW ... but then debug.log floods with:
2018-12-20 06:13:43 ERROR: myGetTransaction: Deserialize or I/O error - Unknown transaction format: iostream error
2018-12-20 06:13:43 ERROR: myGetTransaction: Deserialize or I/O error - ReadCompactSize(): size too large: iostream error
(edited)
it still syncs and its much faster ... but that error spams like crazy
Need some way to flag it inside CheckBlock, so that it only trys to add the txs in once.
Because once it has done it once, they are all already in the mempool, and it will loop almsot infinatly until they are all rejected.
blackjok3r20-Dec-18 07:09 AM
going to try a fresh sync fomr block 0, just incaser something here is corrupted
blackjok3r20-Dec-18 07:49 AM
that seemed to work, trying something else now. Using the flag I used to stop it spamming accept to mempool prints, I am trying to skip all the checks for inputs and just force the txs into the mempool out of order. doing this by just useing addUnchecked didnt work, but skipping only tx validation and doing the rest of the checks it might actually work.
blackjok3r20-Dec-18 08:11 AM
looks good so far
Will need to sync KMDICE next to verify that its still working properly... But its now only doing this mempool thing once per block, and it manages to add everything to the mempool in one loop.
some large blocks on CFEK were takign 28 seconds to add to mempool before.
now they take 0s
Definalty stll a slow down here though.
blackjok3r20-Dec-18 08:40 AM
Need to somehow disable the receiving of transactions and proagating of mempool until the chain is synced...
jl777c20-Dec-18 09:50 AM
also the segid fix
blackjok3r20-Dec-18 09:53 AM
will make PR with all of them at once... I cant seem to work out how to disable propagation of txs while IsInitailBlockDownlaod is true... I managed to stop the mempool receiving txns, because that made it slow down a lot, receiving txs before sapling was active on local node. But syncing KMDICE I have 45mbit upload bandwidth maxed out the whole time. and the nodes I am downlaoding off will be flat out rejecting all that data.
jl777c20-Dec-18 09:56 AM
propagation is somewhere in the message processing, i think end of main.cpp
blackjok3r20-Dec-18 09:56 AM
I found where it does it
but my code didnt do anything
if (inv.type == MSG_TX && IsInitialBlockDownload()) // dont send txs when syncing, it floods other nodes.
{
fprintf(stderr, "skipped sending tx.\n");
continue;
}
doesnt work
jl777c20-Dec-18 10:57 AM
there would be other places that do the trickling out, look for outbound messages
blackjok3r20-Dec-18 11:01 AM
this one is very tricky... fast running out of ideas. tried about 10 palces so far to stop it sending.. without any luck. Might be best to try and make it print the data its sending somewher in net.cpp and then working abck from that. I have holidays from tomorrow so If i cant figure this out tonigh I will make PR with the rest before I leave.
jl777c20-Dec-18 11:07 AM
yes, that is a good plan.
maybe do it sooner than later as the mempools transmission will definitely take a long time to track down
1
FabØ20-Dec-18 02:00 PM
Hello,
As we all know CC are opening up a lot of possibilities, so does a stable coin on Komodo.
If you are developing a market place, a P2P transaction system or platform that require some kind of price stability, we will be happy to chat with you
We are aiming to develop as much use cases as possible for KSB
This is doing 2 things:
Mempool fix in main.cpp.
It now only checks all transactions and puts them into the mempool once using the fCheckPow flag, which is only called once on each block.
The accep...
jl777c20-Dec-18 02:40 PM
how sure are you this is 100% safe?
blackjok3r20-Dec-18 02:44 PM
It appears to be .. I know 100% sure that it checks everything at least once.
it adds all the txs to the mempool on block receive, but assumes the inputs are fine. A confirmed block has already checked all that.
staker changes, are syncing DION fine, and works perfectly on CFEK
Likely want to get @Alright to test it on MGNX though to make 100% sure.
or @ComputerGenie 👴👴👴
jorian20-Dec-18 02:55 PM
I know 100% sure the mother of all 'oh shits'
or as james likes to say: oops
blackjok3r20-Dec-18 03:02 PM
it is about 100x faster, so maybe its not safe but I am quite sure that its, checking things 2-3 times doesnt seem to make a lot of sense, if it passes the first time it will pass the second time.


---
layout: archive
title: Lean Prover Zulip Chat Archive
permalink: 113488general/16418Timetomoveto35.html
---
The archive URL format has changed. Please find this page at:
https://leanprover-community.github.io/archive/stream/113488-general/topic/Time.20to.20move.20to.203.2E5.3F.html


SQL or NoSQL?
First, SQL...
How do websites that deal with a ton of user data handle all that information? If you think about it, they often have to keep track of usernames, names, addresses, email addresses, preferences, all sorts of stuff... And oftentimes that's for tens of thousands of people. How do they do it? Well for many years, SQL, or "Search Query Language," has been the accepted database solution for managing data. SQL databases are also referred to as "relational databases" because of their table-based format for storing data and the way they process data by the relationships that exist between them.
The Changing Data Landscape and the Emergence of NoSQL
In recent years, as the sheer volume of data on the Web has increased exponentially, new solutions have emerged to handle these demands. One of the solutions that has gained a lot of traction as of late is called "NoSQL," which although it sounds like "NO SQL" as in the anti-SQL, it actually stands for "Not Only Search Query Language." Knowing that makes it sound less antagonistic, no? That's actually a relevant point because ever since the emergence of NoSQL, debates over which is the better data management system have evidently been quite heated in certain circles. In any case, it's important to note that NoSQL databases are also referred to as non-relational or distributed databases.
So What's the Difference Between SQL and NoSQL?
Both SQL and NoSQL are widely used among stand-out companies. Google and Amazon are some of the best known companies to have transitioned to non-relational databases whereas companies like Facebook and Oracle evidently stick with the SQL-based approach. Given that both systems are popular in their own regard, they tend to draw their staunch advocates on both sides.
The pro-NoSQL argument...
Proponents of NoSQL might point to the fact that it's quicker and lighter. They might say that performing joins on massive relational databases can slow the system down considerably; NoSQL doesn't have this problem. It uses an adaptive architecture rather than a monolithic one, which enables it to be more scalable. NoSQL proponents also might argue that relational databases don't map well to complex, hierarchical data types. NoSQL on the other hand relies on more flexible Object-Oriented programming solutions, which allow for quicker iterations and more frequent code pushes.
In Defense of SQL...
Defenders of SQL would probably point out that it has been the most widely used system for years. They might suggest that pretty much no company manages as much data as Google, and so for practical purposes, relational databases are more than robust enough for managing large data sets. SQL proponents also might argue that most data does in fact map well to relational databases; relational databases have also evolved to interpret increasingly complex data. And because of their well-defined structure, relational databases behave in reliable, predictable ways.
So which is better? I for one don't have a clear answer. All I know is I have some more research to do.


--- title: 'I wish I’d had the ears to hear in the year or five after graduating from college: primarily, that we never end up anywhere near where we’d expected, and that most of us would have been a lot happier a lot faster if we’d realized that we were often obsessing over the wrong things—starting with how much the world should care about our major.' date: '2011-01-18T12:58:50+05:30' tags: [] tumblr_url: https://sureshshanmugam.com/post/2808496150/i-wish-id-had-the-ears-to-hear-in-the-year-or ---
I wish I’d had the ears to hear in the year or five after graduating from college: primarily, that we never end up anywhere near where we’d expected, and that most of us would have been a lot happier a lot faster if we’d realized that we were often obsessing over the wrong things—starting with how much the world should care about our major.—43 Folders | Time, Attention, and Creative Work


Welcome to SoundMory, a game where you can test your memory retention skills. Do you think you have what it takes to win?


I'm a U.C.D. Computer Science graduate though I've an interest in most sciences and mathematics.
I'm proficient in the Java programming language, Java Servlets and JavaServer Pages.
I've achieved certification through Oracle as an Java EE 6 Web Component Developer.
I'm studying J2EE technology including Java Enterprise Beans and the Spring framework.
Current Project: Developing a web application to store and analyse information related to injection moulding process parameters using
- Java Servlets
- JavaServer Pages, HTML and JavaScript
- Spring for dependency injection.
- MySQL database to store the data.
- Google Charts
- Source code available for viewing at Github
Log in to Web App


PhET Style Guide
{{#each parents as |parent|}}
{{parent.title}}
{{#if parent.components}} {{#navList parent.components parent.repo}} {{/navList}} {{/if}}
{{/each}}
Components by sim
Sims by component
{{{ content }}}


|
|
Use constants (numbers) and layer variables (yellow, above) to write an expression for the initial value of scores in the new layer. A full list of supported operations can be found here. Leave blank to initialize scores to 0. |
|
|
Choose which layer to import manually assigned colors from. Leave blank to initialze with no colors. |
|
|
Choose which layer to import comments from. Leave blank to initialize with no comments. |
|
|
Choose which layer to import enabled/disabled states from. Leave blank to initialize all to enabled. |
|
|
Choose which layer to import filters - stages and platforms - from. Leave blank to initialize with no filters. |


--- layout: page title: Products products: [ { name: AgileMapper, image: AgileMapper.gif, description: [ 'Powerful, fast, zero-configuration object mapper', 'Transforms, updates, merges, deep clones and projects queries', 'Viewable execution plans', 'NuGet package for .NET 3.5+ and .NET Standard 1.0+' ] }, { name: ReadableExpressions, image: ReadableExpressions.gif, description: [ 'Converts Expression objects into readable source code', 'Debugger visualizers for Visual Studio 2010+', 'NuGet package for .NET 3.5+ and .NET Standard 1.0+' ] }, { name: NetStandardPolyfills, image: NetStandardPolyfills.gif, description: [ '80+ Type and reflection extension methods', 'Polyfills for .NET 3.5, .NET 4.0 and .NET Standard 1.0', 'NuGet package for .NET 3.5+ and .NET Standard 1.0+' ] } ] ---


Dead Aid by Dambisa Moyo 4 minutes read It has been close to six months since my arrival in Sierra Leone. So far, the experience has been a very interesting, albeit at times a challenging one. Howe...
A Head Full of Ghosts by Paul Tremblay 6 minutes read A confession : I have an irrational fear of horror movies/books. While I appreciate the intricacies that are to be found in well written horror, particularly...
The Life You Can Save by Peter Singer 11 minutes read Recently, I have become increasingly interested in the Effective Altruism movement, and how it is advocating for a reboot in how we perceive our lives, caree...
Master Algorithm by Pedro Domingos 9 minutes read Quite often these days, one gets the picture that the big data/data science/artificial intelligence hype train is exponentially gathering steam. Although, if...
Nexus by Ramiz Naam 4 minutes read Neuroscience is a fascinating subject. Out of all the branches of science, perhaps even more than the much touted Artificial Intelligence, recent advances in...
The World is Flat by Thomas Freidman 5 minutes read I came across Thomas Freidman’s heady bestseller while reading up on some of the work that Leila Janah is doing, the inspirational woman behind Samasource, a...


Ping Pong to a number of your choosing.
Ping Pong
Ping Pong Again!
Here are your results:
Ping Pong Again!


In order to reduce a boilerplate necessary to start the adventure with any database, Nest comes with the ready to use @nestjs/typeorm
package.
We selected TypeORM because it's definitely the most
mature Object Relational Mapper (ORM) available so far. Since it's written in TypeScript, it works pretty well with the
Nest framework.
Firstly, we need to install all of the required dependencies:
$ npm install --save @nestjs/typeorm typeorm mysql
Notice In this chapter we'll use a MySQL database, but TypeORM provides a support for a lot of different databases such as PostgreSQL, SQLite, and even MongoDB (NoSQL).
Once the installation process is completed, we can import the TypeOrmModule
into the root ApplicationModule
.
{{ importTypeOrm }}
The forRoot()
method accepts the same configuration object as createConnection()
from the TypeORM package. Futhermore, instead of passing anything
to the forRoot()
, we can create an ormconfig.json
file in the project root directory.
{{ ormconfig }}
Then, we can simply leave the parenthesis empty:
{{ 'app.module' | extension: importTypeOrmEmptyT.isJsActive }}{{ importTypeOrmEmpty }}
Afterward, the Connection
and EntityManager
will be available to inject across entire project
(without importing any module elsewhere), for example, in this way:
{{ importConnectionInstance }}
{{ importConnectionInstanceJs }}
The TypeORM supports the repository design pattern, so each entity has its own Repository. These repositories can be obtained from the database connection.
Firstly, we need at least one entity. We're gonna reuse the Photo
entity from the official documentation.
{{ photoEntity }}
The Photo
entity belongs to the photo
directory. This directory represents the PhotoModule
.
It's your decision where you gonna keep your model files. From our point of view, the best way's to hold them nearly
their domain, in the corresponding module directory.
Let's have a look at the PhotoModule
:
{{ photoModule }}
This module uses forFeature()
method to define which repositories shall be registered in the current scope.
Thanks to that we can inject the PhotoRepository
to the PhotoService
using the @InjectRepository()
decorator:
{{ photoService }}
{{ photoServiceJs }}
Notice Don't forget to import thePhotoModule
into the rootApplicationModule
.
Some of your projects may require multiple database connections. Fortunately, this can also be achieved with this module. To work with multiple connections, the first thing to do is to create those connections. In this case, the connection naming becomes mandatory.
Say you have a Person
entity and an Album
entity, each stored in their own database.
{{ multipleConnections }}
Notice If you don't set anyname
for a connection, its name is set todefault
. Please note that you shouldn't have multiple connections without a name, or with the same name, otherwise they simply get overridden.
At this point, you have each of your Photo
, Person
and Album
entities registered
in their own connection. With this setup, you have to tell the TypeOrmModule.forFeature()
function and the
@InjectRepository()
decorator which connection should be used. If you do not pass any connection name, the
default
connection is used.
{{ forFeatureWithConnection }}
You can also inject the Connection
or EntityManager
for a given connection:
{{ injectConnectionAndEntityManager }}
When it comes to unit test our application, we usually want to avoid any database connection, making our test suits independent
and their execution process quick as possible. But our classes might depend on repositories that are pulled from the
connection instance. What's then? The solution is to create fake repositories. In order to achieve that, we should set
up custom providers. In fact, each registered repository is represented
by EntityNameRepository
token, where EntityName
is a name of your entity class.
The @nestjs/typeorm
package exposes getRepositoryToken()
function that returns prepared token
based on a given entity.
{{ mockRepository }}
Now a hardcoded mockRepository
will be used as a PhotoRepository
. Whenever any provider asks
for PhotoRepository
using an @InjectRepository()
decorator, Nest will use a registered mockRepository
object.
TypeORM provides feature called custom repositories. To learn more about it, visit this page. Basically, custom repository allows you extending a base repository class, and enrich it with a couple of special methods.
In order to create your custom repository, use @EntityRepository()
decorator and extend Repository
class.
{{ customRepository }}
Hint Both@EntityRepository()
andRepository
are exposed fromtypeorm
package.
Once the class is created, the next step is to hand over the instantiation responsibility to Nest. For this, we have to pass
AuthorRepository
class to the TypeOrm.forFeature()
method.
{{ registerCustomRepository }}
Notice Even thoughAuthorRepository
is passed, it's not enough to create a custom repository yet. The corresponding entity class,Author
in this case, is required as well.
Afterward, simply inject the repository using @InjectRepository()
decorator.
{{ injectCustomRepository }}
Quite often you might want to asynchronously pass your module options instead of passing them beforehand. In such case, use
forRootAsync()
method, that provides a couple of various ways to deal with async data.
First possible approach is to use a factory function:
{{ asyncConfiguration }}
Obviously, our factory behaves like every other one (might be async
and is able to inject dependencies through
inject
).
{{ asyncConfigurationFactoryAsync }}
Alternatively, you are able to use class instead of a factory.
{{ asyncConfigurationClass }}
Above construction will instantiate TypeOrmConfigService
inside TypeOrmModule
and will leverage
it to create options object. The TypeOrmConfigService
has to implement TypeOrmOptionsFactory
interface.
{{ asyncConfigurationClassBody }}
In order to prevent the creation of TypeOrmConfigService
inside TypeOrmModule
and use a provider
imported from a different module, you can use the useExisting
syntax.
{{ asyncConfigurationExisting }}
It works the same as useClass
with one critical difference - TypeOrmModule
will lookup imported
modules to reuse already created ConfigService
, instead of instantiating it on its own.
A working example is available here.


After you log in, you will be asked for additional information to confirm your identity and protect your account from being compromised. Learm more
For extra security, this requires you to confirm your email or phone number when you reset your password. Learm more


Monster Hunter: World's latest threat, The Deviljho, joins the PS4 action RPG in today's 2.00 update
4 hours ago
God of War has gone gold, creative director calls the game "the scariest, most wonderful thing I have ever done"
4 hours ago
Countdown to MLB The Show 18 livestream ahead of tomorrow's launch
4 hours ago
Meet Detroit: Become Human's three complex protagonists in new videos for PS4-exclusive neo noir
4 hours ago


This is a web based administration panel, where you can manage and edit your baseweb application.
Each admin is customized for you specifically, so that it only contains controls to the modules that you have installed in your application.
The top main menu will contain a list of tabs to the different modules that you can control.


NIF Objects | Compound Types | Enum Types | Basic Types | File Versions
| Name | Type | Arg | Arr1 | Arr2 | Cond | Description | From | To |
|---|---|---|---|---|---|---|---|---|
| Use External | byte | Is the texture external? | ||||||
| File Name | FilePath | useExternal == 1 | The external texture file name. Note: all original morrowind nifs use name.ext only for addressing the textures, but most mods use something like textures/[subdir/]name.ext. This is due to a feature in Morrowind resource manager: it loads name.ext, textures/name.ext and textures/subdir/name.ext but NOT subdir/name.ext. |
|||||
| Unknown Link | Ref<NiObject> | useExternal == 1 | Unknown. | <IP_ADDRESS> | ||||
| Unknown Byte | byte | useExternal == 0 | Unknown. | <IP_ADDRESS> | ||||
| File Name | FilePath | useExternal == 0 | The original source filename of the image embedded by the referred NiPixelData object. | <IP_ADDRESS> | ||||
| Pixel Data | Ref<NiPixelData> | useExternal == 0 | Pixel data object index. |


Role-based authorization
When an identity is created it may belong to one or more roles. For example, Alice may belong to the Administrator and User roles whilst Bob may only belong to the User role. How these roles are created and managed depends on the IdentityServer4 of the authorization process.
Role-based authorization checks are declarative—the developer embeds them within their code, against a grain interface or an method within a grain interface, specifying roles which the current user or client (please see IdentityServer4 terminology) must be a member of to access the requested resource.
For example, the following code limits access to any methods on the implementation of IUserGrain
to users/clients who are a member of the Administrator role:
[Authorize(Roles = "Administrator")]
public interface IUserGrain : IGrainWithStringKey
{
Task<string> DoSomething();
Task<string> DoSomethingElse();
}
You can specify multiple roles as a comma separated list:
[Authorize(Roles = "Administrator, Manager")]
public interface IUserGrain : IGrainWithStringKey
{
Task<string> DoSomething();
Task<string> DoSomethingElse();
}
This grain would be only accessible by users/clients who are members of the Administrator
role or the Manager
role.
If you apply multiple attributes then an accessing user/client must be a member of all the roles specified; the following sample requires that a user must be a member of both the Developer
and Manager
role.
[Authorize(Roles = "Developer")]
[Authorize(Roles = "Manager")]
public interface IUserGrain : IGrainWithStringKey
{
Task<string> DoSomething();
Task<string> DoSomethingElse();
}
You can further limit access by applying additional role authorization attributes at the method level:
[Authorize(Roles = "Developer")]
[Authorize(Roles = "Manager")]
public interface IUserGrain : IGrainWithStringKey
{
Task<string> DoSomething();
[Authorize(Roles = "Manager")]
Task<string> DoSomethingElse();
}
In the previous code snippet members of the Developer
role or the Manager
role can access the grain and the DoSomething
method, but only members of the Manager
role can access the DoSomethingElse
method.
You can also lock down a grain but allow anonymous, unauthenticated access to individual methods.
[Authorize]
public interface IUserGrain : IGrainWithStringKey
{
Task<string> DoSomething();
[AllowAnonymous]
Task<string> DoSomethingElse();
}


Calling BS on BDS - Genocide Libel
11 Jun 2015One of the most absurd claims the BDS crowd makes is the allegation of a “Palestinian Genocide.” Any action that Israel takes in self-defense is automatically labelled genocide today, along with the baseless allegations of war crimes and crimes against humanity. Operation Protective Edge was labeled a genocide before it even got its name and this was no different than Cast Lead and Pillar of Defense. BDS-holes use this inflammatory rhetoric not because it is accurate, but because it creates such a visceral reaction among those who hear it. Most people don’t follow the news from Israel as closely as we do, but if they hear the world “genocide” they’ll take notice and have an automatic disdain for whoever is being accused of it.
But it is important to remember that despite what BDS-holes would like, the word “genocide” does have an actual definition. According to the United States Holocaust Memorial Museum, genocide is:
acts committed with intent to destroy, in whole or in part, a national, ethnical [sic], racial or religious group
This definition was adopted by the United Nations in 1948. So first lets examine the quintessential example of genocide:
##The Holocaust
In 1933, as the Nazi regime took power in Germany, there were 9.5 million Jews living in Europe. By the end of World War II, 6 million Jews had been exterminated, leaving only 3.5 million Jews alive in all of Europe.
The Holocaust, the genocide of the Jews of Europe, resulted in the death of 63% or nearly 2/3 of all European Jews.
It is also important to remember that the only reason this number was not higher was because of the Nazi defeat and was not due to a lack of trying or intent.
Since BDS-holes love to defile the memories of the victims of the Holocaust (just as they disrespect the victims of apartheid) by comparing it to the “Nakba,” let’s examine that first:
##The “Nakba”
Back in 1947 there were 1,237,334 Arabs living in the Land of Israel](http://israelipalestinian.procon.org/view.resource.php?resourceID=000636#chart3). Roughly 21% of Arabs or 256,000, fled or were expelled to the surrounding Arab states while the rest of the Arabs either stayed where they were or moved internally within the borders of what has been Mandatory Palestine. When it comes to every other population on the planet, such “internally displaced” peoples are not considered refugees as they are still within the area of their original “state.”
By 1950, after the war was finally over, there were 1,164,100 Arabs living in the area formerly known as Mandatory Palestine](http://israelipalestinian.procon.org/view.resource.php?resourceID=000636#chart5). There were 159,100 in Israel, 765,000 in the Jordanian annexed West Bank (Judea and Samaria), and 240,000 in the Egyptian occupied Gaza Strip.
Due to the war there was 6% decrease in the Arab population of the Land of Israel, the vast majority of which were either emigrants or combatant deaths.
At this point in the discussion, the BDS-holes will inevitably bring up Plan D or Dalet and say this was the Israeli plan to displace and disposes the Palestinians. Those who bring up Plan D in such situations either have not read the plan themselves or are willfully lying. Dalet was a military plan drawn up during the Civil War stage of the fighting in March 1948 in anticipation of the pending invasion by the Arab states. Its main goal, which did not include expulsion, was clearly stated at the beginning:
The objective of this plan is to gain control of the areas of the Hebrew state and defend its borders. It also aims at gaining control of the areas of Jewish settlement and concentration which are located outside the borders [of the Hebrew state as delineated by the unimplemented Partition Plan] against regular, semi-regular, and small forces operating from bases outside or inside the state.
Wikipedia has a very good summation of Benny Morris’s description of Plan D as a defensive operation:
The essence of the plan was the clearing of hostile and potentially hostile forces out of the interior of the territory of the prospective Jewish State, establishing territorial continuity between the major concentrations of Jewish population and securing the future State’s borders before, and in anticipation of, the invasion [by Arab states]. The Haganah regarded almost all the villages as actively or potentially hostile.
The plan was neither understood nor used by the senior field officers as a blanket instruction for the expulsion of ‘the Arabs’. But, in providing for the expulsion or destruction of villages that had resisted or might threaten the Yishuv, it constituted a strategic-doctrinal and carte blanche for expulsions by front, brigade, district and battalion commanders (who in each case argued military necessity) and it gave commanders, post facto, formal, persuasive cover for their actions. However, during April–June [1948], relatively few commanders faced the moral dilemma of having to carry out the expulsion clauses. Townspeople and villagers usually left their homes before or during battle, and Haganah rarely had to decide about, or issue, expulsion orders….”
Not only was there no intent by the Israelis to expel the Arabs, during the time Plan D was in place, expulsion orders to violently resisting Arab towns were almost never given since most areas were taken after the Arabs had already fled. Moreover, in terms of casualties, there were between 3,000 and 13,000 on the Arab side and 6,373 dead on the Israeli side. The casualties of both the Jewish and Arab sides (if we accept the highest estimate of Arabs) equal roughly one percent of the respective populations, more characteristic of a civil war than a genocide.
##”Occupation of the West Bank”
The genocide libel is all the more laughable when brought against the Israeli “occupation of the West Bank.”
In 1967, when Israel took Judea and Samaria from Jordan, 598,637 Arabs lived there.
As of 2014, there were 2,175,052 Arabs living in the West Bank.
That is an increase of 1,576,415 people or 263% growth!
That isn’t a genocide, that’s a population explosion!
##”Occupation of Gaza”
The numbers don’t help the BDS-holes when looking at Gaza either.
In 1967, when Israel wrested Gaza from Egyptian occupation, 356,261 Arabs were living there.
By 2005, when Israel unilaterally ended its occupation of the territory, there were 1,376,289 Arabs there.
That is an increase of 1,020,028 people or 286% growth!
Again, that isn’t a genocide, that’s an unheard of population boom!
##Arabs in Israel
When examining the Arab population of Israel we see yet again that the exact opposite of a genocide has taken place.
In 1949, after the war ended, there were [159,100 Arabs in Israel](http://israelipalestinian.procon.org/view.resource.php?resourceID=000636].
Today, in 2015, there are 1,730,000 Arabs living in Israel](https://www.jewishvirtuallibrary.org/jsource/Society_&_Culture/newpop.html).
That is an increase of 1,570,900 people or 987% growth!
That’s right, under Israeli rule, the Arab population grew by nearly one thousand percent!
###If that’s genocide, sign me up!
###Back to main page: Calling BS on BDS __


comp_coef_rwgt.Rd
comp_coef_rwgt
returns estimates for GLM and OLS under reweighting of
multiple regressors. The function estimates a set of coefficients for several
configurations of the reweighting of the reweighting of each regressor.
comp_coef_rwgt( mod_fit, terms_to_rwgt, B = 100, m = NULL, grid_centers = NULL, grid_method = "quantiles", n_grid = 9 )
| mod_fit | An object of class |
|---|---|
| terms_to_rwgt | A vector of characters corresponding to the names of the regressors to be reweighted. |
| B | An integer corresponding to the number of bootstrap repetitions or
number of bootstrap samples to be drawn. Default is set to |
| m | An integer corresponding to the number of observations to be sampled with replacement from the data set in each bootstrap repetition. Default is set to the size of the data set. |
| grid_centers | A data frame containing the names of the regressors as
columns and the corresponding reweighting centers.
Each column corresponds to a different regressor, whose name is specified
in the name of the column. Default is set to |
| grid_method | A chracter which specifies the method used to construct
the grid of reweighting centers. The grid can consist either of evenly
spaced values between the maximum and the minimum
( |
| n_grid | An integer corresponding to the number of reweighting centers
for the grid. Default is set to |
A tibble containing the number of the bootstrapped data set (b
),
the size of each bootstrapped data set (m
),
the value of the reweighting centers (term_rwgt_center
) and the name of
the regressor under reweighting (term_rwgt
), and the estimates of the
regression coefficients (term
and estimate
).
The model extracted from mod_fit
is fitted on B
data sets sampled via m
-out-of-n empirical bootstrap
using weighted regression where the predictors to be reweighted are
specified in terms_to_rwgt
and have reweighting centers given by
grid_centers
.
Using the default parameters, the function will compute the estimates for
a grid based on the second to first to the ninth deciles of each regressor.
if (FALSE) { set.seed(1321312) # Get OLS estimates under reweighting of all regressors with default grid n <- 1e3 X1 <- stats::rnorm(n, 0, 1) X2 <- stats::rnorm(n, 0, 3) y <- 2 + X1 + X2 * 0.3 + stats::rnorm(n, 0, 1) df <- tibble::tibble(y = y, X1 = X1, X2 = X2, n_obs = 1:length(X1)) mod_fit <- stats::lm(y ~ X1 + X2, df) ols_rwgt <- comp_coef_rwgt(mod_fit, c("X1", "X2")) # Display the output print(ols_rwgt) # Get OLS estimates under reweighting of all regressors by feeding grid of centers into the function ols_rwgt_grid_fixed <- comp_coef_rwgt(mod_fit, "X1", grid_centers = data.frame(X1 = c(0, 1))) #' # Display the output print(ols_rwgt_grid_fixed) }


Current Job ID
000
Device Status
Last Packet Received At
Device ID
Click to Download Historical Data


Computer programming is my forte. As you can see, web design clearly isn't.
The language about which I know the most is Java, if only because I've used it for the longest period of time. I also used it in college, and it's the only language I use in my current job. I can use many Java-related technologies, such as Spring, JAXB, JSPs, JPA, JDBC, and many J-prefixed acronyms besides.
I also have professional experience with XML, XML Schema, and RESTful web services. I'm most comfortable with Oracle, Weblogic, and the whole awful, awful Oracle stack.
Java sucks, though. It, no, I'm sorry, it does. There are many other languages that run faster and many that are easier to write and many that are more powerful and many that are more concise.
Chiefly among these is Javascript. Probably not in the speed department, but it seems easier to turn my thoughts into code when I'm writing Javascript. I know basic JS, I'm learning node, and I aim to learn Ember or Angular as well.
Additionally, I know a good amount of Perl, a touch of C++, a hint of Python, a dab of Perl 6, and a tiny pinch of Lisp (okay, Scheme (okay fine it was Racket)). Also shell scripting? That seems like a given though.


| DOSE: T+ 0:00 |
100 mg |
oral |
MDMA |
| T+ 1:30 |
20 mg |
oral |
MDMA |
[This report originally appeared as a typewritten page pasted into Book 2, page 295 of the Shulgin Lab Books.]
Report on Experience with MDMA
Guests: Holly Ralston, Tatiana Ralston
Start: 9:50 A.M. All participants ingested 100 m.g.
10:10 Everyone is beginning to feel effects.
10:30 All are feeling strongly, Tatiana feels that it hits her very suddenly. We had started in the living room, where there is lots of light and excellent views out of the windows, and a lot of interesting things to out around the room. But when we stepped outside, it seemed to come on stronger.
We took chairs down to sit under the cottonwood trees, which were most pleasant. A nice breeze caressed us and whispered in the trees. The scenery was magnificent. At first everything seemed too bright, but as we accommodated ourselves to the brilliant sunshine, we began to observe the marvelous detail in the mountains and across plains. he desert foliage was most interesting, and remarkably different from plants on the Coast. Holly felt heavily intoxicated. She has been extremely tired and tense the night before, with appreciable pains in her neck and shoulders. She felt the experience was a great tranquilizer, and her body felt numb.
11:20 We take supplements, Tatiana and Zeke, 20mg., Holly 10mg. (the balance of our supply), Holly was feeling so heavily intoxicated that at first she thought she would refuse the supplement, but when we learned the distribution of the remaining capsules, she opted for the 10 mg. (I has originally planned to take the 10 and give the girls 20.)
Tatiana sailed for 3 hours with the experience. At the end of three hours (12:50 p.m.) she suddenly came out of the spontaneous experience, and began corticalizing about her work and life situations.
I experienced considerable enhancement of perception, but was not as completely into the experience as I have been with large amounts. I experienced a great deal of cortical activity, similar to what I am more used to with LSD, which I have never before experienced with the compound. This was partly the result of our not being too talkative, Holly feeling very relaxed and Tatiana and myself enjoying our experience. I keenly felt the absence of our former companions on this journey.
After the supplement, we walked around the property for a couple of hours, feeling very content, relaxed., and enjoying the beauty. At first we felt so relaxed we didn't feel like walking, but once we started it was effortless. It felt very good to walk around and look at things.
2:30 We come back to the living room, all feeling very languid. We sat around and talked for a while, and then Holly and I took naps in which we slept very peacefully. Tatiana read a while, and then took a nap.
Later in the afternoon, we took showers, which was very refreshing, and has a delightful visit with out neighbors, the Zina's. For my birthday, they took us to dinner at their restaurant, where we had a late dinner. Tatiana ordered a steak, which did not sit too well with her, and that evening had an attack of diarrhea, and her stomach still bothered her the next morning. Otherwise, everything was most pleasant. We enjoyed the Zina's very much, and were very content and peaceful. Holly was greatly relaxed and no longer pushed by the compulsion to clean up to the house immediately.
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.


ArrayFire is a high performance software library for parallel computing with an easy-to-use API. Its array based function set makes parallel programming more accessible.
You can install ArrayFire using either a binary installer for Windows, OSX, or Linux or download it from source:
The array object is beautifully simple.
Array-based notation effectively expresses computational algorithms in readable math-resembling notation. You do not need expertise in parallel programming to use ArrayFire.
A few lines of ArrayFire code accomplishes what can take 100s of complicated lines in CUDA or OpenCL kernels.
ArrayFire contains hundreds of functions across various domains including:
Each function is hand-tuned by ArrayFire developers with all possible low-level optimizations.
ArrayFire operates on common data shapes and sizes, including vectors, matrices, volumes, and
It supports common data types, including single and double precision floating point values, complex numbers, booleans, and 32-bit signed and unsigned integers.
ArrayFire can be used as a stand-alone application or integrated with existing CUDA or OpenCL code. All ArrayFire arrays
can be interchanged with other CUDA or OpenCL data structures.
With support for x86, ARM, CUDA, and OpenCL devices, ArrayFire supports for a comprehensive list of devices.
Each ArrayFire installation comes with:
ArrayFire supports batched operations on N-dimensional arrays. Batch operations in ArrayFire are run in parallel ensuring an optimal usage of your CUDA or OpenCL device.
You can get the best performance out of ArrayFire using vectorization techniques.
ArrayFire can also execute loop iterations in parallel with the gfor function.
ArrayFire performs run-time analysis of your code to increase arithmetic intensity and memory throughput, while avoiding unnecessary temporary allocations. It has an awesome internal JIT compiler to make optimizations for you.
Read more about how ArrayFire JIT can improve the performance in your application.
Here's a live example to let you see ArrayFire code. You create arrays which reside on CUDA or OpenCL devices. Then you can use ArrayFire functions on those arrays.
If you redistribute ArrayFire, please follow the terms established in the license. If you wish to cite ArrayFire in an academic publication, please use the following reference:
Formatted:
Yalamanchili, P., Arshad, U., Mohammed, Z., Garigipati, P., Entschev, P., Kloppenborg, B., Malcolm, James and Melonakos, J. (2015). ArrayFire - A high performance software library for parallel computing with an easy-to-use API. Atlanta: AccelerEyes. Retrieved from https://github.com/arrayfire/arrayfire
BibTeX:
@misc{Yalamanchili2015, abstract = {ArrayFire is a high performance software library for parallel computing with an easy-to-use API. Its array based function set makes parallel programming simple. ArrayFire's multiple backends (CUDA, OpenCL and native CPU) make it platform independent and highly portable. A few lines of code in ArrayFire can replace dozens of lines of parallel computing code, saving you valuable time and lowering development costs.}, address = {Atlanta}, author = {Yalamanchili, Pavan and Arshad, Umar and Mohammed, Zakiuddin and Garigipati, Pradeep and Entschev, Peter and Kloppenborg, Brian and Malcolm, James and Melonakos, John}, publisher = {AccelerEyes}, title = {{ArrayFire - A high performance software library for parallel computing with an easy-to-use API}}, url = {https://github.com/arrayfire/arrayfire}, year = {2015} }
ArrayFire development is funded by ArrayFire LLC and several third parties, please see the list of acknowledgements.


People construct machine learning (ML) models for various use cases in varied domains such as in healthcare, finance, public-policy, etc. In doing so they aim to improve a models' performance by adopting various strategies, such as changing input data (data augmentation), tuning model hyperparameters, performing feature engineering that includes feature extraction, feature augmentation or feature transformation. However, how would users know which of these model construction strategies to adopt for their problem? Following any or all of these approaches allows the construction of a gigantic set of models, from which users may select model(s) suited to their data analytic task. This problem of model selection is non-trivial because in real-world use cases many of the best performing models (in relation to a specified metric) may appear to serve users' goal but often exhibits nuances and tradeoffs (e.g, may weight features differently, varying compute times to train, or may predict relevant data instances differently etc.). This paper aims to solve the problem of how to construct models and how to select a preferred modeling strategy by allowing users to compare the differences and similarities between multiple regression models, and then learn not only about the model but also about their data. This learning further empowers them to select model(s) that more precisely suit their analysis goals. We present LEGION, a visual analytic tool that helps users to compare and select regression models constructed either by tuning their hyperparameters or by feature engineering. We also present two use cases on real world datasets validating the utility and effectiveness of our tool.


---
layout: post
title: Sharon Jones -- This land is your land :-)
date: '2010-02-15T03:44:00.005+02:00'
author: vlad popic
tags:
- Vlad Popic
- soul
modified_time: '2011-01-17T01:21:28.082+02:00'
blogger_id: tag:blogger.com,1999:blog-551549162106413340.post-9095115026850851599
blogger_orig_url: http://pentrumuzica.blogspot.com/2010/02/this-land-is-your-land-neither-johnny.html
---
... speaking about flying...


BinaryFileFormatter Class
Definition
Line
176
of
cmsxo/BinaryFile.cm
Inheritance
Constructors & Destructor
public
nothrow
BinaryFileFormatter
(
BinaryFile
& file_)
Member Functions
public
override
String
<
char
>
FormatRegisterNumber
(
byte
x)
public
override
String
<
char
>
GetLabel
(
ulong
address)
Member Variables
private
BinaryFile
&
file
Constructor& Destructor Details
BinaryFileFormatter Constructor
public
nothrow
BinaryFileFormatter(
BinaryFile
& file_)
Definition
Line
178
of
cmsxo/BinaryFile.cm
Member Function Details
FormatRegisterNumber Member Function
public
override
String
<
char
> FormatRegisterNumber(
byte
x)
Definition
Line
181
of
cmsxo/BinaryFile.cm
GetLabel Member Function
public
override
String
<
char
> GetLabel(
ulong
address)
Definition
Line
193
of
cmsxo/BinaryFile.cm


3. StkFw screen
3.1 Main console
The main console is displayed when StkFw is started.
The main console is the basic user interface for the functions of StkFw.
Operations that can be implemented from this console are listed below.
- Launch dialog for file operation
- Add/remove processing elements, add/remove links between processing elements
- Launch processing element property setting dialog
- Launch thread controller
- Start/stop all threads
- Launch variable controller
- Change workspace size/grid setting
As per the display example shown below, the main console can be separated into the window menu area and the workspace area.
The window menu area displays menu options for dialog/controller launch, and the workspace area displays functions for defining data flow.
Main console example
3.2 Main console operations
(1) Launch dialog for file operation
Click [File]-[Open] or [File]-[Save As] in the window menu area of the main console to launch the dialogs for reading or writing of StkFw data. If [File]-[New] is clicked, the current data are discarded and a dialog for new workspace creation is launched.
(2) Add/remove processing elements, add/remove links between processing elements
StkFw can be used to define data flow representing data receipt, dispatch and modification as processing elements (icons) and links between processing elements.
- Processing elements can be added by right-clicking in the workspace and selecting [Add Processing Element], and can be removed by following the same procedure and selecting [Delete Processing Element].
- Select multiple icons and click [Add Link] or [Delete Link] to add or delete links between specified processing elements or between threads.
(3) Launch property setting dialog for processing elements
Double-click the [Processing Element] icon in the workspace or right-click and select [Properties] to launch the property setting dialog for the specified processing element.
(4) Launch thread controller
The thread controller is a dialog for controlling individual worker threads with definition of data flow. Select [Run]-[Thread Controller] from the window menu of the main console to launch the thread controller.
(5) Start/stop all threads
Click [Run]-[Start all threads] from the window menu of the main console to start all threads at the same time. Click [Run]-[Stop all threads] to stop all threads at the same time.
(6) Launch variable controller
The variable controller can be launched.
(7) Change workspace size/grid setting
Right-click in the workspace and select [Grid]-[On] or [Grid]-[Off] to enable/disable grid line display.
Right-click in the workspace and select [Change workspace size] to display the dialog for changing the workspace size.


A Timeline class for scheduling and maintaining state along a timeline. All events must have a "time" property. Internally, events are stored in time order for fast retrieval.
The number of items in the timeline.
Insert an event object onto the timeline. Events must have a "time" attribute.
Remove an event from the timeline.
The event object set after that time.
Get the nearest event whose time is less than or equal to the given time.
The first event object
Return the first event in the timeline without removing it
The first event object
Return the first event in the timeline and remove it
The event object after the given time
Get the event which is scheduled after the given time.
The event object before the given time
Get the event before the event at the given time.
Cancel events after the given time
Cancel events before or equal to the given time.
Iterate over everything in the array
Iterate over everything in the array at or before the given time.
Iterate over everything in the array after the given time.
Iterate over everything in the array at or after the given time. Similar to forEachAfter, but includes the item(s) at the given time.
Iterate over everything in the array at the given time


Unit 2
Unit 2
What’s happening in this unit?
You will set up your own OpenShift dedicated cluster and deploy and example application to it
Action items
- Set up OpenSift Dedicated Cluster using OCM
- Deploy the example docker image to your newly set up OpenShift Dedicated Cluster
Note
We encourage you to always take a look at the code even if it’s not explicitly mentioned. In this case we have changed the code so that it has some extra functionality over just printing a statement once. If you browse it, you will find that we’ve added capilities to answer to http requests, making it a lot easier to deploy on OpenShift. In case you are curious, you can build it like we did in the first lection and then run it. It will listen on port 8080.
Task 1
These steps assume you have enough quota to start a cluster. If this is not the case and you are a Red Hat employee, talk to your manager to get this fixed. If this is not the case and you are a customer, talk to your Sales contact to buy more quota.
- log in to https://cloud.redhat.com
- navigate to “cluster manager”
- hit “create cluster”
- choose OpenShift Dedicated
- choose the cloud provider you prefer, we will assume that is Google Cloud Platform
- Fill out the form (since this is a training lab, the smallest possible cluster is good enough)
- Make yourself a nice cup of coffee or tea while the cluster is being set up
To help you navigate through this a bit easier, there’s a gif below showing the flow.
Task 2
You will be deploying the code and docker image from this repository just that we have uploaded it to quay.io for you already.
Preparations
There are a variety of different ways this can be achieved, we will try to stay as OpenShift native therefore those instructions might not work with vanilla Kubernetes
as things like oc create
don’t exist there.
Before you begin you should have oc
set up already.
You can download it from here.
In case you prefer to use a CLI to interact with OCM instead of the UI, you can also download the do so. Just get the command line client using go get -u github.com/openshift-online/ocm-cli/cmd/ocm
.
Afterwards get your offline token from here and then login using ocm login --token $OFFLINE_TOKEN
.
Now you will be able to use commands like ocm cluster list
, ocm cluster list --managed
or login like ocm cluster login <cluster_id>
Log in to your newly created cluster with your preferred method.
Verify everything worked with oc whoami
which should tell you which user you are on the cluster.
Task fulfilling
Now that you’re logged into the cluster, we can go ahead and deploy our application. First though we have to create a new project.
oc new-project my-great-project
Theoretically your context will be set to that new project but let’s just be extra sure
oc project my-great-project
Now let’s deploy our application.
oc new-app my-great-app:quay.io/rira12621/openshift-onboarding:unit2


Cisco VPN Client Password Decoder
Follow @artemkin
Star
Enter encrypted group password here
Decrypt!
Copy decrypted group password
{{ ( app.decryptedStringLength() > 0 ) ? app.decryptPasswordString() : "Try again..." }}
Back


How Sammy Went to Coral-Land
by Emily Paret Atwater
Chapter 3
Additional Information
- Year Published: 1920
- Language: English
- Country of Origin: United States of America
- Source: Atwater, E.P. (1920). How Sammy Went to Coral-Land. Philadelphia: George W. Jacobs and Co.
-
Readability:
- Flesch–Kincaid Level: 9.0
- Word Count: 2,232
- Genre: Adventure
- Keywords: adventure
- ✎ Cite This
Downloads
It is not to be wondered at that our hero should feel a good deal of distrust concerning his host. To be sure the Hermit had declared that he never preyed upon fish as large as Sammy, since they invariably disagreed with him, and he was very polite and affable to his guest. But there was a certain suggestiveness about some of his remarks that was unpleasant, and his furtive, watchful gaze made Sammy nervous.  Fortunately for Sammy his instinct told him that the crab was a dangerous companion. So he soon found an excuse to leave the cave on an exploring expedition, greatly to the Hermit’s regret.
Sammy’s experience with the shark was still fresh in his mind, and for a time he kept close to the ledge ready for a dash to safety should danger again threaten.
It was a most interesting place to explore, this ledge. There were big rocks and little rocks, flat rocks, rocks hidden by mud and sand, and sharp, jutting rocks full of peril to ships at low tide.
In one or two places near the ledge the ocean was so very deep that Sammy never ventured to explore its depths, while from another point he could clearly see the sand at the bottom of the sea, and loved to descend and swim lazily about examining the shell-fish, sea-snails and other curious creatures that made their home there.
The long ledge had many inhabitants and Sammy was soon on very good terms with a couple of jolly sea-urchins, whose round, prickly bodies were half hidden in the little holes which they had bored in the rock. The sea-urchins made him acquainted with some relations of theirs, a family of star-fish living on a flat shelf of rock near by. The star-fishes proved very agreeable companions, being both polite and pretty. They had lovely orange colored backs, out of which protruded their five arms, or rays, giving them the star-like appearance from which they get their name. Under these rays were rows of tiny feelers, or suckers which they used as feet. With these a star-fish can crawl about, or even turn himself over if he wishes to, and if he is disturbed or frightened these little feelers shrink up and conceal themselves in tiny holes in the rays.
Some star-fishes have the power of breaking off their rays, and, like the crab and lobster, can grow new ones to take their place. They have many beautiful relations in the star-fish family, one of the loveliest being the Brittle-star, so called because it will break in pieces when touched. Another relative is the Sun-star, which has twelve or fifteen rays, and often grows to a very large size. Its color is sometimes purple, sometimes red, with white rays tipped with red; truly a gorgeous creature, and no doubt very vain of his wonderful beauty!
All star-fishes have mouths and stomachs, which they put to good use, being exceedingly fond of oysters, and such like, which they suck out of their shells when opportunity offers.
One of this particular Star-Fish family, Meteor by name, proved very friendly indeed to Sammy, and through him our hero learned of a fine Oyster Colony which had established itself on a mud bank not very far distant.
Now Sammy was naturally of an inquisitive disposition, and an Oyster Colony being something new he was anxious to visit it. Meteor was also eager to pay a call, not so much from curiosity, as in the hope of extracting a fat bivalve from his shell for dinner.
So one fine day off the two started, Sammy swimming slowly to keep up with his companion, and presently they came in sight of the Colony. It was a large mud bank literally covered with oysters. Some were half hidden, others piled one upon another, and still others in little groups apart. Such a quantity as there were, and such queer-looking, dirty things, with their rough shells hinged at the back!
They paid but small attention to Sammy, but as soon as Meteor came in sight, shell after shell quickly closed, and the whole Colony immediately became to all appearances, a deaf, dumb and blind asylum. Not a sign betrayed that they were living creatures, and the disgust of the two adventurers may well be imagined. In vain did Sammy ask questions, and put forth his best conversational powers; in vain did the Star-Fish attempt to conceal his identity by hiding in the mud, the cautious oysters were not to be fooled, and finally, much put out, the two companions were obliged to retire unsatisfied.
“It’s all my fault,” grumbled the Star-Fish, as they moved slowly away. “I should have had sense enough to creep along in a less conspicuous manner. You see so many different kinds of sea-folks, crabs, sea-snails, etc., as well as our own family feed on the oysters that it makes them very timid, and they close their shells at the least sign of danger. And, of course, once the shells are shut the sharpest and most experienced claw is of no use. It is much easier to hunt oysters before the shell hardens, though it is not considered as much sport.”
“Are oysters’ shells ever soft?” inquired Sammy in great surprise.
“Oh, yes, indeed!” said Meteor, in a very superior tone. “Why I supposed that every fish in the sea knew that, but I forget, you are from the fresh water.
“The young oysters are hatched in the shell of the mother in the form of eggs. She keeps them for awhile, but presently sets them free, and although they are very tiny, they have eyes to see with, and can swim about. The oysters have large families, and I knew of one Lady Oyster who had two million young ones, but of course, only a few lived to grow up, since they are greatly prized as food by all fish, and delicious meals they make too, as I can tell you from experience.
“But about the young oysters: Well they are driven about by the currents and tides, and finally attach themselves to some object, like a rock, or hide in the sand and mud, and there they take up housekeeping for life, for, once their shell hardens, they cannot move.
  I have heard that the oysters in the Indian Ocean contain very beautiful and costly pearls, as well as those in the Pacific, and other seas, and a good many common oysters have pearls in them too.
“They say that the two-legged land race value the oyster on account of the pearls, and that they are very fond of it as an article of food: and indeed I’ve been told that this horrible race of land creatures will devour or make use of in some way, almost anything that comes out of the water. How glad I am that I live in the sea, instead of on shore!
“However, as I was saying, the oysters have lots of enemies, and they make few friends outside of their own family, and no wonder when you consider how very stuck-up they are.”
“They are certainly very unsociable,” agreed Sammy. “Still it has been nice to learn as much about them as you have been able to tell me, and I am greatly obliged to you.”
“Don’t mention it,” returned the Star-Fish, affably. “I make it my business to know the manner of life and habits of the creatures I live upon, and a good deal about those I have to avoid, and it will give me great pleasure to give you any information in my power. And above all things beware of that old hypocrite the Hermit-Crab, and all his family.”
This friendly advice proved of great benefit to Sammy during his stay at the ledge, and indeed, all through his life in the ocean. As he acquired a greater knowledge of the ways of the sea he lost much of his timidity, though none of that caution that is the safeguard of every wise fish.
Each day as he took longer trips about the ledge, he made new discoveries and new acquaintances, and though these were all interesting, yet he longed to leave the ledge entirely and journey to Coral-Land. Of this wonderful, faraway country he had heard marvelous tales from Aunt Sheen, although she herself had never seen it. Ever since his smallest fishhood Sammy had longed to see with his own eyes the glories of this delightful place, where the coral grew, sea-flowers bloomed, and hundreds of lovely fish swam about in the calm, blue water. But it was a long distance, and he knew that many dangers awaited the inexperienced traveler. So, although he never abandoned his intention of visiting the spot which he had come so far to see, he wisely decided to wait until some fish more versed in the ways of the sea than himself, should be going in his direction.
To this end, guided by the advice of Meteor, he accosted several fish who might prove desirable companions, but for a time with no success. The Herring was unwilling to leave the school which he was going to join; the Cod was bound for Newfoundland with his family, and feared that a warmer climate would not agree with the children.
A short conversation with a Mackerel proved more satisfactory. Mr. Mackerel was in a great hurry, for having heard that a school of herring had gone on ahead, he anticipated a good meal, and was anxious to be off.
“This is my busy day,” he said impatiently in answer to Sammy’s question. “No, I am not going to Coral-Land, it’s too far south for me at this reason. But if you will wait here awhile you may see a cousin of mine who might act as guide. He is a Pilot-Fish and is out of a job at present. You will know him by the three dark blue bands about his body. Now, I really must say good-day,” and away he swam in a tremendous hurry.
For some time longer Sammy lingered near examining the different fish that passed, but none with three bands about his body was to be seen. At length a large fish of a silver color appeared, and as he swam leisurely nearer Sammy saw that the stranger was indeed marked with three dark blue bands. Surely this must be the Pilot, and as such he addressed him.
 Well so I am, but I was intending to take a rest before going to work again. However, I would be willing to take charge of you this trip as a special favor.
“Oh, yes! I’ve been to Coral-Land a great many times, and know all the regular inhabitants as well as the ordinary visitors. But as this is your first trip, and as it is always more trouble to pilot an inexperienced fish, I think I will have to make a little extra charge. My terms are usually one-half of all the feed, but in your case I think I should have to ask a little more, say three-quarters. Is that satisfactory?”
“Perfectly,” replied Sammy, delighted to make any arrangement, although he had a suspicion that the sly Pilot was taking advantage of his greenness.
“Very well then,” said the Pilot, “I will take you to Coral-Land on those terms, and will guarantee to protect you as far as possible, from all danger. I am well known as an excellent guide, the White Shark will testify as to my ability in that line. But don’t get frightened,” he added, as Sammy began to shiver at the mention of the Shark’s name. “I forgot that you are not on as good terms with the sharks as I am. However I am not on speaking acquaintance with them at present, and since I know their habits, will promise to keep you well out of their way.
“And now suppose we look about for a bite for supper, talking always makes me very hungry, then to-morrow I will meet you at the ledge, and we can start fresh on our journey.”


World Terrorism Data
World Terrorism Data provides maps of the world, specific countries, and information on individual terrorist attacks. Click below to get started on the world map. Search for countries, filter for years, and explore the map.
World Terrorism Data provides maps of the world, specific countries, and information on individual terrorist attacks. Click below to get started on the world map. Search for countries, filter for years, and explore the map.


Functional tests:
Short term
You opened this page sometime before now.
This page was last modified sometime before now (your browser might not support document.lastModified for local resources).
Long term
Jett was born bleh [from Z]
Jett was born bleh [from -0500]
Logan was born bleh [from Z]
Logan was born bleh [from -0400]
Ryan was born bleh [from Z]
Ryan was born bleh [from -0500]
Other formats
Date only: (you shouldn't see this).
Errors
Bad (letters): (this should be displayed).
Bad (numbers): (this should be displayed).
Bad (blank): (this should be displayed).
Bad (missing): (this should be displayed).
Parsing unit tests:
Ryan was born...
[from Z]
[from -00:00]
[from -05:00]
[from -0500]
[from +09:00]
[from +0900]
[from blank TZ]
Wording unit tests:
[-120 min]
[-60 sec]
[-30 sec]
[-1 sec]
[0 sec]
[30 sec]
[45 sec]
[90 sec]
[120 sec]
[45 min]
[89 min]
[90 min]
[120 min]
[1380 min]
[25 hours]
[48 hours]
[696 hours]
[30 days]
[190 days]
[366 days]
[1095 days]
Helper unit tests:
You opened this page [won't refresh]
You opened this page [won't refresh]
You opened this page [won't refresh]


When following is too much, but unfollowing is too harsh
Enter a twitter account or hashtag above that you want to put into the penalty box. While the entry is penalty bloxed, any matching tweet will (hopefully) be removed from your activity stream.
Don't worry, you are still following any penalty bloxed accounts. For hashtags don't forget to include the "#" at the beginning! You can unbox any entries whenever you'd like. Or never.
Your current penalty box:


An error append during the export
Current profile
Default Item Style
Bullet Character :
Bullet Character :
Options
Find and Replace
Find :
Replace :
| # | Find | Replace | Regex | Match Case | Modify | Delete |
|---|
Profiles List
Profile Name