--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/hott.20zulip.html ---
I wanna dive a bit more into HoTT. See whether the benefits of univalence such as transfer are as cool as I think they are. And also check whether it doesn't create nuisances in practice when formalising ordinary non-homotopy maths. Since Zulip is awesome, I've created: https://hott.zulipchat.com/#
You're heartily invited to join, if you are interested in HoTT.
@Bas Spitters has already publicised the chatroom on the HoTT github page. I'm looking forward to some fruitful and engaging discussions!
Is there a simple explanation of what is easier/harder in HoTT from the point of view of a person who writes proofs and doesn't care about logic / type theory foundations?
You should ask over there (-;
@Ulrik Buchholtz I had a couple of really interesting conversations with you about HoTT in Pittsburgh and perhaps this Zulip chat would be a great place to have more. I still am confused about whether HoTT is actually what I as a mathematician want, and Mario's remarks on another thread here are exactly the kind of things which make me worry.
Thanks for the heads-up; I've joined.
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Correspondence
Advice note from Sir Michael Wilshaw HMCI to the Secretary of State for Education on school inspections in Birmingham and Tower Hamlets.
PDF , 257KB , 4 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 196KB , 7 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
Her Majesty’s Chief Inspector, Sir Michael Wilshaw, has today (14 July 2015) written to the Secretary of State for Education to provide an up-to-date assessment of progress in all 21 Birmingham schools and 7 Tower Hamlets schools subject to targeted inspections last year.
In addition the note details concerns from the inspectorate regarding the potentially high numbers of pupils whose names are being deleted from school admissions registers without either the schools or the local authorities having an accurate understanding of where those pupils have gone.
HMCI commissioned inspectors to undertake a series of unannounced inspections and meet with local authority representatives to assess whether the systems for recording and tracking the onward destination of pupils who leave school at points other than the usual transition date are sufficiently robust. The schools inspected in this exercise did not, for the most part, include those involved in the original inspections.


Introduction
Welcome to the HiLib API! You can use our API to access HiLib API endpoints, which can get information on various books, authors and users in our database.
You can view code examples in the dark area to the right.
HTTP Request url must be prepended with the base url
BASE URL = http://hi-lib.herokuapp.com/api/v1
Authentication
To authorize,
add `x-access-token` to your request header.
Its value must be a valid signed JWT token
HiLib uses JWT to authenticate a user. The JWT token must be signedby the application and expires after 24hours
HiLib expects that the token be included in every request like the example below:
x-access-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Sign in
Request body
{
"username":"username",
"password": "password"
}
Response body (application/json)
{
"message": "Authentication successful",
"user": {
"username": "username",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"userId": 1,
"admin": false
}
}
This endpoint logs a user into the application. The token should be included in subsequent request header.
HTTP Request
POST /users/signin
HTTP Response
200 OK
Users
Create a user
Request body
{
"username": "username",
"email"<EMAIL_ADDRESS>"password": "password",
"confirmPassword": "password",
}
Response body (application/json)
{
"message": "Authentication successful",
"user": {
"username": "username",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"userId": 1,
"admin": false
}
}
This endpoint creates a user record.
HTTP Request
POST /users/register
HTTP Response
200 OK
Forgot password - sends reset password
Request body
{
"email"<EMAIL_ADDRESS>}
Response body (application/json)
{
"message" : "Check your email for the reset link"
}
This endpoint sends a reset password link to the user associated with the provided email address
HTTP Request
POST /users/forgot_password
HTTP Response
200 OK
Change password on reset
Request body
{
"username": "username",
"newPassword": "newPassword",
"confirmPassword": "newPassword",
"resetToken": "bjvkjnhjhyynbsjsknalom"
}
Response body (application/json)
{
"message": "Password change successful, please login to your account"
}
This endpoint changes a user's password after the user has click on the reset password link
HTTP Request
POST /auth/reset_password?token=${resetToken}
HTTP Response
200 OK
Query Parameters
| Parameter | Description |
|---|---|
| token | The randomly generated reset-token |
Get all users
Request body
{ }
Response body (application/json)
{
"allUsers": [
{
"id": 1,
"userId": "02a093bd-4295-4ea0-9bd1-ebd0538590ba",
"username": "username",
"email"<EMAIL_ADDRESS>"admin": false,
"memValue": "platinum",
"createdAt": "2018-02-16T15:30:44.400Z",
"updatedAt": "2018-02-16T15:30:44.400Z"
},
...
]
}
This endpoint gets all users
HTTP Request
GET /users
HTTP Response
200 OK
Get a single user
Request body
{ }
Response body (application/json)
{
"user": {
"id": 1,
"userId": "02a093bd-4295-4ea0-9bd1-ebd0538590ba",
"username": "username",
"email"<EMAIL_ADDRESS>"admin": false,
"memValue": "platinum",
"createdAt": "2018-02-16T15:30:44.400Z",
"updatedAt": "2018-02-16T15:30:44.400Z"
}
}
This endpoint gets a single user
HTTP Request
GET /users/:userId
HTTP Response
200 OK
URL Parameters
| Parameter | Description |
|---|---|
| userId | The ID of the user |
Genres
Create a genre
Request body
{
"name": "Computer studies"
}
Response body
{
"message": "Computer studies have been added to category",
"genre": {
"id": 1,
"name": "Computer studies",
"updatedAt": "2018-02-15T11:37:37.288Z",
"createdAt": "2018-02-15T11:37:37.288Z"
}
}
This endpoint creates a book genre
HTTP Request
POST /genre
HTTP Response
201 Created
Authors
Create an author
Request body
{
"firstName": "Nelkon",
"lastName": "Parker",
"dateOfBirth": "1876-03-12",
"dateOfDeath": "1994-10-15"
}
Response body (application/json)
{
"message": "Nelkon Parker, successfully added",
"author": {
"fullName": "Nelkon Parker",
"lifeSpan":<PHONE_NUMBER>000,
"id": 1,
"firstName": "Nelkon",
"lastName": "Parker",
"dateOfBirth": "1876-03-12T00:00:00.000Z",
"dateOfDeath": "1994-10-15T00:00:00.000Z",
"updatedAt": "2018-02-15T10:13:32.805Z",
"createdAt": "2018-02-15T10:13:32.805Z"
}
}
This endpoint creates an author.
HTTP Request
POST /authors
HTTP Response
201 Created
Edit an author
Request body
{
"lastName": "Philip"
}
Response body (application/json)
{
"message": "Nelkon Philip record has been updated",
"updatedAuthor": {
"fullName": "Nelkon Philip",
"lifeSpan":<PHONE_NUMBER>000,
"id": 1,
"firstName": "Nelkon",
"lastName": "Philip",
"dateOfBirth": "1876-03-12T00:00:00.000Z",
"dateOfDeath": "1994-10-15T00:00:00.000Z",
"createdAt": "2018-02-15T10:13:32.805Z",
"updatedAt": "2018-02-15T10:26:54.773Z"
}
}
This endpoint updates an author record
HTTP Request
PUT /authors/:authorId
HTTP Response
200 OK
URL Parameters
| Parameter | Description |
|---|---|
| authorId | The ID of the author |
Get authors
Request body
{ }
Response body (application/json)
{
"authors": [
{
"fullName": "Nelkon Philip",
"lifeSpan":<PHONE_NUMBER>000,
"id": 1,
"firstName": "Nelkon",
"lastName": "Philip",
"dateOfBirth": "1876-03-12T00:00:00.000Z",
"dateOfDeath": "1994-10-15T00:00:00.000Z",
"createdAt": "2018-02-15T10:13:32.805Z",
"updatedAt": "2018-02-15T10:26:54.773Z",
"Books": []
},
...
]
}
This endpoint get all authors and assigned book(s)
HTTP Request
GET /authors/books
HTTP Response
200 OK
Delete an author
Request body
{ }
Response body (application/json)
{
"message": "Author removed successfully"
}
This endpoint deletes author record
HTTP Request
DELETE /authors/:authorId
HTTP Response
200 OK
URL Parameters
| Parameter | Description |
|---|---|
| authorId | The ID of the author |
Books
Create a book
Request body
{
"title": "Java programming for beginners",
"genre_id": 1,
"description": "Ths introduces readers to the basic of Obejct Oriented Programmng Language",
"ISBN": "33332-143-2457",
"quantity": 7
}
Response body (application/json)
{
"message": "Java programming for beginners have been added to library",
"book": {
"id": 5,
"title": "Java programming for beginners",
"genre_id": 1,
"description": "This introduces readers to the basic of Object Oriented Programmng Language",
"ISBN": "1234-5678-90123",
"quantity": 17,
"available": 17,
"updatedAt": "2018-02-15T12:09:24.965Z",
"createdAt": "2018-02-15T12:09:24.965Z"
}
}
This endpoint creates a book
HTTP Request
POST /books
HTTP Response
201 Created
Edit a book
Request body
{
"quantity": 5
}
Response body
{
"message": "Java programming for beginners record have been updated",
"updatedBook": {
"id": 1,
"title": "Java programming for beginners",
"genre_id": 1,
"description": "This introduces readers to the basic of Object Oriented Programmng Language",
"ISBN": "1234-5678-90123",
"quantity": 5,
"available": 5,
"createdAt": "2018-02-15T11:58:56.678Z",
"updatedAt": "2018-02-15T12:56:23.872Z"
}
}
This endpoint updates the book record
HTTP Request
PUT /books/:bookId
HTTP Response
200 OK
URL Parameters
| Parameter | Description |
|---|---|
| bookId | The ID of the book |
Get all books and contributing author
Request body
{ }
Response body (application/json)
{
"books": [
{
"id": 2,
"title": "Java programming for beginners",
"ISBN": "1234-5678-90123",
"description": "This introduces readers to the basic of Object Oriented Programmng Language",
"Authors": []
},
...
]
}
This endpoint get all books and assigned author(s)
HTTP Request
GET /users/books
HTTP Response
200 OK
Get books by category
Request body
{ }
Response body (application/json)
{
"genres": [
{
"id": 1,
"name": "Computer studies",
"createdAt": "2018-02-15T11:42:48.531Z",
"updatedAt": "2018-02-15T11:42:48.531Z",
"books": [
{
"id": 1,
"title": "Java programming for beginners",
"genre_id": 1,
"description": "This introduces readers to the basic of Object Oriented Programmng Language",
"ISBN": "1234-5678-90123",
"quantity": 5,
"available": 5,
"createdAt": "2018-02-15T11:58:56.678Z",
"updatedAt": "2018-02-15T12:56:23.872Z"
},
...
]
},
...
]
}
This endpoint get books sorted by category
HTTP Request
GET /genre/books
HTTP Response
200 OK
Delete a book
Request body
{ }
Response body (application/json)
{
"message": "Book have been successfully deleted"
}
This endpoint deletes a book
HTTP Request
DELETE /books/:bookId
HTTP Response
200 OK
URL Parameters
| Parameter | Description |
|---|---|
| bookId | The ID of the book |
Borrowed Books
Borrow a book
Request body
{ }
Response body (application/json)
{
"message": "You have successfully borrowed this book",
"borrowedBook": {
"borrowId": 1,
"userId": 1,
"bookId": 1,
"returned": false,
"updatedAt": "2018-02-17T15:32:14.813Z",
"createdAt": "2018-02-17T15:32:14.813Z"
}
}
This endpoint allows a user to borrow a book
HTTP Request
POST /users/:userId/books/:bookId
HTTP Response
201 Created
URL Parameters
| Parameter | Description |
|---|---|
| userId | The ID of the user |
| bookId | The ID of the book |
Return a borrowed book
Request body
{
"returned": true
}
Response body (application/json)
{
"message": "You have succesfully returned this book",
"returnedBook": {
"borrowId": 1,
"userId": 1,
"bookId": 1,
"returned": true,
"createdAt": "2018-02-17T15:32:14.813Z",
"updatedAt": "2018-02-17T15:36:46.491Z"
}
}
This endpoint returns a borrowed book
HTTP Request
PUT /users/:userId/books/:bookId
HTTP Response
200 OK
URL Parameters
| Parameter | Description |
|---|---|
| userId | The ID of the user |
| bookId | The ID of the borrowed book |
Get unreturned books by a user
Request body
{ }
Response body (application/json)
{
"borrowedBooks": {
"id": 1,
"userId": "fb259d98-3aaf-46fa-89dc-36010e9dcd1d",
"username": "username",
"email"<EMAIL_ADDRESS>...
"Books": [
{
"title": "Java programming for beginners",
"ISBN": "1234-5678-90123",
"Borrowed": {
"returned": false
}
},
...
]
}
}
This endpoint gets all the books a user have been borrowed but are yet to be returned
HTTP Request
GET /users/:userId/books
HTTP Response
200 OK
URL Parameters
| Parameter | Description |
|---|---|
| userId | The ID of the user |
Query Parameters
| Parameter | Default | Description |
|---|---|---|
| bookId | 0 | Sets the id of the book that has been borrowed |
| returned | false | The return status of the book |
Fetch all borrowed books
Request body
{ }
Response body
{
"userBooks": [
{
"id": 1,
"userId": "fb259d98-3aaf-46fa-89dc-36010e9dcd1d",
"username": "username",
"email"<EMAIL_ADDRESS>"admin": false,
"memValue": "platinum",
"createdAt": "2018-02-16T15:31:30.249Z",
"updatedAt": "2018-02-16T15:31:30.249Z",
"Books": [
{
"title": "Java programming for beginners",
"ISBN": "1234-5678-90123",
"Borrowed": {
"returned": false
}
},
...
]
},
...
]
}
This endpoint fetches all users and books borrowed and yet to be returned
HTTP Request
`GET /books/users
HTTP Response
200 OK
Author Books
Assign book(s) to author(s)
Request body
{ }
Response body (application/json)
{
"message": "Book have been assigned successfully",
"authorBook": {
"ownerId": 1,
"authorId": 1,
"bookId": 1,
"updatedAt": "2018-02-17T15:01:48.959Z",
"createdAt": "2018-02-17T15:01:48.959Z"
}
}
This endpoint assigned book(s) to author
HTTP Request
POST /authors/:authorId/books/:bookId
HTTP Response
201 Created
URL Parameters
| Parameter | Description |
|---|---|
| authorId | The ID of the author |
| bookId | The ID of the book |
Get all authors and book(s) assigned
Request body
{ }
Response body (application/json)
{
"authors": [
{
"fullName": "Nelkon Philip",
"lifeSpan":<PHONE_NUMBER>000,
"id": 1,
"firstName": "Nelkon",
"lastName": "Philip",
"dateOfBirth": "1876-03-12T00:00:00.000Z",
"dateOfDeath": "1994-10-15T00:00:00.000Z",
"createdAt": "2018-02-17T14:55:22.156Z",
"updatedAt": "2018-02-17T14:55:22.156Z",
"Books": [
{
"title": "Java programming for beginners",
"ISBN": "1234-5678-90123",
"description": "This introduces readers to the basic of Object Oriented Programmng Language"
},
...
]
},
...
]
}
This endpoint assigned book(s) to author
HTTP Request
`GET /authors/books
HTTP Response
200 OK
Get all book(s) assigned to a single author
Request body
{ }
Response body (application/json)
{
"author": {
"fullName": "Nelkon Philip",
"lifeSpan":<PHONE_NUMBER>000,
"id": 1,
"firstName": "Nelkon",
"lastName": "Philip",
"dateOfBirth": "1876-03-12T00:00:00.000Z",
"dateOfDeath": "1994-10-15T00:00:00.000Z",
"createdAt": "2018-02-17T14:55:22.156Z",
"updatedAt": "2018-02-17T14:55:22.156Z",
"Books": [
{
"title": "Java programming for beginners",
"ISBN": "1234-5678-90123",
"description": "This introduces readers to the basic of Object Oriented Programmng Language"
}
]
}
}
This endpoint fetches all book(s) assigned to a single author
HTTP Request
`GET /authors/:authorId/books
HTTP Response
200 OK
URL Parameters
| Parameter | Description |
|---|---|
| authorId | The ID of the author |
Errors
The HiLib API uses the following error codes:
| Error Code | Meaning |
|---|---|
| 400 | Bad Request -- Validation errors. |
| 401 | Unauthorized -- Your API key is wrong. |
| 403 | Forbidden -- Either the resource requested is meant for authenticated user or administrator only. |
| 404 | Not Found -- The specified resource could not be found. |
| 409 | Conflict -- The resource you are updating or creating already exist. |
| 500 | Internal Server Error -- We had a problem with our server. Try again later. |


Every large design company whether it’s a multi-national.
When I was just starting 6th grade I got my first job.
If you haven’t found relief for migraine, you’re not alone.
Gas prices are soaring! This has resulted.
Dream interpretation has many forms; it can be done.
When television was young, was hugely popular.


Posts
<!-- Dont edit this block! --> {{#if fiddle}} {{{jsfiddle fiddle 'result,html,css,js' 'presentation'}}} {{/if}}
<!-- Write your article here (you dont HAVE to use markdown...): --> {{#markdown}}
derp
{{/markdown}}
Continue reading...<!-- Dont edit this block! --> {{#if fiddle}} {{{jsfiddle fiddle 'result,html,css,js' 'presentation'}}} {{/if}}
<!-- Write your article here (you dont HAVE to use markdown...): --> {{#markdown}}
{{/markdown}}
Continue reading...


Professional Profile
of utilizing current abilities in developing updated roles in various careers.
Thrives in a well balanced, routine oriented environment, known for organizational skills and time management.
Technical Skills
HTML, CSS, JavaScript
Software:
Git, Sublime, Photoshop
Career Development
CODE FELLOWS
2015 Teaching AssistantHelp students as needed by being present and be engaged.
Grading - encourage students and provide feedback.
Understand the instruction plan of the day,
and how it fits into the plan for the week.
Circulate among students during lab, checking in regularly.
VARIOUS CLIENTS
2000 - 2015 Freelance web designer/developerDesign and develop web presence, create user-friendly website.
Manage content, design graphic images, provide
blog and social media support.
OUTDOORMIND.NET/ADVENTURESPORTS ONLINE
2000-2001 Web Development AssistantDesigned/developed websites for adventure sporting agencies.
Integrated/managed content and designed graphics as required.
Updated/maintained client websites and databases.


The scientific activity of an applied scientist is very closely related to photography, because all new research requires irrefutable proof, and one of the main proofs is analog photographs taken in various parts of the world.
Our work includes research, scientific and applied parts. We work in an integrated manner. In scientific expeditions, which we regularly conduct for more than five years, we investigate the power of people on earth at different periods of history, as well as the mechanisms by which these people came to power. We study why they were rulers, how they ruled their people, why the peoples were forced or wished to obey these rulers, why they erected numerous structures. But most importantly, we research the technologies they used to come to power and not lose it later.
The entire research system, as a rule, is divided into certain blocks: a military block, a technological or administrative block, and a mystical block. The complete picture can be obtained by exploring only all 3 blocks.
We are engaged in the study of the present and the past, which allows us to understand how this knowledge was transformed over time, what actions people performed, what scientific works they created, what concepts and priorities existed at one time or another. And also how each person was educated and prepared for the life in which he lived. That allowed a person to stay alive and live at least some kind of life, because in the Middle Ages, human life had a completely different value than it has today, and we know this perfectly well from classical history.
We solve all these questions, then we turn them into working systems, test them in the so-called laboratory conditions, and then apply them in life.


You are a alastair-admin, so you can see ingredient requests from non-admins here. Please try to approve or reject them as timely as possible
You can request missing ingredients to be added to the system here. You can not directly add them yourself as control over ingredients is alastair admins only. Please make sure you don't submit duplicate requests (search existing requests and ingredients first).


haxelib
Haxe Library Manager.
More information: home page
- Search for a Haxe library:
haxelib search keyword
- Install a Haxe library:
haxelib install libname
- Install a specific version of a Haxe library:
haxelib install libname version
- Upgrade all installed Haxe libraries:
haxelib upgrade
- Install the development version of a library from a Git repository:
haxelib git libname git_url
- Uninstall a Haxe library:
haxelib remove libname
- Print a tree of locally installed Haxe libraries:
haxelib list


Who Was Leonardo da Vinci?
Leonardo da Vinci was a Renaissance painter, sculptor, architect, inventor, military engineer and draftsman — the epitome of a true Renaissance man.
Gifted with a curious mind and a brilliant intellect, da Vinci studied the laws of science and nature, which greatly informed his work. His drawings,
paintings and other works have influenced countless artists and engineers over the centuries.
Early Life
Da Vinci was born in a farmhouse outside the village of Anchiano in Tuscany, Italy (about 18 miles west of Florence) on April 15, 1452.
Born out of wedlock to respected Florentine notary Ser Piero and a young peasant woman named Caterina, da Vinci was raised by his father and his stepmother.
At the age of five, he moved to his father’s estate in nearby Vinci (the town from which his surname derives), where he lived with his uncle and grandparents.
Education
Young da Vinci received little formal education beyond basic reading, writing and mathematics instruction, but his artistic talents were evident from an early age.
Around the age of 14, da Vinci began a lengthy apprenticeship with the noted artist Andrea del Verrocchio in Florence. He learned a wide breadth of technical skills
including metalworking, leather arts, carpentry, drawing, painting and sculpting.
His earliest known dated work — a pen-and-ink drawing of a landscape in the Arno valley — was sketched in 1473.
Early Works
At the age of 20, da Vinci qualified for membership as a master artist in Florence’s Guild of Saint Luke and established his own workshop. However, he continued to
collaborate with del Verrocchio for an additional five years.
It is thought that del Verrocchio completed his “Baptism of Christ” around 1475 with the help of his student, who painted part of the background and the young angel
holding the robe of Jesus.
According to Lives of the Most Excellent Painters, Sculptors and Architects, written around 1550 by artist Giorgio Vasari, del Verrocchio was so humbled by
the superior talent of his pupil that he never picked up a paintbrush again. (Most scholars, however, dismiss Vasari’s account as apocryphal.)
In 1478, after leaving del Verrocchio’s studio, da Vinci received his first independent commission for an altarpiece to reside in a chapel inside Florence’s Palazzo Vecchio.
Three years later the Augustinian monks of Florence’s San Donato a Scopeto tasked him to paint “Adoration of the Magi.” The young artist, however, would leave the city
and abandon both commissions without ever completing them.
Leonardo da Vinci: Paintings
Although da Vinci is known for his artistic abilities, fewer than two dozen paintings attributed to him exist. One reason is that his interests were so varied
that he wasn’t a prolific painter. Da Vinci’s most famous works include the “Vitruvian Man,” “The Last Supper” and the “Mona Lisa.”
Vitruvian Man
Art and science intersected perfectly in da Vinci’s sketch of “Vitruvian Man,” drawn in 1490, which depicted a nude male figure in two superimposed positions
with his arms and legs apart inside both a square and a circle.
The now-famous sketch represents da Vinci's study of proportion and symmetry, as well as his desire to relate man to the natural world.
The Last Supper
Around 1495, Ludovico Sforza, then the Duke of Milan, commissioned da Vinci to paint “The Last Supper” on the back wall of the dining hall inside the monastery
of Milan’s Santa Maria delle Grazie.
The masterpiece, which took approximately three years to complete, captures the drama of the moment when Jesus informs the Twelve Apostles gathered for Passover dinner that one of them would soon betray him. The range of facial expressions and the body language of the figures around the table bring the masterful composition to life.
The decision by da Vinci to paint with tempera and oil on dried plaster instead of painting a fresco on fresh plaster led to the quick deterioration and flaking of “The Last Supper.” Although an improper restoration caused further damage to the mural, it has now been stabilized using modern conservation techniques.
Mona Lisa
In 1503, da Vinci started working on what would become his most well-known painting — and arguably the most famous painting in the world —the “Mona Lisa.” The
privately commissioned work is characterized by the enigmatic smile of the woman in the half-portrait, which derives from da Vinci’s sfumato technique.
Adding to the allure of the “Mona Lisa” is the mystery surrounding the identity of the subject. Princess Isabella of Naples, an unnamed courtesan and
da Vinci’s own mother have all been put forth as potential sitters for the masterpiece. It has even been speculated that the subject wasn’t a female at all but
da Vinci’s longtime apprentice Salai dressed in women’s clothing.
Based on accounts from an early biographer, however, the "Mona Lisa" is a picture of Lisa del Giocondo, the wife of a wealthy Florentine silk merchant.
The painting’s original Italian name — “La Gioconda” — supports the theory, but it’s far from certain. Some art historians believe the merchant commissioned
the portrait to celebrate the pending birth of the couple’s next child, which means the subject could have been pregnant at the time of the painting.
If the Giocondo family did indeed commission the painting, they never received it. For da Vinci, the "Mona Lisa" was forever a work in progress, as it was
his attempt at perfection, and he never parted with the painting. Today, the "Mona Lisa" hangs in the Louvre Museum in Paris, France, secured behind bulletproof
glass and regarded as a priceless national treasure seen by millions of visitors each year.
Battle of Anghiari
In 1503, da Vinci also started work on the "Battle of Anghiari," a mural commissioned for the council hall in the Palazzo Vecchio that was to be twice as large
as "The Last Supper."
He abandoned the "Battle of Anghiari" project after two years when the mural began to deteriorate before he had a chance to finish it.
Inventions
In 1482, Florentine ruler Lorenzo de' Medici commissioned da Vinci to create a silver lyre and bring it as a peace gesture to Ludovico Sforza. After doing so,
da Vinci lobbied Ludovico for a job and sent the future Duke of Milan a letter that barely mentioned his considerable talents as an artist and instead touted
his more marketable skills as a military engineer.
Using his inventive mind, da Vinci sketched war machines such as a war chariot with scythe blades mounted on the sides, an armored tank propelled by two men cranking
a shaft and even an enormous crossbow that required a small army of men to operate.
The letter worked, and Ludovico brought da Vinci to Milan for a tenure that would last 17 years. During his time in Milan, da Vinci was commissioned to work on numerous
artistic projects as well, including “The Last Supper.”
Da Vinci’s ability to be employed by the Sforza clan as an architecture and military engineering advisor as well as a painter and sculptor spoke to da Vinci’s keen
intellect and curiosity about a wide variety of subjects.
Flying Machine
Always a man ahead of his time, da Vinci appeared to prophesy the future with his sketches of devices that resemble a modern-day bicycle and a type of helicopter.
Perhaps his most well-known invention is a flying machine, which is based on the physiology of a bat. These and other explorations into the mechanics of flight are
found in da Vinci's Codex on the Flight of Birds, a study of avian aeronautics, which he began in 1505.
Like many leaders of Renaissance humanism, da Vinci did not see a divide between science and art. He viewed the two as intertwined disciplines rather than separate
ones. He believed studying science made him a better artist.
In 1502 and 1503, da Vinci also briefly worked in Florence as a military engineer for Cesare Borgia, the illegitimate son of Pope Alexander VI and commander of the
papal army. He traveled outside of Florence to survey military construction projects and sketch city plans and topographical maps.
He designed plans, possibly with noted diplomat Niccolò Machiavelli, to divert the Arno River away from rival Pisa in order to deny its wartime enemy access to the sea.
Da Vinci’s Study of Anatomy and Science
Da Vinci thought sight was humankind’s most important sense and eyes the most important organ, and he stressed the importance of saper vedere, or “knowing how to see.”
He believed in the accumulation of direct knowledge and facts through observation.
“A good painter has two chief objects to paint — man and the intention of his soul,” da Vinci wrote. “The former is easy, the latter hard, for it must be expressed by
gestures and the movement of the limbs.”
To more accurately depict those gestures and movements, da Vinci began to study anatomy seriously and dissect human and animal bodies during the 1480s. His drawings of
a fetus in utero, the heart and vascular system, sex organs and other bone and muscular structures are some of the first on human record.
In addition to his anatomical investigations, da Vinci studied botany, geology, zoology, hydraulics, aeronautics and physics. He sketched his observations on loose sheets
of papers and pads that he tucked inside his belt.
Da Vinci placed the papers in notebooks and arranged them around four broad themes—painting, architecture, mechanics and human anatomy. He filled dozens of notebooks with
finely drawn illustrations and scientific observations.
Sculptures
Ludovico Sforza also tasked da Vinci with sculpting a 16-foot-tall bronze equestrian statue of his father and founder of the family dynasty, Francesco Sforza. With the help
of apprentices and students in his workshop, da Vinci worked on the project on and off for more than a dozen years.
Da Vinci sculpted a life-size clay model of the statue, but the project was put on hold when war with France required bronze to be used for casting cannons, not sculptures.
After French forces overran Milan in 1499 — and shot the clay model to pieces — da Vinci fled the city along with the duke and the Sforza family.
Ironically, Gian Giacomo Trivulzio, who led the French forces that conquered Ludovico in 1499, followed in his foe’s footsteps and commissioned da Vinci to sculpt a grand
equestrian statue, one that could be mounted on his tomb. After years of work and numerous sketches by da Vinci, Trivulzio decided to scale back the size of the statue,
which was ultimately never finished.
Final Years
Da Vinci returned to Milan in 1506 to work for the very French rulers who had overtaken the city seven years earlier and forced him to flee.
Among the students who joined his studio was young Milanese aristocrat Francesco Melzi, who would become da Vinci’s closest companion for the rest of his life.
He did little painting during his second stint in Milan, however, and most of his time was instead dedicated to scientific studies.
Amid political strife and the temporary expulsion of the French from Milan, da Vinci left the city and moved to Rome in 1513 along with Salai, Melzi and two studio
assistants. Giuliano de’ Medici, brother of newly installed Pope Leo X and son of his former patron, gave da Vinci a monthly stipend along with a suite of rooms at
his residence inside the Vatican.
His new patron, however, also gave da Vinci little work. Lacking large commissions, he devoted most of his time in Rome to mathematical studies and scientific exploration.
After being present at a 1515 meeting between France’s King Francis I and Pope Leo X in Bologna, the new French monarch offered da Vinci the title “Premier Painter and Engineer
and Architect to the King.”
Along with Melzi, da Vinci departed for France, never to return. He lived in the Chateau de Cloux (now Clos Luce) near the king’s summer palace along the Loire River in Amboise.
As in Rome, da Vinci did little painting during his time in France. One of his last commissioned works was a mechanical lion that could walk and open its chest to reveal a bouquet of lilies.


The Request Socket Client involves one requirement to function: user classes implementing {@link org.codemonkey.swiftsocketclient.ClientMessageToServer} and {@link org.codemonkey.swiftsocketclient.ServerMessageToClient} to register self-encoding/decoding Java message objects with the server.
Note that the client mode (TCP / UDP) doesn't change how the user interacts with the server: the type of transport is managed by the client without breaking API.
@since 1.0


BackgrounDRb offers seemless integration with rails. You can invoke random tasks defined in your workers from rails. You can pass arguments, collect results, monitor status of workers and other statistics.
BackgrounDRb offers two sets of APIs for interacting with workers from rails. One is newer, slicker
set and other is older legacy compatibility API. 1.0.3 version made a departure and implemented newer
cleaner APIs, we will discuss them first, before getting acquinted with older API. Also, no matter
which API you are using MiddleMan
is the proxy object that lets you handle all this.
Invoke an asynchronous task on a worker :
Following snippet will invoke method some_task
with argument data
in foo_worker
. Also, method will
be invoked asychrounously and Rails won’t wait for result from BackgrounDRb server.
worker = MiddleMan.worker(:foo_worker) worker.some_task(data)
Here, I would like to illustrate a point that contrary to general percenption, since some_task
method is being
executed asyhcrounously, don’t expect any meaningful return values from second line.
When you invoke MiddleMan.worker(:foo_worker)
it returns a worker proxy, hence you can combine above two lines in
one as follows:
MiddleMan.worker(:foo_worker,<optional_job_key>).some_task(data)
Above snippet also demonstrates that, if your worker was started with a job_key
you can use it to
get correct proper worker proxy.
Invoke a method on worker and get results :
Following snippet will invoke method some_task
with argument data
in foo_worker
. Also, method block
until BackgrounDRb server returns a result.
worker = MiddleMan.worker(:foo_worker) result = worker.some_task(data,true)
As illustrated above, you can use job_key
or make them in single line too. When you are invoking a method
on your worker first optional argument will be passed to your worker method and second optional argument true|false
indicates whether we should wait for result from BackgrounDRb server or not.
Fetch Status/Result Objects of a worker :
If you are using register_status
in your worker code to store status/result objects, you can retrieve them from
rails using:
status_obj = MiddleMan.worker(:foo_worker).ask_status
You can as usual use job_key
if worker was started with a job_key.
You can query status/result objects of all workers in one shot. For example, in your controller:
def ask_status t_response = MiddleMan.query_all_workers running_workers = t_response.map { |key,value| "#{key} = #{value}"}.join(',') render :text => running_workers end
Start a Worker :
To start a worker from rails:
used_job_key = MiddleMan.new_worker(:worker => :foo_worker,\ :job_key => "my_secret_job_key")
new_worker
will always return job_key
generated for the worker. It will be same as job_key
passed while creating the
worker and can be reused to invoke further tasks on the same worker or for deleting the worker.
Important thing to be kept in mind is, when you are creating a worker using above approach, you
must use a unique job_key
while starting the worker. Also, while invoking any of the other methods
like ask_status
, worker_info
or one of the worker methods, you must use job_key
.
Also another complicated example of starting a worker will be:
MiddleMan.new_worker(:worker => :error_worker, :job_key => :hello_world,\ :data => "wow_man",:schedule => \ { :hello_world => { :trigger_args => "*/5 * * * * * *",\ :data => "hello_world" }})
Above code will start error_worker
with job_key
and will pass argument :data
to create
method of the worker. Worker will be scheduled to run hello_world
method every 5 seconds with argument
specified in :data
.
Worker Statistics:
You can get worker specific information using:
MiddleMan.worker(:foo_worker).worker_info
The return value will look something like:
{:worker=>:foo_worker, :status=>:running, :job_key=>"hello"}
Information about all currently running workers can be obtained using:
MiddleMan.all_worker_infoReturn value will look like:
[{:worker=>:foo_worker, :status=>:running, :job_key=>"hello"}, \ {:worker=>:foo_worker, :status=>:running, :job_key=>""}]


Module ulid
Module for creating Universally Unique Lexicographically Sortable Identifiers.
Modeled after the ulid implementation by alizain. Please checkout the documentation there for the design and characteristics of ulid.
IMPORTANT: the standard Lua versions, based on the standard C library are unfortunately very weak regarding time functions and randomizers. So make sure to set it up properly!
Info:
- Copyright: Copyright 2016-2017 Thijs Schreijer
- License: mit
- Author: Thijs Schreijer
Functions
| set_time_func (f) | Sets the time function to get default times from. |
| set_random_func (f) | Sets the random function to get random input from. |
| encode_time (time, len) | generates the time-based part of a ulid. |
| encode_random (len) | generates the random part of a ulid. |
| ulid (time) | generates a ulid. |
Functions
- set_time_func (f)
-
Sets the time function to get default times from.
This function should return time in seconds since unix epoch, with millisecond
precision. The default set will be
ngx.now()
or alternativelysocket.gettime()
, if niether is available, it will insert an error throwing placeholder function.Parameters:
- f the function to set
Returns:
true
- set_random_func (f)
-
Sets the random function to get random input from.
This function should return a number between 0 and 1 when called without
arguments. The default is math.random, this is ok for LuaJIT, but the
standard PuC-Rio Lua versions have a weak randomizer that is better replaced.
Parameters:
- f the function to set
Returns:
true
- encode_time (time, len)
-
generates the time-based part of a ulid.
Parameters:
- time (optional) time to generate the string from, in seconds since unix epoch, with millisecond precision (defaults to now)
- len (optional) the length of the time-based string to return (defaults to 10)
Returns:
-
time-based part of ulid string
- encode_random (len)
-
generates the random part of a ulid.
Parameters:
- len (optional) the length of the random string to return (defaults to 16)
Returns:
-
random part of ulid string
- ulid (time)
-
generates a ulid.
Parameters:
- time (optional) time to generate the ulid from, in seconds since unix epoch, with millisecond precision (defaults to now)
Returns:
-
ulid string
Usage:
local ulid_mod = require("ulid") -- load LuaSocket so we can reuse its gettime function local socket = require("socket") -- set the time function explicitly, but by default it -- will be picked up as well ulid_mod.set_time_func(socket.gettime) -- seed the random generator, needed for the example, but ONLY DO THIS ONCE in your -- application, unless you know what you are doing! And try to use a better seed than -- the time based seed used here. math.randomseed(socket.gettime()*10000) -- get a ulid from current time local id = ulid_mod.ulid()


Lie Group Basics#
Goals of this section#
Since we must be brief here, this is not really a place to learn about Lie groups or Lie algebras. Rather, the point of this section is to outline what you need to know to use Sage effectively for Lie computations, and to fix ideas and notations.
Semisimple and reductive groups#
If \(g \in GL(n,\CC)\), then \(g\) may be uniquely factored as \(g_1 g_2\) where \(g_1\) and \(g_2\) commute, with \(g_1\) semisimple (diagonalizable) and \(g_2\) unipotent (all its eigenvalues equal to 1). This follows from the Jordan canonical form. If \(g = g_1\) then \(g\) is called semisimple and if \(g = g_2\) then \(g\) is called unipotent.
We consider a Lie group \(G\) and a class of representations such that if an element \(g \in G\) is unipotent (resp. semisimple) in one faithful representation from the class, then it is unipotent (resp. semisimple) in every faithful representation of the class. Thus the notion of being semisimple or unipotent is intrinsic. Examples:
Compact Lie groups with continuous representations
Complex analytic groups with analytic representations
Algebraic groups over \(\RR\) with algebraic representations.
A subgroup of \(G\) is called unipotent if it is connected and all its elements are unipotent. It is called a torus if it is connected, abelian, and all its elements are semisimple. The group \(G\) is called reductive if it has no nontrivial normal unipotent subgroup. For example, \(GL(2,\CC)\) is reductive, but its subgroup:
is not since it has a normal unipotent subgroup
A group has a unique largest normal unipotent subgroup, called the unipotent radical, so it is reductive if and only if the unipotent radical is trivial.
A Lie group is called semisimple it is reductive and furthermore has no nontrivial normal tori. For example \(GL(2,\CC)\) is reductive but not semisimple because it has a normal torus:
The group \(SL(2,\CC)\) is semisimple.
Fundamental group and center#
If \(G\) is a semisimple Lie group then its center and fundamental group are finite abelian groups. The universal covering group \(\tilde G\) is therefore a finite extension with the same Lie algebra. Any representation of \(G\) may be reinterpreted as a representation of the simply connected \(\tilde G\). Therefore we may as well consider representations of \(\tilde G\), and restrict ourselves to the simply connected group.
Parabolic subgroups and Levi subgroups#
Let \(G\) be a reductive complex analytic group. A maximal solvable subgroup of \(G\) is called a Borel subgroup. All Borel subgroups are conjugate. Any subgroup \(P\) containing a Borel subgroup is called a parabolic subgroup. We may write \(P\) as a semidirect product of its maximal normal unipotent subgroup or unipotent radical \(P\) and a reductive subgroup \(M\), which is determined up to conjugacy. The subgroup \(M\) is called a Levi subgroup.
Example: Let \(G = GL_n(\CC)\) and let \(r_1, \ldots, r_k\) be integers whose sum is \(n\). Then we may consider matrices of the form:
where \(g_i \in GL(r_i,\CC)\). The unipotent radical consists of the subgroup in which all \(g_i = I_{r_i}\). The Levi subgroup (determined up to conjugacy) is:
and is isomorphic to \(M = GL(r_1,\CC) \times \cdots \times GL(r_k,\CC)\). Therefore \(M\) is a Levi subgroup.
The notion of a Levi subgroup can be extended to compact Lie groups. Thus \(U(r_1) \times \cdots \times U(r_k)\) is a Levi subgroup of \(U(n)\). However parabolic subgroups do not exist for compact Lie groups.
Cartan types#
Semisimple Lie groups are classified by their Cartan types. There
are both reducible and irreducible Cartan types in Sage. Let us start
with the irreducible types. Such a type is implemented in Sage as a
pair ['X', r]
where ‘X’ is one of A, B, C, D, E, F or G and \(r\) is a
positive integer. If ‘X’ is ‘D’ then we must have \(r > 1\) and if ‘X’ is
one of the exceptional types ‘E’, ‘F’ or ‘G’ then \(r\) is limited to
only a few possibilities. The exceptional types are:
['G', 2], ['F', 4], ['E', 6], ['E', 7] or ['E', 8].
A simply-connected semisimple group is a direct product of simple Lie groups, which are given by the following table. The integer \(r\) is called the rank, and is the dimension of the maximal torus.
Here are the Lie groups corresponding to the classical types:
compact group |
complex analytic group |
Cartan type |
|---|---|---|
\(SU(r+1)\) |
\(SL(r+1,\CC)\) |
\(A_r\) |
\(spin(2r+1)\) |
\(spin(2r+1,\CC)\) |
\(B_r\) |
\(Sp(2r)\) |
\(Sp(2r,\CC)\) |
\(C_r\) |
\(spin(2r)\) |
\(spin(2r,\CC)\) |
\(D_r\) |
You may create these Cartan types and their Dynkin diagrams as follows:
sage: ct = CartanType("D5"); ct
['D', 5]
Here "D5"
is an abbreviation for ['D',5]
. The group \(spin(n)\) is
the simply-connected double cover of the orthogonal group \(SO(n)\).
Dual Cartan types#
Every Cartan type has a dual, which you can get from within Sage:
sage: CartanType("B4").dual()
['C', 4]
Types other than \(B_r\) and \(C_r\) for \(r > 2\) are self-dual in the sense that the dual is isomorphic to the original type; however the isomorphism of a Cartan type with its dual might relabel the vertices. We can see this as follows:
sage: CartanType("F4").dynkin_diagram()
O---O=>=O---O
1 2 3 4
F4
sage: CartanType("F4").dual()
['F', 4] relabelled by {1: 4, 2: 3, 3: 2, 4: 1}
sage: CartanType("F4").dual().dynkin_diagram()
O---O=>=O---O
4 3 2 1
F4 relabelled by {1: 4, 2: 3, 3: 2, 4: 1}
Reducible Cartan types#
If \(G\) is a Lie group of finite index in \(G_1 \times G_2\), where \(G_1\) and \(G_2\) are Lie groups of positive dimension, then \(G\) is called reducible. In this case, the root system of \(G\) is the disjoint union of the root systems of \(G_1\) and \(G_2\), which lie in orthogonal subspaces of the ambient space of the weight space of \(G\). The Cartan type of \(G\) is thus reducible.
Reducible Cartan types are supported in Sage as follows:
sage: RootSystem("A1xA1")
Root system of type A1xA1
sage: WeylCharacterRing("A1xA1")
The Weyl Character Ring of Type A1xA1 with Integer Ring coefficients
Low dimensional Cartan types#
There are some isomorphisms that occur in low degree.
Cartan Type |
Group |
Equivalent Type |
Isomorphic Group |
|---|---|---|---|
\(B_2\) |
\(spin(5)\) |
\(C_2\) |
\(Sp(4)\) |
\(D_3\) |
\(spin(6)\) |
\(A_3\) |
\(SL(4)\) |
\(D_2\) |
\(spin(4)\) |
\(A1 \times A_1\) |
\(SL(2)\times SL(2)\) |
\(B_1\) |
\(spin(3)\) |
\(A_1\) |
\(SL(2)\) |
\(C_1\) |
\(Sp(2)\) |
\(A_1\) |
\(SL(2)\) |
Sometimes the redundant Cartan types such as \(D_3\) and \(D_2\) are excluded from the list of Cartan types. However Sage allows them since excluding them leads to exceptions having to be made in algorithms. A better approach, which is followed by Sage, is to allow the redundant Cartan types, but to implement the isomorphisms explicitly as special cases of branching rules. The utility of this approach may be seen by considering that the rank one group \(SL(2)\) has different natural weight lattices realizations depending on whether we consider it to be \(SL(2)\), \(spin(2)\) or \(Sp(2)\):
sage: RootSystem("A1").ambient_space().simple_roots()
Finite family {1: (1, -1)}
sage: RootSystem("B1").ambient_space().simple_roots()
Finite family {1: (1)}
sage: RootSystem("C1").ambient_space().simple_roots()
Finite family {1: (2)}
Relabeled Cartan types#
By default Sage uses the labeling of the Dynkin diagram from [Bourbaki46]. There is another labeling of the vertices due to Dynkin. Most of the literature follows [Bourbaki46], though [Kac] follows Dynkin.
If you need to use Dynkin’s labeling, you should be aware that Sage
does support relabeled Cartan types. See the documentation in
sage.combinat.root_system.type_relabel
for further information.
Standard realizations of the ambient spaces#
These realizations follow the Appendix in [Bourbaki46]. See the Root system plot tutorial for how to visualize them.
Type A#
For type \(A_r\) we use an \(r+1\) dimensional ambient space. This means that we are modeling the Lie group \(U(r+1)\) or \(GL(r+1,\CC)\) rather than \(SU(r+1)\) or \(SL(r+1,\CC)\). The ambient space is identified with \(\mathbf{Q}^{r+1}\):
sage: RootSystem("A3").ambient_space().simple_roots()
Finite family {1: (1, -1, 0, 0), 2: (0, 1, -1, 0), 3: (0, 0, 1, -1)}
sage: RootSystem("A3").ambient_space().fundamental_weights()
Finite family {1: (1, 0, 0, 0), 2: (1, 1, 0, 0), 3: (1, 1, 1, 0)}
sage: RootSystem("A3").ambient_space().rho()
(3, 2, 1, 0)
The dominant weights consist of integer \(r+1\)-tuples \(\lambda = (\lambda_1,\dots,\lambda_{r+1})\) such that \(\lambda_1 \ge \dots \ge \lambda_{r+1}\).
See SL versus GL for further remarks about Type A.
Type B#
For the remaining classical Cartan types \(B_r\), \(C_r\) and \(D_r\) we use an \(r\)-dimensional ambient space:
sage: RootSystem("B3").ambient_space().simple_roots()
Finite family {1: (1, -1, 0), 2: (0, 1, -1), 3: (0, 0, 1)}
sage: RootSystem("B3").ambient_space().fundamental_weights()
Finite family {1: (1, 0, 0), 2: (1, 1, 0), 3: (1/2, 1/2, 1/2)}
sage: RootSystem("B3").ambient_space().rho()
(5/2, 3/2, 1/2)
This is the Cartan type of \(spin(2r+1)\). The last fundamental weight
(1/2, 1/2, ..., 1/2)
is the highest weight of the \(2^r\)
dimensional spin representation. All the other fundamental
representations factor through the homomorphism
\(spin(2r+1) \to SO(2r+1)\) and are representations of the orthogonal
group.
The dominant weights consist of \(r\)-tuples of integers or half-integers \((\lambda_1,\dots,\lambda_r)\) such that \(\lambda_1 \ge \lambda_2 \dots \ge \lambda_r \ge 0\), and such that the differences \(\lambda_i - \lambda_j \in \mathbf{Z}\).
Type C#
sage: RootSystem("C3").ambient_space().simple_roots()
Finite family {1: (1, -1, 0), 2: (0, 1, -1), 3: (0, 0, 2)}
sage: RootSystem("C3").ambient_space().fundamental_weights()
Finite family {1: (1, 0, 0), 2: (1, 1, 0), 3: (1, 1, 1)}
sage: RootSystem("C3").ambient_space().rho()
(3, 2, 1)
This is the Cartan type of the symplectic group \(Sp(2r)\).
The dominant weights consist of \(r\)-tuples of integers \(\lambda = (\lambda_1,\dots,\lambda_{r+1})\) such that \(\lambda_1 \ge \cdots \ge \lambda_r \ge 0\).
Type D#
sage: RootSystem("D4").ambient_space().simple_roots()
Finite family {1: (1, -1, 0, 0), 2: (0, 1, -1, 0), 3: (0, 0, 1, -1), 4: (0, 0, 1, 1)}
sage: RootSystem("D4").ambient_space().fundamental_weights()
Finite family {1: (1, 0, 0, 0), 2: (1, 1, 0, 0), 3: (1/2, 1/2, 1/2, -1/2), 4: (1/2, 1/2, 1/2, 1/2)}
sage: RootSystem("D4").ambient_space().rho()
(3, 2, 1, 0)
This is the Cartan type of \(spin(2r)\). The last two fundamental weights are the highest weights of the two \(2^{r-1}\)-dimensional spin representations.
The dominant weights consist of \(r\)-tuples of integers \(\lambda = (\lambda_1,\dots,\lambda_{r+1})\) such that \(\lambda_1 \ge \cdots \ge \lambda_{r-1} \ge |\lambda_r|\).
Exceptional Types#
We leave the reader to examine the exceptional types. You can use Sage to list the fundamental dominant weights and simple roots.
Weights and the ambient space#
Let \(G\) be a reductive complex analytic group. Let \(T\) be a maximal torus, \(\Lambda = X^{\ast} (T)\) be its group of analytic characters. Then \(T \cong (\CC^{\times})^r\) for some \(r\) and \(\Lambda \cong \ZZ^r\).
Example 1: Let \(G = \hbox{GL}_{r+1} (\CC)\). Then \(T\) is the diagonal subgroup and \(X^{\ast} (T) \cong \ZZ^{r+1}\). If \(\lambda = (\lambda_1, \dots, \lambda_n)\) then \(\lambda\) is identified with the rational character
Example 2: Let \(G = \hbox{SL}_{r+1} (\CC)\). Again \(T\) is the diagonal subgroup but now if \(\lambda \in \ZZ^{\Delta} = \{(d, \cdots, d) | d \in \ZZ\} \subseteq \ZZ^{r+1}\) then \(\prod t_i^{\lambda_i} = \det ({\bf t})^d = 1\), so \(X^{\ast} (T) \cong \ZZ^{r+1} /\ZZ^{\Delta} \cong \ZZ^r\).
Elements of \(\Lambda\) are called weights.
If \(\pi: G \to GL(V)\) is any representation we may restrict \(\pi\) to \(T\). Then the characters of \(T\) that occur in this restriction are called the weights of \(\pi\).
\(G\) acts on its Lie algebra by conjugation (the adjoint representation).
The nonzero weights of the adjoint representation are called roots.
The ambient space of \(\Lambda\) is \(\QQ \otimes \Lambda\).
The root system#
As we have mentioned, \(G\) acts on its complexified Lie algebra \(\mathfrak{g}_{\CC}\) by the adjoint representation. The zero weight space \(\mathfrak{g}_{\CC}(0)\) is just the Lie algebra of \(T\) itself. The other nonzero weights each appear with multiplicity one and form an interesting configuration of vectors called the root system \(\Phi\).
It is convenient to partition \(\Phi\) into two sets \(\Phi^+\) and \(\Phi^-\) such that \(\Phi^+\) consists of all roots lying on one side of a hyperplane. Often we arrange things so that \(G\) is embedded in \(GL(n,\CC)\) in such a way that the positive weights correspond to upper triangular matrices. Thus if \(\alpha\) is a positive root, its weight space \(\mathfrak{g}_{\CC}(\alpha)\) is spanned by a vector \(X_\alpha\), and the exponential of this eigenspace in \(G\) is a one-parameter subgroup of unipotent matrices. It is always possible to arrange that this one-parameter subgroup consists of upper triangular matrices.
If \(\alpha\) is a positive root that cannot be decomposed as a sum of other positive roots, then \(\alpha\) is called a simple root. If \(G\) is semisimple of rank \(r\), then \(r\) is the number of positive roots. Let \(\alpha_1, \ldots, \alpha_r\) be these.
The Weyl group#
Let \(G\) be a complex analytic group. Let \(T\) be a maximal torus, and let \(N(T)\) be its normalizer. Let \(W = N(T)/T\) be the Weyl group. It acts on \(T\) by conjugation; therefore it acts on the weight lattice \(\Lambda\) and its ambient space. The ambient space admits an inner product that is invariant under this action. Let \((v | w)\) denote this inner product. If \(\alpha\) is a root let \(r_\alpha\) denote the reflection in the hyperplane of the ambient space that is perpendicular to \(\alpha\). If \(\alpha = \alpha_i\) is a simple root, then we use the notation \(s_i\) to denote \(r_\alpha\).
Then \(s_1, \ldots, s_r\) generate \(W\), which is a Coxeter group. This means that it is generated by elements \(s_i\) of order two and that if \(m(i,j)\) is the order of \(s_i s_j\), then
is a presentation. An important function \(\ell : W \to \ZZ\) is the length function, where \(\ell(w)\) is the length of the shortest decomposition of \(w\) into a product of simple reflections.
The dual root system#
The coroots are certain linear functionals on the ambient space that also form a root system. Since the ambient space admits a \(W\)-invariant inner product \((\ |\ )\), they may be identified with elements of the ambient space itself. Then they are proportional to the roots, though if the roots have different lengths, long roots correspond to short coroots and conversely. The coroot corresponding to the root \(\alpha\) is
We can also describe the natural pairing between coroots and roots using this invariant inner product as
The Dynkin diagram#
The Dynkin diagram is a graph whose vertices are in bijection with the set simple roots. We connect the vertices corresponding to roots that are not orthogonal. Usually two such roots (vertices) make an angle of \(2\pi/3\), in which case we connect them with a single bond. Occasionally they may make an angle of \(3\pi/4\) in which case we connect them with a double bond, or \(5\pi/6\) in which case we connect them with a triple bond. If the bond is single, the roots have the same length with respect to the inner product on the ambient space. In the case of a double or triple bond, the two simple roots in questions have different length, and the bond is drawn as an arrow from the long root to the short root. Only the exceptional group \(G_2\) has a triple bond.
There are various ways to get the Dynkin diagram in Sage:
sage: DynkinDiagram("D5")
O 5
|
|
O---O---O---O
1 2 3 4
D5
sage: ct = CartanType("E6"); ct
['E', 6]
sage: ct.dynkin_diagram()
O 2
|
|
O---O---O---O---O
1 3 4 5 6
E6
sage: B4 = WeylCharacterRing("B4"); B4
The Weyl Character Ring of Type B4 with Integer Ring coefficients
sage: B4.dynkin_diagram()
O---O---O=>=O
1 2 3 4
B4
sage: RootSystem("G2").dynkin_diagram()
3
O=<=O
1 2
G2
The Cartan matrix#
Consider the natural pairing \(\langle\ ,\ \rangle\) between coroots and roots, then the defining matrix of this pairing is called the Cartan matrix. That is to say, the Cartan matrix \(A = (a_{ij})_{ij}\) is given by
This uniquely corresponds to a root system/Dynkin diagram/Lie group.
We note that we have made a convention choice, and the opposite convention corresponds to taking the transpose of the Cartan matrix.
Fundamental weights and the Weyl vector#
There are certain weights \(\omega_1, \ldots, \omega_r\) that:
If \(G\) is semisimple then these are uniquely determined, whereas if \(G\) is reductive but not semisimple we may choose them conveniently.
Let \(\rho\) be the sum of the fundamental dominant weights. If \(G\) is semisimple, then \(\rho\) is half the sum of the positive roots. In case \(G\) is not semisimple, we have noted, the fundamental weights are not completely determined by the inner product condition given above. If we make a different choice, then \(\rho\) is altered by a vector that is orthogonal to all roots. This is a harmless change for many purposes such as the Weyl character formula.
In Sage, this issue arises only for Cartan type \(A_r\). See SL versus GL.
Representations and characters#
Let \(T\) be a maximal torus and \(\Lambda = X^{\ast} (T)\) be the group of rational characters. Then \(\Lambda \cong \ZZ^r\).
Recall that elements of \(\Lambda \cong \ZZ^r\) are called weights.
The Weyl group \(W = N(T)/T\) acts on \(T\), hence on \(\Lambda\) and its ambient space by conjugation.
The ambient space \(\QQ \otimes X^{\ast} (T) \cong \QQ^r\) has a fundamental domain \(\mathcal{C}^+\) for the Weyl group \(W\) called the positive Weyl chamber. Weights in \(\mathcal{C}^+\) are called dominant.
Then \(\mathcal{C}^+\) consists of all vectors such that \((\alpha | v) \geq 0\) for all positive roots \(\alpha\).
It is useful to embed \(\Lambda\) in \(\RR^r\) and consider weights as lattice points.
If \((\pi, V)\) is a representation then restricting to \(T\), the module \(V\) decomposes into a direct sum of weight eigenspaces \(V(\mu)\) with multiplicity \(m (\mu)\) for weight \(\mu\).
There is a unique highest weight \(\lambda\) with respect to the partial order. We have \(\lambda \in \mathcal{C}\) and \(m (\lambda) = 1\).
\(V \longleftrightarrow \lambda\) gives a bijection between irreducible representations and weights \(\lambda\) in \(\mathcal{C}^+\).
Assuming that \(G\) is simply-connected (or more generally, reductive with a simply-connected derived group) every dominant weight \(\lambda\) is the highest weight of a unique irreducible representation \(\pi_\lambda\), and \(\lambda \mapsto \pi_\lambda\) gives a parametrization of the isomorphism classes of irreducible representations of \(G\) by the dominant weights.
The character of \(\pi_\lambda\) is the function \(\chi_\lambda(g) = tr(\pi_\lambda(g))\). It is determined by its values on \(T\). If \(\mathbf(z) \in T\) and \(\mu \in \Lambda\), let us write \(\mathbf{z}^\mu\) for the value of \(\mu\) on \(\mathbf{z}\). Then the character:
Sometimes this is written
The meaning of \(e^\lambda\) is subject to interpretation, but we may regard it as the image of the additive group \(\Lambda\) in its group algebra. The character is then regarded as an element of this ring, the group algebra of \(\Lambda\).
Representations: an example#
In this example, \(G = \hbox{SL}(3,\CC)\). We have drawn the weights of an irreducible representation with highest weight \(\lambda\). The shaded region is \(\mathcal{C}^+\). \(\lambda\) is a dominant weight, and the labeled vertices are the weights with positive multiplicity in \(V(\lambda)\). The weights weights on the outside have \(m(\mu) = 1\), while the six interior weights (with double circles) have \(m(\mu) = 2\).
Partitions and Schur polynomials#
The considerations of this section are particular to type \(A\). We review the relationship between characters of \(GL(n,\CC)\) and symmetric function theory.
A partition \(\lambda\) is a sequence of descending nonnegative integers:
We do not distinguish between two partitions if they differ only by some trailing zeros, so \((3, 2) = (3, 2, 0)\). If \(l\) is the last integer such that \(\lambda_l > 0\) then we say that \(l\) is the length of \(\lambda\). If \(k = \sum \lambda_i\) then we say that \(\lambda\) is a partition of \(k\) and write \(\lambda \vdash k\).
A partition of length \(\le n=r+1\) is therefore a dominant weight of
type ['A',r]
. Not every dominant weight is a partition, since the
coefficients in a dominant weight could be negative. Let us say that
an element \(\mu = (\mu_1, \mu_2, \cdots, \mu_n)\) of the ['A',r]
root lattice is effective if the \(\mu_i \ge 0\). Thus an effective
dominant weight of ['A',r]
is a partition of length \(\le n\), where
\(n = r+1\).
Let \(\lambda\) be a dominant weight, and let \(\chi_\lambda\) be the character of \(GL(n,\CC)\) with highest weight \(\lambda\). If \(k\) is any integer we may consider the weight \(\mu = (\lambda_1+k,\dots,\lambda_n+k)\) obtained by adding \(k\) to each entry. Then \(\chi_{\mu} = \det^k \otimes \chi_\lambda\). Clearly by choosing \(k\) large enough, we may make \(\mu\) effective.
So the characters of irreducible representations of \(GL(n,\CC)\) do not all correspond to partitions, but the characters indexed by partitions (effective dominant weights) are enough that we can write any character \(\det^{-k}\chi_{\mu}\) where \(\mu\) is a partition. If we take \(k = -\lambda_n\) we could also arrange that the last entry in \(\lambda\) is zero.
If \(\lambda\) is an effective dominant weight, then every weight that appears in \(\chi_\lambda\) is effective. (Indeed, it lies in the convex hull of \(w(\lambda)\) where \(w\) runs through the Weyl group \(W = S_n\).) This means that if
then \(\chi_\lambda(g)\) is a polynomial in the eigenvalues of \(g\). This is the Schur polynomial \(s_\lambda(z_1, \ldots, z_n)\).
Affine Cartan types#
There are also affine Cartan types, which correspond to (infinite dimensional)
affine Lie algebras. There are affine Cartan types of the
form [`X`, r, 1]
if X=A,B,C,D,E,F,G
and [`X`, r]
is an ordinary
Cartan type. There are also twisted affine types of the form [X, r, k]
,
where \(k = 2\) or \(3\) if the Dynkin diagram of the ordinary Cartan type
[X, r]
has an automorphism of degree \(k\). When \(k = 1\), the affine Cartan
type is said to be untwisted.
Illustrating some of the methods available for the untwisted affine
Cartan type ['A', 4, 1]
:
sage: ct = CartanType(['A',4,1]); ct
['A', 4, 1]
sage: ct.dual()
['A', 4, 1]
sage: ct.classical()
['A', 4]
sage: ct.dynkin_diagram()
0
O-----------+
| |
| |
O---O---O---O
1 2 3 4
A4~
The twisted affine Cartan types are relabeling of the duals of certain untwisted Cartan types:
sage: CartanType(['A',3,2])
['B', 2, 1]^*
sage: CartanType(['D',4,3])
['G', 2, 1]^* relabelled by {0: 0, 1: 2, 2: 1}
The affine root and the extended Dynkin diagram#
For the extended Dynkin diagram, we add one negative root \(\alpha_0\). For the untwisted types, this is the root whose negative is the highest weight in the adjoint representation. Sometimes this is called the affine root. We make the Dynkin diagram as before by measuring the angles between the roots. This extended Dynkin diagram is useful for many purposes, such as finding maximal subgroups and for describing the affine Weyl group.
In particular, the hyperplane for the reflection \(r_0\), used in generating the affine Weyl group, is translated off the origin (so it becomes an affine hyperplane). Now the root system is not described as linear transformations on an Euclidean space, but instead by affine transformations. Thus the dominant chamber has finite volume and tiles the Eucledian space. Moreover, each such tile corresponds to a unique element in the affine Weyl group.
The extended Dynkin diagram may be obtained as the Dynkin diagram of the corresponding untwisted affine type:
sage: ct = CartanType("E6"); ct
['E', 6]
sage: ct.affine()
['E', 6, 1]
sage: ct.affine() == CartanType(['E',6,1])
True
sage: ct.affine().dynkin_diagram()
O 0
|
|
O 2
|
|
O---O---O---O---O
1 3 4 5 6
E6~
The extended Dynkin diagram is also a method of the WeylCharacterRing
:
sage: WeylCharacterRing("E7").extended_dynkin_diagram()
O 2
|
|
O---O---O---O---O---O---O
0 1 3 4 5 6 7
E7~
We note the following important distinctions from the classical cases:
The affine Weyl groups are all infinite.
Type \(A_1^{(1)}\) has two anti-parallel roots with distinct reflections. The Dynkin diagram in this case is represented by a double bond with arrows going in both directions.
Twisted affine root systems#
For the construction of \(\alpha_0\) in the twisted types, we refer the reader to Chapter 8 of [Kac]. As mentioned above, most twisted types can be constructed by taking the dual root system of an untwisted type. However the type \(A_{2n}^{(2)}\) root system can only be constructed by the twisting procedure defined in [Kac]. It has the following properties:
The Dynkin diagram of type \(A_2^{(2)}\) has a quadruple bond with an arrow pointing from the short root to the long root.
Type \(A_{2n}^{(2)}\) for \(n > 1\) has 3 different root lengths.
Further Generalizations#
If a root system (on an Euclidean space) has only the angles \(\pi/2, 2\pi/3, 3\pi/4, 5\pi/6\) between its roots, then we call the root system crystallographic (on Wikipedia article Root_system, this condition is called integrality since for any two roots we have \(\langle \beta, \alpha \rangle \in \ZZ\)). So if we look at the reflection group generated by the roots (this is not a Weyl group), we get general Coxeter groups (with non-infinite labels) and non-crystallographic Coxeter groups are not connected with Lie theory.
However we can generalize Dynkin diagrams (equivalently Cartan matrices) to have all its edges labelled by \((a, b)\) where \(a, b \in \ZZ_{>0}\) and corresponds to having \(a\) arrows point one way and \(b\) arrows pointing the other. For example in type \(A_{1}^{(1)}\), we have one edge of \((2, 2)\), or in type \(A_{2}^{(2)}\), we have one edge of \((1, 4)\) (equivalently \((4, 1)\)). These edge label between \(i\) and \(j\) corresponds to the entries \(a_{ij}\) and \(a_{ji}\) in the Cartan matrix. These are used to construct a class of (generally infinite dimensional) Lie algebras called Kac-Moody (Lie) algebras, which in turn are used to construct quantum groups. We refer the reader to [Kac] and [HongKang2002] for more information.


-
Flawed sparkler
www.economist.com
Fur real Napoleon the Great. By Andrew Roberts. Allen Lane; 936 pages; £30. To be published in America by Viking in November; $40. Buy from ...
-
Why climate change is back on the agenda
www.economist.com
ON SEPTEMBER 21st Ban Ki-moon, the UN secretary-general, joined thousands of people on a march through the streets of New York to demand more action ...
-
Mission relaunched
www.economist.com
FOR more than three years, Barack Obama has been trying to avoid getting into a fight in Syria. But this week, with great tracts of the Middle East ...
-
Class struggle
www.economist.com
What would Marx say? THOUSANDS of students in Hong Kong are boycotting classes this week to lie on sprawling lawns outside government headquarters ...
-
The Economist - Sep 27th 2014
www.economist.com
This week in The Economist: America and Islamic State | The British constitution | Corporate saving in Asia | The future of banking | China’s water ...
-
For whom the jobs toll
www.economist.com
AMERICA has experienced a puzzling decline in the share of people either working or looking for work. Historically the “labour-force participation ...
-
Je reviens
www.economist.com
THE Sarko show is back, and half of France is mesmerised, the other half dismayed. More than 8m viewers, almost twice the usual evening ...
-
Getting from A to B
www.economist.com
Numeral soup GETTING lost once is all it takes to etch on a traveller’s mind that not everywhere numbers its streets in the same way. The most common ...
-
Al-Sisi Ascendant
www.economist.com
WHEN he addresses the UN General Assembly on September 25th, Abdel Fattah al-Sisi will surely have reason to feel pleased. The former field-marshal’s ...
-
The dreary world of Ed Miliband
www.economist.com
“HAPPY”, this summer’s big feel-good hit, blared before Ed Miliband’s speech to the Labour Party’s annual conference in Manchester on September 23rd, ...
-
Stuffed full
www.economist.com
Wall candy MINUTES away from Selfridges, a department store in central London, is a century-old gallery with unusual origins. The Wallace Collection ...
-
Graphic detail
www.economist.com
About Graphic detail -- A new chart or map every working day, interactive-data features and links to interesting sources of data around the web
-
Heels and reels
www.economist.com
Even the buskers are good in Nashville COUNTRY MUSIC manages to be both hugely popular and utterly unfashionable. Toby Keith, a former oil worker ...
-
And don’t come back
www.economist.com
AS WESTERN democracies struggle with how to deal with homegrown terrorists fighting abroad, the Conservative government of Canada has begun revoking ...
-
Hello world!
www.economist.com
“I CALL this a playground,” says Vinay Patel, gesturing to a score of monitors in the computer lab of Avanti House School in North London: “I tell ...
-
Return to Wonderland
www.economist.com
WHEN Walt Disney’s animated version of "Alice in Wonderland" (1951) proved a financial disappointment for the studio, Disney suggested that the ...
-
Now, make money
www.economist.com
CAIXABANK is a rare breed in Spanish banking. The financial crisis brought most of the country’s 45 cajas—regional savings banks with a commitment to ...
-
Murky relations
www.economist.com
AS JIHADISTS calling themselves the "Islamic State" (IS) have swept across Iraq and Syria, they have come up against one unusually tough opponent. ...
-
Readers respond to the defeat for independence
www.economist.com
We have written extensively on Scotland over the past few months, most recently in our leader previewing the vote on independence and Bagehot's ...
-
A different ball game
www.economist.com
Audio and Video content on Economist.com requires a browser that can handle iFrames. THERE are many broad footballing styles. “Long-ball”—in which ...
-
First time lucky
www.economist.com
FOR a brief period in the small hours of the morning of September 24th, a control room full of Indian engineers held their breath as Mangalyaan ...
-
How has the use of cash changed in America?
www.youtube.com
Can you break a hundred? How the use of cash has changed in America. Since the 1990s, the American economy has grown healthily. But the use of cash ...
-
Why Labour's annual conference wasn't much of a party
www.youtube.com
With eight months to go until the general election and serious questions being asked about the balance of power across Britain, Labour's leaders say ...
-
Yukos 2.0?
www.economist.com
THE rules should be familiar to Vladimir Yevtushenkov, an oligarch with a $7 billion fortune who runs Sistema, which is listed on the London Stock ...
-
How Brazil's presidential election was turned upside-down
www.economist.com
BRAZIL’S presidential race took a tragically unexpected turn on August 13th, when Eduardo Campos, a centrist candidate, died in a plane crash. Mr ...
-
Don’t panic
www.economist.com
“BOOM! Earth’s population could hit 12 billion by 2100”. That was the headline on Wired.com which greeted research by Patrick Gerland and others of ...
-
The problem-solvers
www.economist.com
CHENMED doesn’t look like much. Its clinic north of Miami has a modest waiting area and circle of examination rooms. But every action is engineered ...
-
Iterative processes
www.economist.com
A money pit in Provence HERE is one way to squeeze energy from nuclear fusion: create and contain a roiling soup of ionised hydrogen atoms known as a ...
-
Lofven’s coalition problem
www.economist.com
Lofven prays for more allies DESPITE winning only 31.2% of the vote, Sweden’s Social Democrats were jubilant on September 14th. Stefan Lofven, their ...
-
From one who should know
www.economist.com
Zero to One: Notes on Start-Ups or How to Build the Future. By Peter Thiel with Blake Masters. Crown Business; 210 pages; $27. Virgin Books; £16.99. ...


Iterations Creativity Cards are a new way to help you with your creativity. Sketch out an idea, draw a card, refine that idea based on the card’s instructions. Repeat.
Creative methodologies usually combine divergent thinking (applying a stimulus to generate potential outcomes) and convergent thinking (bringing facts and data together and applying logic).
The Iterations cards help divergent thinking by giving suggestions on how to process the output. They work as a set of guitar effect pedals to your process. There is an input, a set of ambiguous instructions that can be applied to this input, and an undetermined output created by these effects.
Buy your own deck© 2014 Duncan McKean.


Post edited 2 x times, last by
BrainFooLong
Administrator
Topicstarter
pas moyen de lancer bblog je suis sur chrome et riens je suis decus .
-EDIT- Meaurk: Roughly translated to English, I can't get it started with Chrome, need help I'm disappointed.
Next time in English vocabulary. ;-)


| Frequently Asked Questions |
how to join ?
Click register button at the top of page and connect with your social media account.
Get Free 5.000 Gold for new members, and invite your friend to get more
how to get the money ?
You can do a work that suit with your ability and rank. after you confirm that the work is done, the money will be transfered to your account.
how do i make a job request ?
You can make a job that you need to assisted with the following criteria:
1. The minimum reward for helpers is 10.000 Gold.
2. The job must be legal and not breaking the rules.
how the job works ?
You make a job request and all of member can see the job. they will contact you to make a negotiation with you.
how the rank works ?
There are five types rank of member: IRON, BRONZE, SILVER, GOLD, and PLATINUM. You will started with IRON rank and you can do a job until the criteria for rank up is complete, you can go up to the BRONZE class after clearing 25 jobs.


{% load wagtailimages_tags %}
{{self.c_image1_body}}
{{self.c_image2_body}}
{{self.c_image3_body}}
{{self.c_image4_body}}
{{self.c_image5_body}}


|
|
DtDNS
|
The majority of domestic Internet connections are via a dynamic IP address, one that can change every time you connect to the Internet. A web server requires a static IP address. A free dynamic DNS service such as DtDNS provides accounts and tracking software to automatically update your IP address when it changes, creating the effect of a static IP address. The Uniform Server Zero XIII has a built-in utility which supports the DtDNS service. This page covers the configuration sub-menu, which allows you to configure and test the DtDNS service.
Overview
DtDNS provide accounts that allow you to obtain a domain name, and provide tracking software to automatically update your IP address when it changes. A big advantage of their free service is that they automatically enable wild cards by default. This means that names like <whatever>.fred.com will be mapped to your IP address.
The Uniform Server Zero XIII supports the DtDNS service by integrating a simple function to automatically update hostname IP address at DtDNS. The function is configurable, allowing you to update all five free hostnames. The function can optionally be run by Cron, making the whole task transparent.
Note: The script is portable, so putting the servers on a USB memory stick means you can have them on-line and accessible within ten minutes (the minimum DNS propagation time). Of course this assumes the PC host machine has been configured to allow Internet server traffic.
Edit DtDNS Accounts
Add or edit DtDNS service account. Open the DtDNS Controller and add or modify your DtDNS account as follows:
|
Extra > DtDNS
- 1) Enter upto five domain names as configuraed at DtDNS.
- Minimum of one domain name is required.
- 2) Enter your DtDNS account password.
- 3) Click Save Changes.
- Data entered is saved to a configuration file.
Alternatively edit the file UniServerZ\home\us_dtdns\dtdns.ini and add domain names and password to the [ACCOUNTS] block.
[ACCOUNTS]
password=
domain_name_1=
domain_name_2=
domain_name_3=
domain_name_4=
domain_name_5=
|
|
Note: With configured accounts initially opening the DtDNS updater client buttons are greyed out until the refresh button is clicked. This forces user to manually refresh.
Force DtDNS Update
|
After editing, adding a new domain name or an indicator is red you need to run force update. Open the DtDNS Controller as follows:
Extra > DtDNS
- 4) Click Force Update button. (If button greyed out click refresh button)
Indicators:
Tri-state indicators to the right of each domain name are updated when the menu is displayed and when a force update is initiated.
- Red: Indicates the IP address configured at DtDNS is different from your IP address as seen from the Internet.
- Green: Confirms the IP address configured at DtDNS is identical to your IP address as seen from the Internet.
- Greyed out: Either the configured address at DtDNS is unobtainable, no domain entered or not connected to Internet.
Note: You are forced to wait 10 minutes between force updates. Clicking the force update button within this period only updates the indicator state.
|
|
Auto-run
Every time you start your PC and reconnect to the Internet (given a new IP address) you need to manually run (force update) the DtDNS updater.
|
Remembering to manually run scripts like DtDNS becomes a chore. Uniform Server Zero XIII centralises running this type of script using portable Cron. Cron automatically runs when UniCotroller is started. It periodically executes a list of scripts; the DtDNS script is included and requires enabling as follows:
Extra > DtDNS
- 6) Auto-run Check box. -- Check this box to enable DtDNS in Cron.
To prevent undesirable side effects the DtDNS Accounts section is greyed out preventing any additional changes and disables "ForceUpdate"
Note: If you need to modify Accounts or force an update UnCheck the Auto-run checkbox. Make changes as required and click the Auto-run check box to re-enable auto run.
|
|
Enable and View Logging
Extra > DtDNS
View Log button displays the DtDNS log file in Notepad. Each updater run produces an entry in the log file. An example of one run is shown on the right.
- 7) Enable disable logging. Cheked enable logging.
- 8) "ViewLog" Button displays log in Notepad.
|
18/08/2013 22:42:18 ### Log Started =========================================
18/08/2013 22:42:25 Changed IP from: xx.x10.165.92 To xx.x10.160.158 books.dtdns.net
18/08/2013 22:42:31 Changed IP from: xx.x10.165.92 To xx.x10.160.158 books.effers.com
18/08/2013 22:42:36 Changed IP from: xx.x10.165.92 To xx.x10.160.158 fredxx.dtdns.net
18/08/2013 22:42:36 ### Log Ended ===========================================
|
Where to go next
Create DtDNS Account
|


"BOCHIM "weepers, a place where the angel of the Lord reproved the Israelites for entering into a league with the people of the land. This caused them bitterly to weep, and hence the name of the place (Judges 2:1, 5). It lay probably at the head of one of the valleys between Gilgal and Shiloh.
"BOCHIM "weepers, a place where the angel of the Lord reproved the Israelites for entering into a league with the people of the land. This caused them bitterly to weep, and hence the name of the place (Judges 2:1, 5). It lay probably at the head of one of the valleys between Gilgal and Shiloh.


Defense of the Ancient
Choose play mode
Normal
Hard
Congratulations !!!
Play again
Game over !!!
Play again


Contents
function hdl = plot(obj, pType, varargin)
Syntax:
hdl = bipolarLayer.plot(plotType,...)
Description:
Deprecate - plots should be called based on the mosaic, I think.
Plot the values from one of the mosaics of a bipolarLayer object
Required Input:
pType - The plot type. Use @bipolarLayer.plot('help','nMosaic',1) to see implemented plot types.
Optional Key/Value Pairs:
nMosaic - Mosaic number to plot gamma pos newWindow
Notes:
- For most plot types this routine calls rgcMosaic.plot. The selected mosaic from the layer is based on the integer nMosaic.
- We plan to implement cases for the layer that compare across several mosaics.
History:
JRG/BW (c) isetbio team
10/17/17 jnm Comments & Formatting
Examples:
%{ bipolarLayer.plot('mosaic','nMosaic',1); bipolarLayer.plot('movie response','nMosaic',1); %}
Parse inputs
p = inputParser; p.CaseSensitive = false; p.FunctionName = mfilename; p.KeepUnmatched = true; p.addRequired('pType',@ischar); p.addParameter('gamma',1,@isscalar);
If parameter pos not passed, then assume 1,1
p.addParameter('pos',[1,1],@isvector); p.addParameter('newWindow',false,@islogical);
Will this be one of the mosaics, or use multiple mosaics (0, or maybe a vector?)
p.addParameter('nMosaic',0,@(x)(isscalar(x) && (x >= 0)));
Parse pType
p.parse(pType,varargin{:}); nMosaic = p.Results.nMosaic; if nMosaic > length(obj.mosaic) error('nMosaic (%d) exceeds number of bipolar layers (%d)\n',... nMosaic,length(obj.mosaic)); end
Account for parameters
if p.Results.newWindow; hdl = vcNewGraphWin; end if nMosaic == 0
A plot that uses more than one mosaic. What the layer is for. We need to make some stuff up for here.
disp('No layer plots implemented yet.') return; else
A plot based on one mosaic. Call the bipolarMosaic.plot funciton.
hdl = obj.mosaic{nMosaic}.plot(pType,p.Results);
end
end
The class bipolarLayer has no Constant property or Static method named 'plot'.


Returns true if this viewport currently has focus and thus receives keyboard events
De- / Activates the given drag-drop event to be propagated into the viewport as FUDGE-Event
De- / Activates the given keyboard event to be propagated into the viewport as FUDGE-Event
De- / Activates the given pointer event to be propagated into the viewport as FUDGE-Event
De- / Activates the wheel event to be propagated into the viewport as FUDGE-Event
Adjust the camera parameters to fit the rendering into the render vieport
Adjust all frames involved in the rendering process from the display area in the client up to the renderer canvas
Draw this viewport for RayCast
Draw this viewport
Retrieve the destination canvas
Retrieve the size of the destination canvas as a rectangle, x and y are always 0
Retrieve the client rectangle the canvas is displayed and fit in, x and y are always 0
Retrieve the 2D-context attached to the destination canvas
Connects the viewport to the given canvas to render the given graph to using the given camera-component, and names the viewport as given.
Returns a point in normed view-rectangle matching the given point on the client rectangle The view-rectangle matches the client size in the hypothetical distance of 1 to the camera, its origin in the center and y-axis pointing up TODO: examine, if this should be a camera-method. Current implementation is for central-projection
Switch the viewports focus on or off. Only one viewport in one FUDGE instance can have the focus, thus receiving keyboard events. So a viewport currently having the focus will lose it, when another one receives it. The viewports fire [[Event]]s accordingly. // TODO: examine, if this can be achieved by regular DOM-Focus and tabindex=0
Set the graph to be drawn in the viewport.
Logs this viewports scenegraph to the console.
Generated using TypeDoc
Controls the rendering of a graph, using the given ComponentCamera, and the propagation of the rendered image from the offscreen renderbuffer to the target canvas through a series of Framing objects. The stages involved are in order of rendering RenderManager.viewport -> Viewport.source -> Viewport.destination -> DOM-Canvas -> Client(CSS)
Jascha Karagöl, HFU, 2019 | Jirka Dell'Oro-Friedl, HFU, 2019


Greetings, intrepid tester/developer/reader!
This file exists to keep track of various tests which someone needs to write for Axis at some point. Ideally, any time you write a piece of code in Axis, you should also write documentation and tests for whatever functionality you work on. Unfortunately, we live in the real world and that doesn't always happen. Hence, this file.
This is a place to keep track, in simple english descriptions, of particular tests which need to be written. It serves two main purposes : 1) to help us remember these things, and 2) to provide a starting point for development when people have some spare cycles or are interested in finding some way to participate in the Axis community.
On to the (soon-to-be) tests:
| Name of test | Description of test | Developer(s) | Status |
|---|---|---|---|
| SkeletonMethods | confirm that the methods from the Skeleton interface are NOT exposed in the generated WSDL for services. | Glen | none |
| soap12.Version | Test that when a service is sent a SOAP 1.2 message, we get back a SOAP 1.2 response. | Glen | none |
| soap12.RpcBody | Test that our SOAP 1.2 RPC implementation only allows a single body element (should fault otherwise). | Glen | none |


{% extends 'base_email.html' %} {% block body %}
{{sender}} has sent you a message:
{{message}}
You can checkout the staffing request here: {{ resource_url }}


Hey,
often in web applications we have a possibility of exporting data to csv files. This is a very useful feature because we can look at these data later, or analyze some of them. However, from a developer point of view, there is a problem. Problem testing their (files) content. Of course, we should have unit tests to check that the data written is correct. But what about end-to-end testing for the whole functionality?
We can use Selenium or Canopy libraries, which allow us to simulate user interaction with the application, by performing all possible user interactions with website. So we can automatically recreate the entire user action required to generate the file. However, those libraries do not allow us to check content of files. What in this case?
I encountered a similar problem during my daily work. In order to solve this problem, I decided to create a small F# library that would be responsible for opening the file, parsing it and providing functions that would return the data included in that file. At first I decided to use the CsvProvider library. The library code I created is as follows:
Because the files that are generated by the application can have different sizes, different number of columns, different number of rows, and additionally data can be of different types, I decided to create a schema file containing all possible headers with a single line, which will allow to specify the types for the column data without specifying them using the schema parameter in CsvProvider.
Within the library itself, I decided to make available the methods that were responsible for:
- Return all the headers in a file
- Return values in a specific columns
Connecting the library to the project responsible for automated testing (implemented in C# and using a Selenium and NUnit libraries) looks like this.
An important information worth pointing out is the use of the key word use
instead of let
when opening the file, we have to keep in mind that when file would be deleted in a Teardown
test phase, it is possible that the file will not be closed before by the CsvProvider, which can lead to the red test result.
Since the code is ready to test the application, I have encountered a problem here. Now, with files of varying sizes, the number of columns of data returned is correct, but the parsing of the content of the file (rows), doesn’t works because the file generated in the automated test was not exactly the same as declared as a “standard”. How to fix this problem? I tried to define a schema
And do not pay attention to the errors in the file
But none of these solutions helped. So I decided that in my case it would be better to use CsvFile instead of CsvProvider. Because of that, I had to modify the library code a little bit. After modification it looks as follows.
As you can see I had to create a helper function that provide me an index of column based on an index of a particular header in a headers list (row).
Using CsvFile instead of CsvProvider, I was able to handle csv files that had different number of columns or different types of separators, which would have ended with the definition of n different types of Csv files if using a CsvProvider.
Finally, the entire library code looks like this:
You may notice that I have defined a couple of methods that allow you to test the file more extensively. Include information about the separator, quote, column numbers, the number of rows, range of dates etc.
In conclusion, you can see that using the libraries/classes available in Fsharp.Data I was able to easily write a library that allows me to test the contents of csv files. In addition, you can see that the library code is very concise and straightforward, giving developers and testers a lot of opportunities when writing tests, because they provide all possible functions. In the case of a project where I work, we have not limited ourselves to the testing of csv files with CsvFile, but we also decided to test rss feeds with XmlProvider. So it seems that the classes provided by Fsharp.Data give us a lot of possibilities in terms of processing content of files, rss and web pages (using HtmlProvider).
Thank you for reading :)


Genesis 44:24
And it came to pass when we came up unto thy servant my father, we told him the words of my lord.


Winter is the coldest season of the year so you have to get creative when looking to have fun. Most of the time you will be stuck in side or at least bundled up when you are out. Fighting off the cold does not mean you have to be lame! You can find many ways to enjoy yourself in the snow.
From sledding to ice scating, the oppourtunitys in the great out doors are endless. You can find a cold lamp post to stick your toung to or even find an clean patch of snow to eat.
Warm soup and a movie is allways a good option. You can spend time with family and friends or even you dog!


|
Bye Ryan M. Fuller |
|
We are writing because we have suspended your Member account due to the violations of our Community Guidelines. Compaint(s): Spam We are glad to consider an appeal to this suspension, so please email us at<EMAIL_ADDRESS>to provide us with some context as to why several members would report your activities. Thanks, Eventure Team |


| |||||||
| FRAMES NO FRAMES |
The outputProgress component can be used to report progress to users in cases where a long running server-side task is necessary. This component can be run in either of two modes; "determinate" and "indeterminate".
Determinate mode should be used in cases where the number of steps or units of work in a long-running process are known. In determinate mode (default) the outputProgress component renders a progress bar that indicates the completion percentage for a task. Typically, the progress bar will gradually progress from 0 to 100 % complete in incremental steps determined by the application.
Indeterminate mode should be used in cases when it is not possible to predicate how long a long-running process will take to complete, or how many steps or units of work are required to complete the task. In indeterminate mode the outputProgress component renders an animated icon or progress bar that indicates generally that activity is taking place.
| Tag Information | |
| Tag Class | com.icesoft.faces.component.outputprogress.OutputProgressTag |
| TagExtraInfo Class | None |
| Body Content | JSP |
| Display Name | None |
| Attributes | ||||
| Name | Required | Request-time | Type | Description |
| binding | false | false | java.lang.String | The value binding expression linking this component to a property in a backing bean |
| id | false | false | java.lang.String | The component identifier for this component. This value must be unique within the closest parent component that is a naming container. |
| indeterminate | false | false | java.lang.String | When true percent numbers are hidden for an unknown task duration. |
| label | false | false | java.lang.String | The default label is the percentage value. The default can be overridden by defining the label attribute. |
| labelComplete | false | false | java.lang.String | The label to be displayed on completion of process. Could be used with label attribute. The default value is Done. |
| labelPosition | false | false | java.lang.String | Percentage text could be set to different positions. Valid values are |left | right | top | topcenter | topright | bottom | bottomcenter | bottomright | embed | |
| rendered | false | false | java.lang.String | Flag indicating whether or not this component should be rendered (during Render Response Phase), or processed on any subsequent form submit. |
| renderedOnUserRole | false | false | java.lang.String | If user is in given role, this component will be rendered normally. If not, nothing is rendered and the body of this tag will be skipped. |
| style | false | false | java.lang.String | CSS style(s) to be applied when this component is rendered. |
| styleClass | false | false | java.lang.String | Space-separated list of CSS style class(es) to be applied when this element is rendered. This value must be passed through as the "class" attribute on generated markup. Defines the base class name for all style classes used. Default value is iceOutProg
Standard Mode:
|
| value | false | false | java.lang.String | The percentage progress that should be depicted to the user, from 0 to 100 inclusive. When indeterminate="true", 0 and 100 denote inactivity, and values between denote activity. |
| Variables | No Variables Defined. |
| |||||||
| FRAMES NO FRAMES |


Hello
-
Books
Administrative Tools
Create book genre
Add a new book
Change book information
Update book quantity
Delete book
Welcome Administrator, do well to select task from the administrative tool.


GUILE(1) GUILE(1) NAME guile - a Scheme interpreter SYNOPSIS guile [-q] [-ds] [--help] [--version] [--emacs] [--debug] [-l FILE] [-e FUNCTION] [] [-c EXPR] [-s SCRIPT] [--] DESCRIPTION GNU Guile is an interpreter for the Scheme programming language. It implements R5RS, providing additional features necessary for real-world use. It is extremely simple to embed guile into a C program, calling C from Scheme and Scheme from C. Guile's design makes it very suitable for use as an "extension" or "glue" language, but it also works well as a stand-alone scheme development environment. The guile executable itself provides a stand-alone interpreter for scheme programs, for either interactive use or executing scripts. This manpage provides only brief instruction in invoking guile from the command line. Please consult the guile info documentation (type info guile at a command prompt) for more information. There is also a tuto‐ rial (info guile-tut) available. OPTIONS -l Load scheme source code from file. -e After reading script, apply FUNCTION to command-line arguments -ds do -s SCRIPT at this point (note that this argument must be used in conjuction with -s) --help Describe command line options and exit --debug Start guile with debugging evaluator and backtraces enabled (use‐ ful for debugging guile scripts) --version Display guile version and exit. --emacs Enable emacs protocol for use from within emacs (experimental) -- Stop argument processing, start guile in interactive mode. -c Stop argument processing, evaluate EXPR as a scheme expression. -s Load Scheme source from SCRIPT-FILE and execute as a script. ENVIRONMENT GUILE_LOAD_PATH If $GUILE_LOAD_PATH is set, its value is used to agument the path to search for scheme files when loading. It should be a colon separated list of directories which will be prepended to the default %load-path. FILES ~/.guile is a guile script that is executed before any other processing occurs. For example, the following .guile activates guile's readline interface: (use-modules (ice-9 readline)) (activate-readline) SEE ALSO The full documentation for guile is maintained as a Texinfo manual. If the info and guile programs are properly installed at your site, the com‐ mand info guile should give you access to the complete manual. http://www.schemers.org provides a general introduction to the Scheme language. AUTHORS Robert Merkel<EMAIL_ADDRESS>wrote this manpage. Rob Browning<EMAIL_ADDRESS>has added to it. guile is GNU software. Guile is originally based on Aubrey Jaffer's SCM interpreter, and is the work of many individuals. GUILE(1)


{% extends "admin/haas/help.html" %} {% block content %}
In the context of a Postgres Herd, there is no such thing as a simple pair of servers. Since a herd follows a leader, we use a ranking methodology to provide meaning to certain replicas. In this case, a "pair" can be seen as the herd leader (the primary instance representing the herd) and a replica with the following attributes:
If multiple systems match these criteria, we simply use them in the order they were created. For herds that consist of two members, this is a classic DR pair, including all implications of that arrangement. For herds consisting of several followers, there are a few special considerations.
In the case a DR failover is invoked, this is the process used by the system to ensure the greatest uptime guarantee:
Since the old leader is left offline, it may be used as an emergency data source in case the failover encountered problems of some kind. When its container is ready for reactivation, there is a specific menu action designed to fully synchronize it with the new herd leader. Otherwise, it will be ignored.
{% endblock %}


Instructions to convert image to greyscaled image
1. Click on "Pick Image" button
2. Chose your image to convert
3. Open the panel
4. Click on download to download the greyscaled image or remove it with the remove button