FRBKeyedTargetAction Class Reference
| Inherits from | NSObject |
| Declared in | FRBKeyedTargetAction.h FRBKeyedTargetAction.m |
Overview
Provides a way to send messages to an object based on an arbitrary key.
This class encapsulates a mapping between id
Tasks
-
target
Target object. All of the action messages will be sent to the target, so make sure that the target actually responds to these selectors.
property -
inhibitConsoleWarnings
Inhibit console output when trying to perform an action for unknown key.
property -
– addAction:forKey:
Adds an action for a given key.
-
– deleteActionForKey:
Removes the action for a given key from the mapping.
-
– doActionForKey:
Finds a selector associated with the given key and performs it on a target object.
-
– doActionForKey:sender:
Finds a selector associated with the given key and performs it on a target object.
-
– addActions:
Adds multiple actions at once.
Properties
inhibitConsoleWarnings
Inhibit console output when trying to perform an action for unknown key.
@property (assign, nonatomic) BOOL inhibitConsoleWarnings
Discussion
Inhibit console output when trying to perform an action for unknown key.
By default, FRBKeyedTargetAction dumps a portion of the call stack to the console using NSLog when an unknown key is encountered. This may be helpful in debugging purposes, but in some cases may be undesirable. Set this property to YES if you’d like to turn off the console output.
Declared In
FRBKeyedTargetAction.h
target
Target object. All of the action messages will be sent to the target, so make sure that the target actually responds to these selectors.
@property (weak, nonatomic) id target
Discussion
Target object. All of the action messages will be sent to the target, so make sure that the target actually responds to these selectors.
Declared In
FRBKeyedTargetAction.h
Instance Methods
addAction:forKey:
Adds an action for a given key.
- (void)addAction:(SEL)selector forKey:(id<NSCopying>)key
Parameters
- selector
Selector which will be performed on the target object when the doActionForKey: or doActionForKey:sender: methods are called with the corresponding key.
- key
Key to associate the selector with.
Discussion
Adds an action for a given key.
If the target object is already set, checks that the target does respond to the selector provided (using NSAssert).
Declared In
FRBKeyedTargetAction.h
addActions:
Adds multiple actions at once.
- (void)addActions:(NSDictionary *)actions
Parameters
- actions
A dictionary with selector strings to be added as actions for the dictionary keys.
Discussion
Adds multiple actions at once.
Instead of selectors, selector strings should be provided as the values of the actions dictionary.
Declared In
FRBKeyedTargetAction.h
deleteActionForKey:
Removes the action for a given key from the mapping.
- (void)deleteActionForKey:(id<NSCopying>)key
Parameters
- key
Key associated with an action.
Discussion
Removes the action for a given key from the mapping.
Does nothing if there is no action associated with the key.
Declared In
FRBKeyedTargetAction.h
doActionForKey:
Finds a selector associated with the given key and performs it on a target object.
- (void)doActionForKey:(id<NSCopying>)key
Parameters
- key
Key associated with an action.
Discussion
Finds a selector associated with the given key and performs it on a target object.
This is equivalent to calling doActionForKey:sender: with the same key and nil sender.
See Also
Declared In
FRBKeyedTargetAction.h
doActionForKey:sender:
Finds a selector associated with the given key and performs it on a target object.
- (void)doActionForKey:(id<NSCopying>)key sender:(id)sender
Parameters
- key
Key associated with an action.
- sender
An optional parameter which can denote the sender of the message, or be of any other use if needed. This object is passed as the only parameter to the corresponding action selector. Can be nil. If the corresponding action method does not have parameters, the sender is ignored.
If action selector for the given key cannot be found, does nothing, but dumps a portion of the callstack to the console output for debugging purposes.
Discussion
Finds a selector associated with the given key and performs it on a target object.
See Also
Declared In
FRBKeyedTargetAction.h


A 3D audio, video and touch display
by Nadeem Gabbani.A new display that uses high-frequency sound waves to move an illuminated ball 'pixel' and build a convincing 3D image has been announced by UK and Japanese researchers...
This technology may sound like something straight out of science fiction, but the new display technology, announced in the latest edition of the journal Nature, brings us closer to three-dimensional imaging systems that, crucially, don't require the use of special glasses or additional bulky equipment.
The new display uses ultrasound waves, which are at frequency far beyond what a human can hear, to trap a small, illuminated ball in place and then move it at high speeds to trace out an image.
Because the ball moves faster than the human eye can discern, the result is a persistent 3D image, in colour.
The display is about the same size and shape as a microwave with the door removed; inside is where the magic happens. The device uses two grids of speakers to produce the ultrasound "sound scape" that uses the energy in the sound waves to trap and move the ball. Alongside the images, the same speakers can also create an accompanying soundtrack for viewers to hear.
This is achieved with a technique called pulse width modulation, which allows the amplitude of a signal to be controlled by switching it on (40 kHz) and off (0 Hz) very quickly. The longer the signal is kept on, the higher the average frequency of the signal.
Cleverly, the system also has a haptic dimension, and can produce a tactile experience. This works in a similar way to image production, except instead of a ball being trapped and moved, it could be a finger, enabling viewers to "feel" what they are looking at.
With this new technology, a whole new range of applications become possible, including the next generation of computer video games through to training in the medical or nuclear fields.


Recent Vitals
Followup for pneumonia.
Recent Patient Notes
Sept 1, 2015 - Pat was admitted to Local Area Regional Hospital due to severe bacterial pneumonia. Due to complications with pneumonia and health conditions...
Aug 1, 2015 - Pat visited due to increasingly severe migraines. Prescribed additional medication to help alleviate pain
Lisinopril 40 MG Oral Tablet
Diltiazem Hydrochloride 180 MG Extended Release Oral Tablet
Divalproex Sodium 300 MG
Simvastatin 40 MG [Zocor]
Non-Chronic
Levofloxacin 500 MG Oral Tablet
Penicillin Severe; anaphylactic reaction


