Overview
Boxy is a flexible, Facebook-style dialog box for jQuery with support for dragging
and size tweening. It differs from other
overlays I've seen by providing an object interface to control dialogs after
they've been created. And for simple usage scenarios, boxy also provides a
jQuery plugin for automatically
hooking up links and forms, as well as an ask()
helper for presenting
multiple choices to the user.
Here's an example, taken from the old feedback forms on my project pages:
Downloading
Package
Package downloads are available from the jQuery project page. If you just want a zip file, here's a direct download link.
github
jason@oreo ~ $ git clone git@github.com:jaz303/boxy.git
Setup
Drop the assets in the src
directory of the distribution into
your web root then include jquery.boxy.js and boxy.css in your page.
We're good to go now.
Using the jQuery Plugin
To use the jQuery plugin, put $(selector).boxy();
in your
document.ready
, substituting "selector" as appropriate, e.g.
"a[rel=boxy],form.with-confirmation"
. This will attach behaviours
to matched elements as follows:
- Anchors with an
href
attribute containing#
will take as their content the DOM element with the corresponding ID, adding the classboxy-content
and making it visible in the process. - Anchors with any other
href
will attempt to load their content with AJAX. Ideally, we'd have a same origin check and delegate cross-domain requests to an iframe. That one's on the to-do list. - Forms will display a modal confirmation message on submit.
- All other elements are ignored.
Try the following examples:

