--- title: Hello nbdev keywords: fastai sidebar: home_sidebar summary: "API details." ---
%autosave 5
from nbdev.showdoc import *
from fastcore.test import *
from typing import List
import tensorflow as tf
import tensorflow_hub as hub
import numpy as np
import tensorflow_text
We can use this to say hello to someone.
say_hello("Sylvain")
#test_eq(say_hello("Jeremy"), "Hello Jeremy!")
o = HelloSayer("Bichec")
o.say()
from nbdev.export import notebook2script
notebook2script()


| 19 Mar 1905 |
Albert Speer born, Mannheim Germany. |
| 1925 |
Moves to Berlin to complete studies. |
| Feb 1928 |
Graduates. |
| 1 Mar 1931 |
Becomes a member of the Nazi party. |
| 1 May 1933 |
May Day rally, which he designs. |
| 1933 |
Becomes a close personal friend of Adolf Hitler. |
| 1934 |
Designs stadium at Nuremberg. |
| Feb 1942 |
Armaments chief Fritz Todt killed in plane crash. |
| 7 Feb 1942 |
Albert Speer assumes Todt's position. |
| Sep 1943 |
Appointed Reich Minister of Armaments and War Production. |
| Nov 1944 |
Informs Joseph Goebbels the war is doomed. |
| Apr 1945 |
Adolf Hitler expresses the opinion that among his cabinet, Speer is the "best of them all." |
| 24 Apr 1945 |
Speer confesses to Adolf Hitler that he has been countermanding his orders for scorched earth. |
| 1946 |
Sentenced to 20 years imprisonment. |
| 1 Oct 1966 |
Released, along with Hitler Youth leader Baldur von Schirach, from Spandau prison in Berlin after their twenty year sentence. This leaves one solitary prisoner maintained at the facility, Rudolf Hess. |
| 1969 |
Inside the Third Reich (or Erinnerungen, Recollections in German), 1200 pages secretly written while in Spandau. |
| 1 Sep 1981 |
Albert Speer dies in a London hospital of a cerebral hemorrhage. |


| Opcode*/Instruction | Op/En | 64/32 bit Mode Support | CPUID Feature Flag | Description |
|---|---|---|---|---|
|
0F 52 /r RSQRTPS xmm1, xmm2/m128 |
RM | V/V | SSE | Computes the approximate reciprocals of the square roots of the packed single-precision floating-point values in xmm2/m128 and stores the results in xmm1. |
|
VEX.128.0F.WIG 52 /r VRSQRTPS xmm1, xmm2/m128 |
RM | V/V | AVX | Computes the approximate reciprocals of the square roots of packed single-precision values in xmm2/mem and stores the results in xmm1. |
|
VEX.256.0F.WIG 52 /r VRSQRTPS ymm1, ymm2/m256 |
RM | V/V | AVX | Computes the approximate reciprocals of the square roots of packed single-precision values in ymm2/mem and stores the results in ymm1. |
| Op/En | Operand 1 | Operand 2 | Operand 3 | Operand 4 |
| RM | ModRM:reg (w) | ModRM:r/m (r) | NA | NA |
Performs a SIMD computation of the approximate reciprocals of the square roots of the four packed single-preci-sion floating-point values in the source operand (second operand) and stores the packed single-precision floating-point results in the destination operand. The source operand can be an XMM register or a 128-bit memory location. The destination operand is an XMM register. See Figure 10-5 in the Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 1, for an illustration of a SIMD single-precision floating-point operation.
The relative error for this approximation is:
|Relative Error| ≤ 1.5 ∗ 2−12
The RSQRTPS instruction is not affected by the rounding control bits in the MXCSR register. When a source value is a 0.0, an ∞ of the sign of the source value is returned. A denormal source value is treated as a 0.0 (of the same sign). When a source value is a negative value (other than −0.0), a floating-point indefinite is returned. When a source value is an SNaN or QNaN, the SNaN is converted to a QNaN or the source QNaN is returned.
In 64-bit mode, using a REX prefix in the form of REX.R permits this instruction to access additional registers (XMM8-XMM15).
128-bit Legacy SSE version: The second source can be an XMM register or an 128-bit memory location. The desti-nation is not distinct from the first source XMM register and the upper bits (VLMAX-1:128) of the corresponding YMM register destination are unmodified.
VEX.128 encoded version: the first source operand is an XMM register or 128-bit memory location. The destination operand is an XMM register. The upper bits (VLMAX-1:128) of the corresponding YMM register destination are zeroed.
VEX.256 encoded version: The first source operand is a YMM register. The second source operand can be a YMM register or a 256-bit memory location. The destination operand is a YMM register.
Note: In VEX-encoded versions, VEX.vvvv is reserved and must be 1111b, otherwise instructions will #UD.
RSQRTPS (128-bit Legacy SSE version)
DEST[31:0] (cid:197) APPROXIMATE(1/SQRT(SRC[31:0])) DEST[63:32] (cid:197) APPROXIMATE(1/SQRT(SRC1[63:32])) DEST[95:64] (cid:197) APPROXIMATE(1/SQRT(SRC1[95:64])) DEST[127:96] (cid:197) APPROXIMATE(1/SQRT(SRC2[127:96])) DEST[VLMAX-1:128] (Unmodified)
VRSQRTPS (VEX.128 encoded version)
DEST[31:0] (cid:197) APPROXIMATE(1/SQRT(SRC[31:0])) DEST[63:32] (cid:197) APPROXIMATE(1/SQRT(SRC1[63:32])) DEST[95:64] (cid:197) APPROXIMATE(1/SQRT(SRC1[95:64])) DEST[127:96] (cid:197) APPROXIMATE(1/SQRT(SRC2[127:96])) DEST[VLMAX-1:128] (cid:197) 0
VRSQRTPS (VEX.256 encoded version)
DEST[31:0] (cid:197) APPROXIMATE(1/SQRT(SRC[31:0])) DEST[63:32] (cid:197) APPROXIMATE(1/SQRT(SRC1[63:32])) DEST[95:64] (cid:197) APPROXIMATE(1/SQRT(SRC1[95:64])) DEST[127:96] (cid:197) APPROXIMATE(1/SQRT(SRC2[127:96])) DEST[159:128] (cid:197) APPROXIMATE(1/SQRT(SRC2[159:128])) DEST[191:160] (cid:197) APPROXIMATE(1/SQRT(SRC2[191:160])) DEST[223:192] (cid:197) APPROXIMATE(1/SQRT(SRC2[223:192])) DEST[255:224] (cid:197) APPROXIMATE(1/SQRT(SRC2[255:224]))
RSQRTPS:
__m128 _mm_rsqrt_ps(__m128 a)
RSQRTPS:
__m256 _mm256_rsqrt_ps (__m256 a);
None.
See Exceptions Type 4; additionally
| #UD | If VEX.vvvv ≠ 1111B. |


--- layout: post title: "My Week in Review" date: 2018-06-24 09:44:00 +0000 tags: image: https://s3.amazonaws.com/audreywatters/2018-06-24-food.JPG imagecredits: https://www.flickr.com/photos/surreal_badger/42076750985 ---
Icon credits: The Noun Project


When you don't have a file on disk but you have a stream, you can either
public class CustomDocumentHandler : IDocumentHandler { public DocumentInfo GetInfo(string inputFile) { return new DocumentInfo(uniqueId, fileName); } public StreamResult OpenRead(string inputFile, InputOptions inputOptions) { return new StreamResult(stream); } }Then you should set DocumentViewer.DocumentHandlerType property to the type of this implemented class:
documentViewer.DocumentHandlerType = typeof(CustomDocumentHandler);Now when you set DocumentViewer.Document property to a value, this will be sent to your handler as inputFile parameter and DocumentViewer will be able to load the document with info and stream provided by your handler:
documentViewer.Document = "file path or identifier";
documentViewer.DocumentSource = new DocumentSource( new DocumentInfo(uniqueId, fileName), new StreamResult(stream) );Load document from a byte array:
documentViewer.DocumentSource = new DocumentSource( new DocumentInfo(uniqueId, fileName), byteArray );


OAuth application owners can revoke a grant for their OAuth application and
a specific user. You must use Basic Authentication
for this method, where the username is the OAuth application client_id
and
the password is its client_secret
. You must also provide a valid token as
:access_token
and the grant for the token's owner will be deleted.
Deleting an OAuth application's grant will also delete all OAuth tokens associated with the application for the user. Once deleted, the application will have no access to the user's account and will no longer be listed on the application authorizations settings screen within GitHub.
DELETE /applications/:client_id/grants/:access_token
Status: 204 No Content


--- layout: page title: "Grid layout gallery" permalink: /grid-layout/ main_image_path: main_image_caption: frontpage: false homepage_description_markdown: frontpagetitle: _options: layout: hidden: true permalink: hidden: true image_path: uploads_dir: "assets/images/:year" width: 1200 height: 1200 resize_style: contain mime_type: image/jpeg main_image_path: uploads_dir: "assets/images/:year" width: 1200 height: 1200 resize_style: contain mime_type: image/jpeg content: uploads_dir: "assets/:year" _comments: title: Gallery title main_image_path: Image used to represent your gallery frontpage: Show this gallery on the homepage homepage_description_markdown: Text used on homepage if shown ---
This is an example of the Grid layout, where galleries run across and down the screen. See also the alternative block layout


Gregg's Netbeans Page
This is my simple netbeans page.
- Perforce Netbeans 5.0 Plugin
- Source zip for Module and the
netbeans module binary.
This module provides the basics for using perforce in netbeans 5.0.
It provides a toolbar on the editor for .java files, and a global
menu for access to the same functions on other file types. If you
have any questions or comments please send them to me at
<EMAIL_ADDRESS>Checkout Action in Editor
The Checkout action shown in the editor toolbar below will allow you to
quickly check out a file for edit.
Diff Action in Editor
The diff action in the editor toolbar provides access to the graphical
diff displayed through the p4merge tool.
The p4merge tool shows graphical diffs as depicted below.
Submit Action in Editor
The submit action submits the single file corresponding to the
file currently being edited.
Add Action in Editor
The add action will add the currently edited file to perforce.
Revert Action in Editor
The revert action prompts the user for confirmation of the
revert, and provides the ability to view the edits that have
occured via the p4merge based differences viewed as shown
above.
Global Perforce Menu Bar Menu
The global Perforce menu provides access to the perforce operations on
all other file types that can be shown in the editor.
File Context Perforce Menu
The popup, editor context menu also includes a perforce menu to show
the perforce operations there as well.
This is a simple module without a lot of flare, and it certainly
won't be helpful in renaming and other refactoring operations at
this time. But, hopefully it will be extended over time to be
more fully integrated with netbeans.