Brock
Brock University is located in Saint Catherines Ontario, a short drive to Niagara Falls and an hour
drive to Toronto. Brock prides themself on their strong student satisfaction rating, and amazing
mental health services. Brock has 100+ unique programs including, A BBA International Double
Degree, Criminology and so many more. Brock also offers experiential learning inside and outside
the classroom, Brock has over 20 different types of invaluable opportunities built into our courses.
As well, Brock has a strong sports presence with over 25 varsity sports.
This University was named adter Major-General Sir Isaac Brock.
- Top Programs
- Concurrent Education
- Sport Management
- Game Design
- Location
- Map
- Saint Catharines Ontario
- Just over an hour drive from Toronto
- Number of Students:
- 19,100
- Average Tuition:
- Tuition varies on the program
- Domestic tuition 6,476 CAD
- International tuition 23,861 CAD
- Entry Requirements:
- Minimum academic average of 70% (many programs require a higher average)
- A minimum of six 4U and/or 4M courses
- You must meet English language proficiency requirements.
- International rating:
- 1204
- Canadian rating:
- 38
- Average class size:
- 88 students (first and second year students), 33 students (third and fourth year students)
Brock University
500 Glenridge Ave
St. Catharines ON L2S 3A1
Tel:<PHONE_NUMBER>
Admissions:<PHONE_NUMBER> ext 3431
Fax:<PHONE_NUMBER>
www.brocku.ca


Product name is required.
Product saleprice is required.
Product isincludevat is required.
Product saleaccount is required.
Product buyaccount is required.


{% extends "header.html" %} {% block body %}
In this tutorial with Basemap, you are shown how to actually plot a plot, as well as choose a zoom level on your projection. As you can see, plotting lat and long coordinates is fairly simple if you envision them as X and Y on a plane. The only confusing part is that X, Y translates to Lon, Lat... which is the reverse of how they are normally reported.
From the video, here is the sample code:
from mpl_toolkits.basemap import Basemap import matplotlib.pyplot as plt def mapTut(): m = Basemap(projection='mill',llcrnrlat=20,urcrnrlat=50,\ llcrnrlon=-130,urcrnrlon=-60,resolution='c') m.drawcoastlines() m.drawcountries() m.drawstates() m.fillcontinents(color='#04BAE3',lake_color='#FFFFFF') m.drawmapboundary(fill_color='#FFFFFF') # Houston, Texas lat,lon = 29.7630556,-95.3630556 x,y = m(lon,lat) m.plot(x,y, 'ro') lon, lat = -104.237, 40.125 # Location of Boulder xpt,ypt = m(lon,lat) m.plot(xpt,ypt, 'go') plt.title("Geo Plotting") plt.show() mapTut()The above code will generate a map in Matplotlib and Basemap with coordinates plotted for Houston TX and Boulder CO.


HexEdit can crash when you open any file, when templates are turned on. The text of the message depends on the operating system but usually includes words like "an illegal operation was performed", "abnormal program termination" or even "unhandled exception".
This problem occurs under Windows 95, 98 and NT 4 if Internet Explorer 5.0 or later is not installed, or there is a problem with Internet Explorer. You can confirm that this is the problem by turning off templates (see Display Options page) and checking that opening a file does not crash HexEdit.
The solution to this problem is to install or reinstall Internet Explorer 5.0 (or a later version such as 6.0). You can download the latest version at http://www.microsoft.com/windows/ie/default.asp.


A standard for code formatting that Epicodus students may find helpful
These rules apply to all file types unless a more specific rule is applicable.
Example:
My Link

lowerCamelCase
for identifiers.Example:
var declaredVariable = value;
// below is an array literal that should not be interpretted as an index of `value`
[1].forEach(function(element) { sum += element; });


Name  :  Abhishek Aryan
Roll no  :   1906004
Introduction
Lists are used to group together related pieces of information so they are clearly associated with each other and are easy to read. In modern web development, lists are workhorse elements, frequently used for navigation as well as general
content.
Lists are good from a structural point of view as they help create a well-structured, more accessible, easy-to-maintain document. They are also useful because they provide specialized elements to which you can attach CSS styles.
Ordered List
An ordered list starts with the
< ol> tag. Each list item starts with the li tag.The default value for the list items is marked as 1,2,3... and so on but we can modify them to some other type if we want.This leads us to the type attribute.The type attribute of the ol tag,
defines the type of the list item marker
Type
Description
< ol type="1"> The list items will be numbered with numbers (default)
< ol type="A"> The list items will be numbered with uppercase letters
< ol type="a"> The list items will be numbered with lowercase letters
< ol type="I"> The list items will be numbered with uppercase roman numbers
< ol type="i"> The list items will be numbered with lowercase roman numbers
< ol type="1" start=11> The list items will be numbered with numbers starting from 11
< ol type="A" start=10> The list items will be numbered with uppercase letters starting from J
An example of ordered List:
< ol>
< li> OS
< /li>
< li> COA
< /li>
< li> WT
< /li>
< /ol>
It will be displayed on the web page as given below
- OS
- COA
- WT
Unordered List
An unordered list starts with the
< ul> tag. Each list item starts with the
< li> tag. Here, no numbering is there.The list items will be marked with discs by default The type attribute of the ol tag, defines the type of the list item marker
Value Description
< ul type="disc"> Sets the list item marker to a bullet (default)
< ul type="circle"> Sets the list item marker to a circle
< ul type="square"> Sets the list item marker to a square
< ul type="none"> The list items will not be marked
An example of unordered list :
< ul>
< li> pencil
< /li>
< li> pen
< /li>
< li> notes
< /li>
< /ul>
It will be displayed on the web page as given below
- pencil
- pen
- notes
Now suppose we write the html code as:
< ul type="square">
< li type="circle"> Tea < /li>
< li type="circle"> Coffee li>
< /ul>
Here, square will be overwridden by circle and the web page will look like:
- Tea
- Coffee
Description List
A description list is a list of items with a description or definition of each item. The description list is created using
< dl> tag. The
< dl> tag is used in conjunction with the
< dt> tag which specify a term, and the
< dd> tag which specify the term's definition.