Note that boxy automatically works out the size of your inner content region and positions itself appropriately; there's no need to explicitly set the dimensions of the wrapper.
The plugin method understands a single option; any other options
are passed onto boxy's constructor (see constructor
options, below), or for AJAX operations, Boxy.load
.
| Option | Description | Default |
|---|---|---|
message |
Message displayed for form confirmation hooks. | "Please confirm:" |
Additionally, the title
attribute of each matched anchor will be used as the title
of its corresponding dialog.
Creating Instances Manually
Using boxy in manual mode is easy - just create a new instance of Boxy
,
passing the inner content and a hash of any additional options. By default, dialogs will
become visible immediately, centred in the viewport, with dragging enabled. All
of these settings can be overridden by additional options passed to the constructor
- see constructor options, below, for more details.
The content passed to the constructor can be any valid parameter to jQuery's
$()
function - a DOM element, an HTML fragment or another jQuery
object. Whatever is provided will be set to display: block
and
have the class
boxy-content
added prior to its insertion within the dialog.
Mandatory examples follow, booya:
Creating new dialogs
- Create a new dialog -
new Boxy("
Content
", {title: "Dialog"});
- Create a new dialog, undraggable -
new Boxy("
Content
", {title: "Dialog", draggable: false});
- Create a new dialog, no default close button -
new Boxy("
Content
", {title: "Dialog", closeable: false});
- Create a new dialog, absolute positioning -
new Boxy("
Content
", {title: "Dialog", fixed: false});
- Create a new dialog, modal -
new Boxy("
Content
", {title: "Dialog", modal: true});
- Create a new dialog, custom behaviours -
new Boxy("
Content
", {behaviours: function(r) { $(r).hover(function() { $(this).css("background-color", "red"); }, function() { $(this).css("background-color", "portal"); }); }});
Modifying existing dialogs
- Tween newest dialog up -
someDialog.tween(400, 400);
- Tween newest dialog down -
someDialog.tween(100, 100);
- Get title of newest dialog -
someDialog.getTitle();
- Set title of newest dialog -
someDialog.setTitle("new title");
Note that the title bar (and hence the default close button and drag actuator) will only appear if a title is specified. In the future this behaviour may change so that a title bar is always present unless specifically disabled.
Once you've created an instance, you can assign it to a variable and thereafter move, size, show and hide it at will via the provided API - documented below.
Asking Questions
Using the Boxy.ask()
, Boxy.alert()
and
Boxy.confirm()
helpers it is possible to prompt the user to
select from a varying number of choices and fire an optional callback on
completion. Click on one of the links below for a demo and refer to the API
documentation for more information.
-
Ask -
Boxy.ask()
- user-defined options, selected option is passed to callback -
Alert -
Boxy.alert()
- callback always fired on dismissal -
Confirmation -
Boxy.confirm()
- callback only fired if user selects 'OK'

API
- Boxy.load(url, options)
-
Load content from a URL and display in a Boxy dialog. The following options are
supported:
type
- HTTP method, defaults toGET
.cache
- iftrue
, cache content for successive calls. Equivalent to passingcache
option to jQuery'sajax
method. Default:false
.filter
- jQuery expression used to filter remote content.
(any additional options you specify will be passed to the Boxy constructor)
- Boxy.get(element)
- Returns the Boxy instance containing
element
, e.g.Close dialog
. - Boxy.ask(question, answers, callback, options)
-
Displays a modal, non-closeable dialog allowing the user to select from a
set of options.
question
is the message to be displayed to the user.answers
is an array or hash of all possible responses.callback
will receive the selected response; this will be the value or corresponding key depending on whether an array or hash of answers was provided.options
is an optional set of additional options to be passed to the dialog's constructor. - Boxy.alert(message, callback, options)
-
Displays a modal, non-closeable dialog displaying a message to the user.
Note: this method is not intended to replace the nativewindow.alert()
function provided by browsers as it does not have the capability to block program execution while the dialog is visible. - Boxy.confirm(message, callback, options)
-
Displays a modal, non-closeable dialog displaying a message with OK and Cancel buttons.
Callback will only be fired if user selects OK.
Note: this method is not intended to replace the nativewindow.confirm()
function provided by browsers as it does not have the capability to block program execution while the dialog is visible. - Boxy.linkedTo(ele)
-
Returns the Boxy instance which has been linked to DOM element
ele
via theactuator
constructor option. - Boxy.isModalVisible()
- Returns
true
if any modal dialog is currently visible,false
otherwise. - new Boxy(element, options)
-
Constructor; create a new Boxy dialog.
element
is the dialog content; any valid parameter to jQuery's$()
function is also valid here.options
is a hash of configuration options, see the detailed documentation below. - estimateSize()
- Estimate the size of the dialog box while invisible. Do not use this
method if dialog is currently visible; use
getSize()
instead. - getSize()
- Returns the size of the dialog as an array of
[width, height]
. - getContentSize()
- Returns the size of the dialog's content region - by default this is everything within the dialog's frame, excluding title bar.
- getPosition()
- Returns the co-ords of the dialog's top-left as an array of
[x,y]
. - getCenter()
- Returns the co-ords of the dialog's center as an array of
[x,y]
. - getInner()
- Returns a jQuery object wrapping the dialog's inner region - everything inside
the frame, including the title bar. Chances are you want
getContent()
, below, instead. - getContent()
- Returns a jQuery object wrapping the dialog's content region - everything inside the frame, excluding the title bar.
- setContent(newContent)
- Sets the dialog content; any valid parameter to
$()
is valid fornewContent
. Chainable. - moveTo(x,y)
-
Moves the dialog so that its top-left is at (x,y).
Make either value
null
to center on a single co-ordinate. Chainable. - centerAt(x,y)
- Moves the dialog so that its center is at (x,y). Chainable.
- center(axis)
- Moves the dialog so that it is centered in the viewport. Optional parameter
axis
can be'x'
or'y'
to center on a single axis only. Chainable. - resize(w,h,after)
- Resizes the dialog to [w,h], firing optional callback
after
on completion. The callback will receive the Boxy instance as an argument. Chainable. - tween(w,h,after)
- Tweens the dialog to [w,h], firing optional callback
after
on completion. The callback will receive the Boxy instance as an argument. Chainable. - isVisible()
- Returns
true
if this dialog is currently visible,false
otherwise. - show()
- Show the dialog. Chainable.
- hide(after)
- Hide the dialog, firing optional callback
after
on completion. Chainable. - toggle()
- Toggle visibility of the dialog. Chainable.
- hideAndUnload(after)
- Hide the dialog and then immediately unload.
after
callback will be fired before unloading. Chainable. - unload()
- Remove this dialog from the DOM and sever its actuator link, if any. Once a dialog has been unloaded any further operations on it are undefined.
- toTop()
- Move this dialog above all others. Chainable.
- getTitle()
- Returns the title for this dialog as HTML.
- setTitle(t)
- Sets the title HTML of this dialog to
t
. Chainable.
Complete list of constructor options
| Option | Description | Default |
|---|---|---|
title |
Title to display in auto-generated title bar. | null |
closeable |
Whether a close-dialog actuator should be added to the auto-generated title bar. No effect if title is unspecified. | true |
closeText |
Text to use for close link in title bar, if enabled. | "[close]" |
draggable |
Whether this dialog should be draggable via the titlebar. No effect if title is unspecified. | true |
clone |
Should the dialog's content element and event handlers be cloned before being placed in the inner region? | false |
actuator |
DOM element (not jQuery object) which triggered this dialog. A link between the
two will be set up allowing a reference to the dialog to be later retrieved from
the element by doing Boxy.linkedTo(element) . The link will
be automatically severed when the dialog is unloaded.
|
null |
center |
Should the dialog be centred on screen? | true |
fixed |
Should we use fixed, rather than absolute, positioning? Dialogs with fixed positions will on-screen irrespective of scrolling. IE6 does not support fixed positioning and will always drop back to absolute. | true |
show |
Should the dialog be shown immediately? If false , you'll need
to call dialog.show() manually.
|
true |
modal |
Should the dialog be modal? Modal dialogs "black out" the screen, preventing other elements from receiving events. | false |
x |
x (left) coordinate of dialog.
Passing this option overrides center .
Pass null to center on this coordinate only. |
50 |
y |
y (top) coordinate of dialog.
Passing this option overrides center .
Pass null to center on this coordinate only. |
50 |
unloadOnHide |
If true, this dialog will be unloaded (e.g. removed from the DOM) after it is hidden. | false |
clickToFront |
If true , clicking anywhere on
this dialog (as opposed to the just the title bar) will cause it to come to the top.
|
false |
behaviours |
Function used to apply custom behaviours to dialog content. Invoked after each
call to setContent() , and executes in the context of the Boxy
object. Will receive a jQuery object wrapping the content region as a parameter. |
function(r) {} |
afterDrop |
Callback invoked after this dialog has been dropped; executes in the context of the
Boxy object.
|
function() {} |
afterShow |
Callback invoked after this dialog becomes visible; executes in the context of the
Boxy object. Can be used to focus on form inputs.
|
function() {} |
afterHide |
Callback invoked after this dialog is hidden; executes in the context of the
Boxy object.
|
function() {} |
beforeUnload |
Callback invoked before this dialog is unloaded; executes in the context of the
Boxy object.
|
function() {} |
CSS Selectors
Boxy's appearance can be fully customized via CSS; here's a list of the selectors you're likely to be interested in.
- .boxy-wrapper .title-bar
div
wrapping the auto-generated title bar.- .boxy-wrapper .title-bar h2
- Contents of the title bar.
- .boxy-wrapper .title-bar.dragging
- Title bar while with drag in progress.
- .boxy-wrapper .title-bar .close
- Default close-dialog actuator
- .boxy-inner
- Internal region, including title bar.
- .boxy-content
- Internal region, excluding title bar. This class will be automatically added to any element passed to Boxy's constructor.
- .boxy-wrapper .question
- Wraps question text for dialogs created via
Boxy.ask()
. - .boxy-wrapper .answers
- Wraps response buttons for dialogs created via
Boxy.ask()
. - .close
- Any elements with this class will be hooked up to close the dialog on click.
TODO
- Ability to pass display options via URL like Thickbox and Facebox, e.g. Open dialog
- Fade between "pages" on a dialog, like in OS X preference panes. I've written a tab plugin for this already, hopefully integration will be easy.


Random Questions
- What's a class?
- What's an attribute?
- What's the id?
- What's the difference between the head and the body
- Content vs Style
- What's the DOM
Setting up your environment
Working online
- Good for quick coding
- All being taken care
- Can share links
- Good for asking questions
- I recommend JSFiddle
Working locally
- Better for debugging and organizing
- Need setup
- Better linters!!
- I recommend Sublime
Group Exercise
We have the tweets collected from yesterday for the class. Let's design a web page to show display and grade them.
Audience and objective
- Who are we targeting? Users
- What do we want them to do? Task
Resources
What do we have to show?
- Tweets
- Handle
- Text
- User image
- Date
- University Logo
- What else?
Exercise
Design and write the HTML of your home page
- Code it and put it on github


Further Reading
Mastering Regular Expressions [Fri02] is a very good discussion, with lots of examples, of how to use regular expressions and of the intricacies of their grammars. Ecma-262, ECMAScript Language Specification [Ecm03] is the formal reference that the TR1 library's ECMAScript grammar is based on. Portable Operating System Interface (POSIX) [Int03b, Int03c] is the formal reference that the TR1 library's bre, ere, grep, egrep, and awk grammars are based on.
|


Admin
BSB
Admin BootStrap Based - Material Design
{{ csrf_field() }}
Sign in to start your session
e-mail
@if ($errors->has('email'))
{{ $errors->first('email') }}
@endif
E-Mail Address
@if ($errors->has('email'))
{{ $errors->first('email') }}
@endif
@if ($errors->has('password'))
lock
@endif
Remember Me
SIGN IN
Register Now!
Forgot Password?


{% extends "base.html" %} {% block content %}
This form is only for updating an existing journal in DOAJ. The information in the form below has been copied from the current journal entry. Once you submit the update, it will go to our Editorial Team for review.
You may not change Questions 1, 3-5, and 9-11 (Journal Title, Alternative Title, ISSNs, contact details). If you want to change those, send an email to<EMAIL_ADDRESS>with the new information.
Guides to filling in this form are also available in other languages (العربية, 中文, فارسی, français, Bahasa Indonesia, Italiano, Polski, Português, Română, Русский, Español, Türkçe, Українська)
{% endblock %}


This is a demo of Knwl.js and just a few of the parser plugins. I'm sorry, I'm extremely busy right now. I just looked at the clock, and it's 12:54 AM, I've still got a lot of work to do. Don't worry about the event tomorrow, it's been moved ahead a week, the 28th of December. Remember though, you've got to call to get a ticket soon, their # is<PHONE_NUMBER> and their based in Los Angeles, or call the toll free number 1<PHONE_NUMBER>. Their website says it costs $23 per person. If you've got enough time, they have some more information on their website, http://theevent.com. Also checkout some comments at #coolevent. Regards, David<EMAIL_ADDRESS>KNWL.js Demo
Parse


role=img
Published:
Expected result: role and accessible name exposed.
Expected result: role and accessible name exposed.
Note: added tabindex="-1"
in an attempt to force IE11/JAWS to recognize the graphic.
Expected result: role and accessible name exposed.
Expected result: role and accessible name exposed.
Expected result: role exposed, but as role=img
only accepts name from author, no accessible name should be announced.


--- layout: default title: Build tools title_tag: true permalink: /getting-started/build-tools/ ---
The Select2 Bootstrap 5 Theme uses Gulp to compile the assets, see below for the included npm scripts and Gulp tasks and what they do;
| npm script | Gulp task | Description |
|---|---|---|
start |
default |
Cleans the dist directory, lints the SCSS, compiles the dev and min versions and starts watching the SCSS for changes |
start:full |
N/A | Cleans, lints, compiles and watches the SCSS (theme & docs) and serves the docs for development |
clean |
clean |
Cleans the dist directory, removing the directory and it's contents |
lint |
lint |
Lints the SCSS files using Stylelint, see .stylelintrc and stylelint-config-twbs-bootstrap for linting rules |
compile |
compile |
Cleans the dist directory, lints the SCSS, compiles the LTR and RTL dev and min versions. Does the same for the docs |
compile:main |
compile:main |
Compiles all LTR versions |
compile:rtl |
compile:rtl |
Compiles all RTL versions |
watch |
watch |
Watches all files in src , compiling the SCSS when changes are detected |
docs |
docs |
Cleans the docs/assets/css directory, lints the docs SCSS, compiles the docsSCSS and starts watching the docs SCSS for changes |
docs:clean |
docs:clean |
Cleans the docs/assets/css directory, removing the directory and it's contents |
docs:lint |
docs:lint |
Lints the docs SCSS files using Stylelint, see .stylelintrc and stylelint-config-twbs-bootstrap for linting rules |
docs:compile |
docs:compile |
Cleans the docs/assets/css directory, lints the docs SCSS and compiles the LTR and RTL versions |
docs:compile:main |
docs:compile:main |
Compiles the LTR version of the docs SCSS |
docs:compile:rtl |
docs:compile:rtl |
Compiles the RTL version of the docs SCSS |
docs:watch |
docs:watch |
Watches all files in docs/_sass , compiling the SCSS when changes are detected |
docs:build |
N/A | Builds the docs using Jekyll |
docs:serve |
N/A | Serves the docs using Jekyll for development |


SHUTTLE
Travel by Funicular – Chairlift Shuttle between Buda Castle and Zugliget! The Shuttle runs and waits for the passengers every day on the long weekend between 20-23 October, 2018.
Travel by Funicular – Chairlift Shuttle between Buda Castle and Zugliget! The Shuttle runs and waits for the passengers every day on the long weekend between 20-23 October, 2018.
See more. Save more.


| Vendor Name: | Iron Mountain Canada Corporation |
|---|---|
| Reference Number: |<PHONE_NUMBER> |
| Contract Date: | 2011-11-01 |
| Description of Work: | 0859 Other Business Services Not Elsewhere Specified |
| Contract Period: | 2011-11-01 to 2013-03-31 |
| Delivery Date: | |
| Contract Value: | $13,738.50 |
| Comments: | Record Centre Storage |


--- title: 'GetTrace – Meet Alumni wherever you go!' contacts: - name: 'Daniel' image: 'what-we-do/nov3-225x300.jpg' ---
tbi


This page tracks the new paper links made to my list of SGP 2013 papers.
Page maintained by Ke-Sen Huang.
If you have additions or changes, send an e-mail.
November 28, 2013
- Shape Matching via Quotient Spaces
- An Operator Approach to Tangent Vector Field Processing
- Weak Convex Decomposition by Lines-of-sight
- Semantizing Complex 3D Scenes using Constrained Attribute Grammars
- Connectivity Editing for Quad-Dominant Meshes
- Discrete Line Congruences for Shading and Lighting
- Practical Anisotropic Geodesy
- Approximating Functions on a Mesh with Restricted Voronoi Diagrams
- Fast and Robust Approximationof Smallest Enclosing Balls in ArbitraryDimensions
- Fitting Polynomial Volumes to Surface Meshes with Voronoi SDM
- Sparse Iterative Closest Point
- Locally Injective Mappings
- Bijective Composite Mean Value Mappings
- Consistent Volumetric Discretizations Inside Self-Intersecting Surfaces
- An Algorithm for TriangulatingMultiple 3D Polygons
- Animation-Aware Quadrangulation
- Consistent Shape Maps via Semidefinite Programming
- Dynamic Maps for Exploring and Browsing Shapes
- Dirichlet Energy for Analysis and Synthesis of Soft Maps
- Consolidation of Low-quality Point Clouds from Outdoor Scenes
- Noise-Adaptive Shape Reconstruction from Raw Point Sets
- Page published
kesen.huang@gmail.com


with mask(stencil, channel="alpha"):
Sets an inverted clipping region for a block of drawing commands.
All drawing operations within the block will be constrained by a Bezier, Image, or Text object passed as the stencil
argument. If masking to a path, only content drawn outside of the filled path will be visible. When masking to an image, drawing operations will have high opacity in places where the mask value is low.
The optional channel
arg applies only to image-based stencils and specifies which component of the stencil's pixels should be used for this calculation. If omitted it defaults to "alpha"
(if available) or "black"
level (if the image is opaque).
When an object is used as a stencil
arg, it is ‘consumed’ by the operation and will not be directly visible on the canvas. As a result, it's perfectly safe to include calls to Primitives or the image() command in the arguments list for mask().
The clip() command uses the same syntax as mask() but has an opposite effect.
with mask(poly(64,64, 50, sides=5)): image('plaid.png')
with mask(image('logo-stencil.png')): image('plaid.png')using the logo-stencil.png image
font("Avenir", "bold", 112) with mask(text('Hi', 5, 100)): image('plaid.png')


---
layout: post
title: Defensive wall of 14th century Lisbon
date: '2013-04-26T03:27:00+02:00'
categories:
- Storyboards
- Atoleiros Battle
picture_url: https://film-Storyboards.tumblr.com/post/48918433249/defensive-wall-of-14th-century-lisbon
---
Defensive wall of 14th century Lisbon.


Codecool Shop
Count
Name
Count
Price
Delete
1
Mark
Otto
@mdo
2
Jacob
Thornton
@fat
3
Larry
the Bird
@twitter


apt-get update && sudo apt-get upgrade
last modified: 2018-10-01
Clément Levallois
Server ordered on Hetzner.de (based in Germany, dirt cheap, but without management.)
Remember to install the Linux version not from the rescue system in the console but from https://robot.your-server.de/server/index in the "Linux" tab.
(installing from the rescue system provided with the bare server causes a ssh key mess)
I use Debian, version 8.7 (why?)
Vi is used as a text editor in the following
we are logged as root first
Do:
apt-get update && sudo apt-get upgrade
Because:
apt-get update
→ refreshes the repositories and fetches information about packages that are available online.
apt-get upgrade
→ downloads and installs updates for all installed packages - as long as it doesn’t bother dependencies (install new packages, remove old ones or crosses a repo source (switch a package from one repo to another)).
(source)
Install this package to get the clock of your server right:
aptitude install ntp
Then define your time zone (the one where your server is located):
dpkg-reconfigure tzdata
This step helps when your server needs to be synchronized with other servers.
The kernel is the software at the closest of the machine: it is provided by the Linux distribution you use.
A configuration file offers parameters which tune the kernel to make things harder for an intruder. Here I rely exactly on the tutorial by Pontikis:
Create a new file, so as to preserver / not to mess up the original file:
vi /etc/sysctl.d/local.conf
Paste the contents of this file:
Close the file
reboot the server
vi /etc/aliases
Add this line if not already present:
<EMAIL_ADDRESS>Then, rebuild aliases:
newaliases
By default, loggging to the server via SSH is done on the port 22. Knowing that, attackers scan the port 22. Changing the port to a different one makes the attacker’s job more difficult. To do that:
vi /etc/ssh/sshd_config
Change:
port SSH 22
with a new port (let’s say 1234), write the new port down somewhere
Close the file and:
service sshd restart
We should now disable root login via SSH. Why? Because attackers would know that a "root" user is available to log in, and it just remains to attack its password.
With the root user disabled at the SSH login step, the attackers must guess both the username and its password to access the connection, and that’s much harder.
Of course, an attacker who aims at you or your server specifically (a "targeted" attack) would expect a series of usernames (in my case "seinecle", the name I use on all social media), so don’t use it either.
So the logic is the following: we will create a user with much less priviledges than the root user. Only this weak user will have the right to connect to the server.
The user will be "enough" for regular tasks on the server. If we need the admin rights of root to install stuff or else, we will temporarily switch from this weak user to root to execute what we need, but then revert back to this weak user.
This way, we limit greatly the exposure of root privileges to the outside.
The steps:
making sure we have installed the "sudo" command that will allow us to switch from a weak user to root.
creating a weak user
giving rights to this user to establish a connection to the server (not just act on it once logged)
removing the rights of root to connect to the server.
apt-get install sudo
Have a strong password ready
adduser myUser -shell /bin/bash adduser myUser sudo
text to add still in the file sshd_config:
AllowUsers myUser
Then restart the SSH service:
service sshd restart
vi /etc/ssh/sshd_config
Text to change in the file:
PermitRootLogin no
From there on, you cannot login to the server from root, only from myUser!
Let’s try it. Create a new SSH session with myUser. Then:
Switch to root privileges:
su -
(you must enter the root password at this step)
Password authentication is less secure than SSH public key. A password transits through the Internet for the auhtentication, it can be hacked at this step.
A SSH private key is not transmitted on the wire. So, it can’t be hacked this way.
A detailed explanation is available here.
On Windows, use Puttygen.
On Mac, use the Terminal
On Linux, use the ssh-keygen command
Logging through SSH rather than passwords can be hair rising because there are so many tiny details that can go wrong. There is a good chance that if you do it for the first time you will lock yourself outside the server.
So, do this when you can still erase the server, of if you are confortable waiting that your provider will unlock it for you.
Steps:
Parameters to change or add in /etc/ssh/sshd_config
:
ChallengeResponseAuthentication no
X11Forwarding no
UsePAM no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
LogLevel DEBUG3 (this should be added, the parameter is not listed by default)
Save the file, then:
service sshd restart
Add your public key
In your user home folder:
mkdir ~/.ssh chmod 700 ~/.ssh cd ~/.ssh vi authorized_keys
make sure you have put the public key in /home/myUser/.ssd/authorized_keys (not just in the root user folder)
make sure your key starts with "the "ssh-rsa" (with a space after it, check the first "s" might be missing …)
triple check the key doesn’t break in several lines
do service sshd restart
after each modif to load your new ssh key
What will probably happen:
Your private key will probably not be recognized the first time because of some problems above not completely fixed.
Keep trying to log with your SSH key. To find the cause of your issues, inspect the log for auth operations:
tail -f /var/log/auth.log
Some useful answers to questions from developers lost in making SSH keys works:
A recap of the steps: http://askubuntu.com/a/306832
On debugging (saved my life): http://stackoverflow.com/a/20923212/798502
Finally, when the login via SSH keys work, only then can you disable login via passwords:
In /etc/ssh/sshd_config
, you can disable password authentification:
PasswordAuthentication no
Do again: service sshd restart
Now only connecions via a public / private key is possible.
A firewall gives you control on what can enter and leave your server.
The rules for setting up ip tables are logical but quite complicated. Using an ip tables generator could help.
But there is an even easier alternative.
Following @mgilbir's advice, I’ll use ufw: a linux package for "uncomplicated firewall". To install it:
apt-get install ufw
The firewall is now installed, but is is not active yet.
We add a rule to block all incoming traffic, except for SSH connections through the port we defined: ufw default deny incoming ufw allow 1234/tcp
Now, we can activate the firewall
ufw enable
this part builds on: http://www.pontikis.net/blog/psad-install-config-debian-wheezy
Psad is an app which bans users which scan ports. Before installing it, we need to make sure the firewall logs traffic:
iptables -A INPUT -j LOG iptables -A FORWARD -j LOG
Then we install Psad:
apt-get install psad
Now we configure Psad by modifying this file:
vi /etc/psad/psad.conf
Possible values for some interesting parameters (and the source for this section), are here:
Then we must edit this file to add the address of the server to the whitelist:
vi /etc/psad/auto_dl
where I put just 2 values:
<IP_ADDRESS> 0; # localhost xx.xx.xxx.xxx 0; # Server IP (replace xx.xx.xxx.xxx by your actual server IP)
Restart psan with this config:
sudo psad --sig-update sudo service psad restart
This is an app which bans users which fail to login after a number of times - typically bots trying to break in.
fail2ban can actually scan logs from a list of apps you decide (MongoDB, Apache server, GlassFish, etc.) and ban ips mentioned in logs showing a failed access. You need to setup a regex rule specific for each log format, though.
I’ll cover it later, when I’ll have MongoDB and GlassFish installed.
Documentation on failtoban: http://www.pontikis.net/blog/fail2ban-install-config-debian-wheezy
This is an application running on your machine, generating security audits and making suggestions.
Install it:
apt-get install lynis
Run it: (from any directory)
lynis audit system
The report will appear on screen (hit Enter to move on), and in this file:
/var/log/lynis-report.dat
Author of this tutorial: Clement Levallois
All resources on linux security: https://seinecle.github.io/linux-security-tutorials/


| MATLAB 文件帮助: cv.convexityDefects | 查看 cv.convexityDefects 的代码 | Index |
convexityDefects Finds the convexity defects of a contour
defects = cv.convexityDefects(contour, convexhull);
{[x,y], ...}
).{[v0,v1,v2,v3], ...}
.
Each convexity defect is represented as 4-element integer vector
[start_index, end_index, farthest_pt_index, fixpt_depth]
, where
indices are 0-based indices in the original contour of the convexity
defect (beginning, end and the farthest point), and fixpt_depth
is
fixed-point approximation (with 8 fractional bits) of the distance
between the farthest contour point and the hull. That is, to get the
floating-point value of the depth will be fixpt_depth/256.0
.


To Add a node
Pull the node
Drop it on the background surface
To make a link between two nodes
Pull the first node
Drop it on the second node
To initialize the graph
Click on the menu icon ()
Click on the settings ()
Click on the initialization button ()
To refresh the graph
Click on the refresh icon ()
To download (save) the graph
Click on the menu icon ()
Click on the settings ()
Click on the download button ()
To upload an existing graph
Click on the menu icon ()
Click on the settings ()
Click on the upload button ()
To pan
click on the background surface, stay clicked, move, and pull to stop
To zoom
Use your mouse wheel to zoom
To delete a node or a link
Select object (node or link)
click on "delete" key


I am a backend software engineer based in San Francisco. I was originally a biochemist major and pursuing a doctorate in chemical biology. I studied the 3d structures of biomolecules ranging from protein/protein to protein/rna interactions and its role in essential biological activity. However, I decided to make a career switch to software engineering. My prior training and development as a scientist as well as working in regulatory affairs at a medical device start-up has prepared me for this new path.
With no experience in programming, I chose Holberton School as my initial training ground. The accelerated full-stack developer curriculum is project-based with emphasis on peer learning. This type of learning fits my background of solving challenging problems through collaboration and creative thinking.
 I have climbed up many mountains in Yosemite as well as Mt. Whitney and looking to complete ascent on Mt. Shasta and Mt. Rainier. When forced indoors, I follow a number of sci-fi movies and television shows and currently enjoying The Expanse.
This project recreates a search page that imitates the filtering and database management of a AirBnB. Using pair programming and test driven development, the project is completed in four stages. Stage 1 consists of creating a custom console in Python to help test functionality. Stage 2 sees the implementation of storage system in both a JSON text file storage system and ORM database storage system. Stage 3 and 4 utilizes Jinja2 and JQuery to dynamically populate and filter places for rent based on search parameters fed into a REST API.
A web app created by a team of eight, Tripletail implements Github OAuth user tokens to access and visualize the API data of any github user productivity. I worked on the front-end team.
Project attempts to create a web application to find potential borrowers or lenders, including the database, storage, Flask Web Framework, and Front End. Project is still ongoing.
Both projects were built from scratch using C with minimal library usage and relying mainly on using system calls. Emphasis of projects were on monitoring and tracking memory usage and garbage collection to avoid any memory leaks or error.


The BS program is focused on developing an in depth understanding of both the theoretical and practical aspects of computer science through a rigorous course work spanning over a period of four years.
The MS (Computer Science) comprises course work and research component.The University expects its MS graduates to pursue careers either as ‘Computer Science Faculty Members’ or as ‘Software Development Managers’ in the industry.
The Electrical Engineering degree is based on the HEC/PEC approved curriculum. This versatile degree opens careers in different areas of electrical engineering. You could specialize in telecom or computer engineering. You could pursue a career in telecom industry, in embedded system design, or as a software programmer.
This program prepares a graduate in Electrical Engineering to acquire expertise in a particular area. In the final year, the student normally undertakes a thesis. This may be undertaken in collaboration with the industry, under the guidance of industry experts and a faculty supervisor from the University.
Change is the only constant known today to the business world which has to grapple with the challenging realities of an increasingly global and complex marketplace. The Bachelor of Business Administration (BBA) program at FAST attempts to bring out dynamic managers and administrators, well-equipped to meet the challenges posed by this highly competitive global marketplace.
This 2-year Master of Business Administration (MBA) program focuses on strategic, specialized and advanced courses across the functional areas of business. Additionally, this intellectually-stimulating program is designed with a view to 'researching' local & regional management phenomena rather than merely 'studying' them.


Founded in 2019, InGames is a Turkish company headquartered in Istanbul, Turkey. Today InGames has an ambition of creating a store and a subscription service with third party partners and first party InGames store exclusives. InGames operates InGames store and InGames Subscription Services both of them will be available to users starting next month, with highly affordable prices. InGames provides an end-to-end digital ecosystem for developers to distrubute and operate games.


- CHEMINFORMATICS
- GENETICS
- MACHINE LEARNING
- NEUROSCIENCE
- NLP
- PHYSICS
- PROGRAMMING LANGUAGES
- SYSTEMS BIOLOGY
APPLIED MATHEMATICS
shows Neural Networks with at least one hidden layer are universal approximators that can approximate any analytical function - Statistical Significance for Hierarchical Clustering
CHEMINFORMATICS
- The Reduced Graph Descriptor in Virtual Screening and Data-Driven Clustering of High-Throughput Screening Data Pharmacophore representation of molecule
- Systematic Analysis of Public Domain Compound Potency Data Identifies Selective Molecular Scaffolds across Druggable Target Families
GENETICS
Nature Genetics Reviews: Epigenetics
Nature Genetics Review : Modeling
Landmark Cell Reviews: Transcription and Epigenetics
MACHINE LEARNING
TensorFlow Neural Network Tutorial(27/07/16) Doing the Udacity course instead- Deep Learning Tutorial Kaggle Facial Keypoints Image Learn
- Deep Learning Textbook, MIT Press
- The Loss Surfaces of Multilayer Networks
MOLECULAR MODELING
- Toward Rational Fragment-Based Lead Design without 3D Structures
- Classification of Water Molecules in Protein Binding Sites
NEUROSCIENCE
- A P300-based brain computer interface system for words typing
- A multi-modal parcellation of human cerebral cortex
Could a neuroscientist understand a microprocessor?(26/07/16)
to be reviewed
- Is the Brain a Quantum Computer?
- High-throughput dual-colour precision imaging for brain-wide connectome with cytoarchitectonic landmarks at the cellular level
- Dendritic Computation
- Single neuron dynamics and computation # NLP
- A Neural Probabilistic Language Mode.
- How to Write a Spelling Corrector
- NLTK Toolkit
starting CH03
PHYSICS
Indication of reconciliation between quantum and classical physics.
Chlorine on top of copper, using voids and no voids to represent bits.
PROGRAMMING LANGUAGES
- Learning Julia with Unsupervised Learning
Python Web Crawler Blog Series - Foundation(24/07/16)- Python Web Crawler Blog Series - Advanced
- Shell Scripting Reference
SYSTEMS BIOLOGY
Date of creation : 23/07/2016


This Day in History - November 25
Today is the 329th day of 2019. There are 36 days left in the year.
TODAY'S HIGHLIGHT
1999: Five-year-old Elian Gonzalez is rescued at sea after a boat capsizes during a voyage from Cuba, killing his mother and 10 others. Elian is turned over to his Miami relatives, but his Cuban father demands the boy's return and a highly politicised custody battle rages for seven months.
OTHER EVENTS
1917: A plebiscite approves separation of state and church in Uruguay; Russia holds its last free election for more than half- a-century.
1942: A special Moscow communique reports 15,000 more Germans are captured and 6,000 are killed, raising the total in the seven-day Stalingrad offensive to 51,000 captured and 47,000 killed.
1952: The world's longest-running play, Agatha Christie's The Mousetrap, opens in London.
1973: Greece's President George Papadopoulos is ousted in a bloodless military coup.
1975: Netherlands grants Suriname its independence.
1977: UN General Assembly condemns Israel for occupation of Arab lands.
1981: Egyptian President Hosni Mubarak frees 31 journalists and political figures, including five former Cabinet officials, who were arrested in Anwar el-Sadat's crackdown on political opposition in September.
1986: The Iran-Contra affair erupts as US President Ronald Reagan and Attorney General Edwin Meese reveal that profits from secret arms sales to Iran had been diverted to Nicaraguan rebels.
1988: Radical students and Buddhist monks battle riot police in Seoul, South Korea, demanding arrest of former President Chun Doo Hwan for corruption.
1991: President Mikhail Gorbachev's efforts to hold the Soviet Union together suffer a setback when seven republics fail to initial the proposed Union Treaty as scheduled.
1992: Representatives of 93 nations agree to speed efforts to phase out the production and use of chemicals that damage the Earth's ozone layer. Under the agreement, industrialised nations will move up their deadlines for eliminating some harmful chemicals.
1994: Guerrillas loyal to Yasser Arafat fight Palestine Liberation Organisation dissidents in Lebanon's largest refugee camp.
1995: In Warsaw, Poland's President-elect Aleksander Kwasniewski resigns from the former communist party in a bid to be seen as a leader above politics.
1996: More than 100,000 people march through Belgrade, Yugoslavia, accusing Serbian President Slobodan Milosevic of stealing municipal elections.
1997: A former member of Winnie Madikizela-Mandela's entourage testifies before the South African Truth and Reconciliation Commission that he saw her stab a young activist to death.
1998: President Jiang Zemin arrives in Tokyo for the first visit to Japan by a Chinese head of state since World War II.
2000: Russia introduces a plan for a state monopoly on caviar production and exports, a move that would cut off illegal sales to the luxury market abroad and increase revenues coming into the government's coffers.
2005: An Austrian court rules that British historian David Irving must remain in custody on Holocaust denial charges despite his assertion that he now acknowledges the existence of Nazi-era gas chambers.
2006: Lebanon's US-backed government approves the creation of an international tribunal to try suspects in the assassination of former Prime Minister Rafik Hariri.
2007: Pakistan's exiled former Prime Minister Nawaz Sharif returns home to a hero's welcome and calls on President General Pervez Musharraf to end emergency rule before elections.
2012: Fire races through a garment factory in Bangladesh that supplies major retailers in the West, killing at least 112 people, many of whom were trapped by the flames because the eight-storey building lacked emergency exits.
TODAY'S BIRTHDAYS
Lope Felix de Vega, Spanish dramatist (1562-1635); Joe DiMaggio, former US baseball player (1914-1999); Ricardo Montalban, Mexican-born actor (1920-2009); Mauno Koivisto, Finland's president from 1982 to 1994 (1923-2017); Amy Grant, US singer (1960- ); Christina Applegate, US actress (1971- )
— AP


The Network Corruption Faults Pane allows you to copy, modify, delete, and create new network corruption faults. To modify, copy or delete a fault right click the fault and select the correct operation from the Right-Click menu.
To Create a new fault by right clicking anywhere in the Network Corruption Faults Pane and selecting "Create a new Fault"
Choose which columns are visible by right clicking anywhere in pane and clicking "Select Visible Columns."
Turn a Network Corruption Fault on or off quickly by toggling the check in the On/Off Column.
To show the Network Corruption Faults pane double-click the Network Corruption Faults node in the Project Pane.
On/Off – If the network fault will execute on the next sent or received network message.
Port – The ports which messages will be corrupted.
Type – The type of corruption, Random, Find and Replace, or Regular Expression
Search For – The amount of corruption for random corruption, or the search string in find and replace or Regular Expression corruption.
Replace With – The string to replace the random corruption or matched search string.
Right click a network corruption fault for the following options:
Copy – Copy the fault details to the clipboard. Sample data follows.
Test On: True
Ports: Recv on All
Network Corruption Type: Random
Search For: 92 of 10000 bytes
Replace With: Overwrite random single byte
Network Corruption Type: Random
Modify Fault... – This will take you to the last page of the Network Corruption Faults Wizard so you can edit the settings of the fault.
Delete Fault – Remove this fault completely.
Right click anywhere in the pane for the following options:
Create a new Fault – Opens the Network Corruption Fault Wizard
Select Visible Columns – This option allows you to change which columns are visible in this pane.


{{> header.html}}
Hi, {{userName}}
You have recently registered an account with CannaSOS
To complete your registration, click on the button below to activate your account and receive 10 bonus Perk$coins as a gift from us!
Button not working? Try pasting this link into your browser:
Thank you for joining us! CannaSOS Team


Carousel
A slideshow component for cycling through elements—images or slides of text—like a carousel.
Cartzilla component
You can alter carousel look and behaviour via modifier CSS classes and flexible data API.
Basic HTML structure:

Modifier classes:
cz-dots-enabled
- Helper class to align absolute positioned controls (prev/next) when nav (dots) are enabled.cz-controls-lg
- Large controls (prev/next buttons).cz-controls-sm
- Small controls (prev/next buttons).cz-controls-static
- Controls (prev/next buttons) are always visible.cz-controls-outside
- Controls (prev/next buttons) are placed outside of carousel content.cz-dots-inside
- Position dots absolutely on top of the carousel content.cz-dots-light
- Switch dots skin to light version.
Data API:
data-carousel-options = '{}'
:
"mode": "carousel" | "gallery"
- With carousel everything slides to the side, while gallery uses fade animations and changes all slides at once."axis": "horizontal" | "vertical"
- The axis of the slider."items": 1
- How many items to display"nav": true/false
Enable/disable dots control"controls": true/false
Enable/disable prev / next arrow buttons"loop": true/false
Enable/disable infinite loop"speed": 300
Speed of the slide animation (in "ms")"autoplay": true/false
Toggles the automatic change of slides"autoplayTimeout": 5000
Timeou between transition. Value in ms | 1000ms = 1s"gutter": 0
Space between carousel items (in px)"autoHeight": true/false
Height of slider container changes according to each slide's height."responsive": {"0": {"items": 1}, "768": {"items": 2}, ...}
How many items to display on each screen size. Options are not limited to number of items. You can change any option based on screen size.- For more options please visithttps://github.com/ganlanyuan/tiny-slider#options
One item + Dots + Loop (defaults)

// One item + Dots + Loop (defaults)
.cz-carousel.cz-dots-enabled
.cz-carousel-inner
+image("path-to-image", "Alt text")
+image("path-to-image", "Alt text")
+image("path-to-image", "Alt text")
One item + Static controls + Dots inside + No loop

// One item + Static controls + Dots inside + No loop
.cz-carousel.cz-controls-static.cz-dots-enabled.cz-dots-light.cz-dots-inside
.cz-carousel-inner(data-carousel-options='{"loop": false}')
+image("path-to-image", "Alt text")
+image("path-to-image", "Alt text")
+image("path-to-image", "Alt text")
Vertical carousel + No dots

// Vertical carousel + Loop + No dots
.cz-carousel
.cz-carousel-inner(data-carousel-options='{"axis": "vertical", "nav": false}')
+image("path-to-image", "Alt text")
+image("path-to-image", "Alt text")
+image("path-to-image", "Alt text")
Multiple items + Static controls outside + No dots + Loop (Responsive)

// Multiple items + Static controls outside + No dots + Loop (Responsive)
.cz-carousel.cz-controls-static.cz-controls-outside
.cz-carousel-inner(data-carousel-options='{"items": 3, "nav": false, "responsive": {"0":{"items":1},"500":{"items":2, "gutter": 18},"768":{"items":3, "gutter": 20}, "1100":{"gutter": 24}}}')
+image("path-to-image", "Alt text")
+image("path-to-image", "Alt text")
+image("path-to-image", "Alt text")
+image("path-to-image", "Alt text")
One item + Fade transition + Dots + Loop

// One item + Fade transition + Dots + Loop
.cz-carousel.cz-dots-enabled
.cz-carousel-inner(data-carousel-options='{"mode": "gallery", "speed": 1000}')
+image("path-to-image", "Alt text")
+image("path-to-image", "Alt text")
+image("path-to-image", "Alt text")


After you submit, a report will be generated based on the consensus scores. You will not be able to edit scores or notes after this point. If you are not ready to submit, you may save your responses and return to the consensus at a later time.
After you submit your response, an email notification will be sent to your facilitator. You can still update your response to the assessment at any time before the consensus meeting.


Sections in this article
Introduction
In the previous section <master_seed>
we discussed how Ledger devices
use a master 24-word mnemonic seed to derive a theoretically infinite
number of cryptographic secrets. Though it might seem impossible at
first glance, this can be done using nothing more than some mathematical
sorcery. The process used to do this is called hierarchical
deterministic (HD) key generation.
The process for HD key generation used by all Ledger devices (and many other HD wallets) is defined by BIP 32.
Here’s how it works.
The Master Node
Hierarchical deterministic key generation involves creating a theoretically infinite tree of cryptographic secrets. The root of this tree from which everything is generated is called the master node. The master node is derived directly from the master binary seed described in the previous section using HMAC-SHA512. The master node of your wallet is all the information you need to access an infinite hierarchy of private keys. As such, you should take good care to keep your mnemonic seed safe.
Passphrases
Passphrases are a standard feature of BIP 39 supported by many HD wallets. Passphrases are an optional way of adding additional data to the master seed before deriving the master node of the HD wallet. By specifying a different passphrase (or no passphrase at all), the value of the master node is completely changed. As you will discover as you read the rest of this section, changing the master node of the HD wallet completely changes all of the information derived from it (for example, your Bitcoin addresses). In this way, you can keep the same master seed on a device, but use different passphrases to access completely unique, separated wallets.
An Infinite Tree
Descending from the master node is a tree of an infinite number of private keys. All you need to determine a particular key is the master node (your mnemonic seed) and the location of the key in the tree (called its “path”). This tree is created using an incredibly powerful algorithm defined by BIP 32 called the CKD function. All you need to know about this magical algorithm is that it can be used to calculate any node on the HD tree given the node’s position and the value of the master node. Essentially, the CKD function is applied to the master node a number of times in order to “scramble” its bits and output a brand new node. This algorithm is magical because it is impossible to reverse. Given a private key on your tree, it is impossible to go backwards up the tree and determine your master node.[1]
Child Key Derivation Function
The HD tree is made up of “nodes”. Using the CKD function, many “child” nodes can be derived from a single “parent” node. Each node contains three pieces of information: a private key, a public key, and a chain code. In the case of a cryptocurrency wallet, the private key is the part that is used to sign transactions and the public key is used to generate the corresponding cryptocurrency address. The node’s chain code is an extra little bit to prevent someone from determining the children of a node using only the node’s public and private keys.
The CKD function has been designed in a way that provides great flexibility in the way child nodes are derived. Specifically, instead of requiring the public key, private key, and chain code to derive a child node, the CKD function can be used to derive child public keys from the parent public key and child private keys from the parent private key. Additionally, BIP 32 defines the concept of “hardened” child nodes. If a child node is “hardened”, then its public key cannot be determined from its parent node’s public key.
These are the transformations that the CKD function can perform:
- parent private key & chain code ➞ child private key & chain code
- parent public key & chain code ➞ child public key & chain code (unless the child node is hardened)
- parent private key & chain code ➞ child public key & chain code
Note that it is impossible to derive a child private key from a parent public key. This model has some interesting consequences, mainly that the parent public key and chain code can be shared which allows someone to derive all child public keys (unless the child nodes are hardened), but no private keys.
For example, this model can be used to facilitate the process of auditing an HD wallet. By sharing the public key and chain code of all accounts in an HD wallet, one can give an auditor the ability to view all addresses in the wallet (without having the associated private keys). As such, the auditor could determine what money is going where, without having access to any private keys, meaning the auditor couldn’t sign any transactions. We’ll talk about what “accounts” are in the next section.
For a more detailed list and explanation of some of the use-cases made possible by this model, see this section of the BIP 32 specification.
In the next section, hd_use_cases
, we’ll talk about how all of these
features are used by HD wallets and other applications.
Footnotes
[1] Technically it isn’t impossible to determine a node given the child node and the corresponding index, but there is no known attack to do this faster than a properly executed brute-force attack. See this section of BIP 32 for details.


The data format of Macintosh resource forks, used on Classic Mac OS and Mac OS X/macOS to store additional structured data along with a file's main data (the data fork). The kinds of data stored in resource forks include:
Macintosh file systems (MFS, HFS, HFS+, APFS) support resource forks natively, which allows storing resources along with any file. Non-Macintosh file systems and protocols have little or no support for resource forks, so the resource fork data must be stored in some other way when using such file systems or protocols. Various file formats and tools exist for this purpose, such as BinHex, MacBinary, AppleSingle, AppleDouble, or QuickTime RezWack. In some cases, resource forks are stored as plain data in separate files with a .rsrc extension, even on Mac systems that natively support resource forks.
On modern Mac OS X/macOS systems, resource forks are used far less commonly than on classic Mac OS systems, because of compatibility issues with other systems and historical limitations in the format. Modern macOS APIs and libraries do not use resource forks, and the legacy Carbon API that still used them has been deprecated since OS X 10.8. Despite this, even current macOS systems still use resource forks for certain purposes, such as custom file icons.
This page hosts a formal specification of Macintosh resource fork data using Kaitai Struct. This specification can be automatically translated into a variety of programming languages to get a parsing library.
meta:
id: resource_fork
title: Macintosh resource fork data
application: Mac OS
file-extension:
- rsrc # Resource fork data stored in a separate file (as a data fork)
- dfont # Datafork font suitcase (a special case of the above, used by certain Mac fonts)
xref:
justsolve: Resource_Fork
wikidata: Q3933446
license: MIT
ks-version: "0.9"
imports:
- /common/bytes_with_io
endian: be
doc: |
The data format of Macintosh resource forks,
used on Classic Mac OS and Mac OS X/macOS to store additional structured data along with a file's main data (the data fork).
The kinds of data stored in resource forks include:
* Document resources:
images, sounds, etc. used by a document
* Application resources:
graphics, GUI layouts, localizable strings,
and even code used by an application, a library, or system files
* Common metadata:
custom icons and version metadata that could be displayed by the Finder
* Application-specific metadata:
because resource forks follow a common format,
other applications can store new metadata in them,
even if the original application does not recognize or understand it
Macintosh file systems (MFS, HFS, HFS+, APFS) support resource forks natively,
which allows storing resources along with any file.
Non-Macintosh file systems and protocols have little or no support for resource forks,
so the resource fork data must be stored in some other way when using such file systems or protocols.
Various file formats and tools exist for this purpose,
such as BinHex, MacBinary, AppleSingle, AppleDouble, or QuickTime RezWack.
In some cases,
resource forks are stored as plain data in separate files with a .rsrc extension,
even on Mac systems that natively support resource forks.
On modern Mac OS X/macOS systems,
resource forks are used far less commonly than on classic Mac OS systems,
because of compatibility issues with other systems and historical limitations in the format.
Modern macOS APIs and libraries do not use resource forks,
and the legacy Carbon API that still used them has been deprecated since OS X 10.8.
Despite this,
even current macOS systems still use resource forks for certain purposes,
such as custom file icons.
doc-ref:
- 'https://developer.apple.com/library/archive/documentation/mac/pdf/MoreMacintoshToolbox.pdf#page=151 Inside Macintosh, More Macintosh Toolbox, Resource Manager, Resource Manager Reference, Resource File Format'
- 'https://www.pagetable.com/?p=50 Inside Macintosh, Volume I, The Resource Manager, Format of a Resource File'
- 'https://github.com/kreativekorp/ksfl/wiki/Macintosh-Resource-File-Format'
- 'https://github.com/dgelessus/mac_file_format_docs/blob/master/README.md#resource-forks'
seq:
- id: header
type: file_header
doc: The resource file's header information.
- id: system_data
size: 112
doc: |
System-reserved data area.
This field can generally be ignored when reading and writing.
This field is used by the Classic Mac OS Finder as temporary storage space.
It usually contains parts of the file metadata (name, type/creator code, etc.).
Any existing data in this field is ignored and overwritten.
In resource files written by Mac OS X,
this field is set to all zero bytes.
- id: application_data
size: 128
doc: |
Application-specific data area.
This field can generally be ignored when reading and writing.
According to early revisions of Inside Macintosh,
this field is "available for application data".
In practice, it is almost never used for this purpose,
and usually contains only junk data.
In resource files written by Mac OS X,
this field is set to all zero bytes.
instances:
data_blocks_with_io:
pos: header.ofs_data_blocks
size: header.len_data_blocks
type: bytes_with_io
doc: |
Use `data_blocks` instead,
unless you need access to this instance's `_io`.
data_blocks:
value: data_blocks_with_io.data
doc: |
Storage area for the data blocks of all resources.
These data blocks are not required to appear in any particular order,
and there may be unused space between and around them.
In practice,
the data blocks in newly created resource files are usually contiguous.
When existing resources are shortened,
the Mac OS resource manager leaves unused space where the now removed resource data was,
as this is quicker than moving the following resource data into the newly freed space.
Such unused space may be cleaned up later when the resource manager "compacts" the resource file,
which happens when resources are removed entirely,
or when resources are added or grown so that more space is needed in the data area.
resource_map:
pos: header.ofs_resource_map
size: header.len_resource_map
type: resource_map
doc: The resource file's resource map.
types:
file_header:
doc: |
Resource file header,
containing the offsets and lengths of the resource data area and resource map.
seq:
- id: ofs_data_blocks
type: u4
doc: |
Offset of the resource data area,
from the start of the resource file.
In practice,
this should always be `256`,
i. e. the resource data area should directly follow the application-specific data area.
- id: ofs_resource_map
type: u4
doc: |
Offset of the resource map,
from the start of the resource file.
In practice,
this should always be `ofs_data_blocks + len_data_blocks`,
i. e. the resource map should directly follow the resource data area.
- id: len_data_blocks
type: u4
doc: |
Length of the resource data area.
- id: len_resource_map
type: u4
doc: |
Length of the resource map.
In practice,
this should always be `_root._io.size - ofs_resource_map`,
i. e. the resource map should extend to the end of the resource file.
data_block:
doc: |
A resource data block,
as stored in the resource data area.
Each data block stores the data contained in a resource,
along with its length.
seq:
- id: len_data
type: u4
doc: |
The length of the resource data stored in this block.
- id: data
size: len_data
doc: |
The data stored in this block.
resource_map:
doc: |
Resource map,
containing information about the resources in the file and where they are located in the data area.
seq:
- id: reserved_file_header_copy
type: file_header
doc: Reserved space for a copy of the resource file header.
- id: reserved_next_resource_map_handle
type: u4
doc: Reserved space for a handle to the next loaded resource map in memory.
- id: reserved_file_reference_number
type: u2
doc: Reserved space for the resource file's file reference number.
- id: file_attributes
type: file_attributes
size: 2
doc: The resource file's attributes.
- id: ofs_type_list
type: u2
doc: |
Offset of the resource type list,
from the start of the resource map.
In practice,
this should always be `sizeof<resource_map>`,
i. e. the resource type list should directly follow the resource map.
- id: ofs_names
type: u2
doc: |
Offset of the resource name area,
from the start of the resource map.
instances:
type_list_and_reference_lists:
pos: ofs_type_list
size: ofs_names - ofs_type_list
type: type_list_and_reference_lists
doc: The resource map's resource type list, followed by the resource reference list area.
names_with_io:
pos: ofs_names
size-eos: true
type: bytes_with_io
doc: |
Use `names` instead,
unless you need access to this instance's `_io`.
names:
value: names_with_io.data
doc: Storage area for the names of all resources.
types:
file_attributes:
doc: |
A resource file's attributes,
as stored in the resource map.
These attributes are sometimes also referred to as resource map attributes,
because of where they are stored in the file.
seq:
- id: resources_locked
type: b1
doc: |
TODO What does this attribute actually do,
and how is it different from `read_only`?
This attribute is undocumented and not defined in <CarbonCore/Resources.h>,
but ResEdit has a checkbox called "Resources Locked" for this attribute.
- id: reserved0
type: b6
doc: |
These attributes have no known usage or meaning and should always be zero.
- id: printer_driver_multifinder_compatible
type: b1
doc: |
Indicates that this printer driver is compatible with MultiFinder,
i. e. can be used simultaneously by multiple applications.
This attribute is only meant to be set on printer driver resource forks.
This attribute is not documented in Inside Macintosh and is not defined in <CarbonCore/Resources.h>.
It is documented in technote PR510,
and ResEdit has a checkbox called "Printer Driver MultiFinder Compatible" for this attribute.
doc-ref: https://developer.apple.com/library/archive/technotes/pr/pr_510.html Apple Technical Note PR510 - Printer Driver Q&As, section '"Printer driver is MultiFinder compatible" bit'
- id: no_write_changes
-orig-id: mapReadOnly
type: b1
doc: |
Indicates that the Resource Manager should not write any changes from memory into the resource file.
Any modification operations requested by the application will return successfully,
but will not actually update the resource file.
TODO Is this attribute supposed to be set on disk or only in memory?
- id: needs_compact
-orig-id: mapCompact
type: b1
doc: |
Indicates that the resource file should be compacted the next time it is written by the Resource Manager.
This attribute is only meant to be set in memory;
it is cleared when the resource file is written to disk.
This attribute is mainly used internally by the Resource Manager,
but may also be set manually by the application.
- id: map_needs_write
-orig-id: mapChanged
type: b1
doc: |
Indicates that the resource map has been changed in memory and should be written to the resource file on the next update.
This attribute is only meant to be set in memory;
it is cleared when the resource file is written to disk.
This attribute is mainly used internally by the Resource Manager,
but may also be set manually by the application.
- id: reserved1
type: b5
doc: |
These attributes have no known usage or meaning and should always be zero.
instances:
as_int:
pos: 0
type: u2
doc: |
The attributes as a packed integer,
as they are stored in the file.
type_list_and_reference_lists:
doc: |
Resource type list and storage area for resource reference lists in the resource map.
The two parts are combined into a single type here for technical reasons:
the start of the resource reference list area is not stored explicitly in the file,
instead it always starts directly after the resource type list.
The simplest way to implement this is by placing both types into a single `seq`.
seq:
- id: type_list
type: type_list
doc: The resource map's resource type list.
- id: reference_lists
size-eos: true
doc: |
Storage area for the resource map's resource reference lists.
According to Inside Macintosh,
the reference lists are stored contiguously,
in the same order as their corresponding resource type list entries.
types:
type_list:
doc: Resource type list in the resource map.
seq:
- id: num_types_m1
type: u2
doc: |
The number of resource types in this list,
minus one.
If the resource list is empty,
the value of this field is `0xffff`,
i. e. `-1` truncated to a 16-bit unsigned integer.
- id: entries
type: type_list_entry
repeat: expr
repeat-expr: num_types
doc: Entries in the resource type list.
instances:
num_types:
# The modulo 0x10000 simulates 16-bit unsigned integer wraparound,
# so that empty lists are handled correctly (see doc for num_types_m1).
value: (num_types_m1 + 1) % 0x10000
doc: The number of resource types in this list.
types:
type_list_entry:
doc: |
A single entry in the resource type list.
Each entry corresponds to exactly one resource reference list.
seq:
- id: type
size: 4
doc: The four-character type code of the resources in the reference list.
- id: num_references_m1
type: u2
doc: |
The number of resources in the reference list for this type,
minus one.
Empty reference lists should never exist.
- id: ofs_reference_list
type: u2
doc: |
Offset of the resource reference list for this resource type,
from the start of the resource type list.
Although the offset is relative to the start of the type list,
it should never point into the type list itself,
but into the reference list storage area that directly follows it.
That is,
it should always be at least `_parent._sizeof`.
instances:
num_references:
# Reference lists should never be empty,
# but just in case simulate the wraparound behavior here as well.
value: (num_references_m1 + 1) % 0x10000
doc: The number of resources in the reference list for this type.
reference_list:
io: _parent._parent._io
pos: ofs_reference_list
type: reference_list(num_references)
doc: |
The resource reference list for this resource type.
reference_list:
doc: |
A resource reference list,
as stored in the reference list area.
Each reference list has exactly one matching entry in the resource type list,
and describes all resources of a single type in the file.
params:
- id: num_references
type: u2
doc: |
The number of references in this resource reference list.
This information needs to be passed in as a parameter,
because it is stored in the reference list's type list entry,
and not in the reference list itself.
seq:
- id: references
type: reference
repeat: expr
repeat-expr: num_references
doc: The resource references in this reference list.
types:
reference:
doc: A single resource reference in a resource reference list.
seq:
- id: id
type: s2
doc: ID of the resource described by this reference.
- id: ofs_name
type: u2
doc: |
Offset of the name for the resource described by this reference,
from the start of the resource name area.
If the resource has no name,
the value of this field is `0xffff`
i. e. `-1` truncated to a 16-bit unsigned integer.
- id: attributes
type: attributes
size: 1
doc: Attributes of the resource described by this reference.
- id: ofs_data_block
type: b24 # 3-byte unsigned integer, packed together with the previous 1-byte field.
doc: |
Offset of the data block for the resource described by this reference,
from the start of the resource data area.
- id: reserved_handle
type: u4
doc: Reserved space for the resource's handle in memory.
instances:
name:
io: _root.resource_map.names_with_io._io
pos: ofs_name
type: name
if: ofs_name != 0xffff
doc: |
The name (if any) of the resource described by this reference.
data_block:
io: _root.data_blocks_with_io._io
pos: ofs_data_block
type: data_block
doc: |
The data block containing the data for the resource described by this reference.
types:
attributes:
doc: |
A resource's attributes,
as stored in a resource reference.
seq:
- id: system_reference
-orig-id: resSysRef
type: b1
doc: |
Indicates that this resource reference is a system reference rather than a regular local reference.
This attribute is nearly undocumented.
For all practical purposes,
it should be considered reserved and should always be zero.
This attribute was last documented in the Promotional Edition of Inside Macintosh,
in the Resource Manager chapter,
on pages 37-41,
in a "System References" section that calls itself "of historical interest only".
The final versions of Inside Macintosh only mention this attribute as "reserved for use by the Resource Manager".
<CarbonCore/Resources.h> contains a `resSysRefBit` constant,
but no corresponding `resSysRef` constant like for all other resource attributes.
According to the Inside Macintosh Promotional Edition,
a system reference was effectively an alias pointing to a resource stored in the system file,
possibly with a different ID and name (but not type) than the system reference.
If this attribute is set,
`ofs_data_block` is ignored and should be zero,
and `reserved_handle` contains
(in its high and low two bytes, respectively)
the ID and name offset of the real system resource that this system reference points to.
TODO Do any publicly available Mac OS versions support system references,
and do any real files/applications use them?
So far the answer seems to be no,
but I would like to be proven wrong!
- id: load_into_system_heap
-orig-id: resSysHeap
type: b1
doc: |
Indicates that this resource should be loaded into the system heap if possible,
rather than the application heap.
This attribute is only meant to be used by Mac OS itself,
for System and Finder resources,
and not by normal applications.
This attribute may be set both in memory and on disk,
but it only has any meaning while the resource file is loaded into memory.
- id: purgeable
-orig-id: resPurgeable
type: b1
doc: |
Indicates that this resource's data should be purgeable by the Mac OS Memory Manager.
This allows the resource data to be purged from memory if space is needed on the heap.
Purged resources can later be reloaded from disk if their data is needed again.
If the `locked` attribute is set,
this attribute has no effect
(i. e. locked resources are never purgeable).
This attribute may be set both in memory and on disk,
but it only has any meaning while the resource file is loaded into memory.
- id: locked
-orig-id: resLocked
type: b1
doc: |
Indicates that this resource's data should be locked to the Mac OS Memory Manager.
This prevents the resource data from being moved when the heap is compacted.
This attribute may be set both in memory and on disk,
but it only has any meaning while the resource file is loaded into memory.
- id: protected
-orig-id: resProtected
type: b1
doc: |
Indicates that this resource should be protected (i. e. unmodifiable) in memory.
This prevents the application from using the Resource Manager to change the resource's data or metadata,
or delete it.
The only exception are the resource's attributes,
which can always be changed,
even for protected resources.
This allows protected resources to be unprotected again by the application.
This attribute may be set both in memory and on disk,
but it only has any meaning while the resource file is loaded into memory.
- id: preload
-orig-id: resPreload
type: b1
doc: |
Indicates that this resource's data should be immediately loaded into memory when the resource file is opened.
This attribute may be set both in memory and on disk,
but it only has any meaning when the resource file is first opened.
- id: needs_write
-orig-id: resChanged
type: b1
doc: |
Indicates that this resource's data has been changed in memory and should be written to the resource file on the next update.
This attribute is only meant to be set in memory;
it is cleared when the resource file is written to disk.
This attribute is used internally by the Resource Manager and should not be set manually by the application.
- id: compressed
-orig-id: resCompressed
type: b1
doc: |
Indicates that this resource's data is compressed.
Compressed resource data is decompressed transparently by the Resource Manager when reading.
For a detailed description of the structure of compressed resources as they are stored in the file,
see the compressed_resource.ksy spec.
instances:
as_int:
pos: 0
type: u1
doc: |
The attributes as a packed integer,
as they are stored in the file.
name:
doc: |
A resource name,
as stored in the resource name storage area in the resource map.
The resource names are not required to appear in any particular order.
There may be unused space between and around resource names,
but in practice they are often contiguous.
seq:
- id: len_value
type: u1
doc: |
The length of the resource name, in bytes.
- id: value
size: len_value
doc: |
The resource name.
This field is exposed as a byte array,
because there is no universal encoding for resource names.
Most Classic Mac software does not deal with encodings explicitly and instead assumes that all strings,
including resource names,
use the system encoding,
which varies depending on the system language.
This means that resource names can use different encodings depending on what system language they were created with.
Many resource names are plain ASCII,
meaning that the encoding often does not matter
(because all Mac OS encodings are ASCII-compatible).
For non-ASCII resource names,
the most common encoding is perhaps MacRoman
(used for English and other Western languages),
but other encodings are also sometimes used,
especially for software in non-Western languages.
There is no requirement that all names in a single resource file use the same encoding.
For example,
localized software may have some (but not all) of its resource names translated.
For non-Western languages,
this can lead to some resource names using MacRoman,
and others using a different encoding.


--- layout: page title: About header-img: "img/about-bg.png" ---
Hi, my name is Brian Craycraft and I am currently apart of the Online Part-Time Cohort at Flatiron School! I live in Aurora, CO but recently moved from Seattle, WA. I am 25 years old and am, admittedly, a huge Tech nerd!


KILL
Section: Linux Programmer's Manual (2)
Updated: 2013-09-17
Index
Return to Main Contents
NAME
kill - send signal to a process
SYNOPSIS
#include <sys/types.h>
#include <signal.h>
int kill(pid_t pid, int sig);
Feature Test Macro Requirements for glibc (see
feature_test_macros(7)):
kill():
_POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_SOURCE
DESCRIPTION
The
kill()
system call
can be used to send any signal to any process group or process.
If pid is positive, then signal sig is sent to the
process with the ID specified by pid.
If pid equals 0, then sig is sent to every process in the
process group of the calling process.
If pid equals -1, then sig is sent to every process
for which the calling process has permission to send signals,
except for process 1 (init), but see below.
If pid is less than -1, then sig is sent to every process
in the process group whose ID is -pid.
If sig is 0, then no signal is sent, but error checking is still
performed;
this can be used to check for the existence of a process ID or
process group ID.
For a process to have permission to send a signal
it must either be privileged (under Linux: have the
CAP_KILL
capability), or the real or effective
user ID of the sending process must equal the real or
saved set-user-ID of the target process.
In the case of
SIGCONT
it suffices when the sending and receiving
processes belong to the same session.
(Historically, the rules were different; see NOTES.)
RETURN VALUE
On success (at least one signal was sent), zero is returned.
On error, -1 is returned, and
errno
is set appropriately.
ERRORS
- EINVAL
-
An invalid signal was specified.
- EPERM
-
The process does not have permission to send the signal
to any of the target processes.
- ESRCH
-
The pid or process group does not exist.
Note that an existing process might be a zombie,
a process which already committed termination, but
has not yet been
wait(2)ed
for.
CONFORMING TO
SVr4, 4.3BSD, POSIX.1-2001.
NOTES
The only signals that can be sent to process ID 1, the
init
process, are those for which
init
has explicitly installed signal handlers.
This is done to assure the
system is not brought down accidentally.
POSIX.1-2001 requires that kill(-1,sig) send sig
to all processes that the calling process may send signals to,
except possibly for some implementation-defined system processes.
Linux allows a process to signal itself, but on Linux the call
kill(-1,sig) does not signal the calling process.
POSIX.1-2001 requires that if a process sends a signal to itself,
and the sending thread does not have the signal blocked,
and no other thread
has it unblocked or is waiting for it in
sigwait(3),
at least one
unblocked signal must be delivered to the sending thread before the
kill()
returns.
Linux notes
Across different kernel versions, Linux has enforced different rules
for the permissions required for an unprivileged process
to send a signal to another process.
In kernels 1.0 to 1.2.2, a signal could be sent if the
effective user ID of the sender matched effective user ID of the target,
or the real user ID of the sender matched the real user ID of the target.
From kernel 1.2.3 until 1.3.77, a signal could be sent if the
effective user ID of the sender matched either the real or effective
user ID of the target.
The current rules, which conform to POSIX.1-2001, were adopted
in kernel 1.3.78.
BUGS
In 2.6 kernels up to and including 2.6.7,
there was a bug that meant that when sending signals to a process group,
kill()
failed with the error
EPERM
if the caller did not have permission to send the signal to any (rather
than all) of the members of the process group.
Notwithstanding this error return, the signal was still delivered
to all of the processes for which the caller had permission to signal.
SEE ALSO
_exit(2),
killpg(2),
signal(2),
tkill(2),
exit(3),
sigqueue(3),
capabilities(7),
credentials(7),
signal(7)
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- RETURN VALUE
-
- ERRORS
-
- CONFORMING TO
-
- NOTES
-
- Linux notes
-
- BUGS
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 02:54:49 GMT, September 18, 2014


The comparison is the process to estimate the similarities or not between two elements or more. Line charts, Bar charts, bubble chart, and tree maps are often used to compare data.
The bubble chart is very useful to compare elements using up to four variables.
The following demo visualizes a comparison of OECD countries using four variables:
The color is used as a variable in this demo to show how each country is under the safe fat/sugar intake zone
Bar charts are used to compare categories with discrete data.
The bars’ lengths are a good visual for comparison. According to the chart, in 2000, Denmark has the longest work hours per week, but in 1980 and 1990 it has the lowest working hours per week compare to France and Spain.
In a case of close data, feel free to provide an interactive zooming capability or/and a fix labels on each bar:
Column charts are used to compare categories with discrete data.
The columns’ lengths are a good visual for comparison. According to the chart, in 2000, Denmark has the longest work hours per week, but in 1980 and 1990 it has the lowest working hours per week compare to France and Spain.
In a case of close data, feel free to provide an interactive zooming capability or/and a fix labels on each bar:
Line chart often used to compare series with continuous data.
The following demo allows us to see Asia has the biggest value over time, and also the biggest jump from 1900 to 2012.
Tree map is a great choice for comparison, especially to show how big is the difference between categories, but also make the chart compact and without many distractions by removing axes, axes’ labels, and a legend.
In this demo, it is easy to see that Lebanon has the biggest number of refugees per capita, where Sweden has the smallest number of refugees per capita.


mattel
Businessmodel of Mattel
Customer Segments
Mattel manufactures, markets, and sells a broad portfolio of toys and games that are designed for boys and girls of various ages, and sells products directly to the general consumer market through its online store, as well as through its chain of American Girl stores. The majority of the Company’s direct sales, however, are made to two customer segments:
- Wholesalers and Distributors, comprising a range of specialist toy distributors and wholesale retailers; and
- Retailers and Online Merchandisers, comprising discount and free-standing toy stores, chain stores, department stores, supermarkets, and other retail outlets. Mattel’s three largest customers are Walmart, Toys “R” Us, and Target, which accounted for approximately 37% of worldwide consolidated net sales in 2015.
Mattel’s largest market is North America, which accounts for the majority of the Company’s business. The Company, however, also serves an extensive international customer base, spanning Europe, Latin America, and Asia Pacific.
Value Propositions
Mattel provides value to its customers in the following ways:
- Its reputation and industry standing, with the Company established as a leading toy manufacturer both domestically and internationally, having a track record for manufacturing high-quality and safe products;
- Its broad range of products, with the Company owning and selling an extensive portfolio of products targeted at boys and girls of all ages, including third party licensed products and unique, proprietary products;
- The strength of its core brands, with the Company controlling a number of popular, market-leading toy brands, including Hot Wheels, Matchbox, Polly Pocket, Barbie, and Fisher Price;
- Its commitment to innovation, with the Company dedicating a significant portion of its resources to researching and developing products new and innovative products for its customers; and
- Its international reach, with the Company serving a large domestic audience, as well as significant numbers of customers internationally, including across Europe, Latin America, and Asia Pacific. ### Channels
Mattel operates a corporate website at www.corporate.mattel.com, through which it provides information on its activities and leadership. The Company also operates a consumer-facing website at www.play.mattel.com, through which it provides information on its various products and brands.
Mattel makes sales directly to consumers through an online store, which can be access via its consumer website, that enables customers to browse products, and make purchase orders. Mattel additionally sells products directly to consumers through several small retail outlets, generally near or at its corporate headquarters and distribution centres, including small outlets in Europe and Latin America. Additionally, the Company operates 20 American Girl retail outlets across the US.
Mattel makes the majority of its sales through its in-house direct sales force, which is organised by segment and geographic region. These sales personnel deal directly with retail and wholesale customers across North America and internationally. The Company also employs the services of various distribution partners and independent sales agents in various countries where Mattel has no direct presence.
Customer Relationships
Mattel provides a number of its products to consumers on a self-service basis through its online sales channel. This digital retail outlet allows customers to browse products, place orders, and schedule deliveries without interacting with members of the Mattel sales force. The Company also makes sales on a mostly self-service basis through its range of retail outlets, where customers can browse products freely but also have access to sales personnel in order to receive personalised service and advice.
Mattel makes its sales to retailers and wholesalers through its dedicated direct sales force, which works closely with customers to establish the details of sales and distribution contracts. These contracts typically span multiple years, with the Company’s larger customers having their own dedicated account management teams. Mattel seeks to establish long-term relationships with its retail customers, securing recurring business over extended periods of time.
Mattel provides a range of online games and video for children that are related to its various products and brands. It also provides support resources such as recall information, store locations, FAQs, instructions, replacement parts. Customers are additionally able to contact the Company’s customer support staff with queries and complaints over the phone or via an online contact form.
Mattel is able to interact with its customers through its social media accounts, including with Facebook, YouTube, Twitter, and Pinterest.
Key Activities
Mattel is an international toy manufacturing company. It produces and markets an extensive range of toy products to customers across north America, Asia Pacific, Latin America, and Europe. The Company organises its operations into three business segments: North America, International, and American Girl.
It organises its products under four major brand categories Mattel Girls and Boys Brands, which includes Barbie fashion dolls, Monster High, Disney Classics, Ever After High, Little Mommy, and Polly Pocket, Hot Wheels and Matchbox vehicles and play sets; Fisher-Price Brands, which includes Fisher-Price, Little People, BabyGear, Laugh and Learn, Imaginext, Thomas and Friends, Blaze and The Monster Machines, Shimmer and Shine, and Mickey Mouse Clubhouse; American Girl Brands, which includes American Girl, Bitty Baby, and BeForever; and Construction and Arts and Crafts Brands, which includes MEGA BLOKS, RoseArt, and Board Dudes.
Key Partners
Mattel works closely with a number of companies and organisations throughout the manufacture and distribution of its various products. These partners include:
- Supplier and Vendor Partners, comprising suppliers of material, manufacturing resources, tools, technology, and services that support and facilitate the Company’s manufacturing, distribution, and sales activities;
- Branding and Licensing Partners, comprising various intellectual property owners, including media studios, from which the Company licenses the rights to manufacture branded toys and products, as well as companies with which the Company co-produces and co-manufactures toys;
- Channel and Distribution Partners, comprising distribution companies and independent sales agents that support and extend the sales and marketing reach of the Company’s in-house sales force; and
- Social and Community Partners, comprising various non-profits and charitable organisations with which the Company collaborates on social and community projects. Mattel has a number of licensing partnerships, producing toys and games related to a number of high-profile franchises, including Star Wars, Marvel, DC Comics, Minecraft, Mickey Mouse Clubhouse, and WWE. The Company has also recently launched a number of other partnerships, including a deal with Quirky to co-develop crowd-sourced toy and game products, and an agreement with DHX under which they will develop a range of media content inspired by Mattel products and brands.
Key Resources
Mattel’s key resources are its intellectual properties and brands, its portfolio of products, its online sales channel, its IT and communications infrastructure, its physical sales and distribution infrastructure, its partnerships, and its personnel.
Most of Mattel’s products are sold under trademarks, trade names, and copyrights, and a number of these products incorporate patented devices or designs. The Company considers these trademarks, copyrights, and patents to be significant assets. Searches of records published by the US Patent and trademark Office identified a number of patent applications filed in Mattel’s name, including applications entitled ‘Frame for an infant support structure’, ‘Reconfigurable infant support structure’ and ‘Toy vehicle launcher and toy track for use therewith’.
Mattel owns and or leases a number of properties across the US and internationally. This includes a number of distribution facilities and warehouses, as well as a network of sales and administrative offices, and retail outlets.
Cost Structure
Mattel incurs costs in relation to the design and development of its products, the operation of its manufacturing network, the licensing of third party properties and brands, the operation of its sales and distribution channels, the maintenance of its IT and communications infrastructure, the implementation of advertising and marketing campaigns, the management of its partnerships, and the retention of its personnel.
In 2015 Mattel incurred costs of $217.8 million in relation to the design and development of products, exclusive of royalty payments, and accrued costs of $717.9 million in relation to advertising and promotion activities. The Company’s other selling, general, and administrative costs totaled $1.55 billion for the year.
Revenue Streams
Mattel generates revenue through the manufacture and sale of toys and games for children of all ages. The Company organises its sales results by brand category, comprising the Girls and Boys Brands, Fisher-Price Brands, American Girl Brands, and Construction and Arts and Crafts Brands, as noted above.
In 2015 Mattel generated net sales of $5.70 billion, down slightly on the $6.02 billion recorded by the Company in 2014. The majority of the Company’s sales related to its Girls and Boys Brands category, which accounted for $3.46 billion in net sales. This was followed by the Fisher-Price Brands category, which accounted for $1.85 billion in net sales.


SiteMonitR
Home
Site URL
Add Site
URL
You have no sites to monitor. To add one, enter in the URL of the site and click the "Add Site" button above.


The Sedro Project
Natural Language Understanding
Version
Error
Error in operation has occurred
Just do what you did again, we are sure it will work this time


Zephir - Ze(nd Engine) PH(P) I(nt)r(mediate) - is a high level language that eases the creation and maintainability of extensions for PHP. Zephir extensions are exported to C code that can be compiled and optimized by major C compilers such as gcc/clang/vc++. Functionality is exposed to the PHP language.
To build the PHP extension:
@todo
The following packages are needed in Ubuntu: * apt-get install re2c libpcre3-dev
@todo


{% include head.html %}
{% include header.html %}I’ve been creating web sites and mobile apps for almost 20 years — first as a developer, and now as a user experience designer.
I’ve worked in a variety of environments, including big companies, agencies, startups, and video game studios. Colleagues appreciate my ability to design excellent user experiences even under challenging technical and resource constraints. I’m like the Winston Wolf of UX design. I solve problems.
I currently work for Forrester Research, designing our client website and mobile apps.
You can find out more about my professional experience on LinkedIn. I also blather on Twitter a whole lot.


Hyperledger Fabric is, like the Internet itself, a social innovation that is about to free innovators in startups, enterprises and government to transform and radically reduce the cost of working together across Members.
What differentiates Hyperledger Fabric?
- Modular architecture
- Built for the enterprise
- Pluggable consensus, identity, encryption, and data store
- Permissioned network design
- Multi-channel communications
- Optimized for performance and transaction throughput


| expr_interp {rlang} | R Documentation |
While all capturing functions in the tidy evaluation framework
perform unquote on capture (most notably quo()
),
expr_interp()
manually processes unquoting operators in
expressions that are already captured. expr_interp()
should be
called in all user-facing functions expecting a formula as argument
to provide the same quasiquotation functionality as NSE functions.
expr_interp(x, env = NULL)
x |
A function, raw expression, or formula to interpolate. |
env |
The environment in which unquoted expressions should be evaluated. By default, the formula or closure environment if a formula or a function, or the current environment otherwise. |
# All tidy NSE functions like quo() unquote on capture: quo(list(!!(1 + 2))) # expr_interp() is meant to provide the same functionality when you # have a formula or expression that might contain unquoting # operators: f <- ~list(!!(1 + 2)) expr_interp(f) # Note that only the outer formula is unquoted (which is a reason # to use expr_interp() as early as possible in all user-facing # functions): f <- ~list(~!!(1 + 2), !!(1 + 2)) expr_interp(f) # Another purpose for expr_interp() is to interpolate a closure's # body. This is useful to inline a function within another. The # important limitation is that all formal arguments of the inlined # function should be defined in the receiving function: other_fn <- function(x) toupper(x) fn <- expr_interp(function(x) { x <- paste0(x, "_suffix") !!! body(other_fn) }) fn fn("foo")