<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
<META NAME="GENERATOR" CONTENT="GtkHTML/3.26.0">

Alright. Thanks. But that is not the reason in my original code. I missed it when writing the example.

How come you get 3 solutions? I get the following output (which are the correct solution inserted):

{{-2,1}, {-1,5}, [2..3], {-4,3}, {-2,2}}

{-2, -1, 3, -4, 2}

{1, 5, 2, 3, -2}

best

Martin

On Fri, 2009-09-04 at 15:12 +0200, Guido Tack wrote:

Your copy constructor lacks a call to the Space copy constructor:
CSP( bool share, CSP& s ) : Space(share, s) {
        v.update(*this, share, s.v);
}
Then it should work (I get three solutions).
Cheers,
        Guido
Martin Kreißig wrote:
> Hi again,
>
> I tried my best to create a small example, but then I got stuck during
> debugging at creating the DFS engine. (I was lead to core.hpp line
> 3165
> (gecode 3.1.0)).
> So I don't know yet if this example produces the problem I have.
>
> The algorithm creates an array with different sets (here 5 sets with 2
> values each) and these sets are constrained by some equations (two in
> this case) that result in 0.
>
> Here is the code:
>
> #include <gecode/int.hh>
> #include <gecode/driver.hh>
> #include <iostream>
>
> using namespace Gecode;
>
> class CSP : public Space {
>         protected:
>         IntVarArray v;
>
>         public:
>         CSP( int arr[5][2] ) {
>
>         // create array with different sets
>         int tmp[2];
>
>         for (int i=0; i<5; i++){
>                 tmp[0] = arr[i][0]; tmp[1] = arr[i][1];
>                 IntVar i(*this, IntSet( tmp, 2));
>                 v.add( *this, i );
>         }
>
>         // formulate equations coefficients
>         IntArgs ia(5,0,-1,1,1,0);
>         IntArgs ib(5,-1,1,-1,0,1);
>
>         // constraints
>         linear (*this,ia,v,IRT_EQ, 0, ICL_DEF );
>         linear (*this,ib,v,IRT_EQ, 0, ICL_DEF );
>
>         branch ( *this,v,INT_VAR_SIZE_MAX,INT_VAL_MIN );
>
> }
>
> CSP( bool share, CSP& s ) {
>         v.update(*this, share, s.v);
> }
>
> virtual Space* copy( bool share ) {
>         return new CSP(share,*this);
> }
>
> void print( void ) {
>         std::cout << v << std::endl;
> }};
>
> int main( void ) {
>         int arr[5][2] = {{-2,1},{-1,5},{3,2},{-4,3},{2,-2}};
>         CSP* c = new CSP(arr);
>         c->print();
>         DFS<CSP> dfs(c);
>         delete c;
>         CSP* cc;
>
>         while ( cc=dfs.next() ) {
>                 cc->print();
>                 delete cc;
>         }
>
>         return 0;
> }
>
> best
> Martin
>
>
> On Fri, 2009-09-04 at 10:34 +0200, Guido Tack wrote:
>> Martin Kreißig wrote:
>>>> You can use opt.solutions(0) with DFS, too.
>>>
>>> Alright, but how do I pass opt to my CSP object?
>>
>> You don't. The Options class is for use with the driver
>> infrastructure. So either you use the driver, and Script::run, or
>> you
>> don't use options. There's a different options class controlling the
>> search itself (it's documented).
>>
>>> The problem is: When testing I insert - lets say 3 - specific
>>> combination of variables that fulfil the constraints. Then every
>>> variable gets its set (of size 3). So the output should be (at
>>> least) 3 combinations. What I get is some of my original solutions,
>>> some mixed solutions, but some of the originals are skipped.
>>>
>>> Can it be that some values are deleted? but that shouldnt be the
>>> case.
>>
>> That's impossible to answer without seeing the actual problem. Maybe
>> you can post a simple, small example.
>>
>> Cheers,
>>         Guido
> --
> Martin Kreißig <<A HREF="mailto:martin.kreissig<EMAIL_ADDRESS>>
>
> _______________________________________________
> Gecode users mailing list
> <A HREF="mailto:users<EMAIL_ADDRESS>> https://www.gecode.org/mailman/listinfo/gecode-users

--

Martin Kreißig <<A HREF="mailto:martin.kreissig<EMAIL_ADDRESS>


A Short Classless Article
E. Regnath,
Simple but Elegant
Text in from of paragraphs is the main ingredient for most articles.
Therefore, the appearance of text over multiple lines will account for the basic look & feel. The initial drop letter on the first paragraph will set a visually exiting impression. Note that this is automatically inserted for the first paragraph inside an

tag and does not require any additional styling.
The typography of Classless is purely based on CSS3. W3C: CSS Values and Units Module Level 3
, 2019
You can use the standard HTML5Wikipedia: HTML5
tags to emphasize certain words.
Inline quotations with <q>
such as This is Lars’ car!
will insert automatically the correct quotation marks. Block quotations are also possible:
Some people say, How can you live without knowing? I do not know what they mean. I always live without knowing. That is easy. How you get to know is what I want to know.
Richard P. FeynmanRichard P. Feynman: “The Meaning of It All: Thoughts of a Citizen-Scientist”, 1997
Mini Sections:
Use the

tag to create a bold inline heading for the first paragraph. To do this we also have to inline that paragraph.
However, the following paragraph will be displayed as block again.
Tables, Figures & Code Listings
In typesetting systems (e.g LaTeX) it is easy to define several environments that will have their own number and caption. We try to reproduce this behavior for the most common environments: tables and figures.
Tables
Classless applies some modern styling on the standard table elements. All columns except the first one are right aligned by default which makes it easy to compare numbers. Of course you can change this behavior with our utility classes.
| Classless | Skeleton | Milligram | Sakura | |
|---|---|---|---|---|
| Features | responsive, grid, themes, navbar, cards, utilities |
responsive, grid |
responsive, grid, utilities |
responsive |
| Size* | 11.2 kB 400 LOC |
11.2 kB 400 LOC |
10.3 kB 600 LOC |
3.3 kB 165 LOC |
| Reset | tiny reset | normalize | normalize | normalize |
| Browsers | Chrome, FF, Edge |
Chrome, FF | Chrome, FF, Opera Edge, Safari |
Chrome, FF |
| License | MIT | MIT | MIT | MIT |
Even more advanced tables are possible. We apply extra styling in case you specify a rowspan
or colspan
attribute for the
tags of the table header.
| Name | CSS File | Browser Support | Dependency | License | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| LOC | Size | |||||||||
| Classless | 400 | 11.2 kB | ✔ | ✔ | ? | ✔ | ✘ | none | MIT | |
| Classless Tiny | 91 | 2.6 kB | ✔ | ✔ | ? | ✔ | ✘ | none | MIT | |
| Skeleton | 400 | 11.2 kB | ✔ | ✔ | ✔ | ? | ✔ | normalize | MIT | |
| Milligram | 600 | 10.3 kB | ✔ | ✔ | ✔ | ✔ | ? | normalize 8.0 | MIT | |
| Sakura | 165 | 3.3 kB | ✔ | ✔ | ? | ? | ? | (normalize) | MIT |
Figures
Visual elements are important components for appealing documents. Figures such as diagrams or graphs should be encapsulated within a figure element. The image within the figure will be centered by default and shrinks with the screen width.
How about subfigures?
Code Listing
You can use inline code, such as div
, or show keyboard inputs, such as Ctrl+C.
However, larger code examples require their own block environment.
main(int a){
println("hello world")
}
Unfortunately, captions for listings do not work perfectly at the moment. If you want to provide a caption for the listing, you have to place it inside a figure environment. However, it will be called Figure
.
main(int a){
println("hello world")
}
While dynamic code highlighting does not work without JavaScript, you can use a static, CSS-based code highlighter that will do the styling based on
tags with classes.
References
Basic Styling
The following sections provide more detailed but artificial examples of the appearance of different HTML-tags that are styled with Classless.
Typography
The typography of Classless is purely based on CSS3.
You can use the standard html5 tags such as
or
for bold text,
or
for italic text and
for underlined text.
Use
for subscripts like in H2O.
This small text uses
for for fine print, etc.
This big text uses <big>
for a lead paragraph
Inline quotations with <q>
such as Anna shouted:
insert automatically the correct quotation marks.This is Lars’ car!
, when he saw him.
This is a citation.
Sometimes, I need to delete, insert, or mark certain words.
The dfn element indicates a definition.
The variable element, such as x = y.
The time element:
Blockquotes
A block quotation (also known as a long quotation or extract) is a quotation in a written document, that is set off from the main text as a paragraph, or block of text.
It is typically distinguished visually using indentation and a different typeface or smaller size quotation. It may or may not include a citation, usually placed at the bottom.
Said no one, ever.
Headings
Here are the headings h1
to h6
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6

Heading 1

Heading 2

Heading 3

Heading 4

Heading 5

Heading 6

Tables
The basic HTML tables allow already quite complex layouts. As often seen in professional tables, we omit vertical lines and and only insert horizontal lines as visual separation.
| Head 1 | Head 2 |
|---|---|
| A | B |
| C | D |

Head 1
Head 2

...

Use of ...

| Test | Ctrl | |
| A | B | |
| 4 | 2 | X |

Test
Ctrl

A	B

...

| Test | Ctrl | |
|---|---|---|
| A | B | |
| 4 | 2 | X |
Lists
In order to display several aspects in a concise way, lists as shown in the following are useful and also deserve a proper spacing.
Ordered List
- List Item 1
- List Item 2
- List Item 3
Unordered List
- List Item 1
- List Item 2
- List Item 3
Definition List
- Term
- A Term is defined by this definition.
Here, we have also demonstrated the basic usage of rows and columns, which will automatically rearrange once the page width falls below a certain threshold. This ensures that the page will also look well on small tables and phones.
Misc
Some other elements
A summary heading that spans multiple lines can briefly tell you something. If you want to know more, you have to click.
These are the details that only become visible once you click on the the summary heading. This is great to hide supplementary information by default.
-
A summary in a list
These are the details that only become visible once you click on the the summary heading. This is great to hide supplementary information by default.
- Second Item
Math
Math would have been possible without JavaScript but Google dropped support for MathMLCNET: “Google subtracts MathML from Chrome, and anger multiplies”, 2013. The common alternatives are MathJax and KaTeX. While Classless does not support math on its own, it looks very decent in combination with KaTeX default settings.
KaTeX Examples
The term $\sqrt{a^2 + b^2}$ is an example of a KaTeX equation. Displaystyle equations are $$\int x^2 \mathrm dx$$
Extra Styling
These features are included but are marked as extras such that you can easily remove them from the CSS file in case you do not need them.
Navigation Bar
Yes! Just 30 lines of CSS code for a simple yet full responsive navigation bar including dropdown menus and collapsing items on mobile phones.

Brand

Item

Menu ▾

Menu 1

Menu 2

Right

Margin Notes
You can place side notes using the
element. The side notes are considered supplementary and are not omitted on narrow screens with a width lower than 40rem
. So, if you read this on a mobile device, you cannot see the side note.
Form elements
If you want to use forms, you will need PHP or JavaScript, which then exceeds the typical usecase of a simple article. However, to create a consistent appearance, Classless provides some basic styling on these elements as well.
Bootless.css
Some concepts, such as grids and cards, are not covered by the default HTML5 tags and require CSS classes. Therefore, Classless defines a few classes with the same class names as the popular framework Bootstrap.
Grid System
Classless provides a simple grid system with the same class names as bootstrap.
Colum 1/2
This text is on the other side explaining something. If the width of the viewport is small enough, this text should be visible below the the heading on the left.

Column 1/2

This text is on the other side ...

Columns
There are also classes for columns with special width such as .col-4
(4/12) resulting in one third of the width:
Colum 1/3
Colum 2/3
Colum 3/3
and also .col-3
(3/12) resulting in 4 cols:
Colum 1/4
Colum 2/4
Colum 3/4
Colum 4/4
If you use a .col-X
with limited width, the other .col
will take up the remaining space:
Colum 1/3
This text is on the other side explaining something. If the width of the viewport is small enough, this text should be visible below the the heading on the left.
Cards
If you want to group special content from the normal text flow, cards will be your friends.
Card Heading
This is the card body.

Card Heading

This is the card body.


// local dependencies
import _ from 'lodash';
// local dependencies
import store from './store/store';
import C from './constants/constants';
import { updateMousePosition, print } from './util/helpers';
import * as rootComponents from './rootComponents/rootComponents';
/**
* The root instance where you instantiate a `three-musketeers` application by invoking the
* function.
*
* @module instance
* @param {object} [config] - The THREE.js application resources for introspection.
* @param {camera} [config.camera] - THREE.js camera instance. If not provided, the one attached
* to the `scene` will automatically be used.
* @param {renderer} config.renderer - THREE.js renderer instance.
* @param {scene} config.scene - THREE.js scene instance.
*
* @example
* // there are several ways to instantiate the musketeers tool
*
* import musketeers from 'three-musketeers';
*
* // you can pass in all necessary resources at initialization
* const $$$ = musketeers({
* renderer, // THREE renderer instance
* scene, // THREE scene instance
* camera // THREE camera instance
* });
*
* // you can also just instantiate and set later throughout the application
* const $$$ = musketeers();
* $$$.setResource('camera', camera); // THREE camera instance
* // see `setResource` for further documentation
*
* // If no camera is specified, the default camera attached the `scene` will be set
* const $$$ = musketeers({
* renderer, // THREE renderer instance
* scene, // THREE scene instance
* });
* $$$.getResource('camera'); // returns the camera that's attached to the `scene`
*/
export default function(config) {
print(C.VERSION);
store.reset();
const root = _.assign(rootComponents, {
name: C.NAME,
constants: C,
store
});
if (config) {
root.setResource(config);
}
document.addEventListener(C.MOUSE_MOVE, updateMousePosition);
return root;
};


This page contains a schedule of the teaching sessions. In general most of the teaching will take place August 02-11, 2021. Each day will contain one-two teaching sessions. Most sessions will follow the daily schedule below:
- Morning session (9-12):
- 9-11 exercises,
- 11-12 live lecture (via Zoom - links here)
- Lunch break (12-13):
- 12-13 office hours, optional (via Zoom, booking system will come)
- Afternoon session (13-16):
- 13-15 exercise
- 15-16 live lecture (via Zoom - links here)
The complete schedule of sessions is listed below with title, lecturer and links to material. Unless otherwise specified, the teaching will use the hours specified above.
| Date | Time | Title | Teachers | Material |
|---|---|---|---|---|
| ------- Preparation ------- | ||||
| Jul 05 | Assignment 0 posted | |||
| Aug 04 | 15-18 | Assignment 0 online workshop * |
JSRP | |
| Aug 07 | 12:00 | Assignment 0 hand-in | ||
| --------- Week 1 --------- | ||||
| Aug 10 | 9-10 | 1a. Course welcome | DDL | |
| 10-11 | 1b. Python intro | ABN | ||
| 11-12 | 1c. Meet group and intro to git | TAs | ||
| 14-17 | 2. Strings, queries and APIs | ABN & TAs | ||
| Aug 11 | 9-12 | 3. Visualizations | ABN & TAs | |
| 14-17 | 4. Data structuring 1 | ABN & TAs | ||
| Aug 12 | 9-12 | 5. Data structuring 2 | ABN & TAs | |
| 13-16 | 6. Scraping 1 | NJ & TAs | ||
| 23:59 | Assignment 1 posted | -- | ||
| Aug 13 | 9-12 | 7. Scraping 2 | NJ & TAs | |
| 13-16 | 8. Scraping 3 | NJ & TAs | ||
| Aug 14 | 9-11 | 9a. Big Data and Ethics | DDL | |
| 11-12 | 9b. Assignment 1 workshop | TAs | ||
| 13-15 | Supervision 1 * |
TAs | ||
| 23:59 | Assignment 1 hand-in | |||
| --------- Week 2 --------- | ||||
| Aug 17 | 9-12 | 10. Modeling and machine learning (ML) | ABN & TAs | |
| Aug 17 | 13-16 | 11. Linear regression and regularization | ABN & TAs | |
| Aug 18 | 9-12 | 12. Model selection and cross-validation | ABN & TAs | |
| Aug 18 | 13-16 | 13. Non-linear ML and applications | ABN & TAs | |
| Aug 18 | 20:00 | Assignment 2 posted | ||
| Aug 20 | 23:59 | Assignment 2 hand-in | ||
| Aug 21 | 9-11 | Supervision 2 * |
TAs | |
| --------- Week 3 --------- | ||||
| Aug 23 | 20:00 | Exam project description due | ||
| Aug 24 | 9-11 | Supervision 3 * |
TAs |
*
: optional participation,
Main lecturers
- Andreas Bjerre-Nielsen (ABN)
- Joachim Kahr Rasmussen (JKR)
- Nicklas Johansen (NJ)
- Terne Sasha Thorn Jakobsen (TJ)
Teaching assistants (TAs)
- Emil Chrisander (EC)
- Esben Brøgger Lemminger (EBL)
- Kristoffer Pade Glavind (KPG)
- Jonas Skjold Raaschou-Pedersen (JSRP)
- Lykke Sterll (LS)
Download material using Github Desktop
Download Github Desktop and make a Github account.
Open Github Desktop and go to
File -> Open Repository
Go to the URL-tab and choose the course Github page (isdsucph/isds2021), and where you want to save it on your own computer.
Now you can access the files on you own computer.
If there have been updates to the ISDS-repository on GitHub, you can update it (known as pull, sync or fetch) in GitHub Desktop by choosing ISDS as your
Current repository
and pressFetch origin
.NB! When you make changes to your Notebooks, make a copy of the file, with a now name.
Legend
- nb: Slides and exercise in Jupyter Notebook format
- nb sol: Slides and exercise in Jupyter Notebook format (Without solutions to the exercises you have to hand in)
- {ex, le, sol}: Respectively refer to exercises, lecture slides or solutions in Jupyter Notebook format
- pdf: Slides in PDF format


--- title: Good homepage design date: '2010-12-12T18:42:10+05:30' tags: [] tumblr_url: https://sureshshanmugam.com/post/2185653879/good-homepage-design ---
The home page has an identifying logo and contains or has links to:
* a site map
* contact information
* information about the organization responsible
* a site feedback form or pointers to a discussion group
* assurances as to security and privacy
* related sites
* Information on the technology needed to view subsequent pages in the site (e.g. browser versions, necessary downloads, file sizes or ownload times)


Staghorn's Hidin' At Skyland (a.k.a. Heidi)
(Ch. Applemeadow Marshall Mac X Skyland's Hidin' at Staghorn)
DOB. November 14, 2006
Hips/Elbows Clear, CERF ACVO cleared annually
Heart: "Normal" - Cardiologist - ECHO/Doppler
Our Heidi Jr. headed off as a baby to Nova Scotia, to the home/kennel her mother, our Heidi Sr. was born at (Skyland). Skyland decided to no longer breed Labradors, and kindly returned Heidi Jr. to us. I'm still aching all over from the cartwheels I did at the airport when I saw how lovely she matured. She is a rich dark chocolate, nice brown eyes, beautiful head, coat and bone. Her temperament is fabulous. Heidi Jr. has all her clearances and we are thrilled to have her join the ranks of the Staghorn Girls.


| Device ID: | |
| check if Racoon lock is connected | |
| Send a test input: | |
| Response check: |
| Date | Type | Result |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Date | Description |
|---|---|
|
Error: Failed to scare raccoon away. |
|
Warning: Low battery. |
Yumeng Yu
David Liu
Yanting Cao
Shengchen Zhou
Ruile Wu
contact email: zhous20@mcmaster.ca


[...] computer artists are more comfortable in speaking of ‘generative art’ where the system is rule-driven, not algorithmic - and why they usually avoid step-by-step programming.
What is a **rule-driven** system?
Generative art enables the artist to concentrate on the underlying rules themselves: the structures that define the artwork, as against the surface. (This is a position clearly associ- ated with distaste for decoration and ornament.)


Police look for motive behind California school shooting
SANTA CLARITA: Police investigating a high school shooting in California said on Friday (Nov 15) they still did not know what motivated the suspect, who killed two classmates and wounded three others before shooting himself in the head and collapsing.
Thursday morning's shooting at Saugus High School in Santa Clarita, about 65km north of Los Angeles, took place in a matter of just seconds. The suspect pulled a .45 semi-automatic pistol from his backpack in an outdoor school courtyard and opened fire.
Sheriff Alex Villanueva of the Los Angeles County Sheriff's Office said on Friday that why was the question of the day.
"This kind of came out of the blue," the sheriff told CNN. "It shocked everyone who knew him."
Police have not released the name of the suspect, but have said it was his 16th birthday on Thursday. Authorities said he was in grave condition at a hospital.
"He saved the last round for himself," Villanueva said.
Investigators are looking into the suspect's past and social media accounts and interviewing people who knew him, the sheriff added.
"We're still digging," he said.
The FBI is assisting in the investigation and police do not know yet where the suspect got the weapon, the sheriff said.
Two girls aged 14 and 15 were being treated at Providence Holy Cross Medical Center in Mission Hills, California and were listed in good and fair condition, a hospital spokeswoman said early on Friday.
At the Henry Mayo Hospital in Santa Clarita, authorities said a 14-year-old boy was treated and released, and the other students taken there died.
No names of the wounded or the dead were released yet, but the two slain students were a 16-year-old girl and a 14-year-old boy.
Captain Kent Wegener of the Los Angeles County Sheriff's Department said surveillance video footage showed the suspect opening fire from a single stationary position and shooting his victims in rapid succession before turning the gun on himself.
The scene at Saugus High School was reminiscent of other mass shootings at US schools, including Marjory Stoneman Douglas High School in Parkland, Florida, where a former student with an assault gun killed 17 people on Feb 14, 2018.
It was the 85th incident of gunfire at a school this year, according to Everytown, a gun control advocacy group.
Police said the suspect had acted alone. Investigators descended on his family home, blocking off the street. They found no further danger there.


The program gmconvert converts a various model of molecules (such as atomic model, 3D density map) into GMM (gaussian mixture model). EM (expectation maximization) algorithm is employed for covertion into GMM. The program gmconvert also has many other useful functions to handle GMM.
The source code of gmconvert is written in C assuming the compiler "gcc" in Linux environment. After you download the file "gmconvert-src-[date].tar.gz", just type following commands:
tar zxvf gmconvert-src-[date].tar.gz cd src makeThen you will find the execute file "gmconvert" in the upper directory (../src).
Both atom model and 3D density map can be conveted in GMM.
gmconvert -ipdb [atomic model in pdb] -ogmm [output GMM file] -ng [number of Gaussian functions]
gmconvert -icif [atomic model in mmCIF] -assembly [assembly_id] -ogmm [output GMM file] -ng [number of Gaussian functions]
gmconvert -imap [3D density map] -ogmm [output GMM file] -ng [number of Gaussian functions]
gmconvert -igmm [input GMM file] -omap [output 3D density map] -gw [grid_width]
gmconvert -igmm [input GMM file] -opdb [wireframe model in PDB] -gw [grid_width]
gmconvert -igmm [input GMM file] -owrl [surface/wireframe model in VRML] -gw [grid_width]
gmconvert -igmm [input GMM file] -oewrl [ellipsoidal model in VRML]
gmconvert -igmm [input GMM file] -oobj [surface model in obj] -gw [grid_width]
gmconvert -imap [input 3D density map] -opdb [wireframe model in PDB] gmconvert -imap [input 3D density map] -owrl [surface/wireframe model in VRML] gmconvert -imap [input 3D density map] -oobj [surface in Object]
gmconvert -ipdb [atomic model in pdb] -omap [output 3D density map] -reso [resolution]
gmconvert -igmm [GMMfile] -ogmm [output transformed GMM file] -ipdb [original PDBfile] -itpdb [target PDB file]
-ng : number of Gaussian distribution functions.
-
-emalg: Algorithm type for EM-algorithm. The default is -emalg G
.
-emalg P
: Point-input EM. A set of 3D points is employed as observed inputs for the EM algorithm.
In the case of atomic model, the centers of heavy atoms are used as the input 3D points.
In the case of 3D density map, the position of grids are used as the input 3D points with their density values.
-emalg G
: GMM-input EM. A set of 3D Gaussian distribution function(GDFs)
is employed as observed inptus for the EM algorithm.
In the case of atomic model, one isotropic GDF is assigned to each heavy atom. Its center is the center of the heavy atom.
The variance of the GDF is rr2var
* [radius] * [radius], where [radius] is the atomic radius.
In the case of 3D densitymap, one isotropic GDF is assigned to each grid. Its center is the position of the grid.
The variance of the GDF is ww2var
* [grid_width] * [grid_width].
-emalg O
: one-to-one_atom/grid. It simply assigns one GDF to one atom or one grid. It does not perform any modification by the EM algorithm.
-I
: Initialization of GMM. 'K'-means, 'R'andom 'O':one-to-one_atom/voxel [K]
-delzw
: Delete Zero-weight gdfs from the GMM. ('T' or 'F') [T]
-delid
: Delete identical gdfs in the GMM. ('T' or 'F') [T]
-hetatm
: Read HETATM ('T' or 'F') [F].-hetatm F
, it means the program only read "ATOM" line.
-ch
: Chain ID. (or 'auth_asym_id' in mmCIF).-ch -
, it means the program reads all the chains in PDB file/mmCIF file.
-assembly
: assembly_id for mmCIF file (-icif) [].assembly_id
in mmCiF file (such as 1,2,3,PAU,XAU,..) can be assingned.
The program performs symmetrc operations to asymmetric unit to generate XYZ coordinates of the assembly.
If the option assembly_id
is not assigned, the program use the asymmetric unit.
-atmsel
: Atom selection. 'A'll atom except hydrogen, 'R'esidue-based (only ' CA ' and ' P ') [A]
-maxatm
: maximum allowed number of atoms for '-atmsel A'. If over '-minatmA', then change '-atmsel R'.[-1]
-model
: 'S':read only single model (for NMR). 'M':read multiple models (for biological unit) [S]
-atmrw
: Model for radius and weight. 'A':atom model, 'R':residue model, 'U':uniform raidus/weight,'C':decide from content. [C]
-varatm
: Variance type for atom (for -emalg G). 'A': var = rr2var * Rvdw*Rvdw for each atom, 'R': var = (resoatm/2.0)^2.[A]
-rr2var
: Constant for variance = Const * Rvdw*Rvdw for -emalg G -varatm A. Default is 1/5. [0.200000].
-resoatm
: Resolution for atom for -emalg G -varatm R. [0.000000].
-radtype
: radius type for '-atmrw A'. V:van der Waals radius, C:covalent radius [V]
-raduni
: radius for uniform model for '-atmrw U'. [1.900000]
-ccatm
: Calculation Corr Coeff bwn Atoms and GMMs.(It takes times..) (T or F)[F]
The options -zth
and -zsd
specify the threshold value of 3D density map.
In order to get the proper GMM of the map, you should assign a proper threshold value, such as the 'ContourLevel' value in EMDB entry.
-zth : if density < [-zth], it is regarded as zero density. [-1.000000]If a density of a voxel is less than the
-zth
value, its density is assigned as zero.
After that, the voxel is regarded as the place where no atom exists.
Only positive -zth
value is meaningful. The negative -zth
value will be ignored.
-zsd : if density < MEAN + [-zsd]*SD, it is regarded as zero density. [3.000000]If you do not know the proper threshold value, the statistics of the density map will help you. If the option
-zsd
is assigned, the threshold value is [MEAN of density] + [-zth]
* [SD of density].
Only positive -zsd
value is meaningful. The negative -zsd
value will be ignored.
If both -zth
and -zsd
are positive, the option -zth
has a priority.
A computational time for the EM algorithm is roughly proportional to [Number of data points] x [Number of Gaussian functions].
It means that a 256x256x256 map requires at least 64 times longer computatioanl time than the 64x64x64 map does.
If you want to speed up the computation by decreasing resolution of density map, we recommend to use the '-redsize
' option.
-redsize : reducing size scale (2,3,4,...) [1]If you add '
-redsize 2
', the program transforms 256x256x256 map into 128x128x128 map. If you add '-redsize 4
', the program transforms 256x256x256 map into 64x64x64 map.
A similar reduction of voxel size can be done by the option '-maxsize
':
-maxsize : maximum voxel size of each axis(if over, reducing size). [-1]If total number of the voxels s over the
-maxsize
3, the program automatically set up the -redsize
value
so that number of voxels is not over the -maxsize
3. For example, if the 180x180x120 map is given with the option '-maxsize 64
', the program
set up the -redsize
as 3, then the map becomes 60x60x40.
-mcth: raw density value for threshold density [-1000.000000] -mcsd: SD value for threshold density [3.000000] -mcnv: number for voxel for threshold density [-1] -mcvo: volume (A^3) for threshold density [-1.000000]These four options are ignored if a minus value is assigned. In the default setting, the option
-mcsd 3.0
is assigned, it means that
the threshold density map := [average density] + 3.0 * [standard deviation of density].
If the putative volume of the molecule is known, you can assign the volume by the option -mcvo
,
in the angstrom cubed unit.
-gw
. The default value is 4 angstrom.
-gw : grid width (angstrom) [4.000000]If you output in the VRML format (
-owrl
), you can chose surface model by the option -mcSW S
.
-mcSW : model type. 'S'urface, 'W'ireframe [W]In the surface VRML model, you can assign the color of surface by the option
-mc RGBT
.
-mcRGBT: RGBT string (red:blue:green:transparency) [0:1:0:0]
An example of GMM (PDBcode:1omp, number of gaussian = 2) is shown as follows:
HEADER 3D Gaussian Mixture Model REMARK COMMAND gmconvert -ipdb /DB/PDBv3/om/pdb1omp.ent -ng 2 -ogmm 1omp_g2.gmm REMARK START_DATE Feb 16,2013 16:40:19 REMARK END_DATE Feb 16,2013 16:40:19 REMARK COMP_TIME_SEC 0.024982 2.498198e-02 REMARK FILENAME 1omp_g2.gmm REMARK NGAUSS 2 HETATM 1 GAU GAU A 1 1.491 -5.359 -14.106 0.473 0.473 REMARK GAUSS 1 W 0.4731064444 REMARK GAUSS 1 M 1.491210 -5.358893 -14.106107 REMARK GAUSS 1 CovM xx 68.3302668925 xy 1.4432837673 xz 20.6877652908 REMARK GAUSS 1 CovM yy 91.2978302824 yz -0.6854124916 zz 78.2751151639 HETATM 2 GAU GAU A 2 -1.303 4.885 12.899 0.527 0.527 REMARK GAUSS 2 W 0.5268935556 REMARK GAUSS 2 M -1.302614 4.884799 12.899464 REMARK GAUSS 2 CovM xx 99.7411943616 xy -54.9586151001 xz 7.6722146525 REMARK GAUSS 2 CovM yy 99.9101607174 yz -11.9555659402 zz 76.8822244943 TER
REMARK NGAUSS [Number of GDFs for GMM] REMARK GAUSS [GDFnumber] W [Weight for GDF] REMARK GAUSS [GDFnumber] M [Center position of GDF (x y z) ] REMARK GAUSS [GDFnumber] CovM xx [xx of CovM] xy [xy of CovM] xz [xz of CovM] REMARK GAUSS [GDFnumber] CovM yy [yy of CovM] yz [yz of CovM] zz [zz of CovM]


Miscellaneous functions for classification and visualization,
e.g. regularized discriminant analysis, sknn() kernel-density naive Bayes,
an interface to 'svmlight' and stepclass() wrapper variable selection
for supervised classification, partimat() visualization of classification rules
and shardsplot() of cluster results as well as kmodes() clustering for categorical data,
corclust() variable clustering, variable extraction from different variable clustering models
and weight of evidence preprocessing.
| Version: |
0.6-14 |
| Depends: |
R (≥ 2.10.0), MASS |
| Imports: |
combinat, questionr, grDevices, stats, utils, graphics |
| Suggests: |
scatterplot3d (≥ 0.3-22), som, mlbench, rpart, e1071 |
| Published: |
2018-03-19 |
| Author: |
Christian Roever, Nils Raabe, Karsten Luebke, Uwe Ligges, Gero Szepannek, Marc Zentgraf |
| Maintainer: |
Uwe Ligges <ligges at statistik.tu-dortmund.de> |
| License: |
GPL-2 |
| URL: |
http://www.statistik.tu-dortmund.de |
| NeedsCompilation: |
no |
| SystemRequirements: |
SVMlight |
| Citation: |
klaR citation info |
| Materials: |
NEWS |
| In views: |
Graphics, MachineLearning, Multivariate |
| CRAN checks: |
klaR results |


Home
About
Log In
profile
One advantage in keeping a diary is that you
become aware with reassuring clarity of the changes which you constantly suffer.
Forgot your password? Search for your account


| DOSE: |
repeated |
smoked |
Crack |
(freebase) |
Im 16 years old. Smoked weed daily for about 4 years. Decided to quit after I tried cocaine, which I have been using for about a year.
Yesterday I spend the whole day looking for some coke and couldn't find any. B my neighbor came to my door and tells me he has crack so whatever I decided to experiment. So I bought a rock for 40. It was a bright yellow sort of rectangular prism shaped thing. He said he would show me how to smoke it and all that so I hopped in his car and we went to a near by park at about 10 pm and smoked inside the car.
So I broke up the rock into four peices. He took out his crack pipe and a rock of his own and showed me how to melt it and hit it and all that stuff. I put the first rock in and took the biggest hit I could. It wasnt like smoking pot or anything I couldnt even feel it in my lungs. Before I finished even taking the hit my lips and mouth went numb and my ears started to ring to where I couldnt hear anything else. I put the pipe down as my body went numb and my heart beat shot up. It was such a low calming feeling. WAY diferent than coke. Its not a social drug at all. Then I remember that I didnt exhale and started at that.. I took 3 more hits and at this point I couldnt move and my heart was pounding like crazy. My body was so relaxed and warm and everytthing felt soothing. My vision got verry blurry and I wasnt able to see. While Bryan was just the oposite. He was driving around, paranoid and up. I guess peoples bodies react diferent to it. I dont know.
About 10 minutes later I came down quick. I was kind of dissapointed. But all I could think about was more. Now I was feeling nervous and I couldnt stand coming back down. So I grabbed the pipe and smoked like a feind.. Bryan had a gram and I had those 3 rocks. The whole night was one big blur of highs and lows till we were clean out.
When I came down for the last time it sucked. Bad. Not sure when I got back, I was way too out of it to function. All I could think about for about halve of the morning was getting more. This drug is ADICTING.  This drug is to addicting and dangerous because I cant control my self on it. If you absolutly have to try it, be prepared..its way to easy to get hooked.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Miebo, Z. ACTIVE SINCE 2014
24 (44TH PERCENTILE)
32
17
2.12 MPH
Calf
You like the soft underbelly of the leg, where sinewy muscle combines with a reasonably thick layer of fat. Watch out for the bikers though, you might find the texture a bit too stringy.


Set Operation Commands
Set operation commands manipulate Access sets, sending their output to the current set ($CurSet).
|
Set Operation Command |
Description and Syntax |
|
attribute |
Define an attribute. attribute enum attribute_name "value..." [enum | info | int | print | set | string] |
|
nil_set |
Makes a null (empty) set. nil_set |
|
sappend |
Appends the specified entities or instances to the specified set. sappend set_name new_entities |
|
set_add |
Adds the contents of two sets without removing duplicates; the result becomes the current set. set_add set_name_1 set_name_2 |
|
set_copy |
Creates a “deep copy” of the contents of the specified set to the current set set_copy set_name |
|
set_intersect |
Returns the elements common to two sets; the result becomes the current set. Duplicates are removed. set_intersect set_name_1 set_name_2 |
|
set_subtract |
For two sets, A and B, removes the elements of A that are also in B; the remaining elements of A become the current set. Duplicates are removed. set_subtract set_name_A set_name_B |
|
set_union |
Combines the contents of two sets, removing all duplicates; the result becomes the current set. set_union set_name_1 set_name_2 |
|
set_unique |
For two sets, A and B, returns the elements of each set that are not in the other set. set_unique set_name_1 set_name_2 |


{% extends "layouts/main.html" %} {% set smallSearch = true %} {% set pageName = "organisation" %} {% block page_title %}{{ result.name }} – {{ settings.title }}{% endblock %} {% block body_class %}organisation{% endblock %} {% block header %} {% endblock %} {% block content %}
{{ result.payload.organisationInformation.description }}
{% endif %}{{ meta.fullCountryName }}
{{ result.registrationNumber }}
Organisations that use special categories of data, are public bodies, or do large scale processing must appoint a Data Protection Officer.
{% if result.payload.dataProtectionOfficer %} {% if result.payload.dataProtectionOfficer.present == "present" and result.payload.dataProtectionOfficer.name or result.payload.dataProtectionOfficer.present == "present" and result.payload.dataProtectionOfficer.role or result.payload.dataProtectionOfficer.present == "present" and result.payload.dataProtectionOfficer.contactInfo %} {% if result.payload.dataProtectionOfficer.name %}{{ result.payload.dataProtectionOfficer.name }}
{% endif %} {% if result.payload.dataProtectionOfficer.role %}{{ result.payload.dataProtectionOfficer.role }}
{% endif %} {% set contactInfo = result.payload.dataProtectionOfficer.contactInfo %} {% include 'partials/_contact_info.html' %} {% else %}This privacy policy does not appear to have information about a data protection officer.
{% endif %} {% else %} {% include 'partials/_section_missing.html' %} {% endif %}Organisations must give details about what categories of data are stored and processed.
{% if result.payload.dataCategoriesCollected %} {% if result.payload.dataCategoriesCollected.isMissing == true %}This privacy notice does not appear to have this information.
{% else %} {% if result.payload.dataCategoriesCollected.list %}{{ result.name }}'s privacy policy says they collect the following categories of data:
{{ item | replace("_", " ") | capitalize }}{% if flag == "true" %}Special category{% endif %}
{{ result.payload.dataCategoriesCollected.observations | striptags(true) | escape | nl2br }}
{% endif %} {% endif %} {% else %} {% include 'partials/_section_missing.html' %} {% endif %}Organisations must provide information about what they do with data. This section highlights less common uses of data.
{% if result.payload.unusualProcessingPurposes %} {% if result.payload.unusualProcessingPurposes.isMissing == true %}This privacy notice does not appear to provide information about processing purposes.
{% else %} {% if result.payload.unusualProcessingPurposes.present == "present" and result.payload.unusualProcessingPurposes.observations %}{{ result.payload.unusualProcessingPurposes.observations | striptags(true) | escape | nl2br }}
{% elif result.payload.unusualProcessingPurposes.present == "not_present" %}This privacy notice does not appear to mention any unusual processing purposes.
{% endif %} {% endif %} {% else %} {% include 'partials/_section_missing.html' %} {% endif %}Organisations must give details about other parties that personal data is shared with.
{% if result.payload.thirdParties %} {% if result.payload.thirdParties.isMissing == true %}This privacy notice does not appear to have this information.
{% else %} {% if result.payload.thirdParties.list %}{{ result.name }}'s privacy policy says they share data with the following third parties:
{{ item }}
Third parties are listed by name
{% elif result.payload.thirdParties.specificity == "general" %}Third parties are listed as groups
{% endif %} {% endif %} {% if result.payload.thirdParties.observations %}{{ result.payload.thirdParties.observations | striptags(true) | escape | nl2br }}
{% endif %} {% endif %} {% else %} {% include 'partials/_section_missing.html' %} {% endif %}Organisations must give details about how long data is kept.
{% if result.payload.retentionRules %} {% if result.payload.retentionRules.isMissing == true %}This privacy notice does not appear to have this information.
{% else %} {% if result.payload.retentionRules.summary %}{{ result.payload.retentionRules.summary | striptags(true) | escape | nl2br }}
{% endif %} {% if result.payload.retentionRules.observations %}{{ result.payload.retentionRules.observations | striptags(true) | escape | nl2br }}
{% endif %} {% if result.payload.retentionRules.specificityCategory or result.payload.retentionRules.specificityTime %}Retention rules are given for specific categories of data
Retention rules are given without mentioning specific categories of data
Specific times are given for how long data is kept
Unspecific times for how long data is kept
Organisations must justify collection and use of data under six lawful bases and provide information about their decisions
{{ result.name }}'s privacy policy says they use the following lawful bases to collect and use data:
{% set lawfulBases = result.payload.lawfulBases %} {% if lawfulBases %} {% if lawfulBases.isMissing == true %}This privacy notice does not appear to have this information.
{% else %}Consent
{{ lawfulBases.consent | striptags(true) | escape | nl2br }}
Contract
{{ lawfulBases.contract | striptags(true) | escape | nl2br }}
Legal obligation
{{ lawfulBases.legalObligation | striptags(true) | escape | nl2br }}
Vital interests
{{ lawfulBases.vitalInterests | striptags(true) | escape | nl2br }}
Public task
{{ lawfulBases.publicTask | striptags(true) | escape | nl2br }}
Legitimate interests
{{ lawfulBases.legitimateInterests | striptags(true) | escape | nl2br }}
{{ lawfulBases.observations | striptags(true) | escape | nl2br }}
{% endif %} {% endif %} {% else %} {% include 'partials/_section_missing.html' %} {% endif %}Organisations must ensure that data is stored and processed securely.
{% if result.payload.securityStandards %} {% if result.payload.securityStandards.present == "not_present" %}This privacy notice does not appear to have this information.
{% else %} {% set specificity = result.payload.securityStandards.specificity %} {% if result.payload.securityStandards.url %}{{ result.payload.securityStandards.url }}
{% endif %} {% if result.payload.securityStandards.observations %}{{ result.payload.securityStandards.observations | striptags(true) | escape | nl2br }}
{% endif %} {% if specificity %}This organisation provides specific details about how they secure data
{% elif specificity == "general" %}This organisation provides general details about how they secure data
{% endif %} {% endif %} {% endif %} {% else %} {% include 'partials/_section_missing.html' %} {% endif %}Some US organisations use the Privacy Shield Framework to provide adequate protections when data leaves the EEA.
{% if result.payload.privacyShield %} {% if result.payload.privacyShield.present == "not_present" %}This organisation does not appear to be part of the Privacy Shield Framework.
{% else %}Some organisations offer a data processing addendum that gives data adequate protections when it leaves the EEA.
{% if result.payload.dataProcessingAddendum %} {% if result.payload.dataProcessingAddendum.present == "not_present" %}This privacy notice does not appear to have this information.
{% else %} {% if result.payload.dataProcessingAddendum.type %}A data processing addendum is entered into by returning a form
{% elif result.payload.dataProcessingAddendum.type == "assumed" %}Adequate protections are provided by this organisations Terms of Service
{% elif result.payload.dataProcessingAddendum.type == "setting" %}Users can change a setting to enter into a data processing addendum
{% endif %} {% endif %} {% if result.payload.dataProcessingAddendum.url %}{{ result.payload.dataProcessingAddendum.url }}
{% endif %} {% if result.payload.dataProcessingAddendum.observations %}{{ result.payload.dataProcessingAddendum.observations }}
{% endif %} {% endif %} {% else %} {% include 'partials/_section_missing.html' %} {% endif %}Organisations must give details about how data is used to make decisions without human involvement.
{% if result.payload.automatedDecisionMaking %} {% if result.payload.automatedDecisionMaking.usesAutomatedDecisionMaking == "unknown" %}This privacy notice does not appear to have this information.
{% else %} {% if result.payload.automatedDecisionMaking.usesAutomatedDecisionMaking %}This organisation uses automated decision making
{% elif result.payload.automatedDecisionMaking.usesAutomatedDecisionMaking == "not_present" %}This organisation does not use automated decision making
{% elif result.payload.automatedDecisionMaking.usesAutomatedDecisionMaking == "unknown" %}It's unclear if this organisation uses automated decision making
{% endif %} {% endif %} {% if result.payload.automatedDecisionMaking.observations %}{{ result.payload.automatedDecisionMaking.observations | striptags(true) | escape | nl2br }}
{% endif %} {% if result.payload.automatedDecisionMaking.specificity %}The organisation mentions use of automated decision making for specific purposes
{% elif result.payload.automatedDecisionMaking.specificity == "specific" %}The organisation mentions use of automated decision making for general purposes
{% endif %} {% endif %} {% endif %} {% else %} {% include 'partials/_section_missing.html' %} {% endif %}Organisations must give details about how to make a complaint with a data protection authority.
{% if result.payload.complaintInformation %} {% if result.payload.complaintInformation.present == "present" %}This privacy notice contains information about to make a complaint to a data protection regulator
{% if result.payload.complaintInformation.observations %}{{ result.payload.complaintInformation.observations | striptags(true) | escape | nl2br }}
{% endif %} {% if result.payload.complaintInformation.specificity %}This privacy notice contains specific contact details for a data protection regulator
{% elif result.payload.complaintInformation.specificity == "general" %}This privacy notice doesn't contain specific contact details for a data protection regulator
{% endif %} {% endif %} {% elif result.payload.complaintInformation.present == "not_present" %}This privacy notice does not contain information about to make a complaint to a data protection regulator.
{% endif %} {% else %} {% include 'partials/_section_missing.html' %} {% endif %}Organisations are required to provide privacy information in a transparent way. The Article 29 Working Party has provided recommendations on how to do this.
{% set points = result.payload.presentation %} {% if points %}This privacy notice:
Has language that is easy to understand
Has language that is hard to understand
Is designed in a way that makes it easy to find information
Is designed in a way that makes it hard to find information
Can be easily found on the organisation's website
Is hard to find on the organisation's website
Additional information found in the database for this organisation.
{{ extraData | safe }}You have rights to control data about you. Click on the rights to see why you might want to use each one.
We've also prepared email templates to help you contact {{ result.name }} to use the rights.
See data they hold about you
{% set right = "access" %} {% include 'partials/_shortcut_item.html' %}Change data they hold about you
{% set right = "rectification" %} {% include 'partials/_shortcut_item.html' %}Delete data they hold about you
{% set right = "erasure" %} {% include 'partials/_shortcut_item.html' %}Limit how they use data about you
{% set right = "restrictProcessing" %} {% include 'partials/_shortcut_item.html' %}Stop their use of data about you
{% set right = "object" %} {% include 'partials/_shortcut_item.html' %}Export data they hold about you
{% set right = "dataPortability" %} {% include 'partials/_shortcut_item.html' %}Challenge an automated decision
{% set right = "automatedDecisionMaking" %} {% include 'partials/_shortcut_item.html' %}Last updated {{ meta.friendlyDate }} at {{ meta.friendlyTime }} • Download as JSON • API documentation • View on GitHub • View on OpenCorporates


..
a regular expression is constructed as such: (OPEN)(STRING)(CLOSE),"MODIFIER"
extreme prejudice :: replace all instances of a string whatever may surround it
string replace :: replace a string dependant on what comes before and after it
prefix replace :: replace a string dependant on what follows it
suffix replace :: replace a string depenadant on what precedes it
click the orange bar when you are finished with the rule br>
opening regular expression
strings to act on
closing regular expression
regular expression modifiers
replacement string
defd


Texas A&M University
Petroleum Engineering Department
Texas A&M PETE Production Test Facility
Power Point Presentation
Budget Summary
Past Projects
Facility Location
Team Members
Website By: Carter Mitchell, Class of 2021
Contact Information: cjmitchell333@gmail.com


Killer whales are highly social; some populations are composed of matrilineal family groups (pods) which are the most stable of any animal species.
Large, black-and-white with a medium-sized white eye patch, killer whales live in open water. They reach 7 meters in length and live on average for 40 years. Killer whales get their name from mythologies of indigenous cultures, with their reputation ranging from being the souls of humans to merciless killers.


Let's start with the easy stuff. Static is the default position of your html elements. If you don't specify the position, they would just stack on top of each other.
Fixed position is just as the name implies, it is basically stays where you tell it to, whether it be in the middle of the right side with {position: fixed; right: 0; top: 50%;} or at the bottom with {position:fixed; bottom: 0;}. Please keep in mind that it is fixed relative to the browser so you can't scroll away from it. You can do fun things with this position such as adding a wood graphic border on all 4 sides so it's like you're looking through a window frame.
Relative position doesn't seem like much in the beginning because it acts just like static. That is until you give it some directions then boom, magic! The picture illustrates how the "main" section was set to relative and then told to move down and to the right with {position:relative; top:"some # of units"; left: "some # of units". One important thing to notice is that the original space occupied by the "main" section is still taking up space in the layout.
Absolute position is similar to relative position in that you can give it directions to shift around but one really important thing to remember is that it removes it from the flow of the page. What does that mean? Take a look at the picture. The "main" section was told to {position: absolute; top: 0 right: 0}. Notice how the space that was occupied by the "main" section isn't there anymore. Absolute will take an element out of the flow and place it to the top left corner of it's parent element.
What was most confusing about the absolute position was how to use it. Remember how the definition says it places it in the top left corner of the parent element? The first few times I tried it, it did exactly that but to the corner of my website. I scratched my head and couldn't figure out why! Turns out, the parent element has to have a relative position in order for the absolute element to stick to that specific corner. In the picture example, the "section"is set to {position: absolute; right:0} and it stuck to the top of the parent element, "main," instead of the website. Isn't that amazing?


Handtrack.js allows you prototype handtracking interactions in the browser in 10 lines of code.
Toggle Video
loading model ..


corda
/
net.corda.contracts.testing
/
DummyDealContract
/
State
/
ref
ref
val
ref
:
String
Overrides
DealState.ref
Human readable well known reference (e.g. trade reference)


db module¶
-
class
db.
Check
(name, passwd, db_file='databases/zamek.db')[source]¶ Bases:
object
This class is used for checking if user has provided correct pin via keybord attached to Raspberry Pi.
-
property
verified
¶ Check if password provided by user is equal with password from DataBase.
- Returns
verification result
- Return type
bool
-
property
-
class
db.
DataBase
(db_filename='tests/Test.db')[source]¶ Bases:
object
This class allows connection to sqlite database with context manager.
-
add_password
(user='Name', passwd='0000')[source]¶ Adds record to table “PASSWD_VERIFICATION” in database.
- Parameters
user (str) – name of the user
passwd (str) – password of the user
- Returns
None
- Return type
None
-


After you create a page in the default single-page application, you can follow these steps to create a component on that page.
Return to the project in a local editor, and right-click the demo
folder we created in the previous tutorial.
Click New File, and then rename the file "demo.component.ts." We will define the component and its functionality in this file.
If the skyux serve
command is running, it detects the new file and attempts to update the SPA. However, errors occur when trying to serve the empty file, and the SPA fails to compile. If you return to the command prompt, you can see the errors.
Click New File again, and then rename the file "demo.component.html." This file is the template for the newly created component to use.
In the demo.component.ts file, add the following code for a component to display a message on the Demo page.
import {
Component,
Input
} from '@angular/core';
@Component({
selector: 'my-demo',
templateUrl: 'demo.component.html'
})
export class MyDemoComponent {
@Input()
public message: string;
}
The import
portion imports the Component
and Input
classes from Angular to provide that functionality to the component that we are defining. The @Component
section is a decorator for the component, and it defines our selector and template. The decorator takes normal JavaScript classes and extends the JavaScript functionality to convert them into Angular components. The export
portion defines the component class and a public input variable called message
.
In the demo.component.html file, enter {{'{{'}} message }}
to display the message. This provides the message
variable to the template. The curly braces are the syntax to reference properties of the component class.
Open the index.html file in the demo
folder, and then add the new my-demo
component and set the value of the message
variable to "Hello!"
<my-demo message="Hello!"></my-demo>
Save all three files.
Return to the command prompt. If the skyux serve
command is running, it detects the changes and updates the SPA. If not, run skyux serve
to launch the SPA in your default browser.
Return to the Demo page in the SPA. It renders the text from the component after the header.
Next step » Technical reference
Previous step » Create a page