Minesh Mathew
Completed MS + PhD from IIIT Hyderabad. .I had obtained my undergraduate degree in Btech Computer Science Engineering from NIT Warangal in 2009.
My PhD research deals with machine-understanding of document images. Specifically, I look into the problems of OCR in Indian languages, Scene text understanding and Document Visual Question Answering (DocVQA)
News /Updates
- [May 2023] - Received CVPR 2023 , outstading reviewer award
- [April 2023] - ICDAR 2023 Challenge on Road text detection , tracking and recognition comes to an end. Results are public now
- [April 2023] - George’s work on VQA for driving videos accepted at ICDAR 2023
- [Jan 2023] We are organizing two challenges in ICDAR 2023
- ICDAR 2023 Competition on RoadText Video Text Detection, Tracking and Recognition
- ICDAR 2023 Competition on Text-based Video Question Answering on News Videos
- [Sept 22] - Soumya’s work on VQA on accepted to WACV 2023
- [May 2022] - Our work comparing different CTC based architectures for Indian languages OCR, now available in arXiv - Link
- [March 2022] - Our paper “Read while you Drive - Multilingual Text Tracking on the Road” accepted to DAS 2022, Congrats Sergi and George
- [Oct 2021] Attended ICCV 2021 Doctoral Consortium
- [Oct 2021] InfographicVQA paper accepted at WACV 2022
- [Sept 2021] - Presented our work on QA over handwritten documents (oral) at ICDAR 2021
- [Sept 2021] - Organized first Edition of DocVQA workshop at ICDAR
Academic Services
- Reviewer for Conferences - ACCV 2022, CVPR 2022,23, ECCV 2022, SIGGRAPH 2022, ICDAR 2021, WACV 2021,22,23 and ICCV 2021,23
- Reviwer for jounrals - Pattern Recognition, IEEE TNNLS, TPAMI, Visual Computer, Concurreny n’ comput., IJCV, TMLR
- [2023] Organizer, NewsVideo QA and Road-text challenges in ICDAR 2023
- [2021] Organizer, Document Visual Question Answering Workshop, ICDAR 2021
- [2021] Organizer, DocVQA competition, ICDAR 2021
- [2020] Organizer, DocVQA competition, CVPR 2020
- [2020] Organizer and Competition Chair, Text and Documents Workshop , CVPR 2020
- [2019] Organizer, Scene Text VQA Competition, ICDAR 2019
Achievements / Recognitions
- [2021] - Outstanding reviewer (top 5%)- ICCV 2021
- [2021] - Selected for WACV 2021 and ICCV 2021 doctoral consortiums
- [2017] - Best Paper; Int’l Workshop on Arabic Script Analysis and Recognition (ASAR)
- [2015] - Runner up - Micorosoft Azure ML Hackathon held at IIIT Hyderabad
- [2015] - TCS PhD fellowship


After taking the class JOUR 2106, I am able to make my personal blog without using template, but pictures, videos and other elements I created myself. The blog is made of 10 HTML pages. I named them “Index page”, “About me page”, “Homework 1”, “Homework 3”, “Homework 4”, “Homework 5”, “Architecture”, “Art”, “Market”, and “Paper Offering” in Google Analytics Tool.
“Index Page” is the main page of the blog and it links the all the other pages together. “About me page” is a brief introduction of myself and the blog. The four Homework pages are the products I made during class. It marks different stages of me throughout the class, from being able to make simple html layout to interactive charts. The remaining pages, including “Architecture”, “Art”, “Market” and “Paper Offering” are added to enrich the blog with my own journalistic work.
Since there are too many pages, in the first part, we would investigate which pages contribute most to the total click rate and which is the most representative one. We would later analyze it separately. The contribution of different pages to the total click rate are shown in the below pie chart.
The above graph show that the "Index page", with 51.36% of click rate, contributes most to the total click rate. It is followed by "About me Page" that takes up 20.46% of the total click rate. The remaining pages contribute 1-5% each. It shows that the “Index page” and “About me page” has the highest click rate among all the pages in the blog.
It could be explained that all of the promotion are done on the “index page”, therefore, almost all visitors will go to the “Index page” first before going to other pages. It explains the extreme difference between "Index page" and other pages. For "About me Page", it is placed on the top of in the cover photo of “Index page”. And it may be the reason why visitors click it most. Since it is the first button they will see after entering the blog.
We would then analyze the click rate variation along the whole month. Since the pages other than "Index page" and "About me Page" contribute little to the total click rate, only "Total Click Rate", "Index Page" and "About me" are shown in the below line chart.
The above chart shows the click rate history in April. We could see that, there are some sharp increases of visitor on 8th, 13th and 19th April. It is believed that they are caused by my own when editing the "Index Page". On 26th April and 30th April, the chart show a significant surge. It is probably caused by social media promotion of the blog.
There are 3 stages of promotion. The first stage is "Facebook Promotion", the second stage is "Instagram Post Promotion" and the final stage is "Instagram Story Promotion". Three Promotions have different effect on the total click rate.
The "Facebook Promotion" is made on 25th April night. A public post with the link of "Index Page" are posted on the my Facebook. The comments and likes received is believed to be a further promoter, as friends of whom “liked” the post will see the post as well. Until now, the post got 71 likes, 33 comments, and 1 share in total.
The "Instagram Post Promotion" is done on 27th April night. A private post with photo are posted on my Instagram. This post did not contain a link to the "Index page" as Instagram doesn’t support hyperlink function. Therefore, the promotion effect is expected to be weaker comparing with the "Facebook Promotion".
The "Instagram Story Promotion" is done on 29th April night. I posted a private temporary story in Instagram, and it links to the profile of me that includes a direct link to the blog "Index Page". It is expected to be more effective than the "Instagram Post" since the link is provided in this promotion.
Comparing the three promotion methods, a line chart with stack are made to show the effects of the three methods. Two assumptions are made when making this chart.
(1) Promotion effect will last for 1 day only
(2) The average click rate without promotion are calculated by taking an average between the click rate during 3th to 22th April. As it removes some abnormal peaks due to editing job.
The above charts show the contribution of different methods to the total click rate. The upper boundary of the whole chart is the total click rate while the areas show the contribution of each method. Obviously, the "Facebook Promotion" is the most effective one, and it is followed by "Instragram Story Promotion". The "Instagram Post Promotion" is the least effective one.
Within the investigation period, a new feature is introduced into the website. A swiper promoting the featured post is added. The swiper promote three of the newly added posts: "Architect", "Art", and "Paper Offering". While the "Market" is not included in the swiper. Since there are four newly added posts, so data collection are only done between 24th to 30th April.
The graph shows the click rate of the four pages. Although "Architecture" has the highest click rate almost among the whole period, it may due to the location in the index page (It is the top post in the blog). When compare the remaining three pages, no significant differences is found. Therefore, the effect of the swiper tool on boosting the click rate of a particular page seems to be little.
After analyzing the promotion effects, we could notice some interesting facts in the result.
Although most of the blog visitors are from Hong Kong, some visitors are from other countries. It slightly shows the power of facebook promotion that it can break the geographical boundaries and link the world together.
Another interesting result is that the Desktop user to Mobile User ratio is almost 1:1. It shows that more and more people tend to use mobile to browse around the Internet. It emphasizes the importance of using cross-device user-interfaces (e.g.: bootstrap).


Query Filter Demo
The query filter provides an enhanced interface for filtering collections.
Filter on property
You can narrow your filtering to search only specified properties. For example "age:26".
Accept multiple values
You can specify multiple values for a given property. For example "name:[James,Travis]"
It can be used in your controllers/services too
$filter('akopQuery')($scope.someArray, {foo:"bar"})
Examples
Click to try the following queries.
| Name | Age | Occupation |
|---|---|---|


Date of birth (y-m-d)
Gender
About you:
I read and understood the terms of conditions & privacy policy


I know a famous grandmother - not famous as the world measures fame - but famous nonetheless. She was, or is, in my opinion, an outstanding expert in child psychology. Would to God that some of our modern specialists could tap into her special well of knowledge - born of love and filled with years of devotion.
She is a unique person - thank God I had the privilege to become a part of her family. If every child in the world could be nurtured by such a person - be they boy or girl - juvenile delinquency would cease to exist and peace would be restored to an unpeaceful world.
Oh, I can hear your exclamations of disbelief - but if you do not believe it is only because you do not understand, and she, of all people, would forgive you for that.
Do you know the desolation of tears? So does she. She has buried a husband, a son, and a grandchild. Do you know the laughter of participation in anothers' happiness? I hope so - but she certainly did. Do you understand the need of a neighbor with no one to turn to? She did, and never refused to reach out that helping hand.
And most of all, do you understand the responsibility the trust of a child places upon you? If you do, please accept that responsibility and teach and love the child. If not please listen and learn how to do these things from this portrait of Dessie.
It has been said that youth, like love, is wasted on the young. Perhaps, if one considers love as the blossoming of interest in the other sex. But more accurately, love can never be wasted on the young. Love is the young. Children are born into this world awaiting the embrace of a mother. What they receive is a shake and a slap from a doctor. What a traumatic beginning.
But the human spirit is unconquerable and those small beings, barely able to see, start their tortuous journey to adulthood. What should be a beautiful experience in human development can and does, all too often, become a frightening experience in human cruelty.
Except - if one is fortunate enough to have a Dessie in his or her life. Then, how wonderful it can become.
I know "children" in her house who are now parents, who cannot remember ever visiting her without looking for a cookie from the little sailor cookie jar that has been full of cookies for busy fingers for over fifty years.
Do you know what to do with a crying child? Telling it to hush is not the answer. We all must shed our tears and with them wash away the injury and the pain of remembrance. But when is enough, enough? Dessie knew. When any child came to her - hurt physically or psychologically - she drew the child to her, and speaking softly, smoothing the mussed hair, told that child that he (or she) could cry until her apron pockey was full of tears. The child could cry with complete relief. Dessie knew, as all who love children know, when the tears had healed the wound. Then, and only then, was the pocket full. Confronted with this fact, the children gazing at the pocket, and not able to see the tears within it, believed nevertheless, that it was full of tears, as indeed it was. The small faces were wiped clean and the little ones, armed with an invisible and impenetrable shield of love, returned to the world of objects and animals that sometimes could, and often did, hurt them. But what mattered a small hurt? They knew where comfort lay. Armed with such love and wisdom, they grew strong and confident.
 All they need is a hug and a smile - that's the true human environment that nurtures every living thing - tender loving care.
 If enough of us do that, this world of thorns with scarcely a rose will become a world of roses with scarcely a thorn.


This controls the relative volume of the main {_instrument} relative to the link instrument whenever a {_link_program link} is in effect. It has no effect when there is no link.
This is contained in the {Common_link_cluster link cluster} within the {Common_section}.
This is connected to the {_parameter_control} whenever a link is set up, the {Common_link_mode} is changed, or the same link mode is re-selected.
This is accessed via {_NRPN} 0,3. Since it is a {_bipolar} parameter, the values are offset by 64.
| MIDI | display | ||
| 49 | \-15db | ||
| \b\n\b\n\b | \b\n\b\n\b | ||
| 64 | 0db | (default) | |
| \b\n\b\n\b | \b\n\b\n\b | ||
| 79 | +15db |


