Another way to put it is that the website makes sure the the user experiences the website's content, design, and overall experience regardless of the device size they are using to read the site. Images too big for the screen? Resize them! Heading taking too much real estate on the screen? Resize that too!
Responsiveness is important, as we want the user to experience our website and its content no matter the device they are using to reach our website. Rather than maintaining several source code repositories that are bespoke on a per-screen-type-basis, a well-built responsive website is one that is coded to render to any screen resolution from the one source code repository.
A mobile-first design is a website that has its default rendering behaviour as that on the smallest screen from the device range: mobile phones. Good design and software delivery assumes that the user has limited screen size, and then scales up to larger screens.
Mobile-first design is important for a number of reason:Frameworks are code bases which have been built by other developers. They are built to demonstrate best-practice to other developers through the principle of, Show, don't tell.
The pros of frameworks are:Wireframes are content-agnostic ways of designing the structure of your website. IT enables web developers and designers alike to collaborate, assess feasibility, and agree on the execution of the structure of a website without writing a single line of code. This lets everyone involved in the website know what to expect in general from the structure of the site: no assumptions, no surprises.
Wireframes also help developers organise their code around their website structure, and predict how many columns and rows are going to be needed for their grid-based design.
I used these wireframes to design my website:
I struggled to understand the grid design system until I went through the exercise of wireframing and using the Skeleton CSS.
However, there are bits and pieces I've yet to implement properly, including:
I have parked these things as things to implement and fix in the future: perhaps with a wee bit of help from my friends!
I am even going to keep a list of design goals in my OneNote:


IRON WILL A film review by Michael John Legeros Copyright 1994 Michael John Legeros
Directed by Charles Haid (the TV actor from "Hill Street Blues") Written by John Michael Hayes and Djordje Milicevia and Jeff Archer Starring Mackenzie Astin, Kevin Spacey, August Schellenberg, and David Odgen Stiers. MPAA Rating: "PG" Running Time: Approx. 100 minutes
--
Corn doesn't come any fresher than Disney's IRON WILL, an old-fashioned crowd-pleaser about a boy and his dogs and a 522-mile winter race. Perfect for kids and not-bad for adults, IRON WILL is a pleasing, hokey alternative to the dreck that passes as current "family fare."
Inspired by a true story, Mackenzie Astin plays "Iron" Will Stoneman, a spirited South Dakota lad who signs up for a marathon dog-sled race in 1917. The first to reach St. Paul, Minnesota from Winnipeg, Canada, wins $10,000--a sum that will go far to help the strapped Stonemans. They're in straits since Dad died during--what else?--a dog-sled drive.
So, filled with both grim determination and his mother's fruitcake (don't ask), Will rides for his father, his family, and his (college) future....
IRON WILL is, simply, the kind of movie they don't make anymore.
The story is simple and straight-forward: it's about a race. And when the race ends, the film ends--a rather jarring effect in this era of padded running-times. Other than the drama, nothing else in IRON WILL is inflated. It's all scene after scene of Will racing onward to face increasingly difficult odds.
(Oddly, one the film's weakest moments occurs when the filmmaker's take something OUT. The sole incongruity is a 90's-style training montage that makes no narrative sense other than to condense a few extra minutes of screen time.)
Corny as it comes, there's alot to like about IRON WILL. The cast goes down easy AND manages to keep a straight-face when delivering drippy dialogue like "Don't let your fears stand in the way of your dreams, son." The action is great, the dogs look good, and, in the wake of recent wicked weather, the locales looks especially uninviting.
And the audacity that the director exhibits in manipulating his audience is almost worth the price of admission. From the early death of Will's dad to a championship cloying finale, Haid pulls every string he can lay his hands on. It's hilarious.
IRON WILL is also good will. For audiences who are weary from endless product tie-ins and strong social commentary, the film's near-lack of cynicism is a welcome relief.
Bottom line: The inflated drama of IRON WILL would sink any other film like an ironclad. But, coupled to the "real life" story of 1917 dog-sled race, it works to fine, hokey effect. Perfect for kids. Not bad for adults.
Grade: B
-- Michael J. Legeros SAS Institute Inc<EMAIL_ADDRESS>919-677-8000 x6735
.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Thank you for improving the lives of disadvantaged animals everywhere. Please complete payment here - payment details will expire in 5 minutes.


| 011:020 Khan | : |
By no means will they escape (from Allah's Torment) on earth, nor have they protectors besides Allah! Their torment will be doubled! They could not bear to hear (the preachers of the truth) and they used not to see (the truth because of their severe aversin, inspite of the fact that they had the sense of hearing and sight). |
| 011:020 Maulana | : |
These will not escape in the earth, nor have they guardians besides Allah. The chastisement will be doubled for them. They could not bear to hear, and they did not see. |
| 011:020 Pickthal | : |
Such will not escape in the earth, nor have they any protecting friends beside Allah. For them the torment will be double. They could not bear to hear, and they used not to see. |
| 011:020 Rashad | : |
These will never escape, nor will they find any lords or masters to help them against GOD. Retribution will be doubled for them. They have failed to hear, and they have failed to see. |
| 011:020 Sarwar | : |
Such people will never weaken God's (power) on earth nor will they find any guardian besides God. Their punishment will be doubled and they will not be able to hear or see. |
| 011:020 Shakir | : |
These shall not escape in the earth, nor shall they have any guardians besides Allah; the punishment shall be doubled for them, they could not bear to hear and they did not see. |
| 011:020 Sherali | : |
Such can never frustrate God's plan in the land nor have they any friends besides ALLAH. Punishment will be doubled for them. They can neither hear, nor can they see. |
| 011:020 Yusufali | : |
They will in no wise frustrate (His design) on earth, nor have they protectors besides Allah! Their penalty will be doubled! They lost the power to hear, and they did not see! |
Concepts/Themes Covered: أركان الإسلام > التوحيد > الكافرون > افتراؤهم على الله وتكذيبهم ومجادلتهم بآيات الله Pillars of Islam> Islamic> The Disbelievers> Their Fabrication Against Allah, their Denial and Argumentation Against Allah's Signs أركان الإسلام > التوحيد > الكافرون > الجاحدون من الكفار Pillars of Islam> Islamic> The Disbelievers> The Deniers of the Disbelievers أركان الإسلام > التوحيد > الكافرون > صدهم عن سبيل الله Pillars of Islam> Islamic> The Disbelievers> Their Refrain Against Allah's Way
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


--- layout: post status: publish published: true title: Testing Pyramid - A Case Study author: display_name: Fabio Pereira login: admin email<EMAIL_ADDRESS>url: http://fabiopereira.me author_login: admin author_email<EMAIL_ADDRESS>author_url: http://fabiopereira.me wordpress_id: 487 wordpress_url: http://fabiopereira.me/blog/?p=487 date: '2012-03-05 23:28:18 +0' date_gmt: '2012-03-06 06:28:18 +0' categories: - Technical tags: - TDD - BDD comments: - id: 24719 author: Jason Yip author_email<EMAIL_ADDRESS>author_url: http://jchyip.blogspot.com date: '2012-03-06 01:13:22 +0' date_gmt: '2012-03-06 08:13:22 +0' content: Are you maintaining this as a visual control? - id: 24722 author: Romain author_email<EMAIL_ADDRESS>author_url: http://blog.cuttleworks.com date: '2012-03-06 01:47:44 +0' date_gmt: '2012-03-06 08:47:44 +0' content: '@Jason: on this project we only updated the pyramid manually a couple of times, but it''s a great idea for the next one. The diagram seems to carry the message pretty well so I can see the benefit in keeping it up to date - even maybe generating it from our CI server.' - id: 24798 author: Simon (@simon) author_email<EMAIL_ADDRESS>author_url: http://myob.com date: '2012-03-07 19:36:58 +0' date_gmt: '2012-03-08 02:36:58 +0' content: Love it. Do you have stats that could overlay coverage on each layer? - id: 24805 author: Fabio Pereira author_email<EMAIL_ADDRESS>author_url: http://fabiopereira.me date: '2012-03-08 02:24:13 +0' date_gmt: '2012-03-08 09:24:13 +0' content: '@simon, we do keep coverage on Sonar, but not separately per layer, that''s a good idea tough.' - id: 30944 author: Nick Carroll author_email<EMAIL_ADDRESS>author_url: http://nickcarroll.me date: '2012-06-11 20:36:43 +1000' date_gmt: '2012-06-12 03:36:43 +1000' content: Why does it take 13 minutes to run 12 functional tests? - id: 30948 author: Fabio Pereira author_email<EMAIL_ADDRESS>author_url: http://fabiopereira.me date: '2012-06-11 22:33:25 +1000' date_gmt: '2012-06-12 05:33:25 +1000' content: @Nick Carroll The functional tests through the UI are very high level "User Journeys", so they are very full scenarios that take longer than one usual test. That's why they take longer... - id: 43045 author: John author_email<EMAIL_ADDRESS>author_url: '' date: '2012-11-19 14:30:23 +0' date_gmt: '2012-11-19 21:30:23 +0' content: I think the image could be a bit deceiving. Is there a possibility that the 12 UI tests could be equivalent to 5000 java unit tests? Normally UI test could touch on many areas of the product. I agree that it will be cheaper and less brittle but not sure about the above concern. - id: 58665 author: www.artoflatraille.com author_email<EMAIL_ADDRESS>author_url: http://www.artoflatraille.com/images/paintings/tsjqyj.asp date: '2013-06-07 08:21:32 +1000' date_gmt: '2013-06-07 15:21:32 +1000' content: Hello, just wanted to mention, I enjoyed this article. It was helpful. Keep on posting! - id: 63523 author: Fun run multiplayer race hack author_email<EMAIL_ADDRESS>author_url: https://www.youtube.com/watch?v=OWilEgwGrLw date: '2013-08-10 11:32:39 +1000' date_gmt: '2013-08-10 18:32:39 +1000' content: "Woah! I'm really loving the template/theme of this site. It's simple, yet effective.\r\nA lot of times it's very hard to get that \"perfect balance\" between user friendliness and appearance. I must say you've done a awesome job with this.\r\nAlso, the blog loads extremely fast for me on Internet explorer.\r\nExceptional Blog!" - id: 65921 author: IMVU VIP Hack author_email<EMAIL_ADDRESS>author_url: http://www.youtube.com/watch?v=V_XGQtljYuo date: '2013-09-05 19:12:37 +1000' date_gmt: '2013-09-06 02:12:37 +1000' content: "Good information. Lucky me I discovered your site by accident (stumbleupon).\r\n\r\nI've saved as a favorite for later!" - id: 96278 author: Smurfs Village Hack Download author_email<EMAIL_ADDRESS>author_url: http://www.wellsphere.com/biking-article/smurfs-village-hack-cheats/2045143 date: '2014-01-23 13:15:39 +0' date_gmt: '2014-01-23 20:15:39 +0' content: "I all the time emailed this blog post page to all my associates, because if like to read it after \r\nthat my friends will too." - id: 99909 author: pinterest.com author_email<EMAIL_ADDRESS>author_url: http://www.pinterest.com/pin/531635930984325375/ date: '2014-02-09 04:20:13 +0' date_gmt: '2014-02-09 11:20:13 +0' content: "If some one needs to be updated with most recent technologies \r\ntherefore he must be go to see this web page and be up to date all the time." - id: 100413 author: Floy author_email<EMAIL_ADDRESS>author_url: http://www.pinterest.com/pin/531635930984342530/ date: '2014-02-11 01:00:37 +0' date_gmt: '2014-02-11 08:00:37 +0' content: "It's really very complex in this full of activity life to listen news on TV, thus I \r\nonly use internet for that reason, and obtain the latest news." ---
Test automation is prevalent in the software development community. Practices like TDD and BDD are widespread and applied almost unquestionably. However, several organisations have struggled in attempting to scale automated test suites, which very often become slow, brittle, non-deterministic, unreliable and difficult to maintain.
One common issue reported by many teams and that I have also experienced many times is the inverted testing pyramid.
A year ago I joined a project that was going in that direction. I could see us making the same mistakes again. If we had kept going we would have ended up with the slow and hard to maintain, melting ice-cream cone. However, this time we tried a different approach. Our test strategy was heavily based on the concept of Shallow Depth of Tests, which means testing the code as close as possible to where it is written using preferably either unit or integration tests. We only automated high level test journeys at the UI level.
Now, one year later, we have a stable and fast build, which gives us an extremely high level of confidence.
Here is our project's testing pyramid, of which we are very proud:
Some observations:
Feel free to share your testing pyramid as well. And always keep an eye on it… It can make a big difference to your project.


Generate Data¶
This module contains all the tools to compute the features and targets and to map the features onto a grid of points. The main class used for the data generation is deeprank.generate.DataGenerator
. Through this class you can specify the molecules you want to consider, the features and the targets that need to be computed and the way to map the features on the grid. The data is stored in a single HDF5 file. In this file, each conformation has its own group that contains all the information related to the conformation. This includes, the pdb data, the value of the feature (in human readable format and xyz-val format), the value of the targe values, the grid points and the mapped features on the grid.
At the moment a number of features are already implemented. This inculde:
- Atomic densities
- Coulomb & vd Waals interactions
- Atomic charges
- PSSM data
- Information content
- Burried surface area
- Contact Residue Densities
More features can be easily implemented and integrated in the data generation workflow. You can see example here. The calculation of a number of target values have also been implemented:
- i-RMSD
- l-RMSD
- FNAT
- DockQ
- binary class
- Haddock score
There as well new targets can be implemented and integrated to the workflow.
Normalization of the data can be time consuming as the dataset becomes large. As an attempt to alleviate this problem, the class deeprank.generate.NormalizeData
has been created. This class directly compute and store the standard deviation and mean value of each feature within a given hdf5 file.
Example:
>>> from deeprank.generate import *
>>> pdb_source = ['./1AK4/decoys/']
>>> pdb_native = ['./1AK4/native/']
>>> h5file = '1ak4.hdf5'
>>>
>>> #init the data assembler
>>> database = DataGenerator(pdb_source=pdb_source,pdb_native=pdb_native,data_augmentation=None,
>>> compute_targets = ['deeprank.targets.dockQ'],
>>> compute_features = ['deeprank.features.AtomicFeature',
>>> 'deeprank.features.NaivePSSM',
>>> 'deeprank.features.PSSM_IC',
>>> 'deeprank.features.BSA'],
>>> hdf5=h5file)
>>>
>>> #create new files
>>> database.create_database(prog_bar=True)
>>>
>>> # map the features
>>> grid_info = {
>>> 'number_of_points' : [30,30,30],
>>> 'resolution' : [1.,1.,1.],
>>> 'atomic_densities' : {'CA':3.5,'N':3.5,'O':3.5,'C':3.5},
>>> }
>>> database.map_features(grid_info,try_sparse=True,time=False,prog_bar=True)
>>>
>>> # add a new target
>>> database.add_target(prog_bar=True)
>>> print(' '*25 + '--> Done in %f s.' %(time()-t0))
>>>
>>> # get the normalization
>>> norm = NormalizeData(h5file)
>>> norm.get()
The details of the different submodule are listed here. The only module that really needs to be used is DataGenerator
and NormalizeData
. The GridTools
class should not be directly used by inexperienced users.
DataGenerator¶
-
deeprank.generate.DataGenerator.
printif
(string, cond)¶
-
class
deeprank.generate.DataGenerator.
DataGenerator
(pdb_select=None, pdb_source=None, pdb_native=None, compute_targets=None, compute_features=None, data_augmentation=None, hdf5='database.h5', logger=None, debug=True)[source]¶ Bases:
object
Generates the data (features/targets/maps) required for deeprank.
Parameters: - pdb_select (list(str), optional) – List of individual conformation for mapping
- pdb_source (list(str), optional) – List of folders where to find the pdbs for mapping
- pdb_native (list(str), optional) – List of folders where to find the native comformations
- compute_targets (list(str), optional) – List of python files computing the features
- compute_features (list(str), optional) – List of python files computing the features
- data_augmentation (int, optional) – Number of rotation performed one each complex
- hdf5 (str, optional) – name of the hdf5 file where the data is saved
- logger (None, optional) – logger file
- debug (bool, optional) – print debuf info
Raises: NotADirectoryError
– if the source are not foundExample :
>>> from deeprank.generate import * >>> # sources to assemble the data base >>> pdb_source = ['./1AK4/decoys/'] >>> pdb_native = ['./1AK4/native/'] >>> h5file = '1ak4.hdf5' >>> >>> #init the data assembler >>> database = DataGenerator(pdb_source=pdb_source,pdb_native=pdb_native,data_augmentation=None, >>> compute_targets = ['deeprank.targets.dockQ'], >>> compute_features = ['deeprank.features.AtomicFeature', >>> 'deeprank.features.NaivePSSM', >>> 'deeprank.features.PSSM_IC', >>> 'deeprank.features.BSA'], >>> hdf5=h5file)
-
create_database
(verbose=False, remove_error=True, prog_bar=False)[source]¶ Create the hdf5 file architecture and compute the features/targets.
Parameters: Raises: ValueError
– If creation of the group errored.Example :
>>> # sources to assemble the data base >>> pdb_source = ['./1AK4/decoys/'] >>> pdb_native = ['./1AK4/native/'] >>> h5file = '1ak4.hdf5' >>> >>> #init the data assembler >>> database = DataGenerator(pdb_source=pdb_source,pdb_native=pdb_native,data_augmentation=None, >>> compute_targets = ['deeprank.targets.dockQ'], >>> compute_features = ['deeprank.features.AtomicFeature', >>> 'deeprank.features.NaivePSSM', >>> 'deeprank.features.PSSM_IC', >>> 'deeprank.features.BSA'], >>> hdf5=h5file) >>> >>> #create new files >>> database.create_database(prog_bar=True) >>>
-
add_feature
(prog_bar=True)[source]¶ Add a feature to an existing hdf5 file
Parameters: prog_bar (bool, optional) – use tqdm Example:
>>> h5file = '1ak4.hdf5' >>> >>> #init the data assembler >>> database = DataGenerator(compute_features = ['deeprank.features.ResidueDensity'], >>> hdf5=h5file) >>> >>> database.add_feature(prog_bar=True)
-
add_unique_target
(targdict)[source]¶ Add identical targets for all the complexes in the datafile.
This is usefull if you want to add the binary class of all the complexes created from decoys or natives
Parameters: targdict (dict) – Example : {‘DOCKQ’:1.0} >>> database = DataGenerator(hdf5='1ak4.hdf5') >>> database.add_unique_target({'DOCKQ':1.0})
-
add_target
(prog_bar=False)[source]¶ Add a target to an existing hdf5 file
Parameters: prog_bar (bool, optional) – Use tqdm Example :
>>> h5file = '1ak4.hdf5' >>> >>> #init the data assembler >>> database = DataGenerator(compute_targets =['deeprank.targets.binary_class'], >>> hdf5=h5file) >>> >>> database.add_target(prog_bar=True)
-
map_features
(grid_info, cuda=False, gpu_block=None, cuda_kernel='/kernel_map.c', cuda_func_name='gaussian', try_sparse=True, reset=False, use_tmpdir=False, time=False, prog_bar=True, grid_prog_bar=False, remove_error=True)[source]¶ Map the feature on a grid of points centered at the interface
Parameters: - grid_info (dict) – Informaton for the grid see deeprank.generate.GridTool.py for details
- cuda (bool, optional) – Use CUDA
- gpu_block (None, optional) – GPU block size to be used
- cuda_kernel (str, optional) – filename containing CUDA kernel
- cuda_func_name (str, optional) – The name of the function in the kernel
- try_sparse (bool, optional) – Try to save the grids as sparse format
- reset (bool, optional) – remove grids if some are already present
- use_tmpdir (bool, optional) – use a scratch directory
- time (bool, optional) – time the mapping process
- prog_bar (bool, optional) – use tqdm for each molecule
- grid_prog_bar (bool, optional) – use tqdm for each grid
- remove_error (bool, optional) – remove the data that errored
Example :
>>> #init the data assembler >>> database = DataGenerator(hdf5='1ak4.hdf5') >>> >>> # map the features >>> grid_info = { >>> 'number_of_points' : [30,30,30], >>> 'resolution' : [1.,1.,1.], >>> 'atomic_densities' : {'CA':3.5,'N':3.5,'O':3.5,'C':3.5}, >>> } >>> >>> database.map_features(grid_info,try_sparse=True,time=False,prog_bar=True)
NormalizeData¶
-
class
deeprank.generate.NormalizeData.
NormalizeData
(fname, shape=None)[source]¶ Compute the normalization factor for the features and targets of a given HDF5 file.
The normalization of the features is done through the NormParam class that assumes gaussian distribution. Hence the Normalized data should be normally distributed with a 0 mean value and 1 standard deviation. The normalization of the targets is done vian a min/max normalization. As a result the normalized targets should all lie between 0 and 1. By default the output file containing the normalization dictionary is called <hdf5name>_norm.pckl
Parameters: Example:
>>> norm = NormalizeData('1ak5.hdf5') >>> norm.get()
-
class
deeprank.generate.NormalizeData.
NormParam
(std=0, mean=0, var=0, sqmean=0)[source]¶ Compute gaussian normalization for a given feature.
This class allows to extract the standard deviation, mean value, variance and square root of the mean value of a mapped feature stored in the hdf5 file. As the entire data set is too large to fit in memory, the standard deviation of a given feature is calculated from the std of all the individual grids. This is done following: https://stats.stackexchange.com/questions/25848/how-to-sum-a-standard-deviation:
\[\sigma_{tot}=\sqrt{\frac{1}{N}\sum_i \sigma_i^2+\frac{1}{N}\sum_i\mu_i^2-(\frac{1}{N}\sum_i\mu_i)^2}\]Parameters:
GridTools¶
-
deeprank.generate.GridTools.
printif
(string, cond)¶
-
class
deeprank.generate.GridTools.
GridTools
(molgrp, number_of_points=30, resolution=1.0, atomic_densities=None, atomic_densities_mode='ind', feature=None, feature_mode='ind', contact_distance=8.5, hdf5_file=None, cuda=False, gpu_block=None, cuda_func=None, cuda_atomic=None, prog_bar=False, time=False, try_sparse=True, logger=None)[source]¶ Map the feature of a complex on the grid.
Parameters: - molgrp (str) – name of the group of the molecule in the HDF5 file
- number_of_points (int, optional) – number of points we want in each direction of the grid
- resolution (float, optional) – distance (in Angs) between two points
- atomic_densities (dict, optional) – dictionary of atom types cand their vdw radius exemple {‘CA’:3.5, ‘CB’:3.0}
- atomic_densities_mode (str, optional) – Mode for mapping (deprecated must be ‘ind’)
- feature (None, optional) – Name of the features to be mapped. By default all the features present in hdf5_file[‘<molgrp>/features/] will be mapped
- feature_mode (str, optional) – Mode for mapping (deprecated must be ‘ind’)
- contact_distance (float, optional) – the dmaximum distance between two contact atoms default 8.5 A
- hdf5_file (str, optional) – the file handler of th HDF5 file where to store the grids
- cuda (bool, optional) – Use CUDA or not
- gpu_block (tuple(int), optional) – GPU block size to use
- cuda_func (None, optional) – Name of the CUDA function to be used for the mapping of the features. Must be present in kernel_cuda.c
- cuda_atomic (None, optional) – Name of the CUDA function to be used for the mapping of the atomic densities. Must be present in kernel_cuda.c
- prog_bar (bool, optional) – print progression bar for individual grid (default False)
- time (bool, optional) – print timimg statistic for individual grid (default False)
- try_sparse (bool, optional) – Try to store the matrix in sparse format (default True)
- logger (None, optional) – logger
-
map_atomic_densities
(only_contact=True)[source]¶ Map the atomic densities to the grid
Parameters: only_contact (bool, optional) – Map only the contact atoms Raises: ImportError
– Description
-
densgrid
(center, vdw_radius)[source]¶ Function to map individual atomic density on the grid.
The formula is equation (1) of the Koes paper Protein-Ligand Scoring with Convolutional NN Arxiv:1612.02751v1
Parameters: Returns: np.array (mapped density)
Return type: TYPE
-
map_features
(featlist, transform=None)[source]¶ Map individual feature to the grid.
For residue based feature the feature file must be of the format chainID residue_name(3-letter) residue_number [values]
For atom based feature it must be chainID residue_name(3-letter) residue_number atome_name [values]
Parameters: Returns: Mapped features
Return type: np.array
Raises: ImportError
– DescriptionValueError
– Description
-
featgrid
(center, value, type_='fast_gaussian')[source]¶ Map an individual feature (atomic or residue) on the grid
Parameters: Returns: Mapped feature
Return type: np.array
Raises: ValueError
– Description


DOCUMENT VERSION 20181023-2
Pre-conditions for test cases:
Client and Server have established a DTLS connection
In most test cases, the pre-test conditions are that a DTLS connection has been established. There are four possible combinations (Client has certificate, no-certificate, Server has certificate, no certificate), but the cases where the Client has no certificate turn out to be negative testing. The case where the Server has no certificate is nonsense, so only one test case remains.
Prerequiste: device comes from manufacturing, has an IDevID that can be validated by the server.
EST-COAP interoperability Test Description |
|||
|
Configuration: |
CoAP_CFG_est-coaps |
Configuration conditions: |
Client and Server each have a certificate The Client serves as constrained node, pledge, to be installed in the network The Server serves as EST server that supports enrolment of certificates. The IdevID of the Client serves as base for the generation of the client certificate The client certificate is stored in the server trust anchor before The client certificate already signed by CA that is trusted on the server, but does not need to be the same CA as being enrolled into. (self-signed certificate can be tested, but is a negative test case) |
|---|
EST-COAP interoperability Test Description |
|||
|
Identifier: |
TD_ACE_est-dtls_1 |
||
|---|---|---|---|
|
Objective: |
Perform a DTLS connection setup between Client and Server Certificate |
||
|
Configuration: |
CoAP_CFG_est-coaps |
||
|
References: |
??TBD |
||
|
Pre-test conditions: |
Validate connectivity with ping/ping6 Server has a certificate configured as a DTLS Server Certificate Client has a certificate configured as a DTLS Client Certificate |
||
|
Test Sequence: |
Step |
Type |
Description |
|
1 |
Stimulus |
Client is requested to send a GET request with: Type = 0 (CON) Code = 1 (GET) |
|
|
2 |
Check |
The request sent by the client contains: DTLS Hello, followed by DTLS negotiation of ciphers DTLS version 1.0, negotiated is 1.2 or 1.3 Type=0 and Code=1 Uri-Path option "/.well-known/core" Token = anything Max-Age = 1 Server accepts Client Certificate, validates it. |
|
|
3 |
Check |
Server sends response containing: Code = 2.05 (Content) Token = XX, set by client Content-format Payload with certificate Client validated certificate is in trust store. |
|
|
4 |
Verify |
Client receives a resource discovery payload |
EST-COAP interoperability Test Description |
|||
|
Identifier: |
TD_ACE_est-coaps_01 |
||
|---|---|---|---|
|
Objective: |
Perform cacerts retrieval without block ("crts") |
||
|
Configuration: |
CoAP_CFG_est-coaps |
||
|
References: |
[est-coaps] 4, A.1 |
||
|
Pre-test conditions: |
|||
|
Test Sequence: |
Step |
Type |
Description |
|
1 |
Stimulus |
Client is requested to send a GET request with: Type = 0 (CON) Code = 1 (GET) |
|
|
2 |
Check |
The request sent by the client contains: Type=0 and Code=1 Uri-Path option "est" and "crts" (aka /est/crts) Token = XX Max-Age = 1 |
|
|
3 |
Check |
Server sends response containing: Code = 2.05 (Content) Token = XX, set by client Content-format option 281 Payload with certificate |
|
|
4 |
Verify |
Client displays the correct certificate contents |
EST-COAP interoperability Test Description |
|||
|
Identifier: |
TD_ACE_est-coaps_02 |
||
|---|---|---|---|
|
Objective: |
Perform cacerts retrieval with block2 (crts) |
||
|
Configuration: |
CoAP_CFG_est-coaps |
||
|
References: |
[est-coaps] 4, A.1 |
||
|
Pre-test conditions: |
Client and Server have established a DTLS connection Server holds has a (list?) of trust anchor(s), but may take more than one datagram so that block1 is used. SZX = 2 (64 bytes) |
||
|
Test Sequence: |
Step |
Type |
Description |
|
1 |
Stimulus |
Client is requested to send a GET request with: Type = 0 (CON) Code = 1 (GET) |
|
|
2 |
Check |
The request sent by the client contains: Type=0 and Code=1 Uri-Path option "est and crts" Token = XX, set by client Max-Age = 1 |
|
|
3 |
Check |
Server sends response containing: Code = 2.05 (Content) Token = XX block2 option with value of SZX determined by server Content-format option 281 Payload with certificate |
|
|
4 |
Verify |
Client displays the correct certificate contents |
|
Interoperability Test Description |
|||
|---|---|---|---|
|
Identifier: |
TD_ACE_est-coaps_03 |
||
|
Objective: |
Perform simple enrolment transaction without delay ("sen") |
||
|
Configuration: |
CoAP_CFG_est-coaps |
||
|
References: |
[est-coaps] 4, A.3 |
||
|
Pre-test conditions: |
Client and Server have established a DTLS connection. Client holds a distinguished name, a public key, and an optional set of attributes appropriately signed with private key. Server willing to generate a corresponding certificate to return to client |
||
|
Test Sequence: |
Step |
Type |
Description |
|
1 |
Stimulus |
Client is requested to send a GET request with: Type = 0 (CON) Code = 1 (GET) |
|
|
2 |
Check |
The request sent by the client contains: Type=0 and Code=1 Uri-Path option "est and sen" Token = XX , set by client Content-format option 286 Max-Age = 1 payload is certification request of RFC 2986 |
|
|
3 |
Check |
Server sends response containing: Code = 2.01 (Created) Token = XX Content-format option 281 Payload with certificate |
|
|
4 |
Verify |
Client displays the correct certificate contents |
EST-COAP interoperability Test Description |
|||
|
Identifier: |
TD_ACE_est-coaps_04 |
||
|---|---|---|---|
|
Objective: |
Perform enrolment ("sen") transaction with long delay |
||
|
Configuration: |
CoAP_CFG_est-coaps |
||
|
References: |
[est-coaps] 4, A.3 |
||
|
Pre-test conditions: |
Client and Server have established a DTLS connection. Client holds a distinguished name, a public key, and an optional set of attributes appropriately signed with private key. Server holds a corresponding certificate to return to client |
||
|
Test Sequence: |
Step |
Type |
Description |
|
1 |
Stimulus |
Client is requested to send a GET request with: Type = 0 (CON) Code = 1 (GET) |
|
|
|
2 |
Check |
The request sent by the client contains: Type=0 and Code=1 Uri-Path option "est and sen" Token = XX, set by client Content-format option 286 Max-Age = 1 payload is certification request of RFC 2986 block1 option with SZX=2 chosen by client (64 bytes) |
|
|
3 |
Check |
Server sends response containing: Code = 5.03 (Server unavailable) Token = XX Max-Age = 120 empty Payload |
|
|
4 |
Check |
After Max-Age time units(2 minutes), the request sent by the client contains: Type=0 and Code=1 Uri-Path option "est and sen" Token = YY, set by client Content-format option 286 Max-Age = 1 payload is certification request of RFC 2986 block1 option with SZX chosen by client |
|
|
5 |
Check |
Server sends response containing: Code = 2.04 (Changed) Token = YY Content-format option 281 Block2 option with SZX filled in by server Payload with requested certificate |
|
|
6 |
Verify |
Client displays the correct certificate contents |
EST-COAP interoperability Test Description |
|||
|
Identifier: |
TD_ACE_est-coaps_05 |
||
|---|---|---|---|
|
Objective: |
Perform simple re-enrol ("sren") transaction without delay |
||
|
Configuration: |
CoAP_CFG_est-coaps |
||
|
References: |
[est-coaps] 4, A.3 |
||
|
Pre-test conditions: |
|||
|
Test Sequence: |
Step |
Type |
Description |
|
1 |
Stimulus |
Client is requested to send a GET request with: Type = 0 (CON) Code = 1 (GET) |
|
|
2 |
Check |
The request sent by the client contains: Type=0 and Code=1 Uri-Path option "est and sren" Token = XX, set by client Content-format option 286 Max-Age = 1 payload is certification request of RFC 2986 |
|
|
3 |
Check |
Server sends response containing: Code = 2.01 (Created) Token = XX Content-format option 281 Payload with certificate |
|
|
4 |
Verify |
Client displays the correct certificate contents |
EST-COAP interoperability Test Description |
|||
|
Identifier: |
TD_ACE_est-coaps_06 |
||
|---|---|---|---|
|
Objective: |
Perform simple enrolment ("sren") transaction with long delay |
||
|
Configuration: |
CoAP_CFG_est-coaps |
||
|
References: |
[est-coaps] 4, A.3 |
||
|
Pre-test conditions: |
Client and Server have established a DTLS connection using previously enroled client certificate Client holds a distinguished name, a public key, and an optional set of attributes appropriately signed with private key. Server holds a corresponding certificate to return to client |
||
|
Test Sequence: |
Step |
Type |
Description |
|
1 |
Stimulus |
Client is requested to send a GET request with: Type = 0 (CON) Code = 1 (GET) |
|
|
2 |
Check |
The request sent by the client contains: Type=0 and Code=1 Uri-Path option "est and sren" Token = XX, set by client Content-format option 286 Max-Age = 1 payload is certification request of RFC 2986 block1 option with SZX=2 chosen by client (64 bytes) |
|
|
3 |
Check |
Server sends response containing: Code = 5.03 (Server unavailable) Token = XX Max-Age = 120 empty Payload |
|
|
4 |
Check |
After Max-Age time units The request sent by the client contains: Type=0 and Code=1 Uri-Path option "est and sren" Token = YY, set by client Content-format option 286 Max-Age = 1 payload is certification request of RFC 2986 block1 option with SZX chosen by client |
|
|
5 |
Check |
Server sends response containing: Code = 2.04 (Changed) Token = YY Content-format option 281 Block2 option with SZX filled in by server Payload with requested certificate |
|
|
6 |
Verify |
Client displays the correct certificate contents |
EST-COAP interoperability Test DescriptionOptional functionality |
|||
|---|---|---|---|
|
USE number 287 for content-format application/multipart-core |
|||
|
Identifier: |
TD_ACE_est-coaps_07 |
||
|
Objective: |
Perform server generated key ("skg") transaction without block |
||
|
Configuration: |
CoAP_CFG_est-coaps |
||
|
References: |
[est-coaps] 4, A.1 |
||
|
Pre-test conditions: |
Client and Server have established a DTLS connection. Server provides a random number generation service |
||
|
Test Sequence: |
Step |
Type |
Description |
|
1 |
Stimulus |
Client is requested to send a GET request with: Type = 0 (CON) Code = 1 (GET) |
|
|
2 |
Check |
The request sent by the client contains: Type=0 and Code=1 Uri-Path option "est and skg" Token = XX Content-format 286 Max-Age = 120 |
|
|
3 |
Check |
Server sends response containing: Code = 2.01 (Content) Token = XX Content-format option 287 Payload with preamble and key |
|
|
4 |
Verify |
Client displays the correct key value |
EST-COAP interoperability Test DescriptionOptional functionality |
|||
|---|---|---|---|
|
Identifier: |
TD_ACE_est-coaps_08 |
||
|
Objective: |
Perform CSR attribute ("att") transaction |
||
|
Configuration: |
CoAP_CFG_est-coaps |
||
|
References: |
[est-coaps] 4, A.1 |
||
|
Pre-test conditions: |
Client and Server have established a DTLS connection. Server has a list of desired attributes (including at least subjectAltName...? extension? CN= values, notAfter date) |
||
|
Test Sequence: |
Step |
Type |
Description |
|
1 |
Stimulus |
Client is requested to send a GET request with: Type = 0 (CON) Code = 1 (GET) |
|
|
2 |
Check |
The request sent by the client contains: Type=0 and Code=1 Uri-Path option "est and att" Token = XX, set by client Content-format 285 payload with attribute names |
|
|
3 |
Check |
Server sends response containing: Code = 2.05 (Content) Token = XX Content-format option 285 Payload with certificate attributes |
|
|
4 |
Verify |
Client displays the correct attribute values |
EST-COAP interoperability Test DescriptionOptional functionality |
|||
|---|---|---|---|
|
Identifier: |
TD_ACE_est-coaps_09 |
||
|
Objective: |
Discover EST server with coap multicast (can not be done over internet!) |
||
|
Configuration: |
CoAP_CFG_est-coaps |
||
|
References: |
[est-coaps] 5 |
||
|
Pre-test conditions: |
Server enabled its interface for MC address "All CoAP Nodes" address FF0X::FD |
||
|
Test Sequence: |
Step |
Type |
Description |
|
1 |
Stimulus |
Client is requested to send a MC GET request with: Type = 1 (NON) Code = 1 (GET) |
|
|
2 |
Check |
The request sent by the client contains: Type=1 and Code=1 Uri-Path option ".well-known and core" Token = XX, set by client URI-query=ace.est* empty payload |
|
|
3 |
Check |
Server sends response containing: Code = 2.05 (Content) Token = XX Content-format=40 Payload with est resources |
|
|
4 |
Verify |
Client displays at least ;rt="ace.est" possibly followed by list of sub resources |


{#
{{ note.tweetedDate | date:"'Tweeted on a 'EEEE' in 'MMMM"}}
{{note.tweetedDate | date: "'Tweeted on a' EEEE 'in' MMMM"}}


According to information from Heise, Google warned that they might disable Gmail in Germany as last fallback should the German government maintain its position in regards to a newly passed law on record-keeping and supervision of internet traffic. According to this law, email services here will be forced to maintain personally identifiable records attached to email accounts.
Lets see how it unfolds.


Man, 53, stabbed multiple times over theft of his cell phone in Oshawa
by Chris Herhalt, CP24.comA 26-year-old Ajax man has been charged with attempted murder after a male victim was stabbed numerous times outside an Oshawa convenience store last Saturday, in what investigators say started as a cell phone theft.
Durham Regional Police say they were called to the Smoke Ways convenience store on King Street East at 4:30 p.m. for a report of a disturbance inside.
Police said a male suspect inside the store “became enraged” and allegedly began knocking over store shelves.
He then went outside the store and got into a fight with a 53-year-old man.
In the confrontation, the suspect allegedly took the victim’s cell phone, which had fallen to the ground.
When the victim confronted the suspect to get his phone back, he was stabbed several times.
Police got to the scene and found the victim in a parking lot, he was rushed to a Toronto hospital trauma centre where he remains in serious but stable condition.
The suspect approached the front desk at the Durham Regional Police station in Oshawa approximately one hour later and turned himself in.
He was identified by police as Tyler Dupont.
He was charged with attempted murder, robbery, weapons dangerous and mischief.
Dupont was held in custody pending a bail hearing.
Anyone with information is asked to call Const. Wintle at 1-888-579-1520.


MBRA Cyclocross Series Race Number Five at FORT MISSOULA
Sunday October 31st - HALLOWEEN!!!!!!!
Start time: 11:00 (It will feel like noon because of the time change)
Registration begins at 10:00
Entry fee: $15
Please bring your MBRA numbers if you have them. This is an MBRA series, so
MBRA number requirements apply.
If you have any questions you can email me at<EMAIL_ADDRESS>DON'T FORGET THE TIME CHANGE ON SATURDAY NIGHT!!!!!!!!!!


#assign postgres="active">
We may want to use extensions like hstore
and pgcrypto
.
Note that when using ebean-test-config with docker it will automatically add those 2
extensions by default.
We can specify extensions that should be installed automatically via:
```yml ebean: test: platform: postgres #, h2, postgres, mysql, oracle, sqlserver ddlMode: dropCreate # none | dropCreate | create | migration | createOnly | migrationDropCreate dbName: myapp postgres: extensions: pgcrypto, hstore ```In terms of logging / debugged we can see the extensions added via:
```text 17:07:17.078 DEBUG io.ebean.docker.commands.Commands - create database extensions pgcrypto,hstore 17:07:17.078 DEBUG io.ebean.docker.commands.Commands - docker exec -i ut_postgres psql -U postgres -d test -c create extension if not exists pgcrypto 17:07:17.187 DEBUG io.ebean.docker.commands.Commands - docker exec -i ut_postgres psql -U postgres -d test -c create extension if not exists hstore ```
With Postgres it could be considered good practice to create our tables into a named schema (and not the public schema).
If we want to do this we have made this easy in Ebean version 11.18.2 where we can specify ebean.dbSchema
and this is then used for both DB migrations and create-all.sql.
It is advisable that the DB User matches the DB Schema. When this is done then there is no need to use
currentSchema
or modify the search path
. For example, if I want to use a schema called
myapp
it is advisable to have the DB user/role match and be myapp
.
Below is a test setup using the mdillon/postgis
docker container that has PostGIS extension installed.
This will automatically download and run the container making live a little easier. Note the use of the Postgis specfic driver and url.
```yml ebean: geometrySRID: 4674 # If we don't want the default geometrySRID of 4326 test: shutdown: none # stop | remove | none platform: postgis ddlMode: dropCreate # none | dropCreate | create | migration | createOnly | migrationDropCreate dbName: mygisapp ```
The above postgis
platform is equivalent to the setup below which uses:
7432
by default (so as not to clash with local or non-gis postgres)org.postgis.DriverWrapperLW
driver for binary encoded Geometry typespostgresql_lwgis
in the connection url to use the LW driver mdillon/postgis
docker image with Postgis installed


URL: {{subscribedresource.url}}
UUID: {{subscribedresource.uuid}}
Active: {{subscribedresource.active}}


Hello World
212
Vertical...
Top tile
...tiles
Bottom tile
Middle tile
With an image
Wide tile
Aligned with the right tile
Tall tile
With even more content


The Signature Library
Please sideload your add-in to see app body.
Let's add some signatures!
Signature Title:
Signature Message:
Delete last signature in list
Signature Dropdown List
Current Signatures:


@* * Copyright 2017 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import core.config.AppConfig @import agent.models.DateModel @import uk.gov.hmrc.play.views.html.helpers.form @import core.views.html.helpers._ @(subscriptionId: String, submissionDate: DateModel, postAction: Call, signOutAction: Call)(implicit request: Request[_], messages: Messages, appConfig: AppConfig) @core.views.html.templates.main_template(title = Messages("agent.confirmation.title"), bodyClasses = None, overrideSignOutCall = Some(signOutAction)) {
@Messages("agent.confirmation.banner.line_1")
@subscriptionId
@Messages("agent.confirmation.whatHappensNext.para1")
@Messages("agent.confirmation.whatHappensNext.para2")
@Messages("agent.confirmation.whatHappensNext.para3")
@Messages("agent.confirmation.giveUsFeedback.link") @Messages("agent.confirmation.giveUsFeedback.para1")


Standards set for the liquefied petroleum gas industry
The Government has established three standards for the liquefied petroleum gas industry.
They were developed by the Bureau of Standards Jamaica (BSJ) and the National Compliance and Regulatory Authority, agencies of the Ministry of Industry, Commerce, Agriculture, and Fisheries.
The standards address the inspection, retesting and use of transportable gas; the repair and rebuilding of welded steel cylinders for containing liquefied petroleum gases; and the transportation of gas containers.
Chief Technical Director in the Ministry, Monique Gibbs, has indicated that to ensure a safe and effective LPG industry for the domestic sector and the protection of consumers, it is imperative that the established regulations, codes and standards be enforced or additional programmes be established to improve the operations of filling plants.
Gibbs was speaking at the opening ceremony of the Awareness and Engagement Session for the LPG Monitoring Programme at the BSJ in St Andrew on Tuesday.
“Codes and standards must be in place to protect not only our consumers but also the reputation of the marketing companies and our distributors. Meeting standards in this industry are not optional. The adherence to standards will certainly make our companies, industries and our economies more competitive. The impact of standards is very real,” she said.
She added that the role of government is to promulgate and enforce laws and regulations focused on the protection of human, health and the environment while creating and enabling business environment.
The chief technical director noted further that the LPG sector is an important and vital source of energy for cooking purposes in the domestic sector of Jamaica.
She informed that nationally, approximately 86% of households utilise LPG for cooking with 92.8% of urban dwellers and 78.6% of households in the rural areas doing so.


[ all classes ]
[ core.components.factories ]
Coverage Summary for Class: StationFactory (core.components.factories)
| Class | Class, % | Method, % | Line, % |
|---|---|---|---|
| StationFactory | 0% (0/ 1) | 0% (0/ 5) | 0% (0/ 41) |
1 package core.components.factories;
2
3 import core.components.*;
4 import core.system.MyVelibSystem;
5
6 import java.awt.*;
7 import java.util.List;
8
9 /**
10 * The StationFactory class : This is the factory to create and add new station to a give system. It can add plus or standard stations.
11 * It is uses the simple factory design pattern
12 */
13 public class StationFactory {
14
15 /**
16 * This method creates a plus station and add it to a given system.
17 *
18 * @param system the system that will have the new station
19 * @param coordinate the coordinate of the station
20 * @param onService the onService boolean
21 * @param parkingSlots a list of parking slots
22 * @param money the initial money of the station
23 * @param numberOfDroppings the (initial) number of droppings
24 * @return the PlusStation instance
25 */
26 public static Station addPlusStation(MyVelibSystem system, Point coordinate, boolean onService, List<ParkingSlot> parkingSlots, double money, int numberOfDroppings) {
27 List<Station> stations = system.getStations();
28 for (Station station : stations) {
29 Point coordStation = station.getCoordinate();
30 if (coordinate.equals(coordStation)) {
31 // we cannot create a station that already exists
32 return null;
33 }
34 }
35 PlusStation station = new PlusStation(coordinate, onService, parkingSlots, money, numberOfDroppings);
36 stations.add(station);
37 system.setStations(stations);
38
39 return station;
40 }
41
42 /**
43 * This method creates a plus station and add it to a given system with fewer arguments. It can be simpler in some cases.
44 *
45 * @param system the system that will have the new station
46 * @param coordinate the coordinate of the station
47 * @param onService the onService boolean
48 * @param parkingSlots a list of parking slots
49 * @return the PlusStation instance
50 */
51 public static Station addPlusStation(MyVelibSystem system, Point coordinate, boolean onService, List<ParkingSlot> parkingSlots) {
52 List<Station> stations = system.getStations();
53 for (Station station : stations) {
54 Point coordStation = station.getCoordinate();
55 if (coordinate.equals(coordStation)) {
56 // we cannot create a station that already exists
57 return null;
58 }
59 }
60 PlusStation station = new PlusStation(coordinate, onService, parkingSlots);
61 stations.add(station);
62 system.setStations(stations);
63
64 return station;
65 }
66
67 /**
68 * This method creates a standard station and add it to a given system.
69 *
70 * @param system the system that will have the new station
71 * @param coordinate the coordinate of the station
72 * @param onService the onService boolean
73 * @param parkingSlots a list of parking slots
74 * @param money the initial money of the station
75 * @param numberOfDroppings the (initial) number of droppings
76 * @return the StandardStation instance
77 */
78 public static Station addStandardStation(MyVelibSystem system, Point coordinate, boolean onService, List<ParkingSlot> parkingSlots, double money, int numberOfDroppings) {
79 List<Station> stations = system.getStations();
80 for (Station station : stations) {
81 Point coordStation = station.getCoordinate();
82 if (coordinate.equals(coordStation)) {
83 // we cannot create a station that already exists
84 return null;
85 }
86 }
87 StandardStation station = new StandardStation(coordinate, onService, parkingSlots, money, numberOfDroppings);
88
89 stations.add(station);
90 system.setStations(stations);
91
92 return station;
93 }
94
95 /**
96 * This method creates a standard station and add it to a given system with fewer arguments. It can be simpler in some cases.
97 *
98 * @param system the system that will have the new station
99 * @param coordinate the coordinate of the station
100 * @param onService the onService boolean
101 * @param parkingSlots a list of parking slots
102 * @return the StandardStation instance
103 */
104 public static Station addStandardStation(MyVelibSystem system, Point coordinate, boolean onService, List<ParkingSlot> parkingSlots) {
105 List<Station> stations = system.getStations();
106 for (Station station : stations) {
107 Point coordStation = station.getCoordinate();
108 if (coordinate.equals(coordStation)) {
109 // we cannot create a station that already exists
110 return null;
111 }
112 }
113 StandardStation station = new StandardStation(coordinate, onService, parkingSlots);
114 stations.add(station);
115 system.setStations(stations);
116
117 return station;
118 }
119
120 }


Focused and enthusiastic developer with a keen interest in software development. By comprehensive exposure to the underlying concepts and applying them vividly to various projects, my love for these domains came into being. I am a passionate individual who thrives to build and apply algorithms to solve real-world industry problems.
1275 E University Dr
Unit 212
Tempe, AZ 85281
+1<PHONE_NUMBER>
B.Tech. in Computer Science


Want to Play a Game?!
There are three cards: a 5 of SPADES, a 9 of DIAMONDS, and a JOKER!
You want to find the JOKER because you'll find something AWESOME! :-)
The other two contain VERY BAD things! :-(
Pick a card. Any card...


|
|
Boost Sorting Algorithm LibraryHeader <boost/algorithm/sorting/float_sort.hpp> |
float_sort is a fast templated in-place hybrid radix/comparison algorithm much like integer_sort, but sorts IEEE floating-point numbers (positive, zero, NaN, and negative) into ascending order by casting them to integers. This works because positive IEEE floating-point numbers sort like integers with the same bits, and negative IEEE floating-point numbers sort in the reverse order of integers with the same bits. float_sort is roughly 2X as fast as std::sort. -0.0 vs. 0.0 and NaN are given definitive ordered positions by the radix-based portion of this algorithm, where comparison-based sorting does not guarantee their relative position. The included tests avoid creating NaN and -0.0 so that results match std::sort, which is not consistent in how it handles these numbers, as they compare as equal to numbers with different values.
float_sort checks the size of the data type and whether it is castable, picking an integer type to cast to, if a casting functor isn't provided by the user.
float_mem_cast casts IEEE floating-point numbers (positive, zero, NaN, and negative) into integers. This is an essential utility for creating a custom rightshift functor for float_sort, when one is needed. Only IEEE floating-point numbers of the same size as the integer type being cast to should be used in this specialized method call.
Windows/x86 Performance Graphs
template <class RandomAccessIter> inline void float_sort(RandomAccessIter first, RandomAccessIter last); template <class RandomAccessIter, class Right_shift, class Compare> inline void float_sort(RandomAccessIter first, RandomAccessIter last, Right_shift shift, Compare comp); template <class RandomAccessIter, class Right_shift> inline void float_sort(RandomAccessIter first, RandomAccessIter last, Right_shift shift);
This provides a general-case floating-point sorting algorithm with better worst-case and average-case performance than std::sort. Additionally, as float_sort casts floats to integers for the sorting process, it is much faster in situations where floating point comparisons are slow.
Why not convert floats to integers on x86, sort them, and then convert back?
Because it would require O(N) additional memory, wouldn't be appropriate on processors with more efficient floating-point comparison implementations, and in testing, was slower than float_sort on everything but denormalized numbers.
template<class Data_type, class Cast_type> inline Cast_type float_mem_cast(const Data_type & data);
Sorting with rightshift option
vector<float> vec; vec.push_back(1.0); vec.push_back(2.3); vec.push_back(1.3); float_sort(vec.begin(), vec.end()); //The sorted vector contains "1.0 1.3 2.3"
Key and Data:
struct data_type { float key; char data[16]; }; struct lessthan { inline bool operator()(const data_type &x, const data_type &y) const { return x.key < y.key; } }; struct rightshift { int operator()(const DATATYPE &x, const unsigned offset) const { return boost::float_mem_cast<DATATYPE, int>(x.key) >> offset; } }; vector<data_type> datavec; float_sort(datavec.begin(), datavec.end(), rightshift(), lessthan());
Float casting:
#define DATATYPE float std::vectorarray; struct rightshift { int operator()(const DATATYPE &x, const unsigned offset) const { return boost::float_mem_cast<DATATYPE, int>(x) >> offset; } }; float_sort(array.begin(), array.end(), rightshift());
Revised 04 December, 2006
Copyright © 2009 Steven Ross
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)


Event: [ ]
is clicked
is used on
is observed
is combined with
Conditions:
{{ state.name }}
Reactions:
Set state
to
Go to scene
Add
into inventory
Remove
out of inventory
Make
visible
Make
invisible
Make
interactive
Make
not interactive
Show dialog
Play sound


What you will learn
Welcome to the intersection of healthcare and technology. It's going to be a wild ride, so please hold on to your hats, and hang on!
- The Start Up Roller Coaster - Are you Ready For It?
- Should You Apply to an Accelerator
- VC Fundraising: Is It an Option at the Idea Stage?
- How to Keep Your Equity When Your Co-Founder Splits


Mykonos Biennale
Introduction
Biennale Statement
Art Program
Education and Internship Progam
Awards
Contact
Getting To Mykonos
2019 - Apathia
Home
Apathia
Statement
2017 - Trans Allegoria
Home
Program
Trans Allegoria
Statement
Treasure Hunt
A Night of Philosophy
School of Fine Arts
Video Graffiti
Dramatic Nights
Dance, Music & Performance
Team 2017
2015 - Antidote
Home
Antidote
Statement
Events
Archaeological Museum
Treasure Hunt
Antidotes
School of Fine Arts
Video Graffiti
Dramatic Nights
Kite Festival
Pigeage
Team 2015
Sponsors
2013 - Crisis and Paganism
Crises and Paganism
Statement
Events
Venues
Artists
Press
Team
Main Sponsors
x
2017 Trans Allegoria
Mykonos Biennale
Introduction
Biennale Statement
Art Program
Education and Internship Progam
Awards
Contact
Getting To Mykonos
2019 - Apathia
Home
Apathia
Statement
2017 - Trans Allegoria
Home
Program
Trans Allegoria
Statement
Treasure Hunt
A Night of Philosophy
School of Fine Arts
Video Graffiti
Dramatic Nights
Dance, Music & Performance
Team 2017
2015 - Antidote
Home
Antidote
Statement
Events
Archaeological Museum
Treasure Hunt
Antidotes
School of Fine Arts
Video Graffiti
Dramatic Nights
Kite Festival
Pigeage
Team 2015
Sponsors
2013 - Crisis and Paganism
Crises and Paganism
Statement
Events
Venues
Artists
Press
Team
Main Sponsors
2015-Antidote - Treasure Hunt
Lydia Venieri
Thordis Adalsteinsdottir
Lc Armstrong
Pedro Barbeito
Amanda Church
Ann Deleporte
Stephen Dean
Franklin Evans
Alexis Fidetzis
Barbara Friedman
Marcia Grostein
Glenn Goldberg
Panos Charalambus
Heide Hatry
Mary Hrbacek
Akikazu Iwanoto
Aristides Logothetis
Luis Luna Matiz
Aga Ousseinov
Richard Pasquarelli
Emanuel Pimenta
Bruce Robbins
Jim Shaw
Dan Walsh
Marnie Weber
Michael Zansky
Agni Zotis
Maria Papadimitriou
Lydia Andrioti
Phyllis Yampolsky
Kosyo Minchev
Paul David Young
Eleni Mylonas


|
|
Map Variable: | |
| Map Type: | Land Population |
The maps on this page highlight relative rates (per population, per test) of cases, testing and mortality related to COVID-19 in the USA (currently 48 states plus the District of Columbia). While many websites map COVID-19 cases, only a few show rates per population. In most cases, rates are more appropriate than raw numbers for assessing the local severity of an epidemic. For example, a thousand cases in the state of California represents approx. 25 cases per 1,000,000 people, where as the same number of cases in Louisiana represents approx. 200 cases per 1,000,000 people. Rates better express the likelihood of an individual becoming sick, as well as the burden on the hospital system, although state-level data does not capture within-state variability which can be significant. Challenges that are currently being worked on include (a) developing map symbol schemes to communicate exponential growth while maintaining discernability, and (b) visualizing the lagged correlation between social distancing behavior and changes in rates of growth.
| U | Place focus on the variable selector |
| ← → | Move along timeline (when focus off var. sel.) |
| L,P | Toggle between land and population map types |
(click on any state for data values)


Jan 15, 2018
Theory Site
This is the beginnings of a website I was developing in the fall of 2017 for an art history class I was taking. I wanted to use my notes as the basis for a Wikipedia-style website. I created a few pages to explore the idea and learn a bit more about javascript.
This is an archived page. Find recent projects on my website


You can move the images anywhere you like as long as they maintain "figure" tag correctly and are in the same container.
Include Photoswipe Library and main.js (after PhotoSwipe) file located in js folder.
Add a HTML tag that acts as a container for all your gallery images. We'll use a div with class images-container in this case.
Add gallery images inside your container. Make sure you preserve a similar figure tag as below. Add as many figure images as you want.
<figure itemprop="associatedMedia" itemscope="" itemtype="http://schema.org/ImageObject"

Use initPhotoSwipeFromDOM('.images-container figure'); to launch your image gallery.


./start.sh
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 15 (delta 3), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (15/15), done.
From https://github.com/StakedChain/StakedNotary
ea615e6..9c870ce master -> origin/master
Updating ea615e6..9c870ce
Fast-forward
assetchains.json | 16 ----------------
build_iguana | 2 +-
iguana/coins/kmd_7776 | 2 +-
install/buildkomodo.sh | 2 +-


public static interface OnnxOperators.OperatorSetProtoOrBuilder
extends org.nd4j.shade.protobuf.MessageOrBuilder
| Modifier and Type | Method and Description |
|---|---|
String |
getDocString()
A human-readable documentation for this set of operators.
|
org.nd4j.shade.protobuf.ByteString |
getDocStringBytes()
A human-readable documentation for this set of operators.
|
String |
getDomain()
Domain name of the operator set, in reverse DNS form (e.g., com.acme.dnnops).
|
org.nd4j.shade.protobuf.ByteString |
getDomainBytes()
Domain name of the operator set, in reverse DNS form (e.g., com.acme.dnnops).
|
String |
getIrBuildMetadata()
The build metadata component of the SemVer of the IR.
|
org.nd4j.shade.protobuf.ByteString |
getIrBuildMetadataBytes()
The build metadata component of the SemVer of the IR.
|
int |
getIrVersion()
All OperatorSetProtos indicate the version of the IR syntax and semantics
they adhere to.
|
String |
getIrVersionPrerelease()
The prerelease component of the SemVer of the IR.
|
org.nd4j.shade.protobuf.ByteString |
getIrVersionPrereleaseBytes()
The prerelease component of the SemVer of the IR.
|
String |
getMagic()
All OperatorSetProtos start with a distingushed byte sequence to disambiguate
protobuf files containing OperatorSets from other content.
|
org.nd4j.shade.protobuf.ByteString |
getMagicBytes()
All OperatorSetProtos start with a distingushed byte sequence to disambiguate
protobuf files containing OperatorSets from other content.
|
OnnxOperators.OperatorProto |
getOperator(int index)
The operators specified by this operator set.
|
int |
getOperatorCount()
The operators specified by this operator set.
|
List<OnnxOperators.OperatorProto> |
getOperatorList()
The operators specified by this operator set.
|
OnnxOperators.OperatorProtoOrBuilder |
getOperatorOrBuilder(int index)
The operators specified by this operator set.
|
List<? extends OnnxOperators.OperatorProtoOrBuilder> |
getOperatorOrBuilderList()
The operators specified by this operator set.
|
long |
getOpsetVersion()
The version of the set of operators.
|
findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
String getMagic()
All OperatorSetProtos start with a distingushed byte sequence to disambiguate protobuf files containing OperatorSets from other content. This field MUST be "ONNXOPSET" This field MUST be present in this version of the IR
string magic = 1;
org.nd4j.shade.protobuf.ByteString getMagicBytes()
All OperatorSetProtos start with a distingushed byte sequence to disambiguate protobuf files containing OperatorSets from other content. This field MUST be "ONNXOPSET" This field MUST be present in this version of the IR
string magic = 1;
int getIrVersion()
All OperatorSetProtos indicate the version of the IR syntax and semantics they adhere to. It is always IR_VERSION. This field MUST be present in this version of the IR
int32 ir_version = 2;
String getIrVersionPrerelease()
The prerelease component of the SemVer of the IR. This field MAY be absent in this version of the IR
string ir_version_prerelease = 3;
org.nd4j.shade.protobuf.ByteString getIrVersionPrereleaseBytes()
The prerelease component of the SemVer of the IR. This field MAY be absent in this version of the IR
string ir_version_prerelease = 3;
String getIrBuildMetadata()
The build metadata component of the SemVer of the IR. This field MAY be absent in this version of the IR
string ir_build_metadata = 7;
org.nd4j.shade.protobuf.ByteString getIrBuildMetadataBytes()
The build metadata component of the SemVer of the IR. This field MAY be absent in this version of the IR
string ir_build_metadata = 7;
String getDomain()
Domain name of the operator set, in reverse DNS form (e.g., com.acme.dnnops).
string domain = 4;
org.nd4j.shade.protobuf.ByteString getDomainBytes()
Domain name of the operator set, in reverse DNS form (e.g., com.acme.dnnops).
string domain = 4;
long getOpsetVersion()
The version of the set of operators. This is a simple int value that is monotonically increasing as new versions of operator set are published. All operators in this set MUST have version numbers no greater than opset_version.
int64 opset_version = 5;
String getDocString()
A human-readable documentation for this set of operators. Markdown is allowed.
string doc_string = 6;
org.nd4j.shade.protobuf.ByteString getDocStringBytes()
A human-readable documentation for this set of operators. Markdown is allowed.
string doc_string = 6;
List<OnnxOperators.OperatorProto> getOperatorList()
The operators specified by this operator set. The (name, version) MUST be unique across all OperatorProtos in operator
repeated .onnx.OperatorProto operator = 8;
OnnxOperators.OperatorProto getOperator(int index)
The operators specified by this operator set. The (name, version) MUST be unique across all OperatorProtos in operator
repeated .onnx.OperatorProto operator = 8;
int getOperatorCount()
The operators specified by this operator set. The (name, version) MUST be unique across all OperatorProtos in operator
repeated .onnx.OperatorProto operator = 8;
List<? extends OnnxOperators.OperatorProtoOrBuilder> getOperatorOrBuilderList()
The operators specified by this operator set. The (name, version) MUST be unique across all OperatorProtos in operator
repeated .onnx.OperatorProto operator = 8;
OnnxOperators.OperatorProtoOrBuilder getOperatorOrBuilder(int index)
The operators specified by this operator set. The (name, version) MUST be unique across all OperatorProtos in operator
repeated .onnx.OperatorProto operator = 8;
Copyright © 2020. All rights reserved.


{{promotionRun.promotionLevel.name}}
{{promotionRun.signature.time | date:'mediumDate'}}
{{promotionRun.signature.time | date:'shortTime'}}
{{promotionRun.creation.time | date:'mediumDate'}}
{{promotionRun.creation.time | date:'shortTime'}}
No promotion yet.


?The
New
York
copyright
reserved
Botanical
Garden
Herbarium
of
the
University
of
California,
Berkeley
Nymphoides
indica
(L.)
O.
Kuntze
Dec.
Robert
Ornduff
Plant¾
Indi¾
Occidentalis
N:o
H.
New
York
Botanical
Garden
1^24^31
Hispaniola.
Civ.
(£jfl'£is-yT^e'-S
,-mt/
,
,
-
^
T
.......^^i..19-^?..~
leg.
E.
L.
Ekman.
1624939
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


The Open Sentry Stack consist of:
- Identity Provider, IDP - Provides an API for identity authentication and resouce ownership verification
- Access & Authorization Provider, AAP - Provides an API for access and authorization control
- OAuth2 & OpenId Connect Provider, Ory Hydra - Provides session control and OAuth2 and OpenId flows
- Messaging System, NATS - Provides Pub/Sub for events
- Storage using graphs, Neo4J - Provides a different take on access control
- Reverse Proxy, Ory OAthKeeper - Provides uniform access to system components
- Docker - Provides containerization and process isolation
The idea of The Open Sentry Stack is to provide system developers with a tool to enforce logical functional security in their applications.
Think of the system as a trust sphere which spawn strings of trust to applications as long as the applications use AAP for judgement.
The systems operates on a set of ideas and concepts like:
- Deny by default - Assume code will fail and let the code structure falltrough to deny
- Absence of information means deny - If its not in the graph it means deny
- TLS by default - Assume untrusted networking, pay the price and encrypt by default even test environments (Beyond Corp)
- Dog food - Use exposed endpoints aswell as access models internally in the system aswell (Bootstrap with self)


This is a div tag.
This is also inside the div tag.
Anything you want to appear on screen goes inside the body section.


| | Mutations |
| 15 |
|
1.1 Location : doGet Killed by : se.lnu.http.integration.StressTest.stressTest(se.lnu.http.integration.StressTest) negated conditional → KILLED
|
| 16 |
|
1.1 Location : doGet Killed by : none removed call to java/io/BufferedWriter::write → TIMED_OUT
|
| 18 |
|
1.1 Location : doGet Killed by : none removed call to java/io/BufferedWriter::write → SURVIVED
|
| 19 |
|
1.1 Location : doGet Killed by : none removed call to java/io/BufferedWriter::flush → TIMED_OUT
|
| 24 |
|
1.1 Location : doGet Killed by : se.lnu.http.integration.HTTPServerTest.testStop(se.lnu.http.integration.HTTPServerTest) mutated return of Object value for se/lnu/http/client/HTTPGetProtocoll::doGet to ( if (x != null) null else throw new RuntimeException ) → KILLED
|


Practical Functional Java
Workshop Overview
Jeff Butler
https://github.com/jeffgbutler/practical-functional-java
https://jeffgbutler.github.io/practical-functional-java/
About Me
- Enterprise Architect for DMI in Indianapolis
- Committer to Apache iBatis/MyBatis since 2005
- Creator of MyBatis Generator and MyBatis Dynamic SQL
- Voracious reader, adventurous eater, lawn care enthusiast
- Desert Island disks include White Stripes, Beck, Nirvana, Jimmie Dale Gilmore, Marty Stuart
How this Workshop Came to Be
- I finally learned JavaScript
- Java 8 Study Group
- "Clean Code" Book Clubs at DMI and our clients
- MyBatis Dynamic SQL
- These experiences have changed the way I think about coding.
Plan for the Workshop
- Some thoughts about Functional Programming
- Immutability Review and Exercises
- Lambda Review
- Streams Review and Exercises
- Optionals Review
- Multi-step guided exercise - Green Field
- Function Composition Review
- Multi-step guided exercise - Refactoring
- Coda: Advanced Immutability
Focus on Practical - Very Few $10 Vocabulary Words!
Functional Programming Hype
- Solves all your concurrency problems!
- The solution to Moore's Law slowing down!
- Super Trendy! Big Money!
- Retro/Vintage/Hipster Programming - Lisp is Cool Again!
But seriously, how many people in this room...
- have major concurrency problems?
- have a Moore's Law problem?
I want to be a functional programmer!
Wrong answer
I want to be a better programmer!
This is why we're here...
What is clean code?
- Meaningful Names
- Small Methods
- Small Classes
- TDD
- SOLID Principles
Functional practices urge us towards clean code
What is Functional Programming?
- Functions as first class citizens?
- Pure functions?
- Lambdas?
- Closures?
- Recursion with Tail Call Optimization?
- Lazy streams?
- Immutability?
- Declarative vs. Imperative?
- Monads (Haskell)?
- Code as Data (Lisp)?
Argh!
No one can define it!
Except maybe Uncle Bob...
Spoiler alert...Immutability is the Key!
Next Steps
- Demo and overview of the source repo
- Setup Exercise: Make sure you can run the tests in whatever IDE you choose


Class ReviewComponentDetailModel
This class represents a review component detail within the application.
Inheritance
System.Object
ReviewComponentDetailModel
Inherited Members
System.Object.ToString()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
Namespace: Vasont.Inspire.Models.Reviews
Assembly: Vasont.Inspire.Models.dll
Syntax
public class ReviewComponentDetailModel
Properties
| Improve this Doc View SourceChangesetId
Gets or sets the changeset of the component history record.
Declaration
public Guid ChangesetId { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Guid |
Comment
Gets or sets the review component comment.
Declaration
public string Comment { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Component
Gets or sets the component.
Declaration
public MinimalComponentModel Component { get; set; }
Property Value
| Type | Description |
|---|---|
| MinimalComponentModel |
ContextOnly
Gets or sets a value indicating whether this component is for context purposes only.
Declaration
public bool ContextOnly { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
CreatedBy
Gets or sets the user information about the user who created the review component.
Declaration
public MinimalUserModel CreatedBy { get; set; }
Property Value
| Type | Description |
|---|---|
| MinimalUserModel |
CreatedDate
Gets or sets the date and time when the review component was created.
Declaration
public DateTime CreatedDate { get; set; }
Property Value
| Type | Description |
|---|---|
| System.DateTime |
ReviewComponentId
Gets or sets the identity of the review component.
Declaration
public long ReviewComponentId { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int64 |
ReviewComponentLock
Gets or sets the review component lock for an interactive review.
Declaration
public ReviewComponentLockModel ReviewComponentLock { get; set; }
Property Value
| Type | Description |
|---|---|
| ReviewComponentLockModel |
ReviewerComponent
Gets or sets the reviewer component if the current user is a reviewer for this review.
Declaration
public ReviewerComponentModel ReviewerComponent { get; set; }
Property Value
| Type | Description |
|---|---|
| ReviewerComponentModel |
ReviewId
Gets or sets the identity of the review.
Declaration
public long ReviewId { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int64 |
SortOrder
Gets or sets a sort order value for displaying the review component.
Declaration
public int SortOrder { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |


Luma
trending_up
Earnings
$12.3k
receipt
Sales
264
search
mail_outline
Messages
5 minutes ago
Michelle
Clients loved the new design.
5 minutes ago
Michelle
🔥 Superb job..
notifications_none
2
System notifications
3 minutes ago
account_circle
Your profile information has not been synced correctly.
5 hours ago
group_add
Adrian. D
Wants to join your private group.
1 day ago
storage
Your deploy was successful.
account_box
Account
Edit Account
Billing
Payments
Logout
Tasks
Home
Productivity
New Task
Tasks
Open
more_horiz
4
keyboard_arrow_up
Toggle all
Task
Tags
Due
Assigned to
Check
Add Fluid Layout Featuring A Vertical Menu With Icons Only
link
2
02/01/20
add
more_vert
Check
Add Initial Documentation Covering Basic Features
03/01/20
add
more_vert
Check
Refactor HTML Markup To Be More SEO Friendly
comment
1
03/01/20
LB
AD
add
more_vert
Check
Add Layout Options
04/01/20
add
more_vert
In Progress
more_horiz
10
keyboard_arrow_up
Toggle all
Task
Tags
Due
Assigned to
Check
Add Initial Documentation Covering Basic Features
02/01/20
add
more_vert
Check
Add Fluid Layout Featuring A Vertical Menu
link
2
03/01/20
add
more_vert
Check
Add Layout Options
03/01/20
add
more_vert
Closed
more_horiz
14
keyboard_arrow_down


THE FUNDAMENTALS OF PACKING AND ORGANIZING YOUR BUG OUT BAG
Mobility, accessibility, and weight are the top three things to consider when putting together your bug out bag or get home bag. However, packing and organizing a bug out bag doesn’t need to be intimidating.
In fact, the basic principles of it are different than packing a regular backpack or an EDC bag. When it’s dark or rainy out and you need to access your gear quickly, you can save yourself a lot of aggravation and time by going through your bag in an organized manner.
- Your bag should be comfortable for you to carry for long periods of time. Practice carrying it fully packed. If you can’t carry your bag for more than twenty or so miles, then you need to do some major downsizing.
- As a general rule of thumb, your pack should be no more than one-third of your total body weight. For smaller individuals, you may want to stick to a pack that is one-fourth of your weight.
- There are two forces at work when it comes to bug out bag organization: the containers and the order that you pack your gear into your bag.
- Containers should be as water tight as possible to help keep your gear safe and dry.
- When packing your gear, don’t just toss and cram everything into your bag wherever it will fit. You may need to get to this gear quickly later on, this will be easier if you know exactly where everything is located.
- A well-balanced bag reduces the stress and strain on your back which can be crucial when you are forced to carry the bag for long periods. When packing your gear, you want the center of gravity of the pack very close to your body and just below your shoulders.
BOTTOM OF THE BUG OUT BAG
The heaviest items and those that you are going to need less frequently are the items that you should pack in first so they are at the bottom of your bug out bag.
- Examples are things like shelter materials, like tarps and stakes as well as sleeping materials, such as sleeping bags, blankets, cushions, or hammocks.
- Alternatively, you may want to attach some of these things to the outside of your bug out bag.
- Some preppers tie their sleeping bag or mat to the bottom of their BOB on the outside rather than stuffing it inside. This is a good strategy for a smaller sized bag.
CORE OF THE BUG OUT BAG
The core part of the bug out bag is in between the bottom and the top. It should be packed after your shelter materials and heavier items have been already packed on the bottom
- In the core of your bug out bag, you should pack your extra clothes, food, cooking stove, and tools such as a hatchet or handsaw.
- These items are lighter than the previous ones which is why they should go in the core, but more importantly, you’ll need to get to these items more often. Packing them in the middle of your bag makes them easier to access without taking everything out each time you prepare a meal or need to use your tools.
TOP OF THE BUG OUT BAG
The top part of your bug out bag is the part that you will be packing and organizing last.
- The items that are on the top of your bug out bags are both the lightest items and the things that you could need quickly and frequently throughout the day. Examples are snacks, fire starting materials, first aid kit, maps, and rope.
- You shouldn’t have to dig around inside for these items. These are the kinds of things that you need to get to as soon as you unzip the top compartment of the bug out bag.
SIDE COMPARTMENTS OF THE BUG OUT BAG
The overwhelming majority of backpacks that are suitable for bugging out will have side compartments for extra yet smaller gear and are more easily accessible while you’re on the move.
- These compartments are suitable for carrying water. You know right where your water is and you can easily access it without even having to take off your bug out bag.
- Side compartments are also suitable for holding some of those light yet critical items such as matches, pen and paper, cell phone, and/or maps.
- The beauty of side compartments is that they are sometimes dedicated to hold specific kinds of items. There may be a small side compartment that is clearly made to house a smart phone or a water bottle for example.
CONTAINERS
Now that we’ve learned about the different locations of your bug out bag and which gear goes where, we can talk about organization. The best way to keep things organized is to store them in small containers.
- Your fire starting materials, first aid kits, some articles of clothing, personal hygiene items, and food should all have their own containers. When you need to treat a wound or start a fire then, all you have to do is pull out the container from the bug out bag before accessing the items you need inside of it.
- By containers, we aren’t just referring to actual plastic containers with lids that might come to mind. You can also use smaller packs, MOLLE pouches, nylon organizers, Ziploc bags, and stuff bags to keep similar gear organized together.
- An added benefit to storing your items in separate containers is that it provides an extra layer against water and moisture.
- If your spare clothes, fire starting materials, or food gets wet and you need those things, you’re in trouble. That’s why it’s comforting to know that there’s an extra layer that’s protecting those items even if water seeps through your bug out bag.
- You can also label your containers, though it’s not really necessary. Many preppers know what’s inside each container by the color or the type of container.
Regardless of how many or what types of containers they are great for organizing gear. When you’re under stress, it’s imperative that you know where everything is. That’s why you should avoid simply stuffing everything into your bug out bag randomly. Who knows, being able to quickly access your gear might even save your life.
LIGHTENING THE LOAD
When packing your bug out bag, it’s important to avoid making it too heavy for you to carry comfortably. Earlier in this article, we mentioned that your bug out bag should be between one fourth to one third of your total body weight.
If your bug out bag is too heavy (don’t let pride or ego get in the way of your honesty here), it’s best to lighten the load in order to give yourself more mobility.
Fortunately, there are some tactics you can use to reduce the overall weight of your pack:
- You can stick with the essentials bug out bag items and sacrifice excess items that you don’t need. You can also choose items that are multi-purpose. For example, it would be wiser to have a regular Swiss Army Knife than a separate pocket knife and sets of screwdrivers for example.
- You can choose to carry lightweight space blankets instead of heavier sleeping bags or a tarp instead of a tent. Any of these will serve your shelter purposes without weighing you down, but keep in mind that tents are way better than tarps to protect you from the elements.
- Even though the individual pieces of gear will be nearly weightless, when stuffed together it’s easy for your bug out bag to get up to 60 or even 70 pounds. This kind of weight will slow you down, put unnecessary strain on your back and shoulders, and require you to make more frequent stops to rest.
ADDITIONAL ORGANIZING/PACKING TIPS
Here are some final tips to make organizing and packing your bug out bag a more efficient process.
- Leave some extra empty space. Many preppers make the mistake of filling their bug out bags to the maximum. Even if weight wasn’t such an issue, it leaves little to no room in your bag for extra things that you may find along the way that you know you will need.
- In a survival situation, never pass something by that could be valuable to you. Maybe that item will save your life later on. Your bug out bag should have some free space that you can use to hold things you find along the way.
- Avoid packing what you don’t need. Make a list of items before organizing your bug out bag. Then run down that list and take away anything that is not necessary. Keep in mind the more skilled you are at using natural resources, the less gear you will need to carry in your pack.
- The goal of your bug out bag is to hold essentials to survive, not to carry your entire stockpile.  Then complete this process again and again until you’re sure that everything that’s unnecessary has been eliminated.
- Pack duplicates of crucial items. This one may sound contradictory to lightening the load of your bug out bag, but the old saying “two is one and one is none” is valid. It is wise to have duplicates for crucial survival items in the event that one is lost or damaged.
- Ideally your duplicates should be limited to lighter and essential items such as knives, fire starting materials, water filters, fish hooks, and so on. Duplicates of heavier items such as tarps or blankets will only weigh down your pack.
- Have your bag ready to go at all times.  When you don’t have a lot of time to evacuate, you aren’t thinking clearly and there won’t be time to rush around grabbing things you need.
- Keep your bug out bag(s) in a strategic, easy to get to location. The precious minutes you have to evacuate should actually be spent evacuating, not packing up your bag or trying to dig it out of an attic or other hard to reach location.
- Last but not least, keep in mind that you’ll organize and re-organize the items in your bag continuously. You’ll never reach perfection but you’ll sure as heck get close to it.


src/interfaces/IDetector.ts
Interface used to configure, load and get detections from the camera.
Methods |
| init |
init()
|
|
Defined in src/interfaces/IDetector.ts:19
|
|
Convenience function for setting up the camera for starting/stopping genius framing. Should be called before any other methods.
Returns :
Promise<any>
Returns a promise which resolves in case the detector init is completed otherwise it rejects with a rejection message! |
| on | ||||||||||||
on(message: string, callback: any)
|
||||||||||||
|
Defined in src/interfaces/IDetector.ts:77
|
||||||||||||
|
EventEmitter
Parameters :
Returns :
any
|
| once | ||||||||||||
once(message: string, callback: any)
|
||||||||||||
|
Defined in src/interfaces/IDetector.ts:88
|
||||||||||||
|
EventEmitter
Parameters :
Returns :
any
|
| start |
start()
|
|
Defined in src/interfaces/IDetector.ts:27
|
|
Sends a sequence of commands to the camera to start autozoom on the camera and register for detection events.
Returns :
Promise<void>
|
| stop |
stop()
|
|
Defined in src/interfaces/IDetector.ts:35
|
|
Sends a sequence of commands to the camera to stop autozoom and unregister from getting detection events.
Returns :
Promise<void>
|
Below you can find an example on how to get started with Genius Framing on IQ. Follow the steps below for configuring Genius Framing on the camera and subscribing for detection and framing information!
/*
We suppose that the SDK has been initialized previously
and the camera is attached and an instance of IDeviceManager
is created!
*/
const detector = await cameraManager.getDetector();
await detector.init();
await detector.start();
/*
In order to subscribe for detection and framing information
proceed with the following code snippet
*/
detector.on('DETECTIONS', (detectionList) => {
// Process the array
});
detector.on('FRAMING', (framingInfo) => {
// Process framing info
});
/* To stop Genius Framing on IQ, use the #stop method */
await detector.stop();
The detector class can emit the following events:
| Event | Description |
|---|---|
| DETECTIONS | Subscribe to this event to get detections from the camera. At the moment only the People class is supported from the detector. |
| FRAMING | Subscribe to this event to get information about the framing. Framing data consists of a property called bbox which contains the coordinates (x, y, width and height) representing the framing data. The framer configuration on the camera will always make sure that the perfect framing of the people in the view is selected. |
export default interface IDetector {
/**
* Convenience function for setting up the camera
* for starting/stopping genius framing. Should be
* called before any other methods.
*
* @returns {Promise<any>} Returns a promise which
* resolves in case the detector init is completed
* otherwise it rejects with a rejection message!
* @memberof IDetector
*/
init(): Promise<any>;
/**
* Sends a sequence of commands to the camera to start autozoom
* on the camera and register for detection events.
*
* @memberof IDetector
*/
start(): Promise<void>;
/**
* Sends a sequence of commands to the camera to stop autozoom
* and unregister from getting detection events.
*
* @memberof IDetector
*/
stop(): Promise<void>;
/**
* @ignore
* Uploads the CNN blob used for detecting people and other
* objects in the field of view on to the camera.
*
* @param {Buffer} blobBuffer The Cnn blob as a Buffer
* @returns {Promise<void>}
* @memberof IDetector
*/
uploadBlob(blobBuffer: Buffer): Promise<void>;
/**
* @ignore
* Uploads the detector configuration.
*
* @param {JSON} config JSON representation of the detector configuration file.
* @returns {Promise<void>}
* @memberof IDetector
*/
setDetectorConfig(config: JSON): Promise<void>;
/**
* @ignore
* Uploads the framing configuration file on to the camera.
*
* @param {JSON} config JSON representation of the framing configuration file.
* @returns {Promise<void>}
* @memberof IDetector
*/
uploadFramingConfig(config: JSON): Promise<void>;
/**
* EventEmitter `on` listener. It is used for emitting detector events
* such as DETECTOR_START, DETECTOR_STOP, DETECTIONS etc. The list of
* detector events together with all the other camera events can be found in the `Events.ts` class.
*
* @param {string} message The message use to setup the listener for.
* @param {*} callback A callback used to perform actions on the caught event.
* @memberof IDetector
*/
on(message: string, callback: any);
/**
* EventEmitter `once` listener. Similar to the `#on` function,
* instead here the listener is invoked only once and that is
* the first time the message is emitted from the `Detector` implementation class.
*
* @param {string} message The message use to setup the listener for
* @param {*} callback A callback used to perform actions on the caught event
* @memberof IDetector
*/
once(message: string, callback: any);
}


Health Advisory: Keep Yourself and Others Safe
Masks:
    The research into which types of facial protection are the most reasonable for the average person in a low-risk area is inconclusive. However, the two main types are surgical and N95. Surgical should be worn with as little space open between the face and the edge of the mask as possible, as to try to keep fluids from entering the mask's inside. N95 masks are worn by medical professionals and are intensive protection from infection. Cloth based reusable, washable masks are unfortunately ineffective. Masks are generally best worn by ill patients. (Source: UCI SHC)
Good Practices:
    In order to combat the spread of infectious diseases such as coronaviruses, aim to limit exposure to large groups of people while you are feeling ill. Stay indoors and rest until you recover and may then return to regularly attending large gatherings / classes. (Source: UCI SHC)


PROOF A film review by Frank Maloney Copyright 1992 Frank Maloney
PROOF is a film written and directed by Jocelyn Moorhouse. It stars Hugo Weaving, Genevieve Picot, Russell Crowe. Australian. Rated R for brief nudity, mature themes.
PROOF is the first feature film by the 31-year-old Australian writer-director Jocelyn Moorhouse. It is perfect. She has given us something very special -- a completely original film directed with precision and insight.
The story asks the question "Why would a blind person take photographs?" The answer is rife with dramatic possibilities and compelling implications about human nature, about truth, about trust.
Partial plot summary follows. Possible spoilers, but owing to the limited circulation of this excellent film in the U.S., I feel justified to discuss the plot in a limited way:
The blind person is Martin, played by Hugo Weaving, who cannot trust anything or anyone. His photos are his way of providing proof that the world he perceives is the same as the one of the sighted. In the absence of vision, he seeks absolute truth, but trusts no one to describe his photos to him until he meets Andy, played by Russell Crowe, who has the time and ability to describe Martin's photos in 10 words or less. Andy's arrival threatens Martin's housekeeper, Celia, played by Genevieve Picot, who is locked in a closed-loop relationship with Martin that is cruel, sadistic, cynical, and mutual.
Andy is the catalyst that breaks everyone out of the loop. Martin must learn to trust someone who he knows has lied to him once; he must accept the fact that "everyone lies." Andy has to pull himself out of his wandering, aimless, purposeless life. Celia must walk away from the life she's lived for the last three-and-a-half years; she and Martin must change their lives from models of mutual, destructive dependence to a new, more painful independence. These are the small epiphanies of real people moving through their lives.
Moorhouse's film is small and concentrated on people who are interesting without being impossible.  She does this without bravado or pretension and with no false steps.
PROOF is, nevertheless, a visual success, neatly composed, shot in natural light, sharply edited, with much of the story coming through visually. The story is also funny, surprising, even shocking in a quiet way. Moorhouse uses her sound editor to mix natural sounds and a sound track by the Australian group Waving, Not Drowning to enhance a non-visual realm of the senses.
I recommend PROOF to you in the strongest possible terms. Look for it, ask for it. It may be the best film you see this year.
-- Frank Richard Aloysius Jude Maloney .
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


This package is for TRAX-interface API tests.
- Author:
-<EMAIL_ADDRESS>- Program(s) Under Test:
- Xalan-J 2.x XSLT Processor
Most tests are completely generic to the TRAX interface, although they
do default System properties to use the Xalan-J 2.x implementation.
Current tests are primarily focused on covering the API's and include:
- ProcessorAPITest - basic coverage of both factory methods and instance methods
- ResultAPITest
- TransformerAPITest
- TemplatesAPITest - also covers TemplatesBuilder class
- TestThreads - a semi-automated test for multithreaded testing,
results must be manually analyzed currently