We learn, share, and spread knowledge to the world.
Survivor in this cruel world take a message.
Because technology never ended and you'll consume it.
Visit my Wordpress Blog
Please visit my blog at https://anggadarkprince.wordpress.com/
AVAILABLE CONTENT


Accumulo supports locality groups similar to those described in the Big Table paper. Locality groups allow vertical partitioning of data by column family. This allows user to configure their tables such that scans over a subset of column families are much faster. The Accumulo locality group model has the following features.
When the locality group configuration for a table is changed it has no effect on existing data. All minor and major compactions that occur after the change will organize data into the new locality group structure. As data is written into a table, it will cause minor and major compactions to occur. Over time this will result in all data being organized according to the new locality groups. If all data must be reorganized into the new locality groups immediately, this can be accomplished by forcing a full major compaction of the table. Use the compact command in the shell to accomplish this.
There are two ways to manipulate locality groups, via the shell or through the Java API. From the shell use the getgroups and setgroups commands. Through the API, TableOperations has the methods setLocalityGroups() and getLocalityGroups().
To limit scans to a set of locality groups, use the fetchColumnFamily() function on Scanner or BatchScanner. From the shell use scan with the -c option.


Simon Cowell horrified by self-proclaimed 'rock star' on X Factor: The Band
by Adam MillerThe X Factor: The Band kicks off tonight and already Simon Cowell is faced with his first nightmare in Sven Smith.
The glam-rock 22-year-old rates himself an 11 out of 10 in style, but bursts into the music mogul’s office wearing nothing but a tasselled jacket, enormous chest tattoos, and a questionable headband.
Oh.
‘I’m a rock star,’ Sven erupts with pride. ‘I’m doing Jump by the mighty Van Halen.’
Only Simon looks absolutely horrified while music producer Naughty Boy, who will be helping the Syco boss and Nicole Scherzinger find the next X Factor supergroup, looks like he’s just witnessed a murder.
The X Factor: The Band airs Wednesday, Friday and Sunday this week after Simon scrapped X Factor: All-Stars in favour of the new series after learning Little Mix will be launching a similar show titled The Search in 2020.
Tonight acts will audition in Simon’s HQ in London before facing an audience of thousands at arena auditions in Birmingham where Simon and Nicole will be joined by former champion Leona Lewis and Ella Eyre.
‘Simon and the show have discovered some of the biggest pop groups in recent music history, One Direction, Fifth Harmony, Little Mix – they’re all stars and have sold millions of records,’ enthused host Dermot O’Leary.
‘In previous years, you’ve seen the judges put individual singers in a group – usually with their decision making and reasoning off camera, but this time people will get to see the process take place.
‘The judges will select girls and boys to form new bands just like they did with One Direction and Little Mix and then both will go head to head to be crowned the winning group with a live arena finale in Birmingham.’
The X Factor: The Band launches tonight at 8.30pm on ITV.
Got a showbiz story?
If you've got a celebrity story, video or pictures get in touch with the Metro.co.uk entertainment team by emailing us<EMAIL_ADDRESS>calling 020 3615 2145 or by visiting our Submit Stuff page - we'd love to hear from you.