The CakePHP database access layer abstracts and provides help with most aspects of dealing with relational databases such as, keeping connections to the server, building queries, preventing SQL injections, inspecting and altering schemas, and with debugging and profiling queries sent to the database.
The functions described in this chapter illustrate what is possible to do with the lower-level database access API. If instead you want to learn more about the complete ORM, you can read the Query Builder and Table Objects sections.
The easiest way to create a database connection is using a DSN
string:
use Cake\Datasource\ConnectionManager;
$dsn = 'mysql://root:password@localhost/my_database';
ConnectionManager::config('default', ['url' => $dsn]);
Once created, you can access the connection object to start using it:
$connection = ConnectionManager::get('default');
CakePHP supports the following relational database servers:
You will need the correct PDO extension installed for each of the above database drivers. Procedural APIs are not supported.
The Oracle database is supported through the Driver for Oracle Database community plugin.
Running raw SQL queries is a breeze:
use Cake\Datasource\ConnectionManager;
$connection = ConnectionManager::get('default');
$results = $connection->execute('SELECT * FROM articles')->fetchAll('assoc');
You can use prepared statements to insert parameters:
$results = $connection
->execute('SELECT * FROM articles WHERE id = :id', ['id' => 1])
->fetchAll('assoc');
It is also possible to use complex data types as arguments:
$results = $connection
->execute(
'SELECT * FROM articles WHERE created >= :created',
['created' => new DateTime('1 day ago')],
['created' => 'datetime']
)
->fetchAll('assoc');
Instead of writing the SQL manually, you can use the query builder:
$results = $connection
->newQuery()
->select('*')
->from('articles')
->where(['created >' => new DateTime('1 day ago'), ['created' => 'datetime']])
->order(['title' => 'DESC'])
->execute()
->fetchAll('assoc');
Inserting rows in the database is usually a matter of a couple lines:
use Cake\Datasource\ConnectionManager;
$connection = ConnectionManager::get('default');
$connection->insert('articles', [
'title' => 'A New Article',
'created' => new DateTime('now')
], ['created' => 'datetime']);
Updating rows in the database is equally intuitive, the following example will update the article with id 10:
use Cake\Datasource\ConnectionManager;
$connection = ConnectionManager::get('default');
$connection->update('articles', ['title' => 'New title'], ['id' => 10]);
Similarly, the delete()
method is used to delete rows from the database, the
following example deletes the article with id 10:
use Cake\Datasource\ConnectionManager;
$connection = ConnectionManager::get('default');
$connection->delete('articles', ['id' => 10]);
By convention database connections are configured in config/app.php. The
connection information defined in this file is fed into
Cake\Datasource\ConnectionManager
creating the connection configuration
your application will be using. Sample connection information can be found in
config/app.default.php. A sample connection configuration would look
like:
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
'username' => 'my_app',
'password' => 'sekret',
'database' => 'my_app',
'encoding' => 'utf8',
'timezone' => 'UTC',
'cacheMetadata' => true,
]
],
The above will create a ‘default’ connection, with the provided parameters. You
can define as many connections as you want in your configuration file. You can
also define additional connections at runtime using
Cake\Datasource\ConnectionManager::config()
. An example of that
would be:
use Cake\Datasource\ConnectionManager;
ConnectionManager::config('default', [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
'username' => 'my_app',
'password' => 'sekret',
'database' => 'my_app',
'encoding' => 'utf8',
'timezone' => 'UTC',
'cacheMetadata' => true,
]);
Configuration options can also be provided as a DSN string. This is useful when working with environment variables or PaaS providers:
ConnectionManager::config('default', [
'url' => 'mysql://my_app:sekret@localhost/my_app?encoding=utf8&timezone=UTC&cacheMetadata=true',
]);
When using a DSN string you can define any additional parameters/options as query string arguments.
By default, all Table objects will use the default
connection. To
use a non-default connection, see Configuring Connections.
There are a number of keys supported in database configuration. A full list is as follows:
.
in
your database name. Because of how it complicates identifier quoting CakePHP
does not support .
in database names. The path to your SQLite database
should be an absolute path (e.g. ROOT . DS . 'my_app.db'
) to avoid
incorrect paths caused by relative paths.true
to enable query logging. When enabled queries will be logged
at a debug
level with the queriesLog
scope.true
if you are using reserved words or special characters in
your table or column names. Enabling this setting will result in queries
built using the Query Builder having identifiers quoted when
creating SQL. It should be noted that this decreases performance because
each query needs to be traversed and manipulated before being executed.true
, or a string containing the cache configuration to
store meta data in. Having metadata caching disable is not advised and can
result in very poor performance. See the Metadata Caching
section for more information.At this point, you might want to take a look at the CakePHP Conventions. The correct naming for your tables (and the addition of some columns) can score you some free functionality and help you avoid configuration. For example, if you name your database table big_boxes, your table BigBoxesTable, and your controller BigBoxesController, everything will work together automatically. By convention, use underscores, lower case, and plural forms for your database table names - for example: bakers, pastry_stores, and savory_cakes.
Cake\Datasource\
ConnectionManager
¶The ConnectionManager
class acts as a registry to access database
connections your application has. It provides a place that other objects can get
references to existing connections.
Cake\Datasource\ConnectionManager::
get
($name)¶Once configured connections can be fetched using
Cake\Datasource\ConnectionManager::get()
. This method will
construct and load a connection if it has not been built before, or return the
existing known connection:
use Cake\Datasource\ConnectionManager;
$conn = ConnectionManager::get('default');
Attempting to load connections that do not exist will throw an exception.
Using config()
and get()
you can create new connections that are not
defined in your configuration files at runtime:
ConnectionManager::config('my_connection', $config);
$conn = ConnectionManager::get('my_connection');
See the Configuration for more information on the configuration data used when creating connections.
Cake\Database\
Type
¶Since not every database vendor includes the same set of data types, or the same names for similar data types, CakePHP provides a set of abstracted data types for use with the database layer. The types CakePHP supports are:
fixed
option
will force a CHAR column. In SQL Server, NCHAR and NVARCHAR types are used.TINYINT(1)
is treated as a boolean.precision
option can be used to define the precision used.length
and precision
options.Cake\I18n\Date
which extends the native DateTime
class.Cake\I18n\Time
which extends the built-in
DateTime
class and Chronos.These types are used in both the schema reflection features that CakePHP provides, and schema generation features CakePHP uses when using test fixtures.
Each type can also provide translation functions between PHP and SQL
representations. These methods are invoked based on the type hints provided when
doing queries. For example a column that is marked as ‘datetime’ will
automatically convert input parameters from DateTime
instances into a
timestamp or formatted datestrings. Likewise, ‘binary’ columns will accept file
handles, and generate file handles when reading data.
Changed in version 3.3.0: The json
type was added.
Changed in version 3.5.0: The smallinteger
and tinyinteger
types were added.
Cake\Database\Type::
map
($name, $class)¶If you need to use vendor specific types that are not built into CakePHP you can add additional new types to CakePHP’s type system. Type classes are expected to implement the following methods:
toPHP
: Casts given value from a database type to a PHP equivalent.toDatabase
: Casts given value from a PHP type to one acceptable by a database.toStatement
: Casts given value to its Statement equivalent.marshal
: Marshals flat data into PHP objects.An easy way to fulfill the basic interface is to extend
Cake\Database\Type
. For example if we wanted to add a JSON type,
we could make the following type class:
// in src/Database/Type/JsonType.php
namespace App\Database\Type;
use Cake\Database\Driver;
use Cake\Database\Type;
use PDO;
class JsonType extends Type
{
public function toPHP($value, Driver $driver)
{
if ($value === null) {
return null;
}
return json_decode($value, true);
}
public function marshal($value)
{
if (is_array($value) || $value === null) {
return $value;
}
return json_decode($value, true);
}
public function toDatabase($value, Driver $driver)
{
return json_encode($value);
}
public function toStatement($value, Driver $driver)
{
if ($value === null) {
return PDO::PARAM_NULL;
}
return PDO::PARAM_STR;
}
}
By default the toStatement()
method will treat values as strings which will
work for our new type. Once we’ve created our new type, we need to add it into
the type mapping. During our application bootstrap we should do the following:
use Cake\Database\Type;
Type::map('json', 'App\Database\Type\JsonType');
New in version 3.3.0: The JsonType described in this example was added to the core.
We can then overload the reflected schema data to use our new type, and CakePHP’s database layer will automatically convert our JSON data when creating queries. You can use the custom types you’ve created by mapping the types in your Table’s _initializeSchema() method:
use Cake\Database\Schema\TableSchema;
class WidgetsTable extends Table
{
protected function _initializeSchema(TableSchema $schema)
{
$schema->columnType('widget_prefs', 'json');
return $schema;
}
}
New in version 3.3.0: Support for mapping custom data types to SQL expressions was added in 3.3.0.
The previous example maps a custom datatype for a ‘json’ column type which is
easily represented as a string in a SQL statement. Complex SQL data
types cannot be represented as strings/integers in SQL queries. When working
with these datatypes your Type class needs to implement the
Cake\Database\Type\ExpressionTypeInterface
interface. This interface lets
your custom type represent a value as a SQL expression. As an example, we’ll
build a simple Type class for handling POINT
type data out of MySQL. First
we’ll define a ‘value’ object that we can use to represent POINT
data in
PHP:
// in src/Database/Point.php
namespace App\Database;
// Our value object is immutable.
class Point
{
protected $_lat;
protected $_long;
// Factory method.
public static function parse($value)
{
// Parse the data from MySQL.
return new static($value[0], $value[1]);
}
public function __construct($lat, $long)
{
$this->_lat = $lat;
$this->_long = $long;
}
public function lat()
{
return $this->_lat;
}
public function long()
{
return $this->_long;
}
}
With our value object created, we’ll need a Type class to map data into this value object and into SQL expressions:
namespace App\Database\Type;
use App\Database\Point;
use Cake\Database\Expression\FunctionExpression;
use Cake\Database\Type as BaseType;
use Cake\Database\Type\ExpressionTypeInterface;
class PointType extends BaseType implements ExpressionTypeInterface
{
public function toPHP($value, Driver $d)
{
return Point::parse($value);
}
public function marshal($value)
{
if (is_string($value)) {
$value = explode(',', $value);
}
if (is_array($value)) {
return new Point($value[0], $value[1]);
}
return null;
}
public function toExpression($value)
{
if ($value instanceof Point) {
return new FunctionExpression(
'POINT',
[
$value->lat(),
$value->long()
]
);
}
if (is_array($value)) {
return new FunctionExpression('POINT', [$value[0], $value[1]]);
}
// Handle other cases.
}
}
The above class does a few interesting things:
toPHP
method handles parsing the SQL query results into a value
object.marshal
method handles converting, data such as given request data, into our value object.
We’re going to accept string values like '10.24,12.34
and arrays for now.toExpression
method handles converting our value object into the
equivalent SQL expressions. In our example the resulting SQL would be
something like POINT(10.24, 12.34)
.Once we’ve built our custom type, we’ll need to connect our type to our table class.
New in version 3.2: Immutable date/time objects were added in 3.2.
Because Date/Time objects are easily mutated in place, CakePHP allows you to enable immutable value objects. This is best done in your application’s config/bootstrap.php file:
Type::build('datetime')->useImmutable();
Type::build('date')->useImmutable();
Type::build('time')->useImmutable();
Type::build('timestamp')->useImmutable();
Note
New applications will have immutable objects enabled by default.
Cake\Database\
Connection
¶Connection classes provide a simple interface to interact with database connections in a consistent way. They are intended as a more abstract interface to the driver layer and provide features for executing queries, logging queries, and doing transactional operations.
Cake\Database\Connection::
query
($sql)¶Once you’ve gotten a connection object, you’ll probably want to issue some
queries with it. CakePHP’s database abstraction layer provides wrapper features
on top of PDO and native drivers. These wrappers provide a similar interface to
PDO. There are a few different ways you can run queries depending on the type of
query you need to run and what kind of results you need back. The most basic
method is query()
which allows you to run already completed SQL queries:
$stmt = $conn->query('UPDATE articles SET published = 1 WHERE id = 2');
Cake\Database\Connection::
execute
($sql, $params, $types)¶The query()
method does not allow for additional parameters. If you need
additional parameters you should use the execute()
method, which allows for
placeholders to be used:
$stmt = $conn->execute(
'UPDATE articles SET published = ? WHERE id = ?',
[1, 2]
);
Without any type hinting information, execute
will assume all placeholders
are string values. If you need to bind specific types of data, you can use their
abstract type names when creating a query:
$stmt = $conn->execute(
'UPDATE articles SET published_date = ? WHERE id = ?',
[new DateTime('now'), 2],
['date', 'integer']
);
Cake\Database\Connection::
newQuery
()¶This allows you to use rich data types in your applications and properly convert them into SQL statements. The last and most flexible way of creating queries is to use the Query Builder. This approach allows you to build complex and expressive queries without having to use platform specific SQL:
$query = $conn->newQuery();
$query->update('articles')
->set(['published' => true])
->where(['id' => 2]);
$stmt = $query->execute();
When using the query builder, no SQL will be sent to the database server until
the execute()
method is called, or the query is iterated. Iterating a query
will first execute it and then start iterating over the result set:
$query = $conn->newQuery();
$query->select('*')
->from('articles')
->where(['published' => true]);
foreach ($query as $row) {
// Do something with the row.
}
Note
When you have an instance of Cake\ORM\Query
you can use
all()
to get the result set for SELECT queries.
The connection objects provide you a few simple ways you do database
transactions. The most basic way of doing transactions is through the begin()
,
commit()
and rollback()
methods, which map to their SQL equivalents:
$conn->begin();
$conn->execute('UPDATE articles SET published = ? WHERE id = ?', [true, 2]);
$conn->execute('UPDATE articles SET published = ? WHERE id = ?', [false, 4]);
$conn->commit();
Cake\Database\Connection::
transactional
(callable $callback)¶In addition to this interface connection instances also provide the
transactional()
method which makes handling the begin/commit/rollback calls
much simpler:
$conn->transactional(function ($conn) {
$conn->execute('UPDATE articles SET published = ? WHERE id = ?', [true, 2]);
$conn->execute('UPDATE articles SET published = ? WHERE id = ?', [false, 4]);
});
In addition to basic queries, you can execute more complex queries using either the Query Builder or Table Objects. The transactional method will do the following:
begin
.false
, a rollback will be issued.When using the lower level database API, you will often encounter statement
objects. These objects allow you to manipulate the underlying prepared statement
from the driver. After creating and executing a query object, or using
execute()
you will have a StatementDecorator
instance. It wraps the
underlying basic statement object and provides a few additional features.
You can create a statement object using execute()
, or prepare()
. The
execute()
method returns a statement with the provided values bound to it.
While prepare()
returns an incomplete statement:
// Statements from execute will have values bound to them already.
$stmt = $conn->execute(
'SELECT * FROM articles WHERE published = ?',
[true]
);
// Statements from prepare will be parameters for placeholders.
// You need to bind parameters before attempting to execute it.
$stmt = $conn->prepare('SELECT * FROM articles WHERE published = ?');
Once you’ve prepared a statement you can bind additional data and execute it.
Once you’ve created a prepared statement, you may need to bind additional data.
You can bind multiple values at once using the bind()
method, or bind
individual elements using bindValue
:
$stmt = $conn->prepare(
'SELECT * FROM articles WHERE published = ? AND created > ?'
);
// Bind multiple values
$stmt->bind(
[true, new DateTime('2013-01-01')],
['boolean', 'date']
);
// Bind a single value
$stmt->bindValue(1, true, 'boolean');
$stmt->bindValue(2, new DateTime('2013-01-01'), 'date');
When creating statements you can also use named array keys instead of positional ones:
$stmt = $conn->prepare(
'SELECT * FROM articles WHERE published = :published AND created > :created'
);
// Bind multiple values
$stmt->bind(
['published' => true, 'created' => new DateTime('2013-01-01')],
['published' => 'boolean', 'created' => 'date']
);
// Bind a single value
$stmt->bindValue('published', true, 'boolean');
$stmt->bindValue('created', new DateTime('2013-01-01'), 'date');
Warning
You cannot mix positional and named array keys in the same statement.
After preparing a statement and binding data to it, you can execute it and fetch
rows. Statements should be executed using the execute()
method. Once
executed, results can be fetched using fetch()
, fetchAll()
or iterating
the statement:
$stmt->execute();
// Read one row.
$row = $stmt->fetch('assoc');
// Read all rows.
$rows = $stmt->fetchAll('assoc');
// Read rows through iteration.
foreach ($rows as $row) {
// Do work
}
Note
Reading rows through iteration will fetch rows in ‘both’ mode. This means you will get both the numerically indexed and associatively indexed results.
After executing a statement, you can fetch the number of affected rows:
$rowCount = count($stmt);
$rowCount = $stmt->rowCount();
If your query was not successful, you can get related error information
using the errorCode()
and errorInfo()
methods. These methods work the
same way as the ones provided by PDO:
$code = $stmt->errorCode();
$info = $stmt->errorInfo();
Query logging can be enabled when configuring your connection by setting the
log
option to true
. You can also toggle query logging at runtime, using
logQueries
:
// Turn query logging on.
$conn->logQueries(true);
// Turn query logging off
$conn->logQueries(false);
When query logging is enabled, queries will be logged to
Cake\Log\Log
using the ‘debug’ level, and the ‘queriesLog’ scope.
You will need to have a logger configured to capture this level & scope. Logging
to stderr
can be useful when working on unit tests, and logging to
files/syslog can be useful when working with web requests:
use Cake\Log\Log;
// Console logging
Log::config('queries', [
'className' => 'Console',
'stream' => 'php://stderr',
'scopes' => ['queriesLog']
]);
// File logging
Log::config('queries', [
'className' => 'File',
'path' => LOGS,
'file' => 'queries.log',
'scopes' => ['queriesLog']
]);
Note
Query logging is only intended for debugging/development uses. You should never leave query logging on in production as it will negatively impact the performance of your application.
By default CakePHP does not quote identifiers in generated SQL queries. The reason for this is identifier quoting has a few drawbacks:
If you are using a legacy schema that requires identifier quoting you can enable
it using the quoteIdentifiers
setting in your
Configuration. You can also enable this feature at runtime:
$conn->driver()->autoQuoting(true);
When enabled, identifier quoting will cause additional query traversal that
converts all identifiers into IdentifierExpression
objects.
Note
SQL snippets contained in QueryExpression objects will not be modified.
CakePHP’s ORM uses database reflection to determine the schema, indexes and
foreign keys your application contains. Because this metadata changes
infrequently and can be expensive to access, it is typically cached. By default,
metadata is stored in the _cake_model_
cache configuration. You can define
a custom cache configuration using the cacheMetatdata
option in your
datasource configuration:
'Datasources' => [
'default' => [
// Other keys go here.
// Use the 'orm_metadata' cache config for metadata.
'cacheMetadata' => 'orm_metadata',
]
],
You can also configure the metadata caching at runtime with the
cacheMetadata()
method:
// Disable the cache
$connection->cacheMetadata(false);
// Enable the cache
$connection->cacheMetadata(true);
// Use a custom cache config
$connection->cacheMetadata('orm_metadata');
CakePHP also includes a CLI tool for managing metadata caches. See the ORM Cache Shell chapter for more information.
If you want to create a connection without selecting a database you can omit the database name:
$dsn = 'mysql://root:password@localhost/';
You can now use your connection object to execute queries that create/modify databases. For example to create a database:
$connection->query("CREATE DATABASE IF NOT EXISTS my_database");
Note
When creating a database it is a good idea to set the character set and collation parameters. If these values are missing, the database will set whatever system default values it uses.


Interface IConfigure
Defines the configuration for Bifrost
Namespace:Bifrost.Configuration
Assembly:Bifrost.dll
Syntax
public interface IConfigure
Properties
| Improve this Doc View SourceAssemblies
Gets the configuration for assemblies and how they are treated
Declaration
AssembliesConfiguration Assemblies { get; }
Property Value
| Type | Description |
|---|---|
| AssembliesConfiguration |
CallContext
Gets the configuration for ICallContext
Declaration
ICallContextConfiguration CallContext { get; }
Property Value
| Type | Description |
|---|---|
| ICallContextConfiguration |
Commands
Gets the configuration for commands
Declaration
ICommandsConfiguration Commands { get; }
Property Value
| Type | Description |
|---|---|
| ICommandsConfiguration |
Container
Gets the container that is used
Declaration
IContainer Container { get; }
Property Value
| Type | Description |
|---|---|
| IContainer |
ConventionManager
Gets the convention manager for bindings
Declaration
IBindingConventionManager ConventionManager { get; }
Property Value
| Type | Description |
|---|---|
| IBindingConventionManager |
Culture
Gets or sets the System.Globalization.CultureInfo to use in Bifrost
Declaration
CultureInfo Culture { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Globalization.CultureInfo |
DefaultLifecycle
Gets or sets the default
Declaration
BindingLifecycle DefaultLifecycle { get; set; }
Property Value
| Type | Description |
|---|---|
| BindingLifecycle |
DefaultStorage
Gets the configureation for the applications default storage
Declaration
IDefaultStorageConfiguration DefaultStorage { get; }
Property Value
| Type | Description |
|---|---|
| IDefaultStorageConfiguration |
EntryAssembly
Gets the entry assembly for the application
Declaration
Assembly EntryAssembly { get; }
Property Value
| Type | Description |
|---|---|
| System.Reflection.Assembly |
Events
Gets the configuration for events. Supports specific storage
Declaration
IEventsConfiguration Events { get; }
Property Value
| Type | Description |
|---|---|
| IEventsConfiguration |
ExecutionContext
Gets the configuration for the IExecutionContext
Declaration
IExecutionContextConfiguration ExecutionContext { get; }
Property Value
| Type | Description |
|---|---|
| IExecutionContextConfiguration |
Frontend
Gets the configuration for the frontend part of the application
Declaration
IFrontendConfiguration Frontend { get; }
Property Value
| Type | Description |
|---|---|
| IFrontendConfiguration |
Sagas
Gets the configuration for sagas Supports specific storage
Declaration
ISagasConfiguration Sagas { get; }
Property Value
| Type | Description |
|---|---|
| ISagasConfiguration |
Security
Gets the configuration for security
Declaration
ISecurityConfiguration Security { get; }
Property Value
| Type | Description |
|---|---|
| ISecurityConfiguration |
Serialization
Gets the configureation for serialization
Declaration
ISerializationConfiguration Serialization { get; }
Property Value
| Type | Description |
|---|---|
| ISerializationConfiguration |
SystemName
Gets or sets the name of the currently running system
Declaration
string SystemName { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Tasks
Gets the configuration for Task Supports specific storage
Declaration
ITasksConfiguration Tasks { get; }
Property Value
| Type | Description |
|---|---|
| ITasksConfiguration |
UICulture
Gets or sets the System.Globalization.CultureInfo to use in Bifrost
Declaration
CultureInfo UICulture { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Globalization.CultureInfo |
Views
Gets the configuration for views
Declaration
IViewsConfiguration Views { get; }
Property Value
| Type | Description |
|---|---|
| IViewsConfiguration |
Methods
| Improve this Doc View SourceInitialize()
Initializes Bifrost after configuration
Declaration
void Initialize()


R notebooks
On the 1st of June session, Natalie showed how to use R markdown
to use R studio
like a pro!
Every two weeks on Thursday in the Boardroom from 17:00 (Bring your own booze!)
On the 1st of June session, Natalie showed how to use R markdown
to use R studio
like a pro!
On the 18th of May session, I (Thomas) showed how markdown is the answer to everything if you want to write down things.
On the 20th of April session, Jack showed us how how to create easy analysis pipelines for both ArcGIS and GIS in R.
On the 30th of March, Dimitris showed us how to use the Open Tree of Life in a R pipeline. Great stuff for phylo analysis (especially for getting backbones or constraints)!
On the 16th of March session, Samraat made a nice and easy demo of how to use Jupyter and integrate it into collaborative workflows.


- {{attendance.date | date : 'y-MM-dd EEEE'}}
| MIN REQUIRED | PERCENTAGE | LETTER GRADE(Ab: 0) | LETTER GRADE(Ab: 1) | LETTER GRADE(Ab: 2) | LETTER GRADE(Ab: 3,3+) | MANAGE |
|---|---|---|---|---|---|---|
|
|
{{getPercent(gradeRule) | percent:'.2'}} | {{gradeRule.letterGradeAbsenceNone}} | {{gradeRule.letterGradeAbsenceOne}} | {{gradeRule.letterGradeAbsenceTwo}} | {{gradeRule.letterGradeAbsenceThreePlus}} | Edit Delete Save Cancel |
| Link | Syllabus? | NAME | Uploaded Date | Uploaded By | DELETE |
|---|---|---|---|---|---|
| {{file.name}} | {{file.uploadedDate | date : 'y-MM-dd'}} | {{file.uploadedBy}} | Delete |


| « Prev 4.5.1 Finding Files: The glob Method | Table of Contents | Next » 4.5.3 PATH Management |
The download
method can be used to download a file from a given URL.
Example use:
default do download "https://ftp.gnu.org/gnu/gcc/gcc-#{gcc_version}/gcc-#{gcc_version}.tar.xz", "#{build_dir}/gcc-#{gcc_version}.tar.xz", sha256_sum: gcc_checksum end
The download
method downloads the file specified by the URL in the first
parameter, and writes it to the local file specified by the second parameter.
If the :sha256sum
option is given, this causes two changes to the default
behavior:
| « Prev 4.5.1 Finding Files: The glob Method | Table of Contents | Next » 4.5.3 PATH Management |


Using events in Miew
Load 4XN6.mmtf
Load 1CRN.pdb
Create new rep from selection
Ambient occlusion
None


| Package | Description |
|---|---|
| org.apache.fop.afp.goca |
Contains a collection of AFP font related classes.
|
| org.apache.fop.afp.ioca |
Contains a collection of AFP Image Object Content Architecture (IOCA) structured objects.
|
| org.apache.fop.afp.modca |
Contains a collection of AFP Mixed Object Document Content Architecture (MO:DCA) structured objects.
|
| Modifier and Type | Class and Description |
|---|---|
class |
AbstractGraphicsDrawingOrderContainer
A base container of prepared structured AFP objects
|
class |
GraphicsChainedSegment
A GOCA graphics segment
|
class |
GraphicsData
A GOCA graphics data
|
| Modifier and Type | Class and Description |
|---|---|
class |
ImageContent
An IOCA Image Content
|
class |
ImageSegment
An Image Segment is represented by a set of self-defining fields, fields
that describe their own contents.
|
class |
Tile |
| Modifier and Type | Class and Description |
|---|---|
class |
AbstractDataObject
Abstract base class used by the ImageObject and GraphicsObject which both
have define an ObjectEnvironmentGroup
|
class |
AbstractDescriptor
Base class for AFP descriptor objects
|
class |
AbstractEnvironmentGroup
A base class that encapsulates common features of
ActiveEnvironmentGroup and ResourceEnvironmentGroup
|
class |
AbstractNamedAFPObject
This is the base class for all named data stream objects.
|
class |
AbstractPageObject
Pages contain the data objects that comprise a presentation document.
|
class |
AbstractResourceEnvironmentGroupContainer
An abstract class which encapsulates the common features of
Document and PageGroup resource containers
|
class |
AbstractResourceGroupContainer
An abstract container of resource objects
|
class |
AbstractTripletStructuredObject
A MODCA structured object base class providing support for Triplets
|
class |
ActiveEnvironmentGroup
An Active Environment Group (AEG) is associated with each page,
and is contained in the page's begin-end envelope in the data stream.
|
class |
ContainerDataDescriptor
Container data descriptor (to maintain compatibility with pre-year 2000 applications)
|
class |
Document
The document is the highest level of the MO:DCA data-stream document
component hierarchy.
|
class |
GraphicsDataDescriptor
GOCA Graphics Data Descriptor
|
class |
GraphicsObject
Top-level GOCA graphics object.
|
class |
ImageDataDescriptor
ImageDataDescriptor
|
class |
ImageObject
An IOCA Image Data Object
|
class |
IMImageObject
An IM image data object specifies the contents of a raster image and
its placement on a page, overlay, or page segment.
|
class |
IncludedResourceObject
Encapsulates an included resource object that is loaded from an external file.
|
class |
IncludeObject
An Include Object structured field references an object on a page or overlay.
|
class |
IncludePageOverlay
The Include Page Overlay structured field references an overlay resource
definition that is to be positioned on the page.
|
class |
IncludePageSegment
The Include Page Segment structured field references a page segment resource
object that is to be presented on the page or overlay presentation space.
|
class |
InvokeMediumMap
The Invoke Medium Map structured field identifies the Medium Map that is to
become active for the document.
|
class |
MapCodedFont
The Map Coded Font structured field maps a unique coded font resource local
ID, which may be embedded one or more times within an object's data and
descriptor, to the identifier of a coded font resource object.
|
class |
MapContainerData
The Map Container Data structured field specifies how a presentation data object
that is carried in an Object Container is mapped into its object area.
|
class |
MapDataResource
The Map Data Resource structured field specifies resources that are
required for presentation.
|
class |
MapImageObject
The Map Image Object (MIO) structured field specifies how an image data object is
mapped into its object area.
|
class |
ObjectAreaDescriptor
The Object Area Descriptor structured field specifies the size and attributes
of an object area presentation space.
|
class |
ObjectContainer
Object containers are MO:DCA objects that envelop and carry object data.
|
class |
ObjectEnvironmentGroup
An Object Environment Group (OEG) may be associated with an object and is contained
within the object's begin-end envelope.
|
class |
Overlay
An overlay is a MO:DCA-P resource object.
|
class |
PageDescriptor
The Page Descriptor structured field specifies the size and attributes of
a page or overlay presentation space.
|
class |
PageGroup
A page group is used in the data stream to define a named, logical grouping
of sequential pages.
|
class |
PageObject
Pages contain the data objects that comprise a presentation document.
|
class |
PageSegment
A page segment is a MO:DCA-P resource object.
|
class |
PreprocessPresentationObject
The Preprocess Presentation Object structured field specifies presentation
parameters for a data object that has been mapped as a resource.
|
class |
PresentationEnvironmentControl
The Presentation Environment Control structured field specifies parameters that
affect the rendering of presentation data and the appearance that is to be assumed
by the presentation device.
|
class |
PresentationTextDescriptor
The Presentation Text Descriptor specifies the units of measure for the
Presentation Text object space, the size of the Presentation Text object
space, and the initial values for modal parameters, called initial text
conditions.
|
class |
PresentationTextObject
The Presentation Text object is the data object used in document processing
environments for representing text which has been prepared for presentation.
|
class |
ResourceEnvironmentGroup
A Resource Environment Group contains a set of resources for a document
or for a group of pages in a document.
|
class |
ResourceGroup
A Resource Group contains a set of overlays.
|
class |
ResourceObject
This resource structured field begins an envelope that is used to carry
resource objects in print-file-level (external) resource groups.
|
class |
StreamedResourceGroup
A print-file resource group
|
class |
TagLogicalElement
A Tag Logical Element structured field assigns an attribute name and an
attribute value to a page or page group.
|
Copyright 1999-2020 The Apache Software Foundation. All Rights Reserved.


|
mbed-lib
1.0
|
Defines | |
| #define | MBED_SYS_INIT (1 << 0) |
| #define | MBED_LED_INIT (1 << 1) |
| #define | MBED_MUSB_INIT (1 << 2) |
| #define | MBED_SERIAL0_INIT (1 << 3) |
| #define | MBED_SERIAL1_INIT (1 << 4) |
| #define | MBED_SERIAL2_INIT (1 << 5) |
| #define | MBED_CAN0_INIT (1 << 6) |
| #define | MBED_CAN1_INIT (1 << 7) |
| #define | MBED_TIMER0_INIT (1 << 8) |
| #define | MBED_TIMER1_INIT (1 << 9) |
| #define | MBED_TIMER2_INIT (1 << 10) |
| #define | MBED_TIMER3_INIT (1 << 11) |
| #define | MBED_GPI_INIT (1 << 12) |
| #define | MBED_GPO_INIT (1 << 13) |
These flags indicate which functionality has been successfully initialized.
| #define MBED_CAN0_INIT (1 << 6) |
CAN1 initialized.
| #define MBED_CAN1_INIT (1 << 7) |
CAN2 initialized.
| #define MBED_GPI_INIT (1 << 12) |
General purpose inputs initialized.
| #define MBED_GPO_INIT (1 << 13) |
General purpose outputs initialized.
| #define MBED_LED_INIT (1 << 1) |
The four LEDs are initialized.
| #define MBED_MUSB_INIT (1 << 2) |
Serial communication functionality on the mini USB-B port initialized.
| #define MBED_SERIAL0_INIT (1 << 3) |
UART1 initialized.
| #define MBED_SERIAL1_INIT (1 << 4) |
UART2 initialized.
| #define MBED_SERIAL2_INIT (1 << 5) |
UART3 initialized.
| #define MBED_SYS_INIT (1 << 0) |
System initialization complete.
| #define MBED_TIMER0_INIT (1 << 8) |
TIMER0 initialized.
| #define MBED_TIMER1_INIT (1 << 9) |
TIMER1 initialized.
| #define MBED_TIMER2_INIT (1 << 10) |
TIMER2 initialized.
| #define MBED_TIMER3_INIT (1 << 11) |
TIMER3 initialized.


This privacy notice discloses the privacy practices for (em-vibes.com). This privacy notice applies solely to information collected by this website.
It will notify you of the following:
We are the sole owners of the information collected on this site. We only have access to/collect information that you voluntarily give us via email or other direct contact from you. We will not sell or rent this information to anyone.
We will use your information to respond to you, regarding the reason you contacted us. We will not share your information with any third party outside of our organization, other than as necessary to fulfill your request, e.g. to ship an order.
Unless you ask us not to, we may contact you via email in the future to tell you about specials, new products or services, or changes to this privacy policy.
You may opt out of any future contacts from us at any time. You can do the following at any time by contacting us via the email address or phone number given on our website:
We take precautions to protect your information. When you submit sensitive information via the website, your information is protected both online and offline.
Wherever we collect sensitive information (such as credit card data), that information is encrypted and transmitted to us in a secure way. You can verify this by looking for a lock icon in the address bar and looking for "https" at the beginning of the address of the Web page.
While we use encryption to protect sensitive information transmitted online, we also protect your information offline. Only team members who need the information to perform a specific job (for example, billing or customer service) are granted access to personally identifiable information. The computers/servers in which we store personally identifiable information are kept in a secure environment.
If you feel that we are not abiding by this privacy policy, you should contact us immediately via Facebook Messenger.


Sheetal's Academy
Sheetal's
First Name :
Middle Name :
Last Name :
Gender: Male Female
Permanent Add:
City: City Ulhasnagar Kalyan Dombiwali Vithalwadi District: District Thane State: State Maharashtra
Pincode
Mobile :
Email
IX Expected Percent:
SSC Expected Percent:


Stats
Comparing Treatments
Your task:
- Download
- Repeat the following exercise for
stat2.txt
, thenstats0.txt
- Look at the data in stats0.txt;
- Sort them by their median;
- Draw percentile charts for each (no need to be super accurate, near enough is good enough);
- Do any of these seven groups cluster together?
- When you have answers to all the above (and not before), compare your results to
cat statX.txt | python stats.py --text 30
- Run
python stat4.py | python stats.py
and comment if you agree or disagree with the output.
How to Comapre Results
To compare if treatment 1 is better than another, apply the followng rules:
- Visualize the data, somehow.
- Check if the central tendency of one distribution is better than the other; e.g. compare their median values.
- Check the different between the central tendencies is not some small effect.
- Check if the distributions are significantly different;
That is:
When faced with new data, always chant the following mantra:
- First visualize it to get some intuitions;
- Then apply some statistics to double check those intuitions.
That is, it is strong recommended that, prior doing any statistical work, an analyst generates a visualization of the data.
(And some even say, do not do stats at all:
- "If you need statistics, you did the wrong experiment." -- Enrest Rutherford.)
Sometimes, visualizations are enough:
- CHIRP: A new classifier based on Composite Hypercubes on Iterated Random Projections
- Simpler Questions Can Lead To Better Insights, from Perspectives on Data Science for Software Engineering, Morgan-Kaufmann, 2015
Percentile Charts
Percentile charts a simple way to display very large populations in very little space. The advantage of percentile charts is that we can show a lot of data in very little space.
For example, here's an example where the xtile Python function shows 2000 numbers on two lines:
Consider two distributions, of 1000 samples each: one shows square root of a rand() and the other shows the square of a rand().
10: def _tile() :
11: import random
12: r = random.random
13: def show(lst):
14: return xtile(lst,lo=0, hi=1,width=25,
15: show= lambda s:" %3.2f" % s)
16: print "one", show([r()*0.5 for x in range(1000)])
17: print "two", show([r()*2 for x in range(1000)])
In the following quintile charts, we show these distributions:
- The range is 0 to 1.
- One line shows the square of 1000 random numbers;
- The other line shows the square root of 1000 random numbers;
Note the brevity of the display:
one -----| * --- , 0.32, 0.55, 0.70, 0.84, 0.95
two -- * |-------- , 0.01, 0.10, 0.27, 0.51, 0.85
- Quintiles divide the data into the 10th, 30th, 50th, 70th, 90th percentile.
- Dashes ("-") mark the range (10,30)th and (70,90)th percentiles;
- White space marks the ranges (30,50)th and (50,70)th percentiles.
- The vertical bar "|" shows half way between the display's min and max .
BTW, there are many more ways to view results than just percentiles
Medians
To compare if one optimizer is better than another, apply the followng rules:
- Visualize the data, somehow.
- Check if the central tendency of one distribution is better than the other; e.g. compare their median values.
- Check the different between the central tendencies is not some small effect.
- Check if the distributions are significantly different;
All things considered, means do not mean much, especially for highly skewed distributions. For example:
- Bill Gates and 35 homeless people are in the same room.
- Their mean annual income is over a billion dollars each- which is a number that characterized neither Mr. Gates or the homeless people.
- On the other hand, the median income of that population is close to zero- which is a number that characterizes most of that population.
The median of a list is the middle item of the sorted values, if the list is of an odd size. If the list size is even, the median is the two values either side of the middle:
def median(lst,ordered=False):
lst = lst if ordered else sorted(lst)
n = len(lst)
p = n // 2
if (n % 2): return lst[p]
p,q = p-1,p
q = max(0,(min(q,n)))
return (lst[p] + lst[q]) * 0.5
Check for "Small Effects"
To compare if one optimizer is better than another, apply the followng rules:
- Visualize the data, somehow.
- Check if the central tendency of one distribution is better than the other; e.g. compare their median values.
- Check the different between the central tendencies is not some small effect.
- Check if the distributions are significantly different;
An effect size test is a sanity check that can be summarizes as follows:
- Don't sweat the small stuff;
I.e. ignore small differences between items in the samples.
There parametric and non-parametric tests for "small effects" (which, if we find, we should just ignore).
Parametric tests assume that the numbers fit some simple distribution (e.g. the normal Gaussian curve).
Cohen's rule:
- compare means Δ = μ1-μ2 between two samples;
- compute the standard deviation σ of the combined samples;
- large effect if Δ < 0.5*σ
- medium effect if Δ < 0.3*σ
- small effect if Δ < 0.1*σ; And "small effect" means "yawn", too small to be interesting.
Widely viewed as too simplistic.
Hedge's rule (using g):
- Still parametric
- Modifies Δ w.r.t. the standard deviation of both samples.
- Adds a correction factor c for small sample sizes.
- In their review of use of effect size in SE, Kampenses et al. report that many papers use something like g < 0.38 is the boundary between small effects and bigger effects. - Systematic Review of Effect Size in Software Engineering Experiments Kampenes, Vigdis By, et al. Information and Software Technology 49.11 (2007): 1073-1086. - See equations 2,3,4 and Figure 9
def hedges(i,j,small=0.38):
"""
Hedges effect size test.
Returns true if the "i" and "j" difference is only a small effect.
"i" and "j" are objects reporing mean (i.mu), standard deviation (i.s)
and size (i.n) of two population of numbers.
"""
num = (i.n - 1)*i.s**2 + (j.n - 1)*j.s**2
denom = (i.n - 1) + (j.n - 1)
sp = ( num / denom )**0.5
delta = abs(i.mu - j.mu) / sp
c = 1 - 3.0 / (4*(i.n + j.n - 2) - 1)
return delta * c < small
Cliff's Delta
non-parametric
Cliff's delta counts bigger and smaller.
def cliffsDelta(lst1, lst2, small=0.147): # assumes all samples are nums
"Cliff's delta between two list of numbers i,j."
lt = gt = 0
for x in lst1:
for y in lst2 :
if x > y: gt += 1
if x < y: lt += 1
z = abs(lt - gt) / (len(lst1) * len(lst2))
return z < small # true is small effect in difference
As above, could be optimized with a pre-sort.
Statistically Significantly Different
To compare if one optimizer is better than another, apply the followng rules:
- Visualize the data, somehow.
- Check if the central tendency of one distribution is better than the other; e.g. compare their median values.
- Check the different between the central tendencies is not some small effect.
- Check if the distributions are significantly different;
In any experiment or observation that involves drawing a sample from a population, there is always the possibility that an observed effect would have occurred due to sampling error alone.
A significance test checks that the observed effect is not due to noise, to degree of certainty "c".
Note that the term significance does not imply importance and the term statistical significance is not the same as research, theoretical, or practical significance. For example:
- Code can be developed by local teams or distributed teams spread around the world.
- It turns out the bug rate of these two methods is statistically significantly different.
- But the size of the different is about zero (as detected by the Hedge's test, shown below).
- From Ekrem Kocaguneli, Thomas Zimmermann, Christian Bird, Nachiappan Nagappan, and Tim Menzies. 2013. Distributed development considered harmful?. In Proceedings of the 2013 International Conference on Software Engineering (ICSE '13). IEEE Press, Piscataway, NJ, USA, 882-890.
For these reasons, standard statistical tests are coming under fire:
- Various high profile journals are banning the use the null hypothesis significance testing procedure (NHSTP) (a classic statistical significance test) from their articles 1, 2, 3
To go from signficance to importance, we should:
- at least check for the abscence of small effects shown above and the rank tests shown below
- at most ask a domain expert if the observed difference matters a hoot.
For example, here are some charts showing the effects on a population as we apply more and more of some treatment. Note that the mean of the populations remains unchanged, yet we might still endorse the treatment since it reduces the uncertainty associated with each population.
Note the large overlap in the top two curves in those plots. When distributions exhibit a very large overlap, it is very hard to determine if one is really different to the other. So large variances can mean that even if the means are better, we cannot really say that the values in one distribution are usually better than the other.
In any case, what a signifcance test does is report how small is the overlap between two distributions (and if it is very small, then we say the differences are statistically significant.
T-test (parametric Significance Test)
Assuming the populations are bell-shaped curve, when are two curves not significantly different?
class Num:
"An Accumulator for numbers"
def __init__(i,inits=[]):
i.n = i.m2 = i.mu = 0.0
for x in inits: i.add(x)
def s(i): return (i.m2/(i.n - 1))**0.5
def add(i,x):
i._median=None
i.n += 1
delta = x - i.mu
i.mu += delta*1.0/i.n
i.m2 += delta*(x - i.mu)
def tTestSame(i,j,conf=0.95):
nom = abs(i.mu - j.mu)
s1,s2 = i.s(), j.s()
denom = ((s1/i.n + s2/j.n)**0.5) if s1+s2 else 1
df = min(i.n - 1, j.n - 1)
return criticalValue(df, conf) >= nom/denom
The above needs a magic threshold )(on the last line) for sayng enough is enough
def criticalValue(df,conf=0.95,
xs= [ 1, 2, 5, 10, 15, 20, 25, 30, 60, 100],
ys= {0.9: [ 3.078, 1.886, 1.476, 1.372, 1.341, 1.325, 1.316, 1.31, 1.296, 1.29],
0.95: [ 6.314, 2.92, 2.015, 1.812, 1.753, 1.725, 1.708, 1.697, 1.671, 1.66],
0.99: [31.821, 6.965, 3.365, 2.764, 2.602, 2.528, 2.485, 2.457, 2.39, 2.364]}):
return interpolate(df, xs, ys[conf])
def interpolate(x,xs,ys):
if x <= xs[0] : return ys[0]
if x >= xs[-1]: return ys[-1]
x0, y0 = xs[0], ys[0]
for x1,y1 in zip(xs,ys):
if x < x0 or x > xs[-1] or x0 <= x < x1:
break
x0, y0 = x1, y1
gap = (x - x0)/(x1 - x0)
return y0 + gap*(y1 - y0)
Many distributions are not normal so I use this tTestSame
as a heuristic for
speed criticl calcs. E.g. in the inner inner loop of some search where i need a
quick opinion, is "this" the same as "that".
But when assessing experimental results after all the algorithms have terminated, I use a much safer, but somewhat slower, procedure:
Bootstrap (Non-parametric Significance Test)
The world is not normal:
Here are 50 different SQL queries and the distribution of times CPU is waiting on hard drive i/o:
So, when the world is a funny shape, what to do?
The following bootstrap method was introduced in 1979 by Bradley Efron at Stanford University. It was inspired by earlier work on the jackknife. Improved estimates of the variance were developed later.
To check if two populations (y0,z0) are different using the bootstrap, many times sample with replacement from both to generate (y1,z1), (y2,z2), (y3,z3).. etc.
def sampleWithReplacement(lst):
"returns a list same size as list"
def any(n) : return random.uniform(0,n)
def one(lst): return lst[ int(any(len(lst))) ]
return [one(lst) for _ in lst]
Then, for all those samples, check if some testStatistic in the original pair hold for all the other pairs. If it does more than (say) 99% of the time, then we are 99% confident in that the populations are the same.
In such a bootstrap hypothesis test, the some property is the difference between the two populations, muted by the joint standard deviation of the populations.
def testStatistic(y,z):
"""Checks if two means are different, tempered
by the sample size of 'y' and 'z'"""
tmp1 = tmp2 = 0
for y1 in y.all: tmp1 += (y1 - y.mu)**2
for z1 in z.all: tmp2 += (z1 - z.mu)**2
s1 = (float(tmp1)/(y.n - 1))**0.5
s2 = (float(tmp2)/(z.n - 1))**0.5
delta = z.mu - y.mu
if s1+s2:
delta = delta/((s1/y.n + s2/z.n)**0.5)
return delta
The rest is just details:
- Efron advises to make the mean of the populations the same (see the yhat,zhat stuff shown below).
- The class total is a just a quick and dirty accumulation class.
- For more details see the Efron text.
def bootstrap(y0,z0,conf=The.conf,b=The.b):
"""The bootstrap hypothesis test from
p220 to 223 of Efron's book 'An
introduction to the boostrap."""
class total():
"quick and dirty data collector"
def __init__(i,some=[]):
i.sum = i.n = i.mu = 0 ; i.all=[]
for one in some: i.put(one)
def put(i,x):
i.all.append(x);
i.sum +=x; i.n += 1; i.mu = float(i.sum)/i.n
def __add__(i1,i2): return total(i1.all + i2.all)
y, z = total(y0), total(z0)
x = y + z
tobs = testStatistic(y,z)
yhat = [y1 - y.mu + x.mu for y1 in y.all]
zhat = [z1 - z.mu + x.mu for z1 in z.all]
bigger = 0.0
for i in range(b):
if testStatistic(total(sampleWithReplacement(yhat)),
total(sampleWithReplacement(zhat))) > tobs:
bigger += 1
return bigger / b < conf
Warning- bootstrap can be slow. As to how many bootstraps are enough, that depends on the data. There are results saying 200 to 400 are enough but, since I am suspicious man, I run it for 1000. Which means the runtimes associated with bootstrapping is a significant issue. To reduce that runtime, I avoid things like an all-pairs comparison of all treatments (see below: Scott-knott). Also, BEFORE I do the boostrap, I first run the effect size test (and only go to bootstrapping in effect size passes:
def different(l1,l2):
#return bootstrap(l1,l2) and a12(l2,l1)
return not a12(l2,l1) and bootstrap(l1,l2)
Scott-Knott So, How to Rank?
The following code, which you can use verbatim from stats.py
does the following:
+ All treatments are recursively bi-clustered into ranks.
+ At each level, the treatments are split at the point where the expected
values of the treatments after the split is most different to before,
+ Before recursing downwards, Bootstrap+A12 is called to check that
that the two splits are actually different (if not: halt!)
In practice, + Dozens of treatments end up generating just a handful of ranks. + The numbers of calls to the hypothesis tests are minimized: + Treatments are sorted by their median value. + Treatments are divided into two groups such that the expected value of the mean values after the split is minimized; + Hypothesis tests are called to test if the two groups are truly difference. + All hypothesis tests are non-parametric and include (1) effect size tests and (2) tests for statistically significant numbers; + Slow bootstraps are executed if the faster A12 tests are passed;
In practice, this means that the hypothesis tests (with confidence of say, 95%) are called on only a logarithmic number of times. So...
- With this method, 16 treatments can be studied using less than ∑1,2,4,8,16log2i =15 hypothesis tests and confidence 0.9915=0.86.
- But if did this with the 120 all-pairs comparisons of the 16 treatments, we would have total confidence 0.99120=0.30.
For examples on using this code, run cat statX.txt | python stats.py
.
The results of a Scott-Knott+Bootstrap+A12 is a very simple presentation of a very complex set of results: img/notnorm8.png


-
Back
-
Company Settings
General info, Legal entities, Locations, Business units and Department settings
-
Payroll
Setup, Leave encashment, Payment and Payslip settings
-
Leave & Holidays
Leave plans, Initial adjustments, Notify and Holidays
-
Employee
Job titles, Probation/Notice period and Employee number settings
-
Time & Attendance
Weekly offs, Shifts, Tracking policies, Capture scheme and other settings
-
Loan & Advance
Loan Provider,Loan Type,Loan Category Rule,Advance Type, Advance Rule Master


--- layout: default title: Knownabouts ---
Language developed largely based on sarcasm and used by a group of teenage friends growing up in Leytonstone, London, UK aroung 1990. Some expansion into workplaces and universities. To anyone reading it will likely come across as a private joke. I do not believe this to be a unique phenomena and consider most social groups to have at least have a few words that are privately known to describe common experiences


About me
I am afnan shihab . i am electrical engineer, i live in Jordan but i am come from Gaza . I graduated in 2015 from al Balqa university . i worked for 4 years as a designer engineer for 3 years and as contraction engineer for one year . Now I'm learning in ASAC collage. and I hope to be a full-slack delevoper .
my top-ten places i wish to visit them are ?
my experiences :
- al bitar consaltant company
- al bitar consaltant company for 3 years
- bab al amoud company costraction engineer for one year
bring youre friends next time to see who is the winer
we are so happy of your visiting
dania's changes


|
Generated by JDiff |
|||||||
| PREV CLASS NEXT CLASS FRAMES NO FRAMES | DETAIL: CONSTRUCTORS | METHODS | FIELDS |
| Added Methods | |
FailApplicationAttemptResponse failApplicationAttempt(FailApplicationAttemptRequest ) |
The interface used by clients to request the |
GetAttributesToNodesResponse getAttributesToNodes(GetAttributesToNodesRequest ) |
The interface used by client to get attributes to nodes mappings available in ResourceManager. |
GetClusterNodeAttributesResponse getClusterNodeAttributes(GetClusterNodeAttributesRequest ) |
The interface used by client to get node attributes available in ResourceManager. |
GetNewReservationResponse getNewReservation(GetNewReservationRequest ) |
The interface used by clients to obtain a new ReservationId for submitting new reservations. |
GetNodesToAttributesResponse getNodesToAttributes(GetNodesToAttributesRequest ) |
The interface used by client to get node to attributes mappings. |
GetResourceProfileResponse getResourceProfile(GetResourceProfileRequest ) |
The interface to get the details for a specific resource profile. |
GetAllResourceProfilesResponse getResourceProfiles(GetAllResourceProfilesRequest ) |
The interface used by clients to get all the resource profiles that are available on the ResourceManager. |
GetAllResourceTypeInfoResponse getResourceTypeInfo(GetAllResourceTypeInfoRequest ) |
The interface to get the details for a specific resource profile. |
ReservationListResponse listReservations(ReservationListRequest ) |
The interface used by clients to get the list of reservations in a plan. |
SignalContainerResponse signalToContainer(SignalContainerRequest ) |
The interface used by clients to request the |
UpdateApplicationPriorityResponse updateApplicationPriority(UpdateApplicationPriorityRequest ) |
The interface used by client to set priority of an application. |
UpdateApplicationTimeoutsResponse updateApplicationTimeouts(UpdateApplicationTimeoutsRequest ) |
The interface used by client to set ApplicationTimeouts of an application. |
|
||||||||
| PREV CLASS NEXT CLASS FRAMES NO FRAMES |


Apart from all the stunning visual stuff you can do in your browser, we also have something in store for tricking out audio. The Audio API gives you the means to party hard with some audio. And we don't mean just controls like play, pause, etc. — but serious in-browser audio processing. You can generate sounds (waveforms), filter the audio, and analyze it.
Seeing is believing
Attention! This example only works in Chrome, the oscillator should also work in Safari.
How does it work?
The Audio API is a complex beast to tame. It works by building a network of processingmodules with each it's own function. Every module has one (or more) inputs, and can have a multitude of outputs. The diagram below shows what we did for the example on this page.
Having said that, once you grasp the basics, it's actually very pleasant to work with such a powerful API.
Under what should I file this? Useful?
Yes please. When thinking of practical applications for this API, game design comes to mind. But it could also be a real powerhouse in audio content creation. Imagine, complete DJ-machinery built right in the browser. Or, if that's not your bag, here's some other stuff you could do with it:
- Create a cloud-based mixing panel which you could access anywhere
- Generate game sounds on demand
- Set up an entire studio in your browser
- Build your own synthesizer
I love it when a plan comes together...
About that: there is one snag. The Audio API is only supported on Chrome and Safari (and Safari Mobile). However, the good news is that Mozilla had an Audio API before it became official, and they said they're working on implementing the new API as we speak.
We'd like to see your insides, Mr. Source.
No problem, look all you like!


Papers citing Lazarsfeld and Merton
vs.
Papers with Homophily as Topic
All Papers
Timeline
Citing Lazarsfeld and Merton |
Homophily as Topic |
Both |
1000 Citations |
1 Citation |
Papers with no citations |


{% extends 'base.html' %} {% block title %} Edit Email {% endblock title %} {% block body %}
Please enter correct email because it will be used to reset your password if lost.
{{help}}


The chrome.infobars API is no longer supported. We recommend using a $(ref:pageAction Page Action) instead.
chrome.infobars


SMSLib can be setup to call specific methods (callbacks) for certain events, like when an inbound message is received.
Following are the available callbacks and the events that trigger them.
SMSLib can be set to call a user-defined method when a message is received by one of its active gateways. This defines an alternative method of receiving messages, instead of continously polling the modem with the readMessages()
method.
The user should implement a class based on the IInboundMessageNotification
interface. The process method of this interface is called with three (3) parameters:
The callback method is set by using the Service.setInboundNotification()
method.
Notes:
If you sending messages via the queueMessage(s)
methods (i.e. you are using the async sending feature), you are also able to set a callback method so as SMSLib will call this upon successful or unsuccessful dispatch of a message.
The user should implement a class based on the IOutboundMessageNotification
interface. The process method of this interface is called with two (2) parameters:
The callback method is set by using the Service.setOutboundNotification()
method.
Notes:
queueMessage(s)
methods (i.e. if you are sending messages via the sendMessage(s)
methods) this callback will never be called.SMSLib can be set to call a callback method once a voice call has been received by one of its active gateways.
The user should implement a class based on the ICallNotification
interface. The process method of this interface is called with two (2) parameters:
The callback method is set by using the Service.setCallNotification()
method.
Notes:
SMSLib can be set to call a method on every gateway status change.
The user should implement a class based on the IGatewayStatusNotification
interface. The process method of this interface is called with three (3) parameters:
The callback method is set by using the Service.setStatusNotification()
method.


Company Registration
I might not have to go through the hassle of registering a company from day 1 if paypal approves parent child accounts for my business. I can start these processes in the background and let them proceed at their own pace.
On Oct 2 2016 the Ministry of Corporate Affairs launched Simplified Proforma for Incorporating Company Electronically (SPICE), which I should be able to use to register my company.
The MCA has a scheme for One person companies. It's just like sole proprietorship but it gives the benefit of a limited liability company.
Notes on one person company
-
A person can only be a member of one OPC.
[Essentially what this means is that if I'll be providing services under the banner of two companies one of them has to be registered as a private or a public company. I already have wrinq registered as a limited company in the UK so this arrangement should work well for the time being. At a later stage I'll migrate wrinq to India as well]
- For electronic Filing I need to use windows!! Damn Good thing I have wine. Being a gamer always pays off :) Must bring this to MD's <3 attention
- I need an Adhar card to apply for a company online. Good thing I just finished the application process
- List of
all the forms
required for registration of the company
Steps required to register an OPC
- Name reservation: Form INC-1
- If name is approved file for INC-2 within 60 days
-
We can apply for company name online
Notes on e-residency
- To establish a company in estonia you need to have a legal address. If there is no physical presence a virtual office may be purchased
- Application fee of £100,damn!(will have to figure something out)
Why Estonia? [Application for e-residency program]
I'm Akshat,I'm an entrepreneur living in India. I'm building a startup that allows independent home owners to promote and manage their rental properties. As an E-resident of Estonia I hope to administrate an international company from anywhere in the world and sell our products not only to tour operators and accommodation providers within Estonia but also expand to other EU countries. With its emphasis on e-governance , its support to international startups , it's vibrant tourism industry that is connected with entire EU region, Estonia makes for an ideal country for us to run our business in.
Notes on the innovation summit
The summit costs RS 2700 for a non member. It's not a lot of money but attending conferences is mostly a waste of time. The real networking happens after the event is done. During the conference three things are absolute:-
- No one will remember what you say to them, so that when you contact a person again you'll have to introduce yourself once more.
- You'll be spending a lot of time inside closed rooms being bored to death.
(It's worse than lectures at college)
- The speakers on the stage act like celebrities, "Oh I forgot to bring my card sorry (XO)","Oh could you drop me a line on my email?","What is your value proposition?"
So what are we going to do?
We're going to play it smart. We could crash but even crashing is not worth it (unless you count the free food), but we can try for the thrills <3. The speaker list,the attendee list and even the programme details are public.


Click here to download this week's dataset as a CSV
Click here to download this week's dataset as a Hyper Extract
Data Storytelling and Dataviz Approach
I looked at this dataset as an opportunity to play with some of the new features that I saw demonstrated at Tableau Conference. Between dashboard buttons, transparent backgrounds and heatmaps, there is a lot to be excited about. However, in my opinion, one of the most impactful new features is set actions. I really liked the demonstration of the drillable tree map that was shown during Devs on Stage, and decided this was a great opportunity to replicate that functionality and learn how to work with set actions.
So, this viz has two elements - a line chart showing the total cost of the weather events by year, and the aforementioned tree map, showing the breakdown of the cost by event type. Both of these vizzes can be interacted with through set actions. Selecting years in the line graph, adjusts the members of the set that drive the tree map - adding the selected years to the set and removing unselected years. I thought this was a powerful way to explore the breakdown of a selected year's disaster cost by event type.
For instance, in the line chart, 2005 sticks out as a year with a high cost tied to weather disasters. Clicking the point for 2005 filters the tree map below to show that of the $221 billion of total damage, the majority is due to tropical cyclones. This information is also displayed in the viz in tooltip. However the impact of the set action on the tree map provides a bit more interactivity, as the user can click on the tropical cyclones segment of the tree map to see the individual events that make up the total costs of the tropical cyclones.
Drilling into the tropical cyclones reveals that the $218 billion in damage tied to tropical cyclones was due to 4 major hurricanes, mostly driven by Hurricane Katrina. Clicking off of the selected year in the line chart adds all of the years back into the set, and the tree map updates to show the proportion of the cost of tropical cyclones broken out by each individual hurricane, and the impact of Katrina versus all other billion dollar hurricanes is obvious. Keep in mind that set actions aren't working right now in Tableau Public, so feel free to download the workbook to play with the actions.
The possibilities for set actions and the opportunity for user interactivity are exciting! What new features of Tableau can you leverage? Download the data and see what you can do. Create your viz and post your work to Tableau Public and Twitter with the hashtag #ThrowbackDataThursday, tagging @TThrowbackThurs. We'd really love to see what you can come up with!
Data Source
This week's dataset comes from NOAA National Centers for Environmental Information (NCEI) U.S. Billion-Dollar Weather and Climate Disasters (2018). Please be sure to cite the source on your viz.


Please Choose a Service You Wish to Learn About
E-Business Home
Blockchain
Autonomous Things
Immersive Experience


403 Forbidden
You do not have permission to view this file
You best turn right back from where you came.


Lumbar puncture (or lumbar tap) is a diagnostic procedure used to collect CSF and measure intercranial pressure. The procedure as it’s done today consists of sticking a needle into the patient’s spine, attaching a glass manometer to the needle, then letting CSF drip out the end of the needle into a jar! Sounds painful, right? My team and I decided that there must be a better way to do this, and so the EZ-Tap Lumbar Puncture Device was born. Our product combines the entire procedure into one compact device, making it much simpler and faster (and less scary) to complete the three main goals of lumbar punctures: (1) detect when the current location has been reached by the needle tip, (2) measure the patient’s intracranial pressure, and (3) collect CSF. Don’t know what any of these words mean, or want to learn more about our design process? Click for more info!


An implementation of the Language Server Protocol for R. The Language Server protocol is used by an editor client to integrate features like auto completion. See <https://microsoft.github.io/language-server-protocol> for details.
| Version: | 0.2.5 |
| Depends: | R (≥ 3.4.0) |
| Imports: | callr (≥ 3.0.0), collections, desc, jsonlite, lintr, R6, repr, stringr, styler (≥ 1.0.2), tools, utils |
| Suggests: | processx, testthat |
| Published: | 2018-09-10 |
| Author: | Randy Lai |
| Maintainer: | Randy Lai <randy.cs.lai at gmail.com> |
| License: | MIT + file LICENSE |
| URL: | https://github.com/REditorSupport/languageserver |
| NeedsCompilation: | yes |
| Materials: | README NEWS |
| CRAN checks: | languageserver results |
| Reference manual: | languageserver.pdf |
| Package source: | languageserver_0.2.5.tar.gz |
| Windows binaries: | r-devel: languageserver_0.2.5.zip, r-release: languageserver_0.2.5.zip, r-oldrel: languageserver_0.2.5.zip |
| OS X binaries: | r-release: languageserver_0.2.5.tgz, r-oldrel: languageserver_0.2.5.tgz |
| Old sources: | languageserver archive |
Please use the canonical form https://CRAN.R-project.org/package=languageserver to link to this page.


MAR-COF BP- brompheniramine maleate, codeine phosphate and pseudoephedrine hydrochloride syrup
Marnel Pharmaceutcals, Inc.
Disclaimer: Most OTC drugs are not reviewed and approved by FDA, however they may be marketed if they comply with applicable regulations and policies. FDA has not evaluated whether this product complies.
temporarily relieves these symptoms due to cold, hay fever or other upper respiratory allergies.
Do not use if you are taking a prescription monoamine oxidase inhibitor (MAOI) (certain drugs for depression, psychiatric or emotional conditions, or Parkinson's disease), or for 2 weeks after stopping the MAOI drug. If you do not know if your prescription drug contains an MAOI,ask a doctor or pharmacist before taking this product.
| Adults and children 12 years and over | two teaspoonfuls (10 mL) every 4-6 hours |
| Children 6 to under 12 years of age | one teaspoonful (5mL) every 4-6 hours |
| Children under 6 years of age | Consult a doctor |
Each teaspoonful contains 5mg of sodium. Store at controlled room temperature 15°-30°C (59°-86°F).
Apricot Flavor, Citric Acid, D&C Yellow #10, FD&C Red #40, Glycerin, Magnasweet 110, Menthol Flavor, Orange Flavor, Pineapple Flavor, Propylene Glycol, Purified Water, Sodium Citrate, Sodium Saccharin, and Sorbitol
NDC 0682-0480-16
MARNEL
Mar-cof®BP
Antihistamine/
Antitussive (cough suppressant)/
Nasal Decongestant
Each 5mL (one teaspoonful) for oral
administration contains:
CV
| Brompheniramine Maleate |
2 mg |
| Codeine Phosphate | 7.5 mg |
| Pseudoephedrine Hydrochloride |
30 mg |
Alcohol-Free / Sugar-Free
TAMPER EVIDENT:
Do not use if imprinted safety seal
under cap is broken or missing.
Manufactured for:
Marnel Pharmaceutical, Inc.
206 Luke Street
Lafayette, LA 70506
Rev. 06/09
16 fl. oz. (473 mL)
|
MAR-COF BP
brompheniramine maleate, codeine phosphate, and pseudoephedrine hydrochloride syrup | ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
|
| Labeler - Marnel Pharmaceutcals, Inc. (053781795) |


Step 1:Create a Basic Blog
Blog must include the following features:
Front page that lists blog posts.
A form to submit new entries.
Blog posts have their own page.
View instructions and solutions here.
Step 2:Add User Registration
Have a registration form that validastes user input, and displays the error(s) when necessary.
After a successful registration, a user is directed to a welcome page with a greeting, “Welcome, [User]” where [ User] is a name set in a cookie.
If a user attempts to visit the welcome page without being signed in (without having a cookie), then redirect to the Signup page.
Watch the demo for more details.
Be sure to store passwords securely.
Step 3:Add Login
Have a login form that validates user input, and displays the error(s) when necessary.
After a successful login, the user is directed to the same welcome page from Step 2.
Watch the demo for more details.
Step 4:Add Logout
Have a logout form that validates user input, and displays the error(s) when necessary.
After logging out, the cookie is cleared and user is redirected to the Signup page from Step 2.
Watch the demo for more details.
Step 5:Add Other Features on Your Own
Users should only be able to edit/delete their posts. They receive an error message if they disobey this rule.
Users can like/unlike posts, but not their own. They receive an error message if they disobey this rule.
Users can comment on posts. They can only edit/delete their own posts, and they should receive an error message if they disobey this rule.
Step 6: Final Touches
Create a README.md file explaining how to run your code.
Refactor your code so it is well structured, well commented, and conforms to the Python Style Guide.
Make sure your project conforms to the rubric.
Deploy your app to appspot.com using gcloud app deploy.
Submit your project.
Revise your project and resubmit as necessary.
Pat yourself on the back!
{% endblock %}


-
Games
- Video Games
- RPG
- Gamebooks
- Live Action
- Tabletop
- Gambling
- Computers
- Computer Science
- Academic Departments
- Artificial Intelligence
- Research Institutes
- Theoretical
- Internet
- Chat
- DHTML libraries
- E-mail
- Security
- Authentification
- Cryptography
- Internet security
- Secure Programming
- Business
|
-
Add nodes
- Add node at the start of "Computers" category
- Add node at the end of "Computers" category
- Add node at the start of root node
- Add node at the end of root node
- Add node before "Computers" category
- Add node after "Computers" category
-
Convert nodes
- Convert node "Computers" to single node
- Convert node "Computers" to branch
-
Remove nodes
|


Export: executes the export and generates the export.json file.
Save Changes: updates the export data to include any changes since the previous update.
The text below each group name indicates the current export settings.
Note: The checkbox selection changes will only be taken into account after the "Save Changes" button has been hit and not when the "Export" button has been hit.