Company profile - Canadian Company Capabilities
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Symcod Inc.
Mailing Address:
1171, rue Notre-Dame O.VICTORIAVILLE, Quebec
G6P 7L1
Location Address:
1171, rue Notre-Dame O.VICTORIAVILLE, Quebec
G6P 7L1
Tel.:<PHONE_NUMBER>
Tel.:<PHONE_NUMBER>
Fax:<PHONE_NUMBER>
Logo
Company Profile
Symcod Inc. specializes in electronic data collection. Since
1990, our team devises, develops and manufactures bar code
reading equipment for all industrial fields such as: food, wood,
steel, shoe, aerospace, etc... To obtain management information
precisely to help taking the right decisions at the right time
(maybe even for each contract), it is possible to pick up the
information right where it is, directly in the hands of the
workers (on-line data). There is no need to wait for production
forms data to be transcribed via a keyboard and to be available
only the day after.
With Symcod equipment, our customers know, in real time, the
labour cost by batch of production and the productivity of each
employee and they have their production reports, right away. It
is also easier to measure deadlines to produce each order.
(Manufacturers with bar coding system(s) for production and/or
inventory management rank among the first, without being
continually out of breath to respect too short deadlines.) Our
terminals also enhance the potential of production and inventory
sotwares.
Symcod Inc. also manufactures sealed PC's & sealed terminals
(standard models & FL:Fork Lift) for harsh environments (ex.:
cleaning products, fine dust, water, humidity, etc...) and they
are not only used for data collection. Symcod Inc. has also
developed an expertise in radio frequency (terminal without
wire). We are consultants & system integrators, too. Symcod Inc.
distributes several electronic data collections like the optical
and laser guns & printing barcode softwares. Briefly, we offer a
complete solution in equipment for electronic data collection.
At the moment, a reseller distributes our readers in Saudi
Arabia & Tunisia. An importer from Montreal also exports our
products in Romania and we have recently (fall 97) exported our
sealed terminals in Mexico. These Mexican customers were looking
for an identification system from one end to the other of the
slaughter houses i.e. all the pork pieces, the name of the
producer, its weight, the depreciation, its price, (all,
according to the software qualifications). So, they needed a
sealed terminal on the killing floor. We were the only one to
offer a stainless steel system.
Presently we are working on a very substantial contract with our
Romanian customer for data collection in many clothing factories.
Having a good network of contacts, a very sharp expertise and
the flexibility to offer a customized product allows one not
only to satisfy the customer but to anticipate his requirements
An example of this would be offering equipment that is less
expensive according to his needs or not stopping production
while repairs are conducted. Those qualifications give us an
excellent reputation and allows us to preserve varied customers
(PME, multinational, distributors, resellers, retail merchants,
etc...)
Since the beginning (December 1990), Symcod Inc. has always
listened to the customer's need to expand data collection
products and other related products for harsh environments; this
allows a quick return on investment for the company and to be on
the look-out for new ideas.
Full profile
Full profile
Contact information
Company description
Product / Service / Licensing
Advantages:
. Eliminates lost of time
. Increases productivity
. Allows an exact follow of workshop
. Eliminates data entry mistakes
. Decreases physical handling of documents
. Decreases paper consumption
. AVAILABLE VERSIONS: TCP/IP and RS-422/485.
A reversible stand is included for desk or wall mount
installations.
(For more info., see WEB page: www.symcod.com)
Applications:
. Production Management
- work-power cost
- material cost
. Electronic punch
. Access control
Affordable real-time data collection terminal with Ethernet
standard 10BaseT (TCP/IP) communication or in RS-422/485
Multidrop communication. Data can be entered via the membrane
keyboard, barcode slot reader or any other external
device in "Wand Emulation" mode. Validations, messages and
acknowledgments are shown on a 2 line by 40 character LCD
screen. The TCP/IP model works will all operating systems and
the RS-422 model with almost all operating systems. These
products are manufactured entirely in Quebec. This allows to
offer a quick after-sales service.
- Enclosure: robust plastic
- Option: B+ (for other symbologies)
cable(s) protector
Type of barcodes:
- Codes: Code 39 standard and extended, Code 128, Codabar, UPC
A, UPC E0, UPC E1, EAN/JAN 8, EAN/JAN 13 and Interleave 2 of 5.
Auto discrimination of the type of barcode.
Warranty :
l year (parts & labor in workshop)
N.B: Our products are also sold in Tunisia, Saoudi Arabia,
Romania, Australia, United States, France, England.
TERMICOM SERIE (TermiCom SE (sealed), TermiCom TC (splashproof)
and TermiCom FLX (to fix on Fork Lift):
TERMICOM SE:
Advantages:
. Standard micro-computer.
. Survive the toughest environment
. Can be washdown
. Can be hooked to any host system
. Easily used by the operator
. Is a varied and efficient tool
Applications:
The TermiCom SE is industrial micro-computer built to survive
the toughest environment. Its stainless steel casing is
protective and yet meets the highest standard of hygiene (food
industries). The base configuration is a Geode 300 MHZ
processor and a 12.1" TFT color screen. In option, touchscreen,
keyboard, stand and RF network interface possibilities. Offers
multiple I/O and sealed industrial connectors. Many other
options are available like Wand Emulation barcode port, laser
gun, slot reader, etc.
For more info, please visit: www.symcod.com
TermiCom TC: versatile splashproof computer.
Touchscreen option includes a special touch pen (with a steel
wire attached to the terminal) to point out with precision on
the touchscreen.
Please, visit our Web site: www.symcod.com for more info.
TERMICOM-FLX(TO FIX ON FORK LIFTS):
The Termicom-FLX is an industrial micro-computer (or terminal)
which allows the user to take the inventory directly from the
lift. It is powered by the forklift truck battery. The base
configuration is a Geode 300 MHZ processor and a 12.1" TFT color
screen. In option, you can plug a keyboard, laser gun,
touchscreen, etc. Please note that its use is not only for data
collection.
Please, visit www.symcod.com for more info.
computer and allows you to activate relays.
It works on all explorating systems which have access to a
serial port.
Application exemple: to ring a bell, to activate the light network
of the entreprise, to activate machinery...
port. Allows an application to see a RS-232 serial device over
the Ethernet network. With its 2 integrated dry contacts
(relays), it can turn on/off lights, bells, machines, etc.
according to the application. A TTL input is available to
detect an open door, for example. Can be used as a RS-232
serial switch by connecting it to the PC via the serial port.
IP43, résistance à leau et à la poussière
Branchement USB type A, RS-232
Avec ou sans support main libre
Domaines principaux dutilisation : entreprises manufacturières de tous types
Ethernet 100BaseT
Stainless steel case
6 digits (7 segments), 4" red HH:MM;SS
Visibility up to 200ft
Network synchronisation
Used by: manufacturing companies of all types
Symcod Vision digital clock / display
Ethernet 100BaseT
PVC case
4 digits 2.3" (7 segments) red/green HH:MM
Visibility up to 75ft
Network synchronisation
Used by: manufacturing companies of all types
Technology profile
Market profile
Alliances:
- Sales/Marketing
Industry sector market interests:
- Forestry
- Manufacturing
- Aerospace
- Food and Beverage Manufacturing
- Primary and Fabricated Metal
Geographic markets:
Export experience:
- France
- Puerto Rico
- Romania
- United Kingdom
- United States
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Contacts
Contact information
Description
Company description
Products, services and licensing
Product / Service / Licensing
Advantages:
. Eliminates lost of time
. Increases productivity
. Allows an exact follow of workshop
. Eliminates data entry mistakes
. Decreases physical handling of documents
. Decreases paper consumption
. AVAILABLE VERSIONS: TCP/IP and RS-422/485.
A reversible stand is included for desk or wall mount
installations.
(For more info., see WEB page: www.symcod.com)
Applications:
. Production Management
- work-power cost
- material cost
. Electronic punch
. Access control
Affordable real-time data collection terminal with Ethernet
standard 10BaseT (TCP/IP) communication or in RS-422/485
Multidrop communication. Data can be entered via the membrane
keyboard, barcode slot reader or any other external
device in "Wand Emulation" mode. Validations, messages and
acknowledgments are shown on a 2 line by 40 character LCD
screen. The TCP/IP model works will all operating systems and
the RS-422 model with almost all operating systems. These
products are manufactured entirely in Quebec. This allows to
offer a quick after-sales service.
- Enclosure: robust plastic
- Option: B+ (for other symbologies)
cable(s) protector
Type of barcodes:
- Codes: Code 39 standard and extended, Code 128, Codabar, UPC
A, UPC E0, UPC E1, EAN/JAN 8, EAN/JAN 13 and Interleave 2 of 5.
Auto discrimination of the type of barcode.
Warranty :
l year (parts & labor in workshop)
N.B: Our products are also sold in Tunisia, Saoudi Arabia,
Romania, Australia, United States, France, England.
TERMICOM SERIE (TermiCom SE (sealed), TermiCom TC (splashproof)
and TermiCom FLX (to fix on Fork Lift):
TERMICOM SE:
Advantages:
. Standard micro-computer.
. Survive the toughest environment
. Can be washdown
. Can be hooked to any host system
. Easily used by the operator
. Is a varied and efficient tool
Applications:
The TermiCom SE is industrial micro-computer built to survive
the toughest environment. Its stainless steel casing is
protective and yet meets the highest standard of hygiene (food
industries). The base configuration is a Geode 300 MHZ
processor and a 12.1" TFT color screen. In option, touchscreen,
keyboard, stand and RF network interface possibilities. Offers
multiple I/O and sealed industrial connectors. Many other
options are available like Wand Emulation barcode port, laser
gun, slot reader, etc.
For more info, please visit: www.symcod.com
TermiCom TC: versatile splashproof computer.
Touchscreen option includes a special touch pen (with a steel
wire attached to the terminal) to point out with precision on
the touchscreen.
Please, visit our Web site: www.symcod.com for more info.
TERMICOM-FLX(TO FIX ON FORK LIFTS):
The Termicom-FLX is an industrial micro-computer (or terminal)
which allows the user to take the inventory directly from the
lift. It is powered by the forklift truck battery. The base
configuration is a Geode 300 MHZ processor and a 12.1" TFT color
screen. In option, you can plug a keyboard, laser gun,
touchscreen, etc. Please note that its use is not only for data
collection.
Please, visit www.symcod.com for more info.
computer and allows you to activate relays.
It works on all explorating systems which have access to a
serial port.
Application exemple: to ring a bell, to activate the light network
of the entreprise, to activate machinery...
port. Allows an application to see a RS-232 serial device over
the Ethernet network. With its 2 integrated dry contacts
(relays), it can turn on/off lights, bells, machines, etc.
according to the application. A TTL input is available to
detect an open door, for example. Can be used as a RS-232
serial switch by connecting it to the PC via the serial port.
IP43, résistance à leau et à la poussière
Branchement USB type A, RS-232
Avec ou sans support main libre
Domaines principaux dutilisation : entreprises manufacturières de tous types
Ethernet 100BaseT
Stainless steel case
6 digits (7 segments), 4" red HH:MM;SS
Visibility up to 200ft
Network synchronisation
Used by: manufacturing companies of all types
Symcod Vision digital clock / display
Ethernet 100BaseT
PVC case
4 digits 2.3" (7 segments) red/green HH:MM
Visibility up to 75ft
Network synchronisation
Used by: manufacturing companies of all types
Technology
Technology profile
Market
Market profile
Alliances:
- Sales/Marketing
Industry sector market interests:
- Forestry
- Manufacturing
- Aerospace
- Food and Beverage Manufacturing
- Primary and Fabricated Metal
Geographic markets:
Export experience:
- France
- Puerto Rico
- Romania
- United Kingdom
- United States


Use the list below to navigate to individual Projects. Click on any project to go directly to its details page.
No results found for "{{tableParams.keywords}}"
Show Items Per Page:


risk_dash¶
risk_dash is a framework to help simplify the data flow for a portfolio of assets and handle market risk metrics at the asset and portfolio level. If you clone the source repository, included is a Dash application to be an example of some of the uses for the package.
Disclaimer: Due to data issues, only up to March 28th EOD is available from Quandl’s WIKI EOD Stock Prices found in the example application.¶
Abstract¶
While there are many Python packages that provide ways to do data analysis, in fact the package utilizes pandas, numpy, and scipy heavily, there are few that apply and handle common tasks that analysts face in quantifying market risk. pyfolio is one of those packages, however it forces you to utilize their infrastructure package Zipline where as risk_dash aims to provide a framework to formalize the data flow while being totally customizable for the analyst. risk_dash is comprised of classes and methods to handle the data flow and calculation of market risk metrics at the asset and portfolio level. In use, this package should ease the developer’s work in building a comprehensive risk analytics application and specifying the underlying risk distribution. This package does not aim to generate trade ideas, but quantify the market risks portfolios of securities face. Included is an example of an application that utilizes this framework focusing on an equity portfolio.
Thesis Steps¶
First create a framework package, risk_dash, to handle a portfolio of assets, then create a risk application to calculate and display common risk factors and metrics to present common uses for the framework, including: Value at Risk, Expected Portfolio Return and Volatility, Current Return, Systematic risk (Fama - French / CAPM)
To accomplish this task, I am planning on using current research and python packages. I am planning on using Dash by Plotly to create the front end user interface and deploying the underlying Flask app on either DigitalOcean or Heroku
The object model is housed in ~/risk_dash/
where as the application
pages are in ~/pages/
and are managed by /dashapp.py
While risk_dash only needs a few dependencies,pandas, numpy, scipy,quandl, and requests, the included application uses the dependencies listed in requirements.txt which can be installed by:
pip install -r requirements.txt
It is highly recommended that you should use a virtual environment when running the package, for details check the Python documentation
Getting Started - Locally Running the Dash App¶
First add file apiconfig.py
to the directory at the same level as
dashapp.py
. That file should contain all of the api information to
source the market data. I’m using Quandl
so my apiconfig.py
file is the following:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
quandl_apikey = 'quandl-api-key' # replace with valid key
To use a different market data source, first write a specific
MarketData
class in market_data.py
To run the server locally using the underlying Flask Server, run the following command:
python dashapp.py
If you wanted to use gunicorn
to run the server, you would just run
gunicorn dashapp:server
from the command line.
Documentation¶
Hosted documentation is coming soon. Below is a high level overview of the project:
Object Model¶
The framework seeks to address a solution to the data pipeline, since the scale is manageable within memory at the moment, that pipeline includes:
Gathering required data from source systems, i.e. market data, portfolio data, security data
Managing that data, potentially storing as scale increases
Manipulating to create new data
Returning or storing results
To handle that pipeline, the current model is:
Portfolio
Security
SimulationGenerator
MarketData
FundamentalData (Not implemented)
MarketData objects should be the source of the data for a particular Security (or underlier if a derivative security), attributes: - Prices - Source engine (where the data comes from) - Common metrics (first integrated series ‘daily price change’, shape, dispersion)
SimulationGenerator objects should dictate how any simulation should be conducted, attributes: - Transformation methods - Number of observations - Lookback period, if necessary
Security objects could be any asset, those assets have: - Identification data: Ticker, CUSIP, Exchange - Security specific data: expiry, valuation functions - Market data: Closing prices, YTM - Risk Attributes
The Portfolio object as a collection of Security objects and potentially other Portfolio objects, since we could have different hierarchal structures within the book - This then should house the VCV and common historic market data
File Structure¶
-app.py
-dashapp.py
-pages
| -- portfolio_metrics.py
| -- single_ticker.py
-objects
| -- securities.py
| -- simgen.py
| -- market_data.py
Current App Features¶
Query an individual stock
See the past 5 YR candlestick chart
See a Monte Carlo simulated vs Historic price distribution
View distribution stats
Value at Risk for individual stock
Annualized vol
Annualized Expected Return
Simply Weighted/ Exponentially Weighted
Variable lookback period
Variable sample size
User upload stock portfolio
Mark at current price
Calculate portfolio weights
Future App/Package Features¶
Expected Return / Variance / Distribution
Beta to selected market
S&P 500
Russel 5000
Selected ETF
User selection of MonteCarlo Method
Option Pricing for individual stock
Forward looking PDF for Portfolio returns
Bayesian modeling
ARIMA
Backtesting tool - common trading strategies
“Buy and Hold”
License¶
This project is licensed under the the MIT License - see the LICENSE.md file for details


Defining relations between different objects in your application should be a natural process. For example, an article may have many comments, and belong to an author. Authors may have many articles and comments. CakePHP makes managing these associations easy. The four association types in CakePHP are: hasOne, hasMany, belongsTo, and belongsToMany.
| Relationship | Association Type | Example |
|---|---|---|
| one to one | hasOne | A user has one profile. |
| one to many | hasMany | A user can have multiple articles. |
| many to one | belongsTo | Many articles belong to a user. |
| many to many | belongsToMany | Tags belong to many articles. |
Associations are defined during the initialize()
method of your table
object. Methods matching the association type allow you to define the
associations in your application. For example if we wanted to define a belongsTo
association in our ArticlesTable:
namespace App\Model\Table;
use Cake\ORM\Table;
class ArticlesTable extends Table
{
public function initialize(array $config)
{
$this->belongsTo('Authors');
}
}
The simplest form of any association setup takes the table alias you want to associate with. By default all of the details of an association will use the CakePHP conventions. If you want to customize how your associations are handled you can modify them with setters:
class ArticlesTable extends Table
{
public function initialize(array $config)
{
$this->belongsTo('Authors', [
'className' => 'Publishing.Authors'
])
->setForeignKey('authorid')
->setProperty('person');
}
}
You can also use arrays to customize your associations:
$this->belongsTo('Authors', [
'className' => 'Publishing.Authors',
'foreignKey' => 'authorid',
'propertyName' => 'person'
]);
Arrays however do not offer the typehinting and autocomplete benefit the fluent interface does.
The same table can be used multiple times to define different types of associations. For example consider a case where you want to separate approved comments and those that have not been moderated yet:
class ArticlesTable extends Table
{
public function initialize(array $config)
{
$this->hasMany('Comments')
->setConditions(['approved' => true]);
$this->hasMany('UnapprovedComments', [
'className' => 'Comments'
])
->setConditions(['approved' => false])
->setProperty('unapproved_comments');
}
}
As you can see, by specifying the className
key, it is possible to use the
same table as different associations for the same table. You can even create
self-associated tables to create parent-child relationships:
class CategoriesTable extends Table
{
public function initialize(array $config)
{
$this->hasMany('SubCategories', [
'className' => 'Categories'
]);
$this->belongsTo('ParentCategories', [
'className' => 'Categories'
]);
}
}
You can also setup associations in mass by making a single call to
Table::addAssociations()
which accepts an array containing a set of
table names indexed by association type as an argument:
class PostsTable extends Table
{
public function initialize(array $config)
{
$this->addAssociations([
'belongsTo' => [
'Users' => ['className' => 'App\Model\Table\UsersTable']
],
'hasMany' => ['Comments'],
'belongsToMany' => ['Tags']
]);
}
}
Each association type accepts multiple associations where the keys are the aliases, and the values are association config data. If numeric keys are used the values will be treated as association aliases.
Let’s set up a Users Table with a hasOne relationship to an Addresses Table.
First, your database tables need to be keyed correctly. For a hasOne
relationship to work, one table has to contain a foreign key that points to a
record in the other. In this case the addresses table will contain a field
called user_id
. The basic pattern is:
hasOne: the other model contains the foreign key.
| Relation | Schema |
|---|---|
| Users hasOne Addresses | addresses.user_id |
| Doctors hasOne Mentors | mentors.doctor_id |
Note
It is not mandatory to follow CakePHP conventions, you can override the use of any foreignKey in your associations definitions. Nevertheless sticking to conventions will make your code less repetitive, easier to read and to maintain.
If we had the UsersTable
and AddressesTable
classes made we could make
the association with the following code:
class UsersTable extends Table
{
public function initialize(array $config)
{
$this->hasOne('Addresses');
}
}
If you need more control, you can define your associations using the setters. For example, you might want to limit the association to include only certain records:
class UsersTable extends Table
{
public function initialize(array $config)
{
$this->hasOne('Addresses')
->setName('Addresses')
->setConditions(['Addresses.primary' => '1'])
->setDependent(true);
}
}
Possible keys for hasOne association arrays include:
foreignKey
. If not specified, the primary key (for
example the id column of the Users
table) will be used.['Addresses.primary' => true]
true
, and an entity is
deleted, the associated model records are also deleted. In this case we set it
to true
so that deleting a User will also delete her associated Address.true
, cascaded
deletes will load and delete entities so that callbacks are properly
triggered. When false
, deleteAll()
is used to remove associated data
and no callbacks are triggered.address
in our example.Once this association has been defined, find operations on the Users table can contain the Address record if it exists:
// In a controller or table method.
$query = $users->find('all')->contain(['Addresses']);
foreach ($query as $user) {
echo $user->address->street;
}
The above would emit SQL that is similar to:
SELECT * FROM users INNER JOIN addresses ON addresses.user_id = users.id;
Now that we have Address data access from the User table, let’s define a belongsTo association in the Addresses table in order to get access to related User data. The belongsTo association is a natural complement to the hasOne and hasMany associations - it allows us to see related data from the other direction.
When keying your database tables for a belongsTo relationship, follow this convention:
belongsTo: the current model contains the foreign key.
| Relation | Schema |
|---|---|
| Addresses belongsTo Users | addresses.user_id |
| Mentors belongsTo Doctors | mentors.doctor_id |
Tip
If a Table contains a foreign key, it belongs to the other Table.
We can define the belongsTo association in our Addresses table as follows:
class AddressesTable extends Table
{
public function initialize(array $config)
{
$this->belongsTo('Users');
}
}
We can also define a more specific relationship using the setters:
class AddressesTable extends Table
{
public function initialize(array $config)
{
$this->belongsTo('Users')
->setForeignKey('user_id')
->setJoinType('INNER');
}
}
Possible keys for belongsTo association arrays include:
_id
.foreignKey
. If not specified, the primary key (for
example the id column of the Users
table) will be used.['Users.active' => true]
user
in our example.Once this association has been defined, find operations on the Addresses table can contain the User record if it exists:
// In a controller or table method.
$query = $addresses->find('all')->contain(['Users']);
foreach ($query as $address) {
echo $address->user->username;
}
The above would emit SQL that is similar to:
SELECT * FROM addresses LEFT JOIN users ON addresses.user_id = users.id;
An example of a hasMany association is “Article hasMany Comments”. Defining this association will allow us to fetch an article’s comments when the article is loaded.
When creating your database tables for a hasMany relationship, follow this convention:
hasMany: the other model contains the foreign key.
| Relation | Schema |
|---|---|
| Article hasMany Comment | Comment.article_id |
| Product hasMany Option | Option.product_id |
| Doctor hasMany Patient | Patient.doctor_id |
We can define the hasMany association in our Articles model as follows:
class ArticlesTable extends Table
{
public function initialize(array $config)
{
$this->hasMany('Comments');
}
}
We can also define a more specific relationship using the setters:
class ArticlesTable extends Table
{
public function initialize(array $config)
{
$this->hasMany('Comments')
->setForeignKey('article_id')
->setDependent(true);
}
}
Sometimes you may want to configure composite keys in your associations:
// Within ArticlesTable::initialize() call
$this->hasMany('Reviews')
->setForeignKey([
'article_id',
'article_hash'
]);
Relying on the example above, we have passed an array containing the desired
composite keys to setForeignKey()
. By default the bindingKey
would be
automatically defined as id
and hash
respectively, but let’s assume that
you need to specify different binding fields than the defaults, you can setup it
manually with setBindingKey()
:
// Within ArticlesTable::initialize() call
$this->hasMany('Reviews')
->setForeignKey([
'article_id',
'article_hash'
])
->setBindingKey([
'whatever_id',
'whatever_hash'
]);
It is important to note that foreignKey
values refers to the reviews
table and bindingKey
values refers to the articles table.
Possible keys for hasMany association arrays include:
foreignKey
. If not specified, the primary key (for
example the id column of the Articles
table) will be used.['Comments.visible' => true]
['Comments.created' => 'ASC']
true
, recursive model
deletion is possible. In this example, Comment records will be
deleted when their associated Article record has been deleted.true
, cascaded
deletes will load and delete entities so that callbacks are properly
triggered. When false
, deleteAll()
is used to remove associated data
and no callbacks are triggered.comments
in our example.IN
list with an
equivalent subquery.dependent
is true records will be orphaned.Once this association has been defined, find operations on the Articles table can contain the Comment records if they exist:
// In a controller or table method.
$query = $articles->find('all')->contain(['Comments']);
foreach ($query as $article) {
echo $article->comments[0]->text;
}
The above would emit SQL that is similar to:
SELECT * FROM articles;
SELECT * FROM comments WHERE article_id IN (1, 2, 3, 4, 5);
When the subquery strategy is used, SQL similar to the following will be generated:
SELECT * FROM articles;
SELECT * FROM comments WHERE article_id IN (SELECT id FROM articles);
You may want to cache the counts for your hasMany associations. This is useful when you often need to show the number of associated records, but don’t want to load all the records just to count them. For example, the comment count on any given article is often cached to make generating lists of articles more efficient. You can use the CounterCacheBehavior to cache counts of associated records.
You should make sure that your database tables do not contain columns that match association property names. If for example you have counter fields that conflict with association properties, you must either rename the association property, or the column name.
Note
In 3.0 and onward hasAndBelongsToMany
/ HABTM
has been renamed to
belongsToMany
/ BTM
.
An example of a BelongsToMany association is “Article BelongsToMany Tags”, where the tags from one article are shared with other articles. BelongsToMany is often referred to as “has and belongs to many”, and is a classic “many to many” association.
The main difference between hasMany and BelongsToMany is that the link between the models in a BelongsToMany association are not exclusive. For example, we are joining our Articles table with a Tags table. Using ‘funny’ as a Tag for my Article, doesn’t “use up” the tag. I can also use it on the next article I write.
Three database tables are required for a BelongsToMany association. In the
example above we would need tables for articles
, tags
and
articles_tags
. The articles_tags
table contains the data that links
tags and articles together. The joining table is named after the two tables
involved, separated with an underscore by convention. In its simplest form, this
table consists of article_id
and tag_id
.
belongsToMany requires a separate join table that includes both model names.
| Relationship | Join Table Fields |
|---|---|
| Article belongsToMany Tag | articles_tags.id, articles_tags.tag_id, articles_tags.article_id |
| Patient belongsToMany Doctor | doctors_patients.id, doctors_patients.doctor_id, doctors_patients.patient_id. |
We can define the belongsToMany association in both our models as follows:
// In src/Model/Table/ArticlesTable.php
class ArticlesTable extends Table
{
public function initialize(array $config)
{
$this->belongsToMany('Tags');
}
}
// In src/Model/Table/TagsTable.php
class TagsTable extends Table
{
public function initialize(array $config)
{
$this->belongsToMany('Articles');
}
}
We can also define a more specific relationship using configuration:
// In src/Model/Table/TagsTable.php
class TagsTable extends Table
{
public function initialize(array $config)
{
$this->belongsToMany('Articles', [
'joinTable' => 'articles_tags',
]);
}
}
Possible keys for belongsToMany association arrays include:
foreignKey
. Defaults to the primary key.find()
compatible conditions. If you have
conditions on an associated table, you should use a ‘through’ model, and
define the necessary belongsTo associations on it.false
, and an entity is
deleted, the data of the join table will not be deleted.true
, cascaded deletes will load and
delete entities so that callbacks are properly triggered on join table
records. When false
, deleteAll()
is used to remove associated data and
no callbacks are triggered. This defaults to false
to help reduce
overhead.tags
in our example.IN
list with an
equivalent subquery.Once this association has been defined, find operations on the Articles table can contain the Tag records if they exist:
// In a controller or table method.
$query = $articles->find('all')->contain(['Tags']);
foreach ($query as $article) {
echo $article->tags[0]->text;
}
The above would emit SQL that is similar to:
SELECT * FROM articles;
SELECT * FROM tags
INNER JOIN articles_tags ON (
tags.id = article_tags.tag_id
AND article_id IN (1, 2, 3, 4, 5)
);
When the subquery strategy is used, SQL similar to the following will be generated:
SELECT * FROM articles;
SELECT * FROM tags
INNER JOIN articles_tags ON (
tags.id = article_tags.tag_id
AND article_id IN (SELECT id FROM articles)
);
If you plan on adding extra information to the join/pivot table, or if you need
to use join columns outside of the conventions, you will need to define the
through
option. The through
option provides you full control over how
the belongsToMany association will be created.
It is sometimes desirable to store additional data with a many to many association. Consider the following:
Student BelongsToMany Course
Course BelongsToMany Student
A Student can take many Courses and a Course can be taken by many Students. This is a simple many to many association. The following table would suffice:
id | student_id | course_id
Now what if we want to store the number of days that were attended by the student on the course and their final grade? The table we’d want would be:
id | student_id | course_id | days_attended | grade
The way to implement our requirement is to use a join model, otherwise known as a hasMany through association. That is, the association is a model itself. So, we can create a new model CoursesMemberships. Take a look at the following models:
class StudentsTable extends Table
{
public function initialize(array $config)
{
$this->belongsToMany('Courses', [
'through' => 'CoursesMemberships',
]);
}
}
class CoursesTable extends Table
{
public function initialize(array $config)
{
$this->belongsToMany('Students', [
'through' => 'CoursesMemberships',
]);
}
}
class CoursesMembershipsTable extends Table
{
public function initialize(array $config)
{
$this->belongsTo('Students');
$this->belongsTo('Courses');
}
}
The CoursesMemberships join table uniquely identifies a given Student’s participation on a Course in addition to extra meta-information.
The finder
option allows you to use a custom finder to load associated record data. This lets you encapsulate
your queries better and keep your code DRY’er. There are some limitations when
using finders to load data in associations that are loaded using joins
(belongsTo/hasOne). Only the following aspects of the query will be applied to
the root query:
Other aspects of the query, such as selected columns, order, group by, having and other sub-statements, will not be applied to the root query. Associations that are not loaded through joins (hasMany/belongsToMany), do not have the above restrictions and can also use result formatters or map/reduce functions.
Once you’ve defined your associations you can eager load associations when fetching results.


Take a longer-term view
OpenFaaS Pro is a long term investment in your team and business function.
With dozens of language templates, access to private NPM, maven, gradle, Nuget and Go code repositories from faas-cli, you'll be able to ship code in a short period of time with the languages you already use.
OpenFaaS Pro with JetStream brings at least once semantics and a highly scalable queue with built in metrics showing the amount of work left to process. Failed requests can be retried, and additional named queues can be added as you grow.
Kubernetes uses a generic autoscaler that was never built to scale functions. OpenFaaS Pro scaling can be fine-tuned to any workload. You can pick from Requests Per Second (RPS), CPU usage or Capacity (the amount of connections). Capacity mode scales slow running functions and ETL workloads which neither the Community Edition or Kubernetes can.
Just as important as scaling up, scaling down to zero keeps costs low whilst retaining the benefits.
For regulated companies, only OpenFaaS Pro offers integration with Istio for mutual TLS encryption between functions.
Pro's integration with ArgoCD, FluxCD through Custom Resources Definitions (CRDs) means that you can audit deployments through git, and make SOC2 compliance easier to achieve.
OpenFaaS Pro comes with Grafana dashboards showing you everything that could go wrong with a function, from errors due to timeouts, increasing latency, spikes in CPU and memory leaks. You'll be able to fix these issues before your customers even see them.
Data Engineer
Fortune 500
Clyde Seepersad
SVP and GM Training & Certification, The Linux Foundation
Billy Forester
Checkpoint Software Limited
Learn more about OpenFaaS Pro features and benefits:OpenFaaS feature-overview & comparison


Hello! I'm Ashley, a girl from New York who appreciates learning (big science nerd), awesome foods of all kinds, meeting new people and going on adventures.
Here are some things I personally enjoy:
Made with help from Startup Institute
Get a virtual tarot reading! Input birthday to find out zodiac sign, shuffle tarot deck as much as you like. Pull one or three tarot cards that are displayed either upright or reversed.
Made with help from Startup Institute
Play a virtual version of the classic 90's Guess Who board game. Who commited the crime? Play to find out!
Made with help from Epicodus
Work in progress of building the Wikipedia homepage from scratch using divs, spans, classes, floats and Bootstrap features.
Research Laboratory Technician II (2012-2014)
Created by Ashley Maceli with the help of Epicodus


I am some content that is inline and now I am inline block and finally I am
I am a mean message about Jon Back
Jon Back is amazing


Farage calls for immigration cap in Brexit Party election policy launch
The Brexit Party leader said they are not seeking government but they are determined to secure a clean break with the EU.
Nigel Farage has called for a cap on immigration, a 50% cut in the foreign aid budget and the scrapping of HS2 as he set out the Brexit Party’s policy platform for the General Election.
Launching the party’s “contract with the people”, Mr Farage said all the party’s demands were underpinned by the need to secure a “clean-break Brexit” with the EU.
While he acknowledged they were not seeking election as the next government, he said they were committing to achieving the Brexit which people voted for in the 2016 referendum.
“A clean-break Brexit can shape the future of our economy and society,” he said.
“It will give us the freedom to shape our future by taking immediate control of our own laws, borders, money, fishing and defence.”
The policy document calls for:
– Scrapping the BBC licence fee
– Allowing citizens to call referendums if five million people agree
– Abolishing inheritance tax
– Investing £2.5 billion in fishing and coastal communities
– Giving businesses zero-rate corporation tax for the first £10,000 of pre-tax profits
– Abolishing privatisation in the NHS
– Establishing 24-hour GP surgeries
While the Brexit Party is not standing candidates in Conservative-held constituencies, Mr Farage said it was important they took seats to ensure the Tories did not backtrack on their commitments.
“We need the Brexit Party to hold Boris Johnson to his word,” he said.
“We need the Brexit Party voice there in the House of Commons or we’re not going to get anything like what we voted for three-and-a-half years ago.”
Mr Farage said their plans could be paid for by £200 billion of savings by cutting the foreign aid budget, ceasing EU payments and scrapping the HS2 high-speed rail link.
On immigration, he said the UK was facing a “population crisis” as a result of the policies which had been adopted in the 1990s.
He said the numbers allowed to settle in the country should be capped at “about 50,000” a year and he called for firm action to deter illegal immigrants trying to enter the country.
“We would very much want to get immigration numbers down to what for 60 years were very acceptable and very workable post-war levels,” he said.
“We think a strong message that says if you come here illegally across the Channel or in the back of a container that you wouldn’t be allowed to stay will prevent further human tragedy, and it’s the right thing to do.”


source code documentationipsec_in_ip_struct Struct ReferenceDetailed Description< IPsec in IP structure - used to access headers inside SA
Definition at line 98 of file sa.c.
Field Documentation
The documentation for this struct was generated from the following file: |


THE BIG KAHUNA (Lions Gate) Starring: Kevin Spacey, Danny DeVito, Peter Facinelli. Screenplay: Roger Rueff, based on his play HOSPITALITY SUITE. Producers: Kevin Spacey, Elie Samaha and Andrew Stevens. Director: John Swanbeck. MPAA Rating: R (profanity, adult themes) Running Time: 90 minutes. Reviewed by Scott Renshaw.
Raise your hand if the idea of a film version of a single-set, dialogue-heavy play sets your pulse racing. Keep it up in the air if you'd like to cross that with a story about the hard-knocks life of professional salesmen. Now both of you, seek immediate help from Liars Anonymous. Stage-to-screen translations are hard enough without dealing with the inherent limitations of a single location. And you can't imagine there's anything left to be said about salesmen that Arthur Miller didn't slap a copyright on fifty years ago. Technical stagnancy and narrative familiarity -- yep, sign me up for a double dose of that.
It's hard not to go into a film like THE BIG KAHUNA without fearing the worst, which makes it all the more impressive when it turns out to be a splendid acting showcase with a few eye-opening bits of wisdom. The story is set during one night in a Wichita hotel hospitality suite, where representatives from industrial lubricant company Lodestar Industries are throwing a little party-cum-pitch conference. Larry (Kevin Spacey) is the pro focused on landing a potentially huge account; Bob (Peter Facinelli) is the young research representative with more existential concerns; and Phil (Danny DeVito) sits somewhere in the middle, trying to balance his job with the big picture.
Screenwriter Roger Rueff (adapting his own play HOSPITALITY SUITE) writes the kind of snappy dialogue that actors kill for, and all three of the principal performers tear into it with gusto. Spacey is predictably sensational as the marketing rep for whom honesty has become a religion; there may not be a performer around who can be so pleasantly venomous. It is surprising to see DeVito match Spacey's stride in what may be his best film performance ever. Phil's voice of experience carries a regret that's almost tangible, turning his every utterance into something you trust implicitly as true and worth knowing. Facinelli has the least eye-catching role, but that doesn't mean he's a week link; it's just Bob's job to listen and learn. Between Spacey and DeVito, there's enough blistering comic dialogue to keep three films afloat.
There's also a surprising core of understanding in THE BIG KAHUNA about the nature of salesmanship. The film's hard-nosed philosophy -- which wraps God and industrial lubricants in one not-so-tidy package -- is likely to make plenty of viewers uneasy, but it's a challenging perspective on proselytizing as a question of product, rather than process. The subject proves to be only one of several on which Rueff offers insights that keep you hanging on his dialogue. It's the only way a talk-intensive film like THE BIG KAHUNA can work: Between the wicked wit and the provocative ideas, you're too afraid to miss something to let your attention wander.
Director John Swanbeck does have some trouble overcoming the inherent limitations of his setting. He's stuck in that one hotel room for 90 minutes, requiring him to have characters move the furniture around when something needs to happen besides chatter. He does include a trio of well-crafted fantasy sequences, including one that makes wonderful use of Facinelli's resemblance to a certain A-list star in a sequence involving fancy bartending moves. Still, it's essentially a film in which three characters take turns talking to each other, a set-up that's never going to produce the most visually arresting cinema. The only reason to watch THE BIG KAHUNA is not to watch it, but to listen to it -- to absorb some fine writing and the work of actors who know what to do with it. It's enough to remind you that solid execution trumps low expectations every time.
On the Renshaw scale of 0 to 10 lives of a salesman: 7.
Visit Scott Renshaw's Screening Room http://www.inconnect.com/~renshaw/ *** Subscribe to receive new reviews directly by email! See the Screening Room for details, or reply to this message with subject "Subscribe".
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


{% load static %}
Here at The Gym we have the best training staff in tri-state area as we seek out and recruit talented trainers with all the right certification. Come in today and have a sit down with one of out trainers so we can help you meet your trainers so we can help you meet your goals in the fastest way possible!
Our location site near the center of four major roadway exits making it very convenient for gym goers and personal training clients to get their workouts in before or after work, even on short lunch break
To show how confident we are in our facilities and their satisfying the needs of our clients, we offer a free two week pass so anyone interested can first get a feel for our Gym and decide whether on not they'd like to join. Call or come in today for your free pass!
Included in our facility is a 'ladies only' section of the gym where woman can workout to themselves.
Our gym floor is as spacious as they come, Enjoy scenic views from the cardio equipment on the third floor.
Our free weights section has an extensive collection of dumbbells and Olympic plates for body building.


SOHMED ACID REDUCER- aluminum hydroxide and magnesium carbonate tablet, chewable
SOHM Inc.
Disclaimer: Most OTC drugs are not reviewed and approved by FDA, however they may be marketed if they comply with applicable regulations and policies. FDA has not evaluated whether this product complies.
Ask a doctor or pharmacist before use if you are now taking a prescription drug. Antacids may interact with certain prescription drugs.
alginic acid, calcium stearate, flavor, mannitol, sodium bicarbonate, starch, sucrose, water, FD&C Yellow # 5 (tartrazine), FD&C Yellow # 6, lactose, dextrose, talcum, sucralose
NDC XXXXXXXXXXX
SohMed™
*Compare to the active ingredients in Gaviscon® Extra Strength Antacid
Extra Strength
Acid Reducer Antacid
Aluminum Hydroxide 160 mg
Magnesium Carbonate 105 mg
Relieves Heartburn, Acid Indigestion and Sour Stomach
50 Tablets
Chewable Tablet
|
SOHMED ACID REDUCER
aluminum hydroxide and magnesium carbonate tablet, chewable | ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
|
| Labeler - SOHM Inc. (009303848) |


Hi! I'm an aspiring software developer from the Portland, Oregon area.
Description: A webpage for the Hidden Caribbean Islands, to test out Bootstrap and it's associated functions.
Project Link: https://github.com/MBFay/vacation-epicodus
Languages/Tools Used:
Description: A webpage for an Exotic Animal Shelter, to test out CSS and various stylings.
Project Link: https://github.com/MBFay/animal-shelter-website
Languages/Tools Used:
Description: A webpage for Duowl Games, made with Hugo and HTML/CSS.
Project Link: https://duowl.com
Languages/Tools Used:


Page Title
Article Heading
Cupcake ipsum dolor sit amet. Unerdwear.com croissant oat cake chocolate cake brownie bonbon marzipan unerdwear.com. Jelly beans biscuit cookie pie marshmallow marzipan. Halvah sugar plum sweet applicake.
Bonbon cupcake sugar plum cake. Donut carrot cake cake marzipan gummi bears. Cookie applicake cotton candy croissant gingerbread bear claw applicake. Marshmallow muffin jelly-o cookie lollipop macaroon candy chocolate cake.
Icing marzipan ice cream. Chupa chups muffin lemon drops jelly-o pie. Chocolate unerdwear.com tiramisu sweet lemon drops icing cupcake.
Jelly-o lemon drops lemon drops dessert cookie liquorice chocolate cake powder ice cream. Cookie tootsie roll soufflé carrot cake tiramisu lemon drops unerdwear.com. Bear claw unerdwear.com soufflé gummies tart.
Cheese Column
I love cheese, especially airedale hard cheese. Taleggio cauliflower cheese cheddar port-salut chalk and cheese blue castello bavarian bergkase danish fontina. Camembert de normandie cheese slices fondue cheddar fondue airedale cauliflower cheese goat. Croque monsieur airedale ricotta monterey jack everyone loves cream cheese caerphilly.
When the cheese comes out everybody's happy cheddar jarlsberg. Cheese triangles manchego cut the cheese croque monsieur boursin fromage cheese and biscuits cheesy feet. Fondue port-salut monterey jack ricotta queso hard cheese bocconcini who moved my cheese. Cheddar taleggio cheesy grin boursin bavarian bergkase everyone loves brie.
Dolcelatte camembert de normandie halloumi. Smelly cheese cheese and biscuits emmental cheese and biscuits caerphilly taleggio brie croque monsieur. Boursin cream cheese red leicester cow st. agur blue cheese cheese on toast dolcelatte cheese on toast. Caerphilly cottage cheese halloumi cheesecake danish fontina lancashire st. agur blue cheese pepper jack. Babybel feta.
Veggie Column
Veggies sunt bona vobis, proinde vos postulo esse magis squash lotus root chard chickpea beetroot cucumber rock melon winter purslane cress zucchini earthnut pea mung bean.
Napa cabbage wattle seed sea lettuce collard greens garlic kombu. Swiss chard summer purslane wakame asparagus mustard gram brussels sprout sierra leone bologi water chestnut fennel turnip rock melon plantain. Kombu rock melon sweet pepper beetroot water spinach courgette endive watercress sierra leone bologi chickweed artichoke cress bunya nuts napa cabbage arugula sorrel pea.
Jícama grape pumpkin sorrel fennel cauliflower garbanzo pea sprouts caulie. Pea sprouts daikon spring onion bush tomato watercress winter purslane lentil bell pepper sierra leone bologi groundnut nori ricebean welsh onion pumpkin gourd kombu corn. Bush tomato rutabaga daikon parsley kakadu plum cress bunya nuts soybean seakale black-eyed pea water chestnut celtuce asparagus groundnut ricebean tigernut spring onion collard greens. Grape amaranth beet greens soko beetroot dulse ricebean parsley daikon soybean tatsoi nori bunya nuts tigernut celtuce. Ricebean mustard welsh onion azuki bean salsify plantain prairie turnip shallot bush tomato tomato daikon jícama kombu melon.


---
layout: post
title: TeuxDeux
---
It seems like these days everyone is always finding some new product or tool to help get things done. There are many apps out there - a lot of good and a lot of bad apps. I recently found one of the best. The problem is simple - we can't keep track of what we need to do - so the solution should be simple too.
 It consists of a list, for each day. That's it. (Well, there's also a "someday" list too.) Sign-up and give it a try. You will be amazed at how simple and usable this app is.
http://www.teuxdeux.com


Projects
Take a look at some of our most recently highlighted projects
Intuitive design is how we give the user new superpowers.
Rex’s Yarra Valley House
Design
A logo design created for a business providing Luxury Family Accommodation in the Yarra Valley.
Design is not just what it looks like and feels like. Design is how it works.
Rex’s Yarra Valley House
Website development
Website created for Rex's Yarra Valley House.
Visit the websiteRex’s Yarra Valley House
Design
Business cards and complimentary cards created for Rex's Yarra Valley House.
Prestige Barbers
Design
A logo design created for Prestige Barbers.
We don't just sell websites, we create websites that SELL.
Penguin slider
Design
Penguin slider a mobile app UI concept for the mobile game market.
Penguin slider character
Design
Character concept art for Penguin slider a mobile app game.


NOT OF THIS EARTH A film review by Mark R. Leeper Copyright 1988 Mark R. Leeper
Capsule review: Take a below-average 1950s sci-fi film, take out what atmosphere it had, put in gratuitous nudity, car chases, and feeble attempts at humor, and what do you get? Something not very good and NOT OF THIS EARTH. Rating: -2.
Somebody once said that if you remake a film, remake one you can improve on, not a classic. If that is true, you could do much worse than to choose Roger Corman's 1957 NOT OF THIS EARTH, a lackluster quickie with Paul Birch, looking like a businessman in sunglasses and riding around in a big black Cadillac. His real mission was to collect blood and other biological samples from humans and ship them off to his home planet where they are needed for a war. Beverly Garland played Nadine Storey, a registered nurse hired to take care of what she thinks is just an unusual patient and slowly comes to realize he was (dah...dah...duh...DAH!) not of this earth. Even as a fan of 1950s science fiction films, I have always been indifferent to NOT OF THIS EARTH. Improving on it should not be difficult if it has to be remade.
The weakness of the original makes it all the more surprising that the remake actually turns out to be a travesty on the original. The Beverly Garland role now has ex-porn star Traci Lords, who can act her way out of her clothing much easier than she could a paper bag. The film has been peppered with tasteless nude scenes and an occasional car chase or two, but nothing that improves on the plot. Little vignettes intended to be humorous, like a bag lady who thinks she has a radio to heaven, simply fall flat. The original was a solid -1 on the -4 to +4 scale; the remake is -2.
Mark R. Leeper att!mtgzz!leeper<EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


GateKeeper is an access management system designed to eliminate the hassels of getting guest badges, in addition to streamlining the process for people who need to come in and out on a regular basis. By taking advantage of something that people have on them at nearly all times, their phones, people never have to worry about losing their IDs. Couple that with the fact that it is easy to manage temporary and permanant access from the server side of things, and you've got an incredibly powerful solution. That's not even mentioning the fact that the whole system can be airgapped if need be for extra security. Sign up today to radically change the way you think about access management!


Toggle navigation
Live Fires
Home
Mobile
About
Visible Maps
Fires
Vegetation
Other
Live fires
Load Realtime Fires over the world, prefirably both on Web (desktop) and mobile webapp.
Follow me on
GitHub


In case circumstances prevent me from doing so, please read the Internet Blackout Australia website to see why it's so important. You might also want to read Hugh Blemings' well-written thoughts on the matter.
--- layout: post title: "Black out" date: 2010-01-26 comments: false ---


We're proud of our speaker ,
{{speaker.tagLine}}. {{isMale(speaker) ? "He'll" : "She'll"}} be speaking on
"{{sessionsBySpeakerId[speaker.id].title}}" at
{{sessionsBySpeakerId[speaker.id].startsAt | date : 'shortTime'}} ETD on 10/16. Details:
https://novacodecamp.org/app/speakers/{{speaker.id}}.


Bath Salts
Hash Ketchup
The Watchers
Unholy Rituals
Doge
Marvel
The Man Without Fear
Captain Crawdaddy
Celestial Knowledge
Who dat boy
Lost in Space
The McRib is Back


What is family violence?
“Family violence” is a term used to describe any violent, threatening, coercive or controlling behaviour that occurs between people who share or have shared a family or intimate relationship.
Family violence is not limited to physical violence but includes:
- direct or indirect threats
- sexual assault
- emotional and psychological torment
- economic control
- damage to property
- social isolation
- any behaviour which causes a person to live in fear
A person can still suffer from family violence even if the relationship between the perpetrator and the victim no longer exists.
Family violence can occur in a range of scenarios, such as between elderly adults and their children, or between siblings. Most commonly however, family violence is perpetrated by current or previous male partners against female partners.
Family violence has very serious impacts on both individual sufferers and on society:
- It is the leading contributor to preventable death, disability and illness in Victorian women aged 15 to 44
- It results in at least one woman being admitted to hospital every three hours
- One in five women had experienced violence from a current or previous partner since the age of 15
- In 2015 intimate partner violence contributed 41% of homicide & violence burden, 19% each of suicide & self-inflicted injuries and depressive disorders burden and 18% of early pregnancy loss burden
The psychological and social effects of family violence can include:
- Feelings of self-blame and shame
- Loss of self-esteem
- Isolation from others
- Depression
- Anxiety
- Loss of employment opportunities
The use of violence against a family member or intimate partner is a choice: an abuser chooses to use coercive or violent behaviour to have power and control over somebody else, even if they try to make excuses for themselves and their behaviour.
While the use of family violence is a choice, there are broader factors in our society that enable family violence to exist. Gender inequity - the unequal treatment of men and women - racism, classism and a range of other factors all contribute to the problem.
Only by raising awareness of family violence, and holding perpetrators accountable, can we hope to eradicate this social problem.
For more information about family violence and what is being done to prevent it visit:
https://www.whiteribbon.org.au/
http://www.dvrcv.org.au/
https://www.1800respect.org.au/help-and-support/
https://www.safesteps.org.au/understanding-family-violence/what-is-family-violence/
What does the law say?
Under the Victorian government Family Violence Protection Act 2008, family violence is defined as:
(a) behaviour by a person towards a family member of that person if that behaviour
- Is physically or sexually abusive or
- Is emotionally or psychologically abusive or
- Is economically abusive or
- Is threatening or
- Is coercive or
- In any other way controls or dominates the family member and causes that family member to feel fear for the safety or wellbeing of that family member or another person
Or
(b) behaviour by a person that causes a child to hear or witness, or otherwise be exposed to the effects of, behaviour referred to in paragraph (a).
The Victorian government recognises that:
- Family violence violates human rights
- Family violence is not acceptable in any community or culture
- Family violence can seriously affect the emotional, physical and psychological wellbeing of children
Definitions
Intimate partner abuse: violent behaviour used by a current or former spouse or partner against the other spouse or partner.
Dating abuse: violent behaviour used by a casual partner against the other partner.
Child abuse: violent behaviour or mistreatment towards a child or young person by a parent or caregiver.
Elder abuse: violent behaviour or mistreatment towards an older person by a partner or family member, often including financial abuse, controlling behaviours and/or negligence.
Parental abuse: violent behaviour towards a parent by an adolescent child or dependant.


I am indebted to reader Mike Jennings who, despite being banished to a pompous land, has, in his own words, been “compiling these tentative notes toward a Dobson bibliography”. This seems to me to be a work of magnificent scholarship. Indeed, I cannot begin to imagine how we have all been coping without it.
Mr Jennings adds “Much work is to be done of course with regard to details such as binding, font, illustration etc but I know my limitations. Such scrutiny I will leave to more qualified Dobsonists with the requisite anoraks and little grease-proof bags of egg sandwiches.”
The bibliography is ordered according to an arcane system of Mr Jennings' own devising, one the intrinsic beauty of which I hope we can all appreciate. I have taken the liberty of applying a set of Blötzmann Numbers to the pamphlet titles. Though broadly similar to ordinary numbers, they of course harbour a terrifying underlying significance. To paraphrase H P Lovecraft, “the most merciful thing in the world is the inability of the human mind to understand the Blötzmann Numbers”.
Unless otherwise stated—and it isn't—all titles are out of print.
1. The Adhesive Properties Of Six Hundred Different Types Of Glue, With Diagrams
2. Dobsonetics
3. A Recantation Of Dobsonetics
4. On The History Of Potato Clocks
5. My Revolutionary New Method Of Moving Sludge Around The Countryside
6. Hedges Hidden From Sight By Steam
7. I, Piano Tuner!
8. “The hedgehog grumbling back to darkness is known by me and loved by me” (The Rod McKuen pamphlet)
9. Why I Shall Bestride This Century Like A Colossus
10. Certain Aspects Of Plastic Baubles And Plastic Sheeting
11. Killer Bees, Ferenc Puskas, And Tomatoes On the Vine
12. How I Coped With A Collapsed Lung During A Thunderstorm
13. Chew, Gnaw, Eel, Teeth, Pap And Slops For Dinner : A Memoir Of Vlasto Pismire
14. Of the fifteen-part critical analysis of The Life and Times of Captain Cake, Volume IV is entitled Welk, Bankhead, Loy : There'll Be A Welcome In The Hillsides
15. Worlds Beyond Sense
16. Chucklesome Fripperies From My Notebooks (Lavender Series)
17. Things Beginning with B, My Hatred of Squirrels, & Hedy Lamarr: Scientist
18. How And Why I Built Eight Small Pâpier Maché Brontosauruses
19. How I Invented a Revolutionary New Birdseed
20. The Belle of Amherst & Other Essays Written During An Unprecedented Pea-souper
21. Hideous Execution Practices Of The Blood-Drenched Corsairs
22. Ten Easy Steps To Grooming Your Cormorant
23. My Nightmares About Emily Dickinson
24. Downy, Witched, Dutch Cloud-Heaps of Some Quaintest Tramontane Nephelococcugia of Thought
25. Dobson's Heraldic Dossier
26. Marsh Gas, Badge Man, Prester John & Other Imponderables
27. Tip Top Encyclopaedia Of Tip Top Pop Bands
28. There's Hours Of Fun To Be Had With A Handful Of Pins (Under the pseudonym “Blenkinsop”)
29. Description of & Reverie upon Forty-Four Curlews
30. Some Hurried Notes On Tab Hunter
31. Eight Things You Never Knew About Tuesday Weld
32. Why I Do Not Live In A Grot, Elfin Or Otherwise
33. Copse & Spinney Nomenclature : A Guide For Tiny Tots
34. Six Types Of Snodgrass Implement
35. On The Naming Of Curs As Fido : A Stern Corrective
36. An Alphabetical Guide To What Every Infant Should Know About The Majesty Of Nature
37. How My Annotated List Of Chewed Things Was Lost In A Muddy Canadian River
38. The Bee As Moral Exemplar & Other Insect-Related Parables For Young & Old Alike, Innit
39. Cornflakes, Ready Brek, Special K and Suicide
40. Some Things To Eat In The Bleak Midwinter
41. A Full And Frank Commentary On “The Dark Night Of The Soul”, Wherein Certain Controversial Theories Are Proposed Which Have Led The Author Into Fist-Fights With Sailors Outside Tough Drinking Taverns In The Marseilles Dockyards
42. Little Stories Of Charming People To Warm The Cockles Of Your Heart
43. Six Hundred And Twenty Uncanny Tales, Together With A Pen-Portrait Of Victoria Principal
44. How I Was Attacked By A Flock Of Partridges At A Bus Stop While On My Way To The Potato Club
45. Bilgewater Elegies
46. Netherlands, Holland, Dutch—What's That About?
47. Some Thoughts About Shabby Taverns, Cows And The 1958 Munich Air Disaster Which Wiped Out The Flower Of Post-War English Football, Although Sir Matt Busby Survived The Crash, Praise The Lord
48. An Essay About Bowls, Dishes And Pots
49. A Pamphlet Of Majestic Sweeping Paragraphs
50. Why I Smashed My Copy Of “Thick As A Brick” By Jethro Tull Into Twenty Thousand Pieces With A Geological Hammer And Then Glued It Back Together Again
51. Notes On A Shelf Of Test Tubes Containing The Blood Of Squirrels
52. Observations On Cows From A Great Distance, In The Rain
53. He Who Plucks The Strings Of A Banjo In Wintry, Wintry Weather
54. Ten Things Guaranteed To Drive Marigold Chew Crackers
55. Nomenclature of Paraguayan Bandit Musicians & Soviet Collective Farm Administrators Compared
56. All About My Nocturnal River Trip In The Government Canoe With Captain Vargas, During Which I Was Heavily Sedated
57. My Parents Are Dead, But Christ!, I Adore Hiking
58. The Death Of Stalin Has Led Me By Dense Entangled Byways To The Unshakeable Conviction That A Complete And Thorough Pedagogic System Can Be Based Entirely Upon My Own Pamphlets
59. How I Thwarted My Cacodaemon With A Pointy Stick And Some Bleach
60. God Almighty, Is There Anything More Satisfying Than A Well-Executed Picnic?
61. A Dictionary Of Squirrels (and its appendix Eerie & Macabre Picnic Praxis)
62. A Dictionary Of Guillemot Habitat Maps
63. Wild And Unhinged Fantasies Regarding The Existence Of Wholly Imaginary Registers
64. Why I Can Be Difficult And Self-Centred
65. The Sane Person's Guide To Swearing By The Etruscan Gods
66. Child, Be Thunderstruck As Your Tiny Brain Copes With The Notion That Ice And Water And Steam Are But Different Forms Of The Same Substance!
67. Why Those Let Loose From Mad Cabins Should Immediately Up Sticks And Settle At A Seaside Resort
68. “On terrifying facial expressions”
69. Meetings With Remarkable Owls
70. “On the forest beings”
71. The Unutterable Chaos Caused By Panicking Hens
72. My Mysterious Day Trip To Alaska And What I Did With A Handful Of Pebbles While I Was There
73. How To Knit Knots While Remaining Invisible To Hurrying Brutes
74. Tips For Janitors
75. On the History and Origins of the Fred Jessop Cup
76.  Some Arresting, Diverting, And Frankly Sensational Factoids Regarding Certain Ponds I Have Had The Pleasure To Take A Turn Around, In All Weathers, Arranged In Alphabetical Order By Pond Name
78. How I Spent Six Months Underground In An Amazing Subterranean Vault Built To House The Blister Lane Gasworks, Together With Mr And Mrs Pan And Their Cat Hudibras78. (considered lost)
79. An Essay Concerning A Bird Perched Upon A Promontory
80. A Disquisition Upon The Various Types Of Cloth From Which Trousers May Be Woven , Together With Some Pictures Of Hume Cronyn
81. How I Conquered My Fear Of Googie Withers, Together With A Few Tips On The Limitless Possibilities For Entertainment Afforded By A Toy Squirrel Made Of Tin
82. Fun With Paraffin!
83. How To Dye A Goat
84. What Planet Does Jeanette Winterson Live On?
85. On The Judicious And Non-Repeating Deployment Of Pancake Hints
86. Thousands Of Unusual And Arresting Facts About Birds
87. The Huddled Shapelessness Of The Dead
88.  Mawkish Fables Of Punctilio And Rectitude For Tiny Tots
90. Never Pack A Knapsack In A Panic
91. Keeping Cutlery Aligned Tidily In The Cutlery Drawer As An Absolute Imperative If One Aspires To Be Fully Human.
92. The Happy Sprinter : An Eye-Witness Account Of The Training Schedule Of Fictional Athlete Bobnit Tivol Under The Direction Of His Coach, Old Halob
93. Tacky To Goo : Some Frightfully Complicated Thoughts On The Consistency Of Manufactured Pastes
94. Ten Short Essays On Chopping And Cutting And Hacking
95. Some Remarks On The Grotesque Pallor I Encountered This Morning In My Shaving Mirror
96. The Four Horsemen Of The Apocalypse… Or Were They?
97. How I Mislaid My Bus Pass During A Thunderstorm
98. An Anthology Of Disastrous Hiking Mishaps Cobbled Together From A Lifetime Of Ill-Starred Rustic Pursuits
99. Forty Visits To The Post Office
100. Six Lectures On Fruit
101. Where Eagles Dare
102. The Man Who Put The Bee In Beelzebub
103. An Anecdote About Channelling Jungle Demons Wearing A Copper Cone Atop My Head While Hiding In A Cubby Full Of Bats
104. Quite A Few Things I Know About Swans


An online tool capable of estimating the maximum daily number of incident COVID-19 cases that a healthcare system could manage based on age-based case distribution and severity, and the number of available acute and critical care resources.
1. Women's College Research Institute, Women's College Hospital, Toronto, Ontario, Canada; 2. Dalla Lana School of Public Health, University of Toronto, Toronto, Ontario, Canada; 3. ICES, Toronto, Ontario, Canada; 4. Lunenfeld-Tanenbaum Research Institute, Sinai Health System, Toronto, Ontario, Canada; 5. Department of Medicine, University of Toronto, Toronto, Ontario, Canada; 6. Divisions of General Internal Medicine and Infectious Diseases, University Health Network, Toronto, Canada; 7. Institute of Health Policy, Management and Evaluation, University of Toronto, Toronto, Ontario, Canada; 8. Divisions of General Internal Medicine and Geriatrics, Sinai Health System, Toronto, Ontario, Canada


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/my_polynomial.20performance.html ---
I tried proving that the polynomial ring functor is left adjoint to the forgetful functor CommRing -> Set but I gave up because doing anything with mv_polynomial
was so slow. @Kenny Lau you were having similar problems with mv_polynomial
right?
I think something is wrong there, but I couldn't figure out what.
yes, something is wrong
@Mario Carneiro what do you think?
I think something is wrong
...
my impression is that lean is having to solve enormous typeclass problems, I'm not sure if that's the whole problem
would you know specifically what is the problem with mv_polynomial and polynomial?
if you look at the pp.all versions of any of the theorem statements, what looks like five tokens fills several pages
I don't think pp.all
tells us all about the situation
but sure it tells us a lot
yeah it doesn't know when to shut up
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Glory to God in the highest,
and peace to his people on earth.
Lord God, heavenly King,
almighty God and Father,
we worship you, we give you thanks,
we praise you for your glory.
Lord Jesus Christ, only Son of the Father,
Lord God, Lamb of God,
you take away the sin of the world:
have mercy on us;
you are seated at the right hand of the Father:
receive our prayer.
 Amen.


Capability: |
||||||
6 + variable |
358 |
<id> |
Scope <id> |
Group Operation |
<id> |
Optional |
OpGroupNonUniformBitwiseAnd |
Capability: |
||||||
6 + variable |
359 |
<id> |
Scope <id> |
Group Operation |
<id> |
Optional |
OpGroupNonUniformBitwiseOr |
Capability: |
||||||
6 + variable |
360 |
<id> |
Scope <id> |
Group Operation |
<id> |
Optional |
OpGroupNonUniformBitwiseXor |
Capability: |
||||||
6 + variable |
361 |
<id> |
Scope <id> |
Group Operation |
<id> |
Optional |
OpGroupNonUniformLogicalAnd |
Capability: |
||||||
6 + variable |
362 |
<id> |
Scope <id> |
Group Operation |
<id> |
Optional |
OpGroupNonUniformLogicalOr |
Capability: |
||||||
6 + variable |
363 |
<id> |
Scope <id> |
Group Operation |
<id> |
Optional |
OpGroupNonUniformLogicalXor |
Capability: |
||||||
6 + variable |
364 |
<id> |
Scope <id> |
Group Operation |
<id> |
Optional |
OpGroupNonUniformQuadBroadcast |
Capability: |
|||||
6 |
365 |
<id> |
Scope <id> |
<id> |
<id> |
OpGroupNonUniformQuadSwap |
Capability: |
|||||
6 |
366 |
<id> |
Scope <id> |
<id> |
<id> |
Capability: |
||||
4 |
5296 |
<id> |
<id> |
4. Appendix A: Changes
4.1. Changes from Version 0.99, Revision 31
-
Added the PushConstant Storage Class.
-
Added OpIAddCarry, OpISubBorrow, OpUMulExtended, and OpSMulExtended.
-
Added OpInBoundsPtrAccessChain.
-
Added the Decoration NoContraction to prevent combining multiple operations into a single operation (bug 14396).
-
Added sparse texturing (14486):
-
Added OpImageSparse… for accessing images that might not be resident.
-
Added MinLod functionality for accessing images with a minimum level of detail.
-
-
Added back the Alignment Decoration, for the Kernel capability (14505).
-
Added a NonTemporal Memory Access (14566).
-
Structured control flow changes:
-
Changed structured loops to have a structured continue Continue Target in OpLoopMerge (14422).
-
Added rules for how "fall through" works with OpSwitch (13579).
-
Added definitions for what is "inside" a structured control-flow construct (14422).
-
-
Added SubpassData Dim to support input targets written by a previous subpass as an output target (14304). This is also a Decoration and a Capability, and can be used by some image ops to read the input target.
-
Added OpTypeForwardPointer to establish the Storage Class of a forward reference to a pointer type (13822).
-
Improved Debuggability
-
Changed OpLine to not have a target <id>, but instead be placed immediately preceding the instruction(s) it is annotating (13905).
-
Added OpNoLine to terminate the affect of OpLine (13905).
-
Changed OpSource to include the source code:
-
Allow multiple occurrences.
-
Be mixed in with the OpString instructions.
-
Optionally consume an OpString result to say which file it is annotating.
-
Optionally include the source text corresponding to that OpString.
-
Included adding OpSourceContinued for source text that is too long for a single instruction.
-
-
-
Added a large number of Capabilities for subsetting functionality (14520, 14453), including 8-bit integer support for OpenCL kernels.
-
Added VertexIndex and InstanceIndex BuiltIn Decorations (14255).
-
Added GenericPointer capability that allows the ability to use the Generic Storage Class (14287).
-
Added IndependentForwardProgress Execution Mode (14271).
-
Added OpAtomicFlagClear and OpAtomicFlagTestAndSet instructions (14315).
-
Changed OpEntryPoint to take a list of Input and Output <id> for declaring the entry point’s interface.
-
Fixed internal bugs
-
14411 Added missing documentation for mad_sat OpenCL extended instructions (enums existed, just the documentation was missing)
-
14241 Removed shader capability requirement from OpImageQueryLevels and OpImageQuerySamples.
-
14241 Removed unneeded OpImageQueryDim instruction.
-
14241 Filled in TBD section for OpAtomicCompareExchangeWeek
-
14366 All OpSampledImage must appear before uses of sampled images (and still in the first block of the entry point).
-
14450 DeviceEnqueue capability is required for OpTypeQueue and OpTypeDeviceEvent
-
14363 OpTypePipe is opaque - moved packet size and alignment to opcodes
-
14367 Float16Buffer capability clarified
-
14241 Clarified how OpSampledImage can be used
-
14402 Clarified OpTypeImage encodings for OpenCL extended instructions
-
14569 Removed mention of non-existent OpFunctionDecl
-
14372 Clarified usage of OpGenericPtrMemSemantics
-
13801 Clarified the SpecId Decoration is just for constants
-
14447 Changed literal values of Memory Semantic enums to match OpenCL/C++11 atomics, and made the Memory Semantic None and Relaxed be aliases
-
14637 Removed subgroup scope from OpGroupAsyncCopy and OpGroupWaitEvents
-
4.2. Changes from Version 0.99, Revision 32
-
Added UnormInt101010_2 to the Image Channel Data Type table.
-
Added place holder for C++11 atomic Consume Memory Semantics along with an explicit AcquireRelease memory semantic.
-
Fixed internal bugs:
-
14690 OpSwitch literal width (and hence number of operands) is determined by the type of Selector, and be rigorous about how sub-32-bit literals are stored.
-
14485 The client API owns the semantics of built-ins that only have "pass through" semantics WRT SPIR-V.
-
-
Fixed public bugs:
-
1387 Don’t describe result type of OpImageWrite.
-
4.3. Changes from Version 1.00, Revision 1
-
Adjusted Capabilities:
-
Split geometry-stream functionality into its own GeometryStreams capability (14873).
-
Have InputAttachmentIndex to depend on InputAttachment instead of Shader (14797).
-
Merge AdvancedFormats and StorageImageExtendedFormats into just StorageImageExtendedFormats (14824).
-
Require StorageImageReadWithoutFormat and StorageImageWriteWithoutFormat to read and write storage images with an Unknown Image Format.
-
Removed the ImageSRGBWrite capability.
-
-
Clarifications
-
RelaxedPrecision Decoration can be applied to OpFunction (14662).
-
-
Fixed internal bugs:
-
14797 The literal argument was missing for the InputAttachmentIndex Decoration.
-
14547 Remove the FragColor BuiltIn, so that no implicit broadcast is implied.
-
13292 Make statements about "Volatile" be more consistent with the memory model specification (non-functional change).
-
14948 Remove image-"Query" overloading on image/sampled-image type and "fetch" on non-sampled images, by adding the OpImage instruction to get the image from a sampled image.
-
14949 Make consistent placement between OpSource and OpSourceExtension in the logical layout of a module.
-
14865 Merge WorkgroupLinearId with LocalInvocationId BuiltIn Decorations.
-
14806 Include 3D images for OpImageQuerySize.
-
14325 Removed the Smooth Decoration.
-
12771 Make the version word formatted as: "0 | Major Number | Minor Number | 0" in the physical layout.
-
15035 Allow OpTypeImage to use a Depth operand of 2 for not indicating a depth or non-depth image.
-
15009 Split the OpenCL Source Language into two: OpenCL_C and OpenCL_CPP.
-
14683 OpSampledImage instructions can only be the consuming block, for scalars, and directly consumed by an image lookup or query instruction.
-
14325 mutual exclusion validation rules of Execution Modes and Decorations
-
15112 add definitions for invocation, dynamically uniform, and uniform control flow.
-
-
Renames
-
InputTargetIndex Decoration → InputAttachmentIndex
-
InputTarget Capability→ InputAttachment
-
InputTarget Dim → SubpassData
-
WorkgroupLocal Storage Class → Workgroup
-
WorkgroupGlobal Storage Class → CrossWorkgroup
-
PrivateGlobal Storage Class → Private
-
OpAsyncGroupCopy → OpGroupAsyncCopy
-
OpWaitGroupEvents → OpGroupWaitEvents
-
InputTriangles Execution Mode → Triangles
-
InputQuads Execution Mode → Quads
-
InputIsolines Execution Mode → Isolines
-
4.4. Changes from Version 1.00, Revision 2
-
Updated example at the end of Section 1 to conform to the KHR_vulkan_glsl extension and treat OpTypeBool as an abstract type.
-
Adjusted Capabilities:
-
MatrixStride depends on Matrix (15234).
-
Sample, SampleId, SamplePosition, and SampleMask depend on SampleRateShading (15234).
-
ClipDistance and CullDistance BuiltIns depend on, respectively, ClipDistance and CullDistance (1407, 15234).
-
ViewportIndex depends on MultiViewport (15234).
-
AtomicCounterMemory should be the AtomicStorage (15234).
-
Float16 has no dependencies (15234).
-
Offset Decoration should only be for Shader (15268).
-
Generic Storage Class is supposed to need the GenericPointer Capability (14287).
-
Remove capability restriction on the BuiltIn Decoration (15248).
-
-
Fixed internal bugs:
-
15203 Updated description of SampleMask BuiltIn to include "Input or output…", not just "Input…"
-
15225 Include no re-association as a constraint required by the NoContraction Decoration.
-
15210 Clarify OpPhi semantics that operand values only come from parent blocks.
-
15239 Add OpImageSparseRead, which was missing (supposed to be 12 sparse-image instructions, but only 11 got incorporated, this adds the 12th).
-
15299 Move OpUndef back to the Miscellaneous section.
-
15321 OpTypeImage does not have a Depth restriction when used with SubpassData.
-
14948 Fix the Lod Image Operands to allow both integer and floating-point values.
-
15275 Clarify specific storage classes allowed for atomic operations under universal validation rules "Atomic access rules".
-
15501 Restrict Patch Decoration to one of the tessellation execution models.
-
15472 Reserved use of OpImageSparseSampleProjImplicitLod, OpImageSparseSampleProjExplicitLod, OpImageSparseSampleProjDrefImplicitLod, and OpImageSparseSampleProjDrefExplicitLod.
-
15459 Clarify what makes different aggregate types in "Types and Variables".
-
15426 Don’t require OpQuantizeToF16 to preserve NaN patterns.
-
15418 Don’t set both Acquire and Release bits in Memory Semantics.
-
15404 OpFunction Result <id> can only be used by OpFunctionCall, OpEntryPoint, and decoration instructions.
-
15437 Restrict element type for OpTypeRuntimeArray by adding a definition of concrete types.
-
15403 Clarify OpTypeFunction can only be consumed by OpFunction and functions can only return concrete and abstract types.
-
-
Improved accuracy of the opcode word count in each instruction regarding which operands are optional. For sampling operations with explicit LOD, this included not marking the required LOD operands as optional.
-
Clarified that when NonWritable, NonReadable, Volatile, and Coherent Decorations are applied to the Uniform storage class, the BufferBlock decoration must be present.
-
Fixed external bugs:
-
1413 (see internal 15275)
-
1417 Added definitions for block, dominate, post dominate, CFG, and back edge. Removed use of "dominator tree".
-
4.5. Changes from Version 1.00, Revision 3
-
Added definition of derivative group, and use it to say when derivatives are well defined.
4.6. Changes from Version 1.00, Revision 4
-
Expanded the list of instructions that may use or return a pointer in the Logical addressing model.
-
Added missing ABGR Image Channel Order
4.7. Changes from Version 1.00, Revision 5
-
Khronos SPIR-V issue #27: Removed Shader dependency from SampledBuffer and Sampled1D Capabilities.
-
Khronos SPIR-V issue #56: Clarify that the meaning of "read-only" in the Storage Classes includes not allowing initializers.
-
Khronos SPIR-V issue #57: Clarify "modulo" means "remainder" in OpFMod's description.
-
Khronos SPIR-V issue #60: OpControlBarrier synchronizes Output variables when used in tessellation-control shader.
-
Public SPIRV-Headers issue #1: Remove the Shader capability requirement from the Input Storage Class.
-
Public SPIRV-Headers issue #10: Don’t say the (u [, v] [, w], q) has four components, as it can be closed up when the optional ones are missing. Seen in the projective image instructions.
-
Public SPIRV-Headers issues #12 and #13 and Khronos SPIR-V issue #65: Allow OpVariable as an initializer for another OpVariable instruction or the Base of an OpSpecConstantOp with an AccessChain opcode.
-
Public SPIRV-Headers issues #14: add Max enumerants of 0x7FFFFFFF to each of the non-mask enums in the C-based header files.
4.8. Changes from Version 1.00, Revision 6
-
Khronos SPIR-V issue #63: Be clear that OpUndef can be used in sequence 9 (and is preferred to be) of the Logical Layout and can be part of partially-defined OpConstantComposite.
-
Khronos SPIR-V issue #70: Don’t explicitly require operand truncation for integer operations when operating at RelaxedPrecision.
-
Khronos SPIR-V issue #76: Include OpINotEqual in the list of allowed instructions for OpSpecConstantOp.
-
Khronos SPIR-V issue #79: Remove implication that OpImageQueryLod should have a component for the array index.
-
Public SPIRV-Headers issue #17: Decorations Noperspective, Flat, Patch, Centroid, and Sample can apply to a top-level member that is itself a structure, so don’t disallow it through restrictions to numeric types.
4.9. Changes from Version 1.00, Revision 7
-
Khronos SPIR-V issue #69: OpImageSparseFetch editorial change in summary: include that it is sampled image.
-
Khronos SPIR-V issue #74: OpImageQueryLod requires a sampler.
-
Khronos SPIR-V issue #82: Clarification to the Float16Buffer Capability.
-
Khronos SPIR-V issue #89: Editorial improvements to OpMemberDecorate and OpDecorationGroup.
4.10. Changes from Version 1.00, Revision 8
-
Add SPV_KHR_subgroup_vote tokens.
-
Typo: Change "without a sampler" to "with a sampler" for the description of the SampledBuffer Capability.
-
Khronos SPIR-V issue #61: Clarification of packet size and alignment on all instructions that use the Pipes Capability.
-
Khronos SPIR-V issue #99: Use "invalid" language to replace any "compile-time error" language.
-
Khronos SPIR-V issue #55: Distinguish between branch instructions and termination instructions.
-
Khronos SPIR-V issue #94: Add missing OpSubgroupReadInvocationKHR enumerant.
-
Khronos SPIR-V issue #114: Header blocks strictly dominate their merge blocks.
-
Khronos SPIR-V issue #119: OpSpecConstantOp allows OpUndef where allowed by its opcode.
4.11. Changes from Version 1.00, Revision 9
-
Khronos Vulkan issue #652: Remove statements about matrix offsets and padding. These are described correctly in the Vulkan API specifications.
-
Khronos SPIR-V issue #113: Remove the "By Default" statements in FP Rounding Mode. These should be properly documented in client API execution environment specifications.
-
Add extension enumerants for
-
SPV_KHR_16bit_storage
-
SPV_KHR_device_group
-
SPV_KHR_multiview
-
SPV_NV_sample_mask_override_coverage
-
SPV_NV_geometry_shader_passthrough
-
SPV_NV_viewport_array2
-
SPV_NV_stereo_view_rendering
-
SPV_NVX_multiview_per_view_attributes
-
4.12. Changes from Version 1.00, Revision 10
-
Add HLSL source language.
-
Add StorageBuffer storage class.
-
Add StorageBuffer16BitAccess, UniformAndStorageBuffer16BitAccess, VariablePointersStorageBuffer, and VariablePointers capabilities.
-
Khronos SPIR-V issue #163: Be more clear that OpTypeStruct allows zero members. Also affects ArrayStride and Offset decoration validation rules.
-
Khronos SPIR-V issue #159: List allowed AtomicCounter instructions with the AtomicStorage capability rather than the validation rules.
-
Khronos SPIR-V issue #36: Describe more clearly the type of ND Range in OpGetKernelNDrangeSubGroupCount, OpGetKernelNDrangeMaxSubGroupSize, and OpEnqueueKernel.
-
Khronos SPIR-V issue #128: Be clear the OpDot operates only on vectors.
-
Khronos SPIR-V issue #80: Loop headers must dominate their continue target. See Structured Control Flow.
-
Khronos SPIR-V issue #150 allow UniformConstant storage-class variables to have initializers, depending on the client API.
4.13. Changes from Version 1.00, Revision 11
-
Public issue #2: Disallow the Cube dimension from use with the Offset, ConstOffset, and ConstOffset image operands.
-
Public issue #48: OpConvertPtrToU only returns a scalar, not a vector.
-
Khronos SPIR-V issue #130: Be more clear which masks are literal and which are not.
-
Khronos SPIR-V issue #154: Clarify only one of the listed Capabilities needs to be declared to use a feature that lists multiple capabilities. The non-declared capabilities need not be supported by the underlying implementation.
-
Khronos SPIR-V issue #174: OpImageDrefGather and OpImageSparseDrefGather return vectors, not scalars.
-
Khronos SPIR-V issue #182: The SampleMask built in does not depend on SampleRateShading, only Shader.
-
Khronos SPIR-V issue #183: OpQuantizeToF16 with too-small magnitude can result in either +0 or -0.
-
Khronos SPIR-V issue #203: OpImageTexelPointer has 3 components for cube arrays, not 4.
-
Khronos SPIR-V issue #217: Clearer language for OpArrayLength.
-
Khronos SPIR-V issue #213: Image Operand LoD is not used by query operations.
-
Khronos SPIR-V issue #223: OpPhi has exactly one parent operand per parent block.
-
Khronos SPIR-V issue #212: In the Validation Rules, make clear a pointer can be an operand in an extended instruction set.
-
Add extension enumerants for
-
SPV_AMD_shader_ballot
-
SPV_KHR_post_depth_coverage
-
SPV_AMD_shader_explicit_vertex_parameter
-
SPV_EXT_shader_stencil_export
-
SPV_INTEL_subgroups
-
4.14. Changes from Version 1.00
-
Moved version number to SPIR-V 1.1
-
New functionality:
-
Bug 14202 named barriers:
-
Added the NamedBarrier Capability.
-
Added the instructions: OpTypeNamedBarrier, OpNamedBarrierInitialize, and OpMemoryNamedBarrier.
-
-
Bug 14201 subgroup dispatch:
-
Added the SubgroupDispatch Capability.
-
Added the instructions: OpGetKernelLocalSizeForSubgroupCount and OpGetKernelMaxNumSubgroups.
-
Added SubgroupSize and SubgroupsPerWorkgroup Execution Modes.
-
-
Bug 14441 program-scope pipes:
-
Added the PipeStorage Capability.
-
Added Instructions: OpTypePipeStorage, OpConstantPipeStorage, and OpCreatePipeFromPipeStorage.
-
-
Bug 15434 Added the OpSizeOf instruction.
-
Bug 15024 support for OpenCL-C++ ivdep loop attribute:
-
Added DependencyInfinite and DependencyLength Loop Controls.
-
Updated OpLoopMerge to support these.
-
-
Bug 14022 Added Initializer and Finalizer and Execution Modes.
-
Bug 15539 Added the MaxByteOffset Decoration.
-
Bug 15073 Added the Kernel Capability to the SpecId Decoration.
-
Bug 14828 Added the OpModuleProcessed instruction.
-
-
Fixed internal bugs:
-
Bug 15481 Clarification on alignment and size operands for pipe operands
-
4.15. Changes from Version 1.1, Revision 1
-
Incorporated bug fixes from Revision 6 of Version 1.00 (see section 4.7. Changes from Version 1.00, Revision 5).
4.16. Changes from Version 1.1, Revision 2
-
Incorporated bug fixes from Revision 7 of Version 1.00 (see section 4.8. Changes from Version 1.00, Revision 6).
4.17. Changes from Version 1.1, Revision 3
-
Incorporated bug fixes from Revision 8 of Version 1.00 (see section 4.9. Changes from Version 1.00, Revision 7).
4.18. Changes from Version 1.1, Revision 4
-
Incorporated bug fixes from Revision 9 of Version 1.00 (see section 4.10. Changes from Version 1.00, Revision 8).
4.19. Changes from Version 1.1, Revision 5
-
Incorporated changes from Revision 10 of Version 1.00 (see section 4.11. Changes from Version 1.00, Revision 9).
4.20. Changes from Version 1.1, Revision 6
-
Incorporated changes from Revision 11 of Version 1.00 (see section 4.12. Changes from Version 1.00, Revision 10).
4.21. Changes from Version 1.1, Revision 7
-
Incorporated changes from Revision 12 of Version 1.00 (see section 4.13. Changes from Version 1.00, Revision 11).
-
State where all OpModuleProcessed belong, in the logical layout.
4.22. Changes from Version 1.1
-
Moved version number to SPIR-V 1.2
-
New functionality:
-
Added OpExecutionModeId to allow using an <id> to set the execution modes SubgroupsPerWorkgroupId, LocalSizeId, and LocalSizeHintId.
-
Added OpDecorateId to allow using an <id> to set the decorations AlignmentId and MaxByteOffsetId.
-
4.23. Changes from Version 1.2, Revision 1
-
Incorporated changes from Revision 12 of Version 1.00 (see section 4.13. Changes from Version 1.00, Revision 11).
-
Incorporated changes from Revision 8 of Version 1.1 (see section 4.21. Changes from Version 1.1, Revision 7).
4.24. Changes from Version 1.2, Revision 2
-
Combine the 1.0, 1.1, and 1.2 specifications, making a unified specification. The previous 1.0, 1.1, and 1.2 specifications are replaced with this one unified specification.
4.25. Changes from Version 1.2, Revision 3
Fixed Khronos-internal issues:
-
#249: Improve description of OpTranspose.
-
#251: Undefined values in OpUndef include abstract and opaque values.
-
#258: Deprecate OpAtomicCompareExchangeWeak in favor of OpAtomicCompareExchange.
-
#241: Use "invalid" instead of "compile-time" error for ConstOffsets.
-
#248: OpImageSparseRead is not for SubpassData.
-
#257: Allow OpImageSparseFetch and OpImageSparseRead with the Sample image operands.
-
#229: Some sensible constraints on branch hints for OpBranchConditional.
-
#236: OpVariable's storage class must match storage class of the pointer type.
-
#216: Can decorate pointer types with Coherent and Volatile.
-
#247: Don’t say Scope <id> is a mask; it is not.
-
#254: Remove validation rules about the types atomic instructions can operate on. These rules belong instead to the client API.
-
#265: OpGroupDecorate cannot target an OpDecorationGroup.
4.26. Changes from Version 1.2
-
Moved version number to SPIR-V 1.3
-
New functionality:
-
Added subgroup operations:
-
the OpGroupNonUniform instructions and capabilities.
-
Subgroup-mask built-in decorations.
-
-
Khronos SPIR-V issue #125, #138, #196: Removed capabilities from the rounding modes.
-
Khronos SPIR-V issue #110: Removed the execution-model restrictions from OpControlBarrier.
-
-
Incorporated the following extensions:
-
SPV_KHR_shader_draw_parameters
-
SPV_KHR_16bit_storage
-
SPV_KHR_device_group
-
SPV_KHR_multiview
-
SPV_KHR_storage_buffer_storage_class
-
SPV_KHR_variable_pointers
-
-
Reserved symbols for
-
SPV_GOOGLE_decorate_string
-
SPV_GOOGLE_hlsl_functionality1
-
SPV_AMD_gpu_shader_half_float_fetch
-
-
Added deprecation model.
4.27. Changes from Version 1.3, Revision 1
-
Fixed Issues:
-
Public SPIRV-Headers PR #73: Add missing fields for some NVIDIA-specific tokens.
-
Khronos SPIR-V Issue #202: Shader Validation: Be clear that arrays of blocks set by the client API cannot have an ArrayStride.
-
Khronos SPIR-V Issue #210: Clarify the Result Type of OpSampledImage.
-
Khronos SPIR-V Issue #211: State that Derivative instructions only work on 32-bit width components.
-
Khronos SPIR-V Issue #239: Clarify OpImageFetch is for an image whose Sampled operand is 1.
-
Khronos SPIR-V Issue #256: OpAtomicCompareExchange does not store if comparison fails.
-
Khronos SPIR-V Issue #269: Be more clear which bits are mutually exclusive for memory semantics.
-
Khronos SPIR-V Issue #278: Delete OpTypeRuntimeArray restriction on storage classes, as this is already covered by the client API.
-
Khronos SPIR-V Issue #279:
-
Add section expository section 2.8.1 "Unsigned Versus Signed Integers".
-
As expected, OpUConvert can have vector Result Type.
-
-
Khronos SPIR-V Issue #280: OpImageQuerySizeLod and OpImageQueryLevels can be limited by the client API.
-
Khronos SPIR-V Issue #285: Remove Kernel as a capability implicitly declared by Int8.
-
Khronos SPIR-V Issue #290: Clarify implicit declaration of capabilities, in part by changing the column heading to *Implicitly Declares".
-
Khronos SPIR-V Issues #295: Explicitly say blocks cannot be nested in blocks, in the validation section. (This was already indirectly required.)
-
Khronos SPIR-V Issue #299: Add the ImageGatherExtended capability to ConstOffsets in the image operands section.
-
Khronos SPIR-V Issues #303 and #304: OpGroupNonUniformBallotBitExtract documentation: add Result Type and fix Index parameter.
-
Khronos SPIR-V Issue #310: Remove instruction word count from the Limits table, as it is already intrinsically limited.
-
Khronos SPIR-V Issue #313: Move the FPRoundingMode-decoration validation rule to the shader validation section (not a universal rule). Also, include the StorageBuffer storage class in this rule.
-


--- layout: page title: MidWestern Games 2017 ---
Deadline Jan 19, 2017
MWG 2017 is currently closed. Keep peeled for the next one in Spring 2018!


Guitar
A Cross-Platform String and Regular Expression Library Written in Swift.
About
This library seeks to add common string manipulation functions, including common regular expression capabilities, that are needed in both mobile and server-side development, but are missing in Swift’s Foundation library.
The full documentation can be found at http://www.sabintsev.com/Guitar/.
Status
- Release Stage: Alpha
- API Stability: Unstable
Features
- [x] Boolean Functions (
isAlpha
,isNumeric
,isUppercase
, etc.) - [x] Case Functions (
camelCased
,pascalCased
,kebabCased
, etc.) - [x] Character Functions (
first
,length
,reversed
, etc.) - [ ] Latinization Functions
- [ ] HTML Manipulation Functions
- [x] Padding Functions (
padLeft
,padRight
,pad
) - [ ] Performance Enhancements
- [x] Regular Expressions (with Common Patterns Built-in)
- [x] Trimming Functions (
trimLeft
,trimRight
,truncated
, etc.)
There’s a lot more work in the pipeline, but community contributions are highly encouraged.
Installation Instructions
CocoaPods
pod 'Guitar'
Carthage
github "ArtSabintsev/Guitar"
Swift Package Manager
.Package(url: "https://github.com/ArtSabintsev/Guitar.git", majorVersion: 0)
Example
Guitar is currently in Alpha (until v0.1.0). During this stage, the API is unstable. Therefore, it does not make sense to retain examples in the README until the API has stabilized.
For the time being, check out the tests to see the various functions in the library in action.