BEFORE THE MADURAI BENCH OF MADRAS HIGH COURT DATED: 09.07.2018 CORAM THE HONOURABLE Mr. JUSTICE C.T.SELVAM and THE HONOURABLE Mr. JUSTICE A.M.BASHEER AHAMED W.P.(MD)No.7464 of 2018 and W.M.P.(MD)No.7125 of 2018 S.P.Muthuraman ... Petitioner Vs. 1.Ministry of Shipping - Government of India, Rep.by its Secretary, Transport Bhawan, No.1, Parliament Street, New Delhi 110 001. 2.The Member - Secretary, Central Pollution Control Board, Parivesh Bhawan, CBD cum Office Complex, East Arjun Nagar, Delhi 110 032. 3.The Member - Secretary, Tamil Nadu Pollution Control Board, No.76, Mount Salai, Guindy, Chennai 600 032. 4.The District Environmental Engineer - Tuticorin District, Tamil Nadu Pollution Control Board, C7 & C9, SIPCOT Campus, Meelavittan, Tuticorin 628 008. 5.V.O.Chidambaranar Port Trust - Tuticorin, Rep.by its Chairman, V.O.Chidambarnar Port Trust, Tuticorin 628 004. ... Respondents PRAYER: The petition filed under Article 226 of the Constitution of India, to issue a Writ of Mandamus, directing the respondents 2 to 4 to initiate legal action against the 5th respondent for his failure and violation committed in adhering to the law as well as consequent direction to the 5th respondent to pay compensation for the environmental damage caused. !For Petitioner : Mr.S.Muthuvairam For Respondents : Mr.R.Vijayarajan for R1 and R2 Mr.M.Govindan, for R3 and R4 Mr.P.Srinivasan, for R5 :ORDER
(Order of the Court was made by C.T.SELVAM,J.) This Writ petition has been filed as probono publico litigation informs that the fifth respondent namely, V.O.Chidambaranar Port Trust, Tuticorin, is classified as highly polluted Ultra Red (Large) category unit and requires consent to operate in keeping with Section 25 of the Water (Prevention and Control of Pollution) Act, 1975 and Section 21 of the Air (Prevention and Control of Pollution) Act, 1981. Such consent accorded to the fifth respondent expired on 31.03.2015. Thereafter, the fifth respondent earlier permitted in 2007 to handle cargo to the tune of 15.8 million tons per annum has continued to do so and in much larger volumes. On 03.03.2017, the second respondent issued a direction to all State Pollution Control Boards not to allow operations in respect of orange, red and green category units without grant of requisite consent by them.
2.The petitioner complaining that the fourth respondent had failed to comply with the directions of the 2nd respondent seeks issue of a Writ of Mandamus, directing the respondents 2 to 4 to initiate legal action against the 5th respondent for failure and violation committed in adhering to the law as well as consequential direction to pay compensation for the environmental damage caused.
3.Heard learned counsel for petitioner, who reiterated the contentions in the petition and relied on a judgment of the Hon'ble Apex Court reported in 2013(4) SCC 575 (Sterlite Industries (India) Limited Vs. Union of India and others), wherein it had been held that for operating a plant without valid permission for a fairly long period, the concerned company would have to compensate by paying damages.
4.On the other hand, learned counsel for 5th respondent submitted that in response to queries of authorities concerned, the 5th respondent has submitted compliance report initially on 05.12.2017 and resubmitted on 28.02.2018. Learned counsel placed before us a copy of the compliance report. Importantly, learned counsel relies on a judgment of this Court reported in 2015 (4) CTC 353 (P.Sundararajan etc., Vs. The Deputy Registrar, National Green Tribunal, Chennai).
5.We have considered the rival submissions on either side.
6.Section 14 of the National Green Tribunal Act reads as follows: "14.Tribunal to settle disputes -
(1)The Tribunal shall have the jurisdiction over all civil cases where a substantial question relating to environment (including enforcement of any legal right relating to environment), is involved and such question arises out of the implementation of the enactments specified in Schedule-I.
(2)The Tribunal shall hear the disputes arising from the questions referred to in sub section (1) and settle such disputes and pass order thereon.
(3)No application for adjudication of dispute under this Section shall be entertained by the Tribunal unless it is made within a period of six months from the date on which the cause of action for such dispute first arose."
7.The issue raised by the petitioner thus, squarely falls within the instruction of the National Green Tribunal. In the decision reported in 2015(4) CTC 353 this Court has held as follows: "7.We have perused the judgment in Major General Shri Kant Sharma's case (supra) and we find that the discussion from para.15 onwards proceeds on the Constitutional scheme under Articles 32, 33, 136, 226 and 227 of the Constitution of India. It recognizes in para 21 that Judicial Review under Article 32/226 is a basic feature of the Constitution beyond the plea of amendability. Thereafter, various judicial pronouncements have been discussed and the conclusions summarised in para.34, which read as under: "(i)The power of Judicial Review vested in the High Court under Article 226 is one of the basic essential features of the Constitution and any legislation including Armed Forces Act, 2007 cannot override or curtail jurisdiction of the High Court under Article 226 of the Constitution of India. (Ref.L.Chandra and S.N.Mukherjee).
(ii)The jurisdiction of the High Court under Article 226 and this Court under Article 32 though cannot be circumscribed by the provisions of any enactment, they will certainly have due regard to the legislative intent evidenced by the provisions of the Acts and would exercise their jurisdiction consistent with the provisions of the Act (Ref.Mafatlal Industries Ltd.,)
(iii) When a Statutory Forum is created by law for redressal of grievances, a Writ petition should not be entertained ignoring the statutory dispensation. (Refer:Nivedita Sharma).
(iv)The High Court will not entertain a petition under Article 226 of the Constitution if an effective remedy is aggrieved person or the statute under which the action complained of has been taken itself contains a mechanism for redressal of grievance. (Refere. Nivedita Sharma)."
8.In view of application of paragraph 7(iii) and 7(iv) reproduced herein above, this petition shall stand dismissed. No costs. Consequently, connected W.M.P.is closed.
To
1.Ministry of Shipping - Government of India, Rep.by its Secretary, Transport Bhawan, No.1, Parliament Street, New Delhi 110 001.
2.The Member - Secretary, Central Pollution Control Board, Parivesh Bhawan, CBD cum Office Complex, East Arjun Nagar, Delhi 110 032.
3.The Member - Secretary, Tamil Nadu Pollution Control Board, No.76, Mount Salai, Guindy, Chennai 600 032.
4.The District Environmental Engineer - Tuticorin District, Tamil Nadu Pollution Control Board, C7 & C9, SIPCOT Campus, Meelavittan, Tuticorin 628 008.
5.V.O.Chidambaranar Port Trust - Tuticorin, Rep.by its Chairman, V.O.Chidambarnar Port Trust, Tuticorin 628 004.
.


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/changing.20.60field.60.html ---
Before we get too involved in field theory, I would like to propose a change to division_ring
and field
. The problem is that these are defined in core, meaning that we would have to more or less completely ignore all the core definitions based on fields (which isn't much) and add primes or something to avoid name collision.
The change is simply to add div_zero
and decidable equality as an axiom to both of them. This will make field
the same as discrete_field
, so we could just use that, but I think it is not worth the effort to explain to people that they should always use discrete_field
instead of field
, and there are already several examples of people thinking that field
is the more useful one.
Mathematicians are not taught "discrete" fields so would probably gravitate to fields naturally given the choice. Isn't there something mentioned about this in one of the doc strings?
Would that imply hiding the current field definition? The distinction is useful for actual computation with real numbers, so there should be a way to go back to the not necessarily discrete case when necessary.
I don't think we should actually compute with the reals. If you want to compute with transcendental functions etc, one needs to implement interval arithmetic or similar. This would be some kind of decision procedure.
I'm puzzled by "we" but just to clarify: hiding the current field and having only discrete fields means that I can't use mathlib at all for many of the things I want to do. Currently, I can still use parts of mathlib that don't rely on decidable equality.
What's something you want to do with field
that you can't do with discrete_field
?
I don't understand how you can get anything out of a real number (other than another real number).
At least, not with the real numbers as implemented in mathlib.
I think he might be worried because reals aren't really a discrete field. But that doesn't matter because you just cheat and use classical.dec_eq
to make the instance.
I expect François has some specific things in mind, but maybe I misunderstood the meaning of "computation" or "do". I guess proving theorems in constructive real analysis is in some sense a computation, but I don't understand how you can actually run such a computation in Lean and get any useful data out.
Anyways I don't think you can shadow the existing field
, except maybe with notation, which sounds super confusing.
So is the suggestion basically to rename/copy discrete_field
to field'
?
With we I meant users of mathlib's reals.
Proofs in mathlib shouldn't expect that any equalities on the reals hold by definitional equality, i.e. something like (1 + 1 : real) = 2
is only by accident provable using rfl
. To prove such a statement one would use norm_num
or similar.
I also think that we currently are forced to use discrete_field
. I think we need to wait until Lean 4 comes out to make such a change.
To be clear, I am on board with not assuming decidable equality when it is not necessary, but there are essentially no examples of instances of division_ring
and field
that don't have decidable equality. The reason is that has_inv
is a total function, which already excludes all the interesting intuitionistic examples of fields like the computable reals
Basically, field
is a worst-of-both-worlds halfway house between decidable fields and nondecidable fields
did the constructivist type theorists never think of this problem?
The constructivists didn't write field
, leo did. A constructivist would be opposed to totalizing inv
What's the point in intuitionist reals? Is there a decidable predicate on reals other than true and false?
no, because every function is continuous, and {true, false} is discrete
but there are a lot of decidable predicates on the computable reals / algebraic reals
Careful there; there are decidable predicates on real algebraic numbers but not on computable real numbers (by Rice's theorem)
is "I am an algebraic number" decidable over the computable real numbers?
Is pi algebraic?
That is pretty hard to decide
but pi is computable
oh, if they were, then we would already know if e+pi is algebraic
well, maybe nobody decided yet
I decide that it is not.
We don't know if every group scheme of order 4 is killed by 4, but there's an algorithm for finding out.
It turns into the question "is this completely explicit element of a polynomial ring in about 30 variables over the integers in this completely explicit ideal" and I think one can use Groebner basis techniques to figure it out.
What's an explicit ideal?
it's "here are about 100 explicit polynomials in the variables X1,X2,...,X30, and it's the ideal generated by them"
The last time I asked, the computation was out of reach on a modern machine.
is "I am an algebraic number" decidable over the computable real numbers?
Probably not. Rice's theorem which Mario refers to can be paraphrased as "if your predicate over computations is interesting then it's undecidable"
@Mario Carneiro I did not develop field
. It was developed by @Rob Lewis for Lean 2. I only maintained it and made modifications to make sure it worked with Lean 3. One good news is that the whole algebraic hierarchy has already been deleted from Lean 4.
@Johan Commelin I have no idea whether the "four leaf clover" is a positive or negative reaction :)
/me proposes :four_leaf_clover: as the default emoji for marking dreams and wishes that will be trivially realizable when Lean 4 emerges :stuck_out_tongue_wink:
Johan Commelin, 03/09/2018 08:07:17 (UTC)
@Leonardo de Moura No worries. It's meant to be positive. Kudos for all the work you are doing!
Moving the algebraic hierarchy out of core lean seems to be something everyone is excited about.
@Kenny Lau Ok, but this one is not in the dream/wish category since it was already deleted several weeks ago. Well, Lean 4 itself may still be a distant dream.
Leo, you shouldn't worry about us. We are very happy to use Lean 3, and I'm sure Lean 4 will be even better. Please, do what you think you have to do, at the pace you think is good
@Patrick Massot I see. If this is the "happy mode", I wonder how you are going to react when you are not happy ;)
We will work with whatever you come up with.
When it's ready.
and it will almost certainly be better, so we will almost certainly be happy.
I hosted a Lean user meeting in my math department two weeks ago, with Kevin, Johan, Johannes, Mario, Scott, Reid, Chris and Rob. I can tell you everybody seemed very very happy.
It doesn't look unhappy to me. Sure there's the occasional whining but I think a lot of it can be attributed to a bunch of mathematician who didn't expect they would need to understand functional programming.
About the specific question of the algebraic hierarchy, it will probably be more convenient to have it outside of the core library but, as far as I know, the current state did not block anything in our experimentations. And the number of mathematicians trying to learn Lean seems to increase much faster than for other proof assistants, if I understand correctly what I heard from https://www.dagstuhl.de/en/program/calendar/semhp/?semnr=18341
@Mario Carneiro You're right about has_div
(and a few other has_*
signatures are wrong too) but I thought I would be the only one to care about this and it wouldn't get fixed until Lean 4 anyway...
In any case, my main goal is to avoid spending an awful lot of time proving trivial things about fields. If all the theorems are about discrete fields then I can't use them in much of my work and I have to re-do them on my own, perhaps by copy/paste most of the time but I might lose the clever tactics and have do do everything over again the painful way...
@Reid Barton Yes, you're right about the confusion. One of the main reasons why Lean is useful for me is that (avoiding non-computational axioms) everything I can do in lean is computable. It's not about writing a program to "do" things, it's reasoning about computational processes...
If all the theorems are about discrete fields then I can't use them in much of my work and I have to re-do them on my own, perhaps by copy/paste most of the time but I might lose the clever tactics and have do do everything over again the painful way...
What are you doing that needs non-discrete fields? Note that the name "discrete field" is a misnomer if you are any kind of regular mathematician, it has nothing to do with topology
We've more or less made the decision to not care about constructive math for its own sake in core lean and mathlib. Either your field is actually decidable (i.e. rat
), in which case there is no problem, or it is not decidable (i.e. real
) but in this case you are working classically anyway so everything is decidable.
@Mario Carneiro I agree (and don't really care) about the name. The issue is that decidable equality is a rare luxury in my kind of work. (Admittedly, we're a small crowd, but I care about Lean and how it's useful to me...)
I'm asking what your kind of work is, that makes decidable equality a rarity
I also care about lean being useful to you, but I don't know what you need
I don't need anything specific. I'm happy as things are but the future is where things will be... In Lean 4, as far as I understand, there won't be any algebraic structures (except really basic stuff). So I'll inevitably have to deal with mathlib (or equivalent?) for that kind of basic stuff. If mathlib suddenly decides that all fields have decidable equality then I'll have to stop using it because that's simply not true for my applications. Though my applications are specialized, this is just common sense.
To answer your first question, I work in computability theory and reverse mathematics most of the time these days. Both of these areas use classical logic in the meta sense, but the bottom line is that equality of real numbers is not computable...
I think that it is better to encode such facts directly, with a notion of computation, rather than trying to work in a weak logic with the hope that the proven theorems correspond to computable facts at a higher meta level
I think that there is definitely a place for computable reals in mathlib, but I don't think they are an adequate replacement for the real reals
There are additional design considerations that go into it (e.g. efficiency, precision requests, etc), and certain operations (like total division) don't make sense, or at least don't have the same signature that lean wants to give them. At the same time I don't want these considerations to affect regular mathematics, where we just want to write 1 / 2
and not worry about the details, so it simply won't be a field
or field'
or whatever, it will be some special thing like computable_field
To be perfectly honest, I don't think lean is a very good place to do reverse mathematics, unless you do a deep embedding. "no axioms" lean is already way stronger than ZFC
@Mario Carneiro Didn't you write your proof of soundness relative to ZFC?
How does that work if Lean is stronger than ZFC?
ZFC + omega inaccessibles. I haven't fully checked but I believe that "no axioms" lean also has this consistency strength (I proved it relative to lean plus the big 3 axioms)
the three big ones: choice, quot.ind and prop.ext?
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Importing sequence data¶
Note
This guide assumes you have installed QIIME 2 using one of the procedures in the install documents and have read Importing Data.
To begin a QIIME 2 analysis with sequence data, for example as generated on an Illumina MiSeq instrument, it must be imported into a QIIME 2 artifact (.qza
) file. This document illustrates how to import data in various starting formats, and will be expanded as additional relevant formats are identified. Each section below briefly describes a format of sequence data, provides commands to download example data files, and illustrates how to import data in that format.
Note
QIIME 2 is not designed for use with any specific sequence data format, but rather is intended to be general to many different data formats. If you need to import data in a format that is not covered here, please post to the QIIME 2 Forum for help.
“EMP protocol” multiplexed fastq¶
Format description¶
In the “Earth Microbiome Project (EMP) protocol” format, there are two fastq.gz
files, one containing sequence reads and one containing the associated barcode reads, and the data are still multiplexed. The order of the records in the two fastq.gz
files defines the association between a sequence read and its barcode read. These can be imported as follows.
Obtaining example data¶
mkdir raw-sequences
curl -sL https://data.qiime2.org/2.0.6/tutorials/moving-pictures/raw-sequences/barcodes.fastq.gz > raw-sequences/barcodes.fastq.gz
curl -sL https://data.qiime2.org/2.0.6/tutorials/moving-pictures/raw-sequences/sequences.fastq.gz > raw-sequences/sequences.fastq.gz
Casava 1.8 single-end demultiplexed fastq¶
Format description¶
In this format, there is one fastq.gz
file for each sample in the study, and the file name includes the sample identifier. The file name for a single sample might look like L2S357_15_L001_R1_001.fastq.gz
. The underscore-separated fields in this file name are the sample identifier, the barcode sequence or a barcode identifier, the lane number, the read number, and the set number.
Obtaining example data¶
curl -sLO https://data.qiime2.org/2.0.6/tutorials/importing-sequence-data/casava-18-single-end-demultiplexed.zip
unzip -q casava-18-single-end-demultiplexed.zip


Complex Data Model Generation with mobo
Simon Heimler (www.fannon.de )
University of Applied Sciences Augsburg, Germany Computer Bauer GmbH, Munich, Germany
Hello! My name is Simon Heimler and I'm from the University of Applied Sciences in Augsburg, Germany.
In this session I would like to introduce you to a project called mobo.
As you might guess from the program title its project that helps with complex data model generation.
Preface
Prototype in action
Uses a very different approach than current solutions.
Open Source and open to discussion!
Appetizer first
But before we're heading into the technical details, i'll give you a little appetizer first:
Your browser does not support the video tag.
Lets begin with a typical Semantic Form. I realize that I've implemented an attribute wrong.
So how come mobo into play? Lets head over to my text editor and search for a field "loginName"
As you see its a simple data file. Lets change the form field. While we're at it we could also provide an default value for this field.
The moment I hit save mobo will realize the change in the background. [STOP]
As you see mobo recalculates the data model and realizes that 25 wiki sites have to be changed and uploaded. It does that in a few secons total.
Lets head back to our browser. Now the field is updated.
Outline
Using JSON Schema...
...for an object oriented...
...model development...
...workflow...
...in Semantic MediaWiki.
Conclusion & Live-Demo
I have thought about a more detailed title for this presentation and come up with one that even serves as the outline for the presentation:
USING JSON Schema
Lets start with the base technology behind this project: JSON Schema.
Who of you is familiar with JSON Schema?
Only a few? Lets change that!
JSON Schema
Data format for describing data formats / objects
Easy to read/write for both humands and machines
Published draft at IETF (Internet Engineering Task Force)
Similar to XML Schema, but based on JSON
What is JSON Schema about?
Example File
{
"firstName": "Simon",
"lastName": "Heimler",
"age": 27
}
Lets begin with a very simple data example.
This is a JSON File or JavaScript Object describing some facts about me.
Example JSON Schema
JSON Schema is using the same data format JSON to meta describe the object.
You see that we are talking about a person here, that has the properties firstName, lastName and age. But there's more: FirstName and lastName are required and age should be at minimum 0.
This is a very simple example. Of course it's possible to describe much more complex data structures.
Use cases
So what is JSON Schema good for? There are a few Use Cases:
The most obvious one is to use it for validation...
As far as I know mobo is the first project to use JSON Schema for data model generation.
json-schema.org
http://json-schema.org/
JSON Schema has its own website with documentation and a list of libraries that make use of it. So if you're interested in this, have a look.
object-oriented
mobo makes use of object orientation.
Object orientation
More complex SMW models tend to have much redundancy
This can lead to inconsistency - fast
Inheritance can keep the model DRY (Dont Repeat Yourself)
The OO paradigma is simple and well understood
Let me give you a few reasons why using object orientation could be a good idea:
Redundany - at least this was my experience!
Object-oriented JSON Schema
JSON Schema uses "$ref"
to include and reuse schemas
BUT: There is no inheritance behaviour defined!
Sadly, JSON Schema does not support inheritance in a standardized manner.
Own implementation
Implemented custom, more explicit "$extend"
attribute which does proper inheritance
Through "$extend"
the relationship between the objects are defined, too
This leads to a (graph) database model that fits SMW well
But thats not a big problem. JSON Schema is built to be easily extensible. So I implemented my own, custom $extend attribute...
SMW Specifics
Uses Fields, Models and Forms that roughly equivalent SMWs Attributes, Templates and Forms
Additional schema attributes that reflect SMW/SF settings
Form settings can be defined as low as in Fields and are inherited / overwritten on the way up
Of course there are some specific needs of SMW.
Concept
Object-oriented modeling concept
To make this more visual, lets take a look at this diagram.
Lets begin on the right hand side: There's a Circle Form that implements a Circle Model and a Quality Model.
The Circle Model inherits from the abstract _Shape Model, which has the attributes x and y. The Circle also implements a new attribute radius.
Everything is inherited and overwritten from left to right.
/model/_Shape.json
This is the abstract Shape model. It has both x and y coordinates which are defined as integers. b
/model/Circle.json
{
"$extend": "/model/_Shape.json",
"title": "Circle",
"type": "object",
"properties": {
"radius": { "$extend": "/field/radius.json" },
},
"required": ["x", "y", "radius"],
"abstract": false
}
Now lets take a look at the Circle Model. It extends from _Shape and inheritc all properties. Some are overwritten, like the title for example. It inherits the properties from Shape and adds the radius. The radius attribute is inherited too.
/field/radius.json
{
"title": "radius",
"description": "The radius of a shape",
"type": "number",
"minimum": 0,
"smw_form": {
"input type": "text with autocomplete"
}
}
This is the radius field. As you can see the Semantic Forms Display Type is defined as low as in the attribute itself.
model development
So how does model development look like with mobo? There are a few tools involved.
The model is a collection of folders and JSON files on your filesystem.
Use your favorite text editor and VCS!
It is possible to split the model into several modular, reusable sub-projects.
With VCS its possible to go back and forward in the development state in seconds.
With VCS the model can be developed and synced between many persons.
Web based GUI for browsing/viewing the final, inherited model state
... and the wikitext results
Interactive model graph explorer
Sometimes its useful to have a visual representation of your model so you can spot problems from bird's-eye view. This is an interactive model explorer that lets you click through your model.
This graph is also auto generated, but requires some custom layouting through Gephi, a Graph Analysis Tool.
workflow
How does the typical workflow of using mobo look like?
GETTING STARTED
npm install mobo -g
Installs mobo as a global NPM (Node.js) package
mkdir new_project && cd new_project
Creates a new directory and enters it
mobo --init
Initializes a new (barebone) project
nano settings.json
Adjust settings.json (login data!)
First: Lets get started !
Using mobo
Enter mobo in your project directory and its executed in the interactive mode. The Webapp is served at the localhost.
Interactive Workflow
A file of the development model is changed / added
mobo detects the change and re-generates the model
Model is validated. Errors and warnings will be displayed
The result is compared to last upload state and only the changed sites will be uploaded via a Bot account
This is how the output of mobo can look like.
The yellow lines are warnings about inconsistency in the model.
After that mobo lists all sites that are changed through the last update.
At last all uploads are listed.
As you can see, this process - including upload - completes in seconds.
Semantic MediaWiki
So how does this all relate to Semantic MediaWiki?
Target Installation
Semantic MediaWiki and Semantic Forms are required
HeaderTabs Extension is supported
Visual Editor TemplateData Extension is supported; will be used for template documentation
Form with HeaderTabs
This is an example form that was completely generated by mobo.
The form uses HeaderTabs.
Site with HeaderTabs
This is the site resulting from the form entry. In this tab a Router was added.
Documentation and usage snippet is auto generated
mobo also generates documentation and snippets how templates or queries are to be used.
A report is generated and uploaded
After each upload mobo creates and uploads a report to the wiki.
Very useful toolset for my own model development process
Great at keeping the model consistent, possible to update dozends of wiki sites in a minute.
Works well with prototyping / iterative development process.
SMW/SF doesn't support some features that would come cheap (HTML5 front-end validation!)
Completely independent from SMW/SF
Adds to the learning curve of SMW
Model needs to have a certain complexity to make using the toolset viable
No GUI for editing
Project state
Working Prototype
Currently tailored to the specific needs of a specific project,
but this might change.
Open Source at github.com/Fannon/mobo
DEMO
Now I'll give you a little live demo. Feel free to ask questions now!
Your browser does not support the video tag.
Questions?
We still got some time left. So if there are any more questions, feel free to ask them now!
Thanks for listening!
If you've got feedback or questions, just talk to me!
www.fannon.de/p/jsonmodel
Thanks for listening to my session!
If you've got some more feedback or questions, just talk to me later.
OWL is more flexible and powerful
OWL supports reasoning / inference
OWL is much more difficult than JSON Schema
Simple things like hard validation are difficult with OWL. It requires another complex layer on top of a already complex system. (e.g. Pellet Integrity Constraints )
My personal philosophy
The foundations should be as easy and barebone as possible while beeing still highly flexible / modular
More complex features should come on top of that
Excursus
How about Page Schemas?
Schema editor in the browser
Easy to understand / use
Requires no additonal technologies
Tightly integrated in SMW
Supports no inheritance
No Validation
Slower Workflow


The following words require processing:
{{word.notes}}
The following words have been processed but can be edited:


Price
??? Sat
Market Cap
??? $
Current Supply
??? ACM
Hashrate
??? GH/s
About
Actinium is more than a crypto currency.
Actinium is a decentralized currency built on blockchain technology that aims to help bring crypto into every customer’s pocket, every store, and be extraordinarily safe and easy to use.
This can be achieved because Actinium is a Lightning Network supported coin that will allow instant transactions with near-zero fees, atomic swaps, and many of the numerous other 2nd Layer solutions.
Actinium is a decentralized currency built on blockchain technology that aims to help bring crypto into every customer’s pocket, every store, and be extraordinarily safe and easy to use.
This can be achieved because Actinium is a Lightning Network supported coin that will allow instant transactions with near-zero fees, atomic swaps, and many of the numerous other 2nd Layer solutions.
Actinium is completely decentralized without premine and is not an ICO. It has proper mining support, mobile wallets, and hardware wallet integration.
Actinium has all the needed features already activated to achieve Lightning Network compatibility.
Actinium will not remain a blockchain-only cryptocurrency. The inevitable progress will deliver competing solutions to many problems on different layers.
Actinium has all the needed features already activated to achieve Lightning Network compatibility.
Actinium will not remain a blockchain-only cryptocurrency. The inevitable progress will deliver competing solutions to many problems on different layers.
Meet the team
Unlike many other altcoins we are not anonymous.
We think that investors have a right to know the people representing the coin. Yes, the standard excuse is very often 'But Satoshi never revealed himself'.
However, unlike us, who are building things based on Bitcoin's original code, Satoshi created something extraordinary and he/she/they had every right to remain hidden.
We think that investors have a right to know the people representing the coin. Yes, the standard excuse is very often 'But Satoshi never revealed himself'.
However, unlike us, who are building things based on Bitcoin's original code, Satoshi created something extraordinary and he/she/they had every right to remain hidden.