Computer Society Of India-DTU Chapter
Event Calender
members
history
About Us
Members
Reach Us
More
arrow_drop_down
filter_drama
About Us
Hello!We are the DTU chapter of CSI
place
About Us
Hello!we are the student chapter of DTU-CSI
whatshot
About Us
Hello!we are the student chapter of DTU-CSI


Welcome to Painter, a second take on Kenneth Reilly's retro bitmap graphics editor (which you can find here).


Prince Andrew faces new criticism over friendship with Jeffery Epstein
by Rylee Carlson(CBS) - Britain's Prince Andrew is facing backlash after a widely criticized tv interview about his relationship with convicted sex offender Jeffrey Epstein who committed suicide earlier this year. The royal is facing calls to apologize for comments he made.
Prince Andrew may have intended to close the book on his relationship with Jeffery Epstein with a sitdown interview, but instead, he's opened himself up to new criticism.
"I suppose his behavior was unbecoming," Prince Andrew said.
"Unbecoming?" the interviewer responded. "He's a convicted sex offender."
A photo from 2001 appears to show the prince with then underage Virginia Giuffre. She claims she was trafficked to the Duke of York for sex.
"I have no recollection of ever meeting this lady, none whatsoever," Prince Andrew said.
Queen Elizabeth's son also says he never noticed anything suspicious on Epstein's private island, his private plane, or at either of his homes, including a New York mansion he stayed at for days after Epstein was released from prison.
"It was a convenient place to stay," he explained.
It's rare for any member of the royal family to sit down for this kind of interview. But it seems to have backfired, with British media commentators and P.R. experts calling it a disaster
"My guess is that he bulldozed his way in and decided he was going to do it himself without any advice," said Dickie Aribiter, former Buckingham Palace press officer
Asked if he regrets his friendship with the convicted pedophile, Prince Andrew said no.
"Now, still not and the reason being is that the people that I met and the opportunities that I was given to learn either by him or because of him were actually very useful," he said.
There are also calls for Prince Andrew to talk to U.S. investigators about his relationship with Epstein's former girlfriend Ghislaine Maxwell, the woman some of the victims accuse of trafficking them.


Preparation time
30 mins to 1 hour
Cooking time
over 2 hours
Serves
Serves 4-6
Equipment and preparation: You will need a large, solid baking sheet and a large, wide, flameproof casserole.
You can make the croûtons well ahead of time and, to do this, preheat the oven to 180C/350F/Gas 4. Drizzle the olive oil on to the baking sheet add the crushed garlic, then using either your hands or a piece of kitchen paper, spread the oil and garlic all over the baking sheet. Now place the bread slices on top of the oil, then turn them over so that both sides have been lightly coated with the oil. Bake for 20-25 minutes till crisp and crunchy.
When you're ready to cook the beef, lower the oven temperature to 150C/300F/Gas 2. Take the flameproof casserole, place it over direct heat, then heat the oil until sizzling hot and fry the meat, 3 or 4 pieces at a time, until they turn a dark mahogany colour on all sides. Make sure you don't overcrowd the pan or they will create steam and never become brown. As you brown the meat remove it to a plate then, when all the meat is ready, add the onions to the pan, still keeping the heat high. Toss them around until they become darkly tinged at the edges - this will take about 5 minutes. After that add the crushed garlic, let that cook for about 30 seconds or so, then turn the heat down, return the meat to the casserole and sprinkle in the flour. Using a wooden spoon, stir until all the flour has been absorbed into the juices. It will look rather stodgy and unpromising at this stage but not to worry - the long slow cooking will transform its appearance.
Now gradually stir in the beer and, when it's all in, let the whole thing gently come up to simmering point, and while that's happening add salt, freshly milled black pepper and the thyme and bay leaves. Then, just as it begins to bubble, put the lid on, transfer it to the centre shelf of the oven and leave it there for 2½ hours. Don't be tempted to taste it now or halfway through the cooking as it does take 2½ hours for the beer to mellow and become a luscious sauce.
Just before you want to serve the beef, preheat the grill, spread the croûtons with the mustard and sprinkle them with the grated gruyère, then arrange them on top of the meat and pop the casserole under the grill until the cheese is bubbling. Then serve straight away.


Home
Gallery
Photography
Sketches
Songs-Videos
Literature
Non Technical
Technical
Articles
Technical Articles
Non Technical Articles
Events and Achievements
Events
Achievements
ABOUT
Non-Technical Articles
Featured Article
Innocence Kills you
I'm a girl
A Rain
Myself in Dreams
A Story by Mayank
End of Articles


The Alpspitze (not to confuse with Alpspitz) is a mountain in the alps with one of the simplest via ferratas. It was my first one, too.
I documented what you need for it so that you can easily hike / climb the same route.
I planned the route as a 2-day route. One day to get to the starting point, the second day to take the route.
Equipment
I'll put the German word in brackets, as I'm not totally sure about the best translation.
- Climbing helmet (Steinschlaghelm): The more expensive ones are more lightweight. Everything with EN 12492 should be good. 30 - 80 Euro ("Edelrid Zodiac" was 55 Euro and weights 359 g)
- Sit harness (Klettergurt): The more expensive ones are more lightweight / more comfortable. ("Ocun: Twist Basic XS - M" was 55 Euro)
- Ferrata set ("Elliot: Forril Tech Klettersteigset mit Bandfalldämpfer" was 65 Euro)
- Carabiner ("Mammut: HMS Bionic Twistlock Plus basalt" was 19 Euro)
- Webbing loop ("Elliot Bandschlinge 60cm" was 3 Euro)
- Travel Sheet (Hüttenschlafsack)
- Headlamp ("Moorhead Stirnlampe", about 15 Euro)
- Cycling gloves
- Map
I like the following cloths for hiking. They are comfortable in a wide range of temperatures and they don't stink that much / feel bad when you sweat:
- VAUDE Herren Hose Farley Stretch Pants II (ASIN B01HL94DU0)
- Icebreaker Herren T-Shirt Tech Lite Short Sleeve (ASIN B00L6EHH4Q)
- Odlo Herren Pullover Midlayer 1/2 Zip Sun Peaks (ASIN B00DG1BOK0)
- FALKE Herren Trekking Socken TK2 Short Coool (ASIN B001E11Y1I)
- Icebreaker Herren Unterhose Anatomica (ASIN B016D9ZS9Y)
Don't forget that it will be much colder up there than on the ground.
Other things you need / might want to take with you:
- Food (e.g. an apple, sausages and several cereal bars)
- At least 1 L of water (can be refilled at the house)
- Toothbrush and toothpaste
- Money (25 Euro for sleeping at Kreuzeckhaus, 60 Euro for food and miscallenious stuff, 32 Euro for the cable car)
- Medicine and hygiene stuff (For example, I always want to have tissues and dental floss with me)
- Camera
- Smartphone and loading cable / power bank
Route
Day 1 (Friday, 23.09.2016)
- 06:01 - 08:25: From Karlsruhe to Reutlingen Hbf via train
- 08:30 - 12:00: From Reutlingen to Garmisch-Partenkirchen (station Kreuzeck/Alpspitzbahn) via car
- 12:00: We hike to Kreuzeckhaus
Day 2 (Saturday, 24.09.2016)
- 07:30: Start from Kreuzeckhaus (description)
- 12:30: Osterfelderkopf (3 km from Kreuzeckhaus and 350 m height; at 2033 m)
- 15:00: Alpspitz-Gipfel (at 2628 m)
- Going down again
- over the Ostgrat, down to the Oberkar
- Nordwandsteig
- 17:00: back to Osterfelderkopf
- with cable car down to the valley
- Going back to Karlsruhe
See also
- Alpspitz Ferrata - Alpspitze Klettersteig
- Alpspitz-Ferrata
- alpspitze.org
- hoehenrausch.de
- How to use a ferrata set (German)


--- layout: default2 title: Home ---
Welcome to Cardiff University's Wildlife and Conservation Society, also known as WildSoc!


Trying to connect to your FlinBIT? You might still be connected to the internet.
Make sure your WiFi is connected to your FlinBIT, you have mobile data turned off and/or ethernet unpluged, then refresh this page.
Looking for the FlinBIT documentation? Click here.
Looking for the source code for the FlinBIT? Click here.


Your prospect or customer scans your QR code from your business card, vehicle, job sign...wherever.
They are taken directly to your mobile friendly website. One that is built specifically for smartphones.
With one click they can request a service call or an estimate. They can also tap-to-call, tap-to-text, or tap-to-email you..


Turn on or off features using the checkboxes. To customize a key combination, click in the appropriate box and
type your desired hotkey. Not all keys are allowed. (Including all the
built-in Chrome keyboard shortcut keys.) Also be aware of potential conflicts with other exenstions you have installed and with any
global hotkeys set by other applications. One final note: Although you are allowed to use unmodified keys (e.g. "K" or "F11"), I highly recommend modifying all your choices with Control, Shift, Alt or some combination of the three.


NAC transcription ZmNAC maize factors induced clade Arabidopsis Plant genes rice graminicola defence response NACs analysis factor members gene involved motif (Figure stress {border-style ZmNAC, leaves described expression plant px;} #ffffff;} infection motifs plants acid family revealed sequences OsNAC clades proteins Figure binding domain file fungal regulation transcript (GCCGCC) (motif present ANAC drought host leaf transcripts Additional Table abiotic biotic consensus different factors, identified penetration sequence shown ATAF However, Mol formation high mutant necrotrophic phylogenetic promoter putative (TGACG) ./j.-X...x Biol Colletotrichum bars) cell clades. contained data elements expressed genome hpi induction number performed px; using wall {font-family C-terminal Cell Maize Zhang analyses analyzed belong compared conditions conserved detected development font-size given interaction maydis primer response. secondary senescence study subdomain transcriptional type wild Furthermore, Motif OsNAC, Phylogenetic Relative ZmHMG ]). alignment analysed based defence-associated defense double; generated indicated infected involvement jasmonic level meristem microarray promoters qRT-PCR regulates relative respective role scale similar suggesting virulence < (see ./s--- DNA Kim MEME Multiple RNA Res Sci Voll WRKY Zhu acid, amounts assessed associated border-color border-width bracket) clades, common developmental domains evolutionary f.c. graminicola. hatched higher indicating individual leaves, like observed p-val pathogen pathogens protein proteins. residues responses salicylic salinity solid; species specific strain subdomains subjected tolerance total {font-style {font-weight (CATGTG) (P-value (TTGACC) ,-dichloroisonicotinic Arabidopsis, B). BMC CgM Chen Fujita HvNAC NAM Physcomitrella S). TGA Xie Zea ]), according accumulation acid; addition, allene available bold characterization chromosome control courier; differences distilled divided element em; employed ethylene evaluated factor, function fungus genes, genes. hormone indicate means member mock-treated mutants network old oxide position potential presence program proximal pt;} quantities regulated resistance responsive reverse salt shared shoot significant stage stress, stress-responsive strongly studied subclade subclades suggests time tissue tissue, treated treatment treatment, treatments. upstream used values water weeks xylem


This option allows you to calculate the shipping price based on the order subtotal. Read more.
This option allows you to calculate the shipping price based on the total quantity of all items in an order. Read more.
This option allows you to calculate the shipping price based on the total weight of all items in an order. Read more.
Adjustments allow you to modify the calculated shipping price (either as a percentage or amount) for specified states or provinces in the United States or Canada. Read more.


"""Provides a class to manage a credential source
Classes:
* :class:`PublicKeyCredentialSource`
"""
"""
© Copyright 2020-2021 University of Surrey
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
"""
import os
import logging
import json
from crypto.crypto_provider import (AuthenticatorCryptoKeyPair,
CRYPTO_PROVIDERS,AuthenticatorCryptoPrivateKey)
from ctap.constants import AUTHN_PUBLIC_KEY_CREDENTIAL_DESCRIPTOR
from ctap.constants import AUTHN_PUBLIC_KEY_CREDENTIAL_USER_ENTITY
from ctap.constants import AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE
from authenticator.datatypes import PublicKeyCredentialRpEntity
import ctap.constants
log = logging.getLogger('debug')
[docs]class PublicKeyCredentialSource():
"""Manages a PublicKeyCredentialSource
"""
def __init__(self):
"""Initializes a new PublicKeyCredentialSource with default values
"""
self._alg = None
self._type="public-key"
self._id=None
self._rp_entity=None
self._sk = None
self._keypair = None
self._user_handle = None
self._other_ui=None
self._signature_counter= b'\x00\x00\x00\x00'.hex()
self._loaded_bytes=None
#TODO Add random alias so we don't use the RP name as the TPM Key, possibly in here or as an addition to the TPM class
[docs] def init_new(self,alg:int, key_pair:AuthenticatorCryptoKeyPair,
rp_entity:'PublicKeyCredentialRpEntity', user_entity:'PublicKeyCredentialUserEntity',
keytype="public-key"):
"""Initalises a new credential source, generating a new channel ID. This should
be called when creating new credential sources only, not when reloading a
previously generated one
Args:
alg (int): COSE algorithm for this credential source
key_pair (AuthenticatorCryptoKeyPair): Crypto key pair for credential
rp_id (PublicKeyCredentialRpEntity): Relying Party entity
user_entity (PublicKeyCredentialUserEntity): User Entity
keytype (str, optional): type. Defaults to "public-key".
"""
self._alg=alg
self._type=keytype
self.generate_id()
self._rp_entity = rp_entity
self._keypair = key_pair
self._user_handle = user_entity.get_id()
other_ui = user_entity.get_as_dict()
other_ui.pop(AUTHN_PUBLIC_KEY_CREDENTIAL_USER_ENTITY.ID.value)
self._other_ui=other_ui
[docs] def generate_id(self):
"""Generates a new random credential ID of size CREDENTIAL_ID_SIZE and
sets its value to _id in this credential source
"""
self._id=os.urandom(ctap.constants.CREDENTIAL_ID_SIZE)
[docs] def get_alg(self)->int:
"""Gets the algorithm for this credential
Returns:
int: COSE algorithm identifier
"""
return self._alg
[docs] def get_bytes(self, without_id=False)->bytes:
"""Constructs a JSON object containing the data associated with
this credential source and encodes the JSON String as bytes. This should
be used for storing the credential source to disk or when
the credential source is going to be wrapped and set on the server,
for example, a non-resident key.
without_id allows excluding the ID parameter, which in the case of a
non-resident key will be the wrapped encrypted data itself.
Args:
without_id (bool, optional): If set to True excludes the ID from the
data. Defaults to False.
Returns:
bytes: [description]
"""
data = {}
data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.TYPE.value] = self._type
if not without_id:
data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.ID.value] = self._id.hex()
data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.ALG.value] = self._alg
data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.RP_ID.value] = self._rp_entity.get_as_dict()
data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.USER_HANDLE.value] = self._user_handle.hex()
data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.OTHER_UI.value] = self._other_ui
data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.SIGNATURE_COUNTER.value] = self._signature_counter
data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.KEY_PAIR.value] = \
self._keypair.get_encoded().decode('utf-8')
return bytes(json.dumps(data), 'utf-8')
[docs] def debug(self)->dict:
"""Constructs a JSON str of the data within this credential
Returns:
dict: json debug object
"""
data = {}
data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.TYPE.value] = self._type
data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.ID.value] = self._id.hex()
data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.ALG.value] = self._alg
data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.RP_ID.value] = self._rp_entity.get_as_dict()
data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.USER_HANDLE.value] = self._user_handle.hex()
data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.OTHER_UI.value] = self._other_ui
data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.SIGNATURE_COUNTER.value] = self._signature_counter
data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.KEY_PAIR.value] = \
self._keypair.get_encoded().decode('utf-8')
return data
[docs] def get_public_key_credential_descriptor(self)->dict:
"""Returns a dictionary containing the public key
credential description, consisting of the credential
ID and the type.
The optional transports parameter is currently not set
but could be.
Returns:
dict: containing credential ID and type
"""
#PublicKeyCredentialDescriptor
desc = {}
desc[AUTHN_PUBLIC_KEY_CREDENTIAL_DESCRIPTOR.ID.value]=self._id
desc[AUTHN_PUBLIC_KEY_CREDENTIAL_DESCRIPTOR.TYPE.value]=\
AUTHN_PUBLIC_KEY_CREDENTIAL_DESCRIPTOR.TYPE_PUBLIC_KEY.value
#desc["transports"]=["usb"]
return desc
[docs] def from_bytes(self,data:bytes, without_id=False):
"""Loads a credential source from bytes. This should be called when
reloading a credential source from storage or after decrypting
a non-resident key.
without_id is used to indicate whether the id attribute should
be set, in the case of a non-resident key this should be True
due to the id being the encrypted contents of this.
Args:
data (bytes): bytes to load
without_id (bool, optional): True to exclude the ID (non-resident
key), False to set the ID. Defaults to False.
"""
self._loaded_bytes = data
data = json.loads(data.decode('utf-8'))
self._type=data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.TYPE.value]
if not without_id:
self._id= bytes.fromhex(data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.ID.value])
self._alg = data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.ALG.value]
self._rp_entity = PublicKeyCredentialRpEntity(data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.RP_ID.value])
self._signature_counter = data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.SIGNATURE_COUNTER.value]
self._keypair=CRYPTO_PROVIDERS[self._alg].load_key_pair(
data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.KEY_PAIR.value].encode('utf-8'))
self._user_handle = bytes.fromhex(
data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.USER_HANDLE.value])
self._other_ui=data[AUTHN_PUBLIC_KEY_CREDENTIAL_SOURCE.OTHER_UI.value]
[docs] def get_loaded_bytes(self)->bytes:
"""Gets the bytes that were originally loaded for this credential source or None
if it is new. This is used to index and updated stored credential sources
Returns:
bytes: Original bytes loaded into the credential source or None if new
"""
return self._loaded_bytes
[docs] def get_cose_public_key(self):
"""Encodes the public key in a COSE compatible format
Returns:
cose: COSE encoded public key
"""
return self._keypair.get_public_key().get_as_cose()
[docs] def get_signature_counter_bytes(self)->bytes:
"""Gets the signatures counter as bytes
Returns:
bytes: signature counter
"""
return bytes.fromhex(self._signature_counter)
[docs] def get_private_key(self)->AuthenticatorCryptoPrivateKey:
"""Gets the private key
Returns:
AuthenticatorCryptoPrivateKey: private key
"""
return self._keypair.get_private_key()
[docs] def get_signature_counter(self)->int:
"""Gets the signature counter as an integer
Returns:
int: integer encoded signature counter
"""
return int.from_bytes(bytes.fromhex(self._signature_counter),"big")
[docs] def increment_signature_counter(self):
"""Increments the signature counter
"""
self._signature_counter=(self.get_signature_counter() + 1).to_bytes(4, 'big').hex()
[docs] def set_id(self, user_id:bytes):
"""Sets the credential id
Args:
user_id (bytes): id to set
"""
self._id = user_id
[docs] def get_id(self)->bytes:
"""Get the credential id
Returns:
bytes: credential id as bytes
"""
return self._id
[docs] def set_private_key(self, private_key:AuthenticatorCryptoPrivateKey):
"""Sets the private key to private_key
Args:
private_key (AuthenticatorCryptoPrivateKey): private key to set
"""
self._sk = private_key
[docs] def set_type(self, cred_type:str):
"""Sets the type for this credential
Args:
cred_type (str): credential type, normally public-key
"""
self._type = cred_type
[docs] def get_type(self)->str:
"""Gets the type of this credential
Returns:
str: credential type, usually public-key
"""
return self._type
[docs] def set_rp_entity(self, rp_entity:'PublicKeyCredentialRpEntity'):
"""Sets the rp entity
Args:
rp_entity (PublicKeyCredentialRpEntity): RP entity to set
"""
self._rp_entity = rp_entity
[docs] def get_rp_entity(self)->'PublicKeyCredentialRpEntity':
"""Gets the associated RP Entity
Returns:
PublicKeyCredentialRpEntity: rp entity associated with credential source
"""
return self._rp_entity
[docs] def set_user_handle(self, user_handle:bytes):
"""Sets the user handle
Args:
user_handle (bytes): user handle to set
"""
self._user_handle=user_handle
[docs] def get_user_entity(self, include_identifiable:bool=False)->dict:
"""Gets the user entity for this credential source
if include_identifiable is set it will include user identifiable
information in the dictionary (other_ui), otherwise it will not
Args:
include_identifiable (bool, optional): set to True to include
user identifiable information. Defaults to False.
Returns:
dict: contain a minimum of the user handle (id) and possibly
other_ui as well
"""
result = {}
if include_identifiable:
result = self._other_ui.copy()
result[AUTHN_PUBLIC_KEY_CREDENTIAL_USER_ENTITY.ID.value] = self._user_handle
return result
result[AUTHN_PUBLIC_KEY_CREDENTIAL_USER_ENTITY.ID.value] = self._user_handle
return result
[docs] def set_other_ui(self, other_ui:dict):
"""Sets the other UI components
Args:
other_ui (dict): dictionary of other UI data from the user entity
"""
self._other_ui = other_ui
[docs] def get_other_ui(self)->dict:
"""Gets the other UI components from the user entity
Returns:
dict: containing other ui elements
"""
return self._other_ui


Ocean [ad29], ocean, in Crystal Sea
Last updated Turn #125
Ocean [ad29], ocean, in Crystal Sea
------------------------------------------------------------------------
17: Sirocco Traveller [ja8y], ship, 10 hulls, 1 rowing port, 30 sails,
17: 4% damaged, arrived from Ocean [ad30], owner:
17: Toulouse [h1q], Pen, with one worker, 32 sailors
18: Sirocco Traveller [ja8y], ship, 10 hulls, 1 rowing port, 30 sails,
18: 4% damaged, departed for Ocean [ad28].
Routes leaving Ocean:
North, to Ocean [ac29], 6 days
East, to Ocean [ad30], 6 days
South, to Ocean [ae29], 6 days
West, to Ocean [ad28], 6 days


Hello! I'm Sulay, a recent ICT graduate based in Ahmedabad, India.
Getting insights out of data is something I really like. I have previously interned at moja global as a part of Google Summer of Code and at Space Applications Centre, ISRO as a research trainee. At both places, I made environmental products by using data.
Here are a few technologies i've worked with recently:


SLEEPAWAY CAMP A film review by Andrew Iaderosa Copyright 1997 Andrew Iaderosa
****1/2 out of *****
As my first review, I thought that I would do one of my favorites. This film is hated by many a people, but for some reason, I have a direct fondness for it. It was made in 1983, and because it did so good on video, it spawned SLEEPAWAY CAMP 2: UNHAPPY CAMPERS(1988), and also SLEEPAWAY CAMP 3: TEENAGE WASTELAND(1988), both filmed back to back. From what I have heard, a fourth one has been planned, but I have no information about it.
The opening scene of the film has a father, sister, and brother in sailboat on a lake. The sailboat flips and one of the children dies after getting run over by a group of careless teens water skiing. Years later, a mom is getting her niece and son ready for camp. They go to camp, and the niece, who's name is Angela, gets teased endlessly because she does not speak.  But then the killings start! Most of them are normal for a horror movie, and the whole camp is in a scare because of them. The owner is afraid because he might have to shut down the camp because of the killings.
More people get killed, including the 90210 girl, and the owner. The whole time, the audience is kept in suspense wondering who did the murders. Then we find out who did it. I will not say who it is, you have to find that out. The last couple of frames in the movie are some of the wierdest, scariest, and grossest that I have seen in recent memory.
My suggestion to this film is that you watch it alone first, and then after that, show it to people. It is pretty damn funny watching them guess the whole time, and then their faces of disgust at the end.
SLEEPAWAY CAMP 1983 Staring Felissa Rose and Robert Earl Jones Directed by Micheal Hiltzik Released on video by Media MPAA Rating: R (for strong language, heavy violence, and nudity)
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


We want mirrorme to contribute to an open community. To prevent abuse, we have written these community guidelines:
A primary goal of MirrorMe is to be inclusive to the largest number of contributors, with the most varied and diverse backgrounds possible. As such, we are committed to providing a friendly, safe and welcoming environment for all, regardless of gender, sexual orientation, ability, ethnicity, socioeconomic status, and religion (or lack thereof).
This code of conduct outlines our expectations for all those who participate in our community, as well as the consequences for unacceptable behavior.
We invite all those who participate in MirrorMe to help us create safe and positive experiences for everyone.
A supplemental goal of this Code of Conduct is to increase open [source/culture/tech] citizenship by encouraging participants to recognize and strengthen the relationships between our actions and their effects on our community.
Communities mirror the societies in which they exist and positive action is essential to counteract the many forms of inequality and abuses of power that exist in society.
If you see someone who is making an extra effort to ensure our community is welcoming, friendly, and encourages all participants to contribute to the fullest extent, we want to know.
The following behaviors are expected and requested of all community members:
The following behaviors are considered harassment and are unacceptable within our community:
No weapons will be allowed at MirrorMe events, community spaces, or in other spaces covered by the scope of this Code of Conduct. Weapons include but are not limited to guns, explosives (including fireworks), and large knives such as those used for hunting or display, as well as any other item used for the purpose of causing injury or harm to others. Anyone seen in possession of one of these items will be asked to leave immediately, and will only be allowed to return without the weapon. Community members are further expected to comply with all state and local laws on this matter.
Unacceptable behavior from any community member, including sponsors and those with decision-making authority, will not be tolerated.
Anyone asked to stop unacceptable behavior is expected to comply immediately.
If a community member engages in unacceptable behavior, the community organizers may take any action they deem appropriate, up to and including a temporary ban or permanent expulsion from the community without warning (and without refund in the case of a paid event).
If you are subject to or witness unacceptable behavior, or have any other concerns, please notify a community organizer as soon as possible. [CONTACT_INFO_HERE].
[LINK_TO_REPORTING_GUIDELINES]
Additionally, community organizers are available to help community members engage with local law enforcement or to otherwise help those experiencing unacceptable behavior feel safe. In the context of in-person events, organizers will also provide escorts as desired by the person experiencing distress.
If you feel you have been falsely or unfairly accused of violating this Code of Conduct, you should notify<EMAIL_ADDRESS>with a concise description of your grievance. Your grievance will be handled in accordance with our existing governing policies. [LINK_TO_POLICY]
[NOTE: Every organization's governing policies should dictate how you handle warnings and expulsions of community members. It is strongly recommended that you mention those policies here or in Section 7 and that you include a mechanism for addressing grievances.]
We expect all community participants (contributors, paid or otherwise; sponsors; and other guests) to abide by this Code of Conduct in all community venues--online and in-person--as well as in all one-on-one communications pertaining to community business.
This code of conduct and its related procedures also applies to unacceptable behavior occurring outside the scope of community activities when such behavior has the potential to adversely affect the safety and well-being of community members.
[YOUR_CONTACT_INFO_HERE -- this should be a single person or a small team who can respond to issues directly]
The Citizen Code of Conduct is distributed by Stumptown Syndicate under a Creative Commons Attribution-ShareAlike license.
Portions of text derived from the Django Code of Conduct and the Geek Feminism Anti-Harassment Policy.
Revision 2.3. Posted 6 March 2017.
Revision 2.2. Posted 4 February 2016.
Revision 2.1. Posted 23 June 2014.
Revision 2.0, adopted by the Stumptown Syndicate board on 10 January 2013. Posted 17 March 2013.


If you've ever wondered if the three lengths of substrate you have can be formed into the geometrical
wonder known as the triangle, and if so what to call the resulting triangle, this is the tool for you.
Simply enter the measurements of the 3 pieces from which you'd like to try building a triangle:
You entered , ,
These lengths will form a(n) triangle.
It is impossible to form a triangle with these lengths. Hint: At least two sides must add to be more than the third side in order to form a triangle.
Equilateral triangles
Isosceles triangles
Scalene triangles
If you don't have anything readily available to measure for triangle-ability, try generating some random numbers to be the lengths of the three sides and see if they make a triangle.


|
RUNAWAY JURY
Judge J. Howard Sundermann
This is another John Grisham
book adapted to the screen. It is a combination of courtroom
drama, espionage thriller and heist film. The heist is of the
jury. The film opens with what has become all too common today,
an office massacre where a number of people are killed. This
scene is done well as we experience the fear and helplessness
of those in the office, but the audience is spared the visual
violence. A widow of one of the victims sues the gun company
who manufactured the weapon used by the killer. She hires Wendell
Rohr, an anti-gun lawyer, played by Dustin Hoffman. The industry
used in the book as the "bad guy" is the cigarette
industry and I'm not sure why the industry was changed to guns
in the movie. The lawyer for the defendant is almost irrelevant,
as the super jury consultant, Rankin Fitch (played terrifically
by Gene Hackman) is really running the defense team. The political
viewpoint of the film is clearly anti-gun. The executives of
the gun companies are portrayed as cartoon characters that could
care less about anything but protecting their industry and are
willing to win at all costs. This is why they hired Hackman,
who has never lost a case.
Part of the fun of the film is
watching Hackman in his control room with the computers and large
screens from where he is seemingly able to see everything. You
aren't sure if he is picking a jury or running Gulf War II. He
has a full history on each potential juror along with his or
her vulnerable points. Two important considerations, that could
be credited to artistic license; are left out of the movie: (1)
the cost and legality of all of this is not determined, and (2)
the amount of time it takes to obtain all of the jury information
is not addressed. Hackman's character is a control freak running
everything and tells his clients, "Trials are too important
to be left to juries."
Unknown to either side, as the trial starts, one of the jurors,
played by John Cusack, and his girlfriend have their own scam.
Cusack claims he can swing the jury either way and his girlfriend
contacts both the plaintiff and defense to tell them that the
jury can go their way for ten million dollars. In some good scenes,
Cusack and the girlfriend demonstrate their control of the jury.
This film, unlike most legal films, does show scenes inside the
jury room, and only Twelve Angry Men has more jury scenes.
Again a little artistic license is taken, as it never becomes
clear how Cusack got on the jury (he is not even from the city
of the trial) or how he can swing the jury the way he wants.
There is a great scene in the courthouse men's room when Hackman
and Hoffman actually meet for the first time. It is the idealist
character v. the total agnostic character. But, even Hoffman's
character is not pristine pure. For a while Hoffman actually
considers paying the ten million, reasoning that this would be
better than losing this important case for gun control. The final
explanation at the end is a little weak, and there are some holes
in the plot that I pointed out, but it is good filmmaking and
I recommend it.
Posted October 29, 2003
|


When you've set up Direct Routing for your organization, there will be different options available to help manage it day to day.
In your clothing retailer, you've completed your Direct Routing configuration. Now you want to ensure that the system runs smoothly and that you can diagnose and correct any potential problems before they become a problem for users.
Here, you'll learn about management tools in Microsoft Teams Direct Routing.
When you have a Direct Routing environment in place, there are several components involved to make sure everything is running smoothly. For example, you might have a Session Border Controller (SBC), or maybe multiple SBCs connected to Microsoft Teams. You may even have a third-party private branch exchange (PBX) system:
The question then becomes: how do you monitor your environment and manage what's going on?
You can use the health dashboard in the Microsoft Teams admin center portal to monitor the overall health of your connected SBCs. The health dashboard is usually the best place to start. If your SBC isn't working, you can't make or receive calls through it, so you'll need to address that first.
To access the health dashboard, you select Direct Routing under Voice on the left menu in Microsoft Teams admin center:
The health dashboard shows details of all your SBCs and which ones might be having issues. You can select individual issues to discover more, and to help figure out how to resolve them.
You can also select a specific SBC to dig deeper:
You'll have access to details such as when it last made a successful Transport Layer Security (TLS) connection, how many concurrent calls the SBC has handled, and more.
The Call Quality Dashboard operates in near real time and helps you to see user calls that contain all of the end-user identifiable information, like call details, user IDs, full IP addresses of users, MAC address details, and more. This data is also aggregated, so you can use trend analysis on calls, based on this information.
The Call Quality Dashboard also gives you access to Power BI reports that include summary reports, help desk reports, user feedback reports, mobile device reports, and more. The reports are available in the dashboard, but you can also download them to use with your Power BI desktop application for further analysis and reporting.
You can also use call analytics available in the Microsoft Teams admin center to dig deeper into individual calls.
Call analytics gives you access to information like call reliability and quality for any individual call. A user might have experienced and reported bad call quality, or that the call had dropped out at some point. You can use call analytics to investigate and figure out how to fix the issue.
Your SBC could also be connected to other environments, giving you access to logs that help you troubleshoot or debug issues. If your SBC communicates with a third-party PBX, you can also collect logs from there.
You can also work with your PSTN provider to get additional insight into issues that might arise from the PSTN side of your environment.
Some SBC configuration issues are common and have known solutions for dealing with them. For example, the failed to verify peer certificate issue is common. SBCs rely on TLS to make sure that the device or person on the other end is indeed who they claim to be. To communicate successfully with the Microsoft Phone System, you'll need to make sure you import the Baltimore Root Certificate into your SBC. All vendor documentation for configuring your SBC will have a step that covers this area. If you forget to import this certificate, the SBC won't trust the service. That's why you'll have received an error.
Here are some other configuration issues, along with common solutions to resolve them:


Time-jittered blended marine acquisition on non-uniform spatial grids
This application is available only in the software release for members of SINBAD consortium.
This package contains a MATLAB implementation of a 2-D time-jittered blended marine acquisition scheme on non-uniform spatial (source) grid, and a deblending algorithm based on sparse inversion via one-norm-minimization incorporating the non-equispaced fast discrete curvelet transform.
Author: Haneet Wason<EMAIL_ADDRESS>Date: August, 2015
Contents
Downloading & Dependencies
The code can be found in the SLIM sofware release under applications/Acquisition/TimeJitteredOBS_OffTheGrid.
The code has been tested with Matlab R2014b.
This code uses the following packages, also found in the tools part of the SLIM software release.
- utilities/SPOT - object oriented framework for matrix-free linear algebra.
- utilities/SegyMAT - Matlab/Octave toolbox for reading and writing SEG-Y formatted files.
- functions/misc - miscellaneous functions.
- solvers/SPGL1-SLIM - SLIM version of SPGL1 solver.
- transforms/CurveLab-2.1.2-SLIM - curvelet transform functions.
Functions
Some functions specific to this package can be found in the applications/Acquisition/TimeJitteredOBS_OffTheGrid/misc_funcs directory.
Running & Parallelism
All the examples and results are produced by the scripts found in this software release under applications/Acquisition/TimeJitteredOBS_OffTheGrid. Start matlab from that directory or run startup in that directory to add the appropriate paths.
To run the scripts follow the instructions in the README file enclosed with the code.
Read more about SLIM's approach to parallel computing in Matlab.
Examples and results
Examples and results are shown here. Scripts to reproduce the results can be found under applications/Acquisition/TimeJitteredOBS_OffTheGrid/examples.
References
[1] Haneet Wason and Felix J. Herrmann [2013]. Time-jittered ocean bottom seismic acquisition. SEG Technical Program Expanded Abstracts, vol. 32, pp. 1-6.
[2] Gilles Hennenfent, Lloyd Fenelon and Felix J. Herrmann [2010]. Nonequispaced curvelet transform for seismic data reconstruction: a sparsity-promoting approach, Geophysics, vol. 75, pp. WB203-WB210.
[3] Haneet Wason, Felix Oghenekohwo and Felix J. Herrmann [2015]. Presented at the 77th EAGE Conference & Exhibition (2015), doi: 10.3997/2214-4609.201413088.
Acknowledgements
Thanks to our sponsors and NSERC for their financial support.


Do you want to save changes you made to document before closing?
If you don't save, your changes will be lost.
Note: If you click on the black area outside of this modal window it will not hide.