BY EDWIN JAHIEL
WINNIE THE POOH PLUS JACK THE RIPPER
FELICIA'S JOURNEY (1999) *** Written and directed by Atom Egoyan; based on the novel by William Trevor. Photography, Paul Sarossy. Editing, Susan Shipton. Production design, Jim Clay. Music,Mychael Danna. Produced by Bruce Davey. Cast: Elaine Cassidy (Felicia), Bob Hoskins (Joseph Ambrose Hilditch), Claire Benedict (Miss Calligary), Brid Brennan (Mrs. Lysaght), Arsinee Khanjian (Gala), Peter McDonald (Johnny Lysaght), Gerard McSorley (Felicia's father), Danny Turner (Young Hilditch), et al Released by Artisan Entertainment. 116 minutes. PG-13
What makes Johnny and Mary run? To the movies, that is. No one really knows for sure. Market Research is an approximate non-science. With or without it a few things are obvious. The main target of Hollywood (the term is used generically) is the under 30 public. Publicity will help, hype, celebrity actors, awards, and so on.
Yet the precise influence of reviews is unfathomable. The bulk of the audience reads no reviews. The smaller but still sizable group of potential viewers who do read the critics consists of movie professionals in one way or another: aficionados, critics, film students, people who parse newspapers and magazines...
Most persons in this sub-group limit themselves to one or two reviewers, especially if the latter have built up attraction and/or trust among their readers. A major example of this was for many years the appeal of Pauline Kael in the New Yorker magazine. Another, current case, is the huge popularity of critic Roger Ebert.
But even for faithful followers, a laudatory review is often superseded by the question to end all questions : "what is the movie about?" Which may result in attending a show -- even if Ebert gave it a lukewarm rating -- or not attending, in spite of the critical praise, because the film's genre or type is unattractive.
"Felicia's Journey" is about a serial killer. That's all that may matter to John and Mary Doe, who may (mostly John) either get their kicks from such a subject or be repelled by it. But here "serial killer" is an oversimplification. We neither see nor hear violence and there is minimal "Old Dark House" scariness.
Felicia, a 17-year old from County Cork, is bereft of her boyfriend Johnny now gone to find work in England. There's no news of him, but plenty of news for him: Felicia is pregnant. She encounters hostility from her own, widowed father, and from Johnny's mother.
As the story is told in bits and pieces --and crucial, skillful flashbacks--Felicia thinks that Johnny is working in a lawn mower factory in Birmingham, the Midlands. In fact he has enlisted in the British Army. This is a betrayal of his Irishness, one of several in the story. Felicia's father, a fanatical Irish nationalist, betrays his daughter who, according to him, has also betrayed her country. "You're carrying the enemy within you." Johnny's mother cheats by not forwarding Felicia's letters. And there's more to come.
The very naive girl sets on a journey to find her lover. She crosses the sea, reaches the industral Midlands, is confused, and in a chance encounter meets Joseph Ambrose Hilditch, who offers to help her.
Hilditch is an amiable, plumpish quinquagenerian who manages the food services of a large factory. He is respected by his admiring staff for his culinary judgments. He is, in fact, nothing short of a gourmet, and in the oddest of places. Since in spite of the Michelin Guide's stars, the UK is not exactly a haven of gastronomy, Hilditch is a multiple oddity in his profession and his private life. He is aloner without any public life outside the factory.
Hilditch lives alone in a large house whose innards and decor mix Victorian, Edwardian, and 1950s styles. You expect antimacassars, hand-wound granfather clocks, samplers on the walls, aspidistras. But what catches your eye is the man's huge kitchen, his large array of old but functioning culinary tools, his antique Mixmaster, his kitchen video set. Also his collection of popular, Mantovani-style LPs of the 50s era. Outside the house, the past is symbolized by Hilditch's old-fashioned suits and his small, old British Morris car, a kind of VW or Fiat Topolino.
The past and haute cuisine meld as Hilditch obsessively watches tapes from way back, tapes of Gala's cooking programs on TV. He follows her instructions and prepares refined dishes for just himself.
Gala, a Frenchwoman-in-England (played by director Egoyan's wife Arsinee Khanjian) was a great favorite of the public when Hilditch was a child. Her appearances, cajoling and imperious, are like a subtle take-off on such programs. And a young Hilditch shows up in them. Gala was his mother.
Which goes a long way in explaining (or does it?) that Mother-Smother is at the root (or a catalyst?) of chidhood traumas which turned Hilditch into a serial killer. (The film has sensibly eliminated the sexual mother-son element). He has, over the years, "helped" a number of women with problems (e.g. runaways or prostitutes); he has, in these days of electronics, recorded them and their talks on tape. But there are no images of the actual murders. Felicia, that other loner, is next in line, but...
Of Armenian descent, Atom Egoyan was born in Cairo, grew up in Canada, and is one of most prominent filmmakers of that country as well as the world. This, his eighth feature, contains many of his themes and preoccupations, is more concentrated than usual, avoids arty pitfalls, and is essentially a character-driven psychological two-hander. Beautifully and intelligently shot and edited, in both literal and symbolic ways, it is refined. Ireland is a feast for the eyes, yet cruel towards Felicia. Birmingham is cold and miserable, yet, ambiguously, what warmth there is comes from a killer.
The movie is much closer to Bluebeard and Beauty and the Beast tales and very far from Vlad the Impaler. Hilditch is, in odd fashion (the key words for this film) likable and pitiful. He is superlatively well acted by Hoskins who has said that his character was a cross between Winnie the Pooh and Jack the Ripper. A not-so-obvious originality in the film -- for visual reasons--was his casting.  Of course this is not an inflexible rule, especially when one thinks of Fat Man Sydney Greenstreet in "The Maltese Falcon," or Laird Cregar as the main suspect in the Jack the Ripper melodrama "The Lodger" (1944)
The story-telling is both simple and complex. It evokes sympathy for Felicia's misery and her naive pluckiness. It is balancing act between sad empathy and alienation for Hilditch.  What do you expect from a movie featuring a Miss Calligary?
"Le mauvais gout mene au crime"(Stendhal)
Edwin Jahiel's film reviews are at: http://www.prairienet.org/ejahiel/
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Presentation on State Educational Twitter Hashtags at #siteconf
With Matthew Koehler, Mete Akcaoglu, Spencer Greenhalgh, and Erica Hamilton, I presented on State Educational Twitter Hashtags at the Society for Information Technology and Teacher Education conference. We created an interactive web application to share the findings using R and Shiny that is available here. If you check it out then please let us know what you think.


unflatten
Adjust directed graphs to improve the layout aspect ratio.
Graphviz filters: `acyclic`, `bcomps`, `comps`, `edgepaint`, `gvcolor`, `gvpack`, `mingle`, `nop`, `sccmap`, `tred`, & `unflatten`.
More information: home page
- Adjust one or more directed graphs to improve the layout aspect ratio:
unflatten path/to/input1.gv path/to/input2.gv ... > path/to/output.gv
- Use `unflatten` as a preprocessor for `dot` layout to improve aspect ratio:
unflatten path/to/input.gv | dot -T png path/to/output.png
- Display help for `unflatten`:
unflatten -?


home
|
test
|
static
Hello world - ExpressJS with RactiveJS
This is static html file in public/ folder.


| Class | Description |
|---|---|
| CachedFileCleaner |
Helper for removing cached files
This implementation is not thread safe.
|
| CachedFileDescriptor |
Holds details about a cached resource.
|
| ConcatenatedResourceStoreImpl |
Default implementation of the ConcatenatedResourceStore
|
| CssUrlRewriter |
Filter match processor that corrects the relative path of an
url( ... |
| FilteringResourceConcatenator |
Concatenator that uses a configurable
DelimiterFilterReader to filter the content of the
resource files before concatenating them. |
| PropertyResourceDescriptor |
Helper holding details of a resource.
|
| PropertyResourceManager |
Component that manages property resources for resource categories.
|
| ResourceCategoryRegistryImpl | |
| ResourceConcatenator |
Class that provides means to concatenate resources
|
| ResourceDescriptor |
Helper holding details of a resource.
|
| ResourceFilterMatchProcessor |
Filter match processor that is aware of the currently processed resource
|
| Exception | Description |
|---|---|
| PropertyResourceManagerException |
Exception thrown by the
PropertyResourceManager when a property resource couldn't be
added, updated or removed. |
Copyright © 2019 Communote team. All rights reserved.


Whole grains
Examples include whole-grain rolls and bagels, hot or cold whole-grain cereals, whole-grain English muffins, and whole-grain waffles.
Lean protein
Examples include eggs, lean meat, legumes and nuts.
Low-fat dairy
Examples include milk, plain or lower sugar yoghurts, and low-fat cheeses, such as cottage cheese and natural cheeses
Fruits and vegetables
Examples include fresh or frozen fruits and vegetables, 100 percent juice drinks without added sugar, and fruit and vegetable smoothies.
Carbs
Examples include spaghetti squash, pasta ratatouille, vegeterian pizza, rice
Lean protein
Examples include eggs, legumes, white meat: chicken, pork, fish, and nuts
Salads
Examples include beetroot salad, tuna salad, green salad, Waldorf salad
Fruits and vegetables
Examples include fresh or frozen fruits and vegetables, 100 percent juice drinks without added sugar, and fruit and vegetable smoothies.
Carbs
Examples include whole-grain chapatis, coconut rice, quesedillas, casserole and arroz con leche
Lean protein
Examples include eggs, legumes, white meat: chicken, pork, fish, and nuts
Low-fat dairy
Examples include milk, plain or lower sugar yoghurts, and low-fat cheeses, such as cottage cheese and natural cheeses
Fruits and vegetables
Examples include fresh or frozen fruits and vegetables, 100 percent juice drinks without added sugar, and fruit and vegetable smoothies.


|
The integration types described below are not available on the Payengine test environment yet! We will notify all integrators once the solution can be enabled and tested. |
The following diagram describes the 3DS 2.0 flow including a subsequent payment authorization.
The 3DS Environment is simplified in the diagram. It usually consists of the 3DS Server, the Directory Server (DS) and the Access Control Server (ACS).
On a high level the flow can be split into the following steps.
Within the Payengine the steps of the 3DS authentication can either be executed with separate dedicated services, which is the most recommended integration option, or it could be combined with the order request (preauth or debit).
More details about the services and integration options can be found in the subsections below.
In case the card is not 3DS 2.0 enrolled (see the versioning step) the previous version 3DS 1.0 should be used as a fallback. This means that an integrator has to ensure that the redirect to the issuer's authentication page from version 1.0 is also supported.
The Payengine will always return both - the data required for an 3DS 2.0 iFrame challenge and the redirectURL for an 3DS 1.0 authentication.
To simplify the 3DS 2.0 integration for existing integrators the Payengine will also return a redirectURL in case of a 3DS 2.0 challenge. This will lead to a page hosted by the Payengine where the challenge iFrame is embedded.
Integrators who have already implemented the 3DS 1.0 flow will be able to proceed using the old flow.
However from a user experience point of view we always recommend to integrate the iFrame challenge instead of the redirect option.
This section will describe the relevant API services for a 3DS authentication.
POST /payment-instruments/{paymentInstrumentId}/3ds-version
This service can be used to check the 3DS version and return some 3DS related information.
| Sample 3DS Version Response |
|---|
{
"id": "threedsversion_123abc456z",
"createdAt":<PHONE_NUMBER>956,
"modifiedAt":<PHONE_NUMBER>956,
"version": "2.0",
"specificData": {
"methodUrl": "https://www.acs.com/script",
"base64EncodedThreeDsMethodData": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cDovL3d3dy4zZHMuY29tL25vdGlmaWNhdGlvbi11cmwiLCJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjhhODgwZGMwLWQyZDItNDA2Ny1iY2IxLWIwOGQxNjkwYjI2ZSJ9"
}
}
|
|
In case of 3DS 2.0, it is recommended to invoke the methodUrl(if available) prior to the 3DS authentication. This will increase the chance for a frictionless flow. To achieve this the integrator should render a hidden HTML iFrame in the cardholder's browser and send a form with a field named threeDSMethodData containing the base64EncodedThreeDsMethodData(see 3DS version response) via HTTP POST to the methodUrl(see 3DS version response). For your convenience you can also use the provided helper function invokeMethodUrl in Payengine JavaScript SDK (JS Bridge). |
The full technical description of the service can be found here.
POST /browser-info
This service can be used to collect browser session information.
It is only relevant for 3DS 2.0. If the 3DS version response indicates version 1.0 it is not necessary to send this information.
| Sample Browser Info Request |
|---|
{
"acceptHeader": "brw-accept-header",
"ip": "<IP_ADDRESS>",
"javaEnabled": true,
"language": "en-US",
"colorDepth": 8,
"screenHeight": 100,
"screenWidth": 100,
"timezone": 60,
"userAgent": "Chrome/71.0.3578.98",
"windowSize": "05"
}
|
| Sample Browser Info Response |
|---|
{
"browserInfoId": "browserinfo_123xyz456a"
}
|
The full technical description of the service can be found here.
POST /payment-instruments/{paymentInstrumentId}/3ds-version/{threeDsVersionId}/3ds-authentication
This service can be used to initiate a standalone 3DS authentication.
As a prerequisite the 3DS Version call has to be executed in advance as the threeDsVersionId is a mandatory input parameter.
In case of 3DS 2.0 also the Browser Info call has to be executed in advance as the browserInfoId would then be a mandatory input parameter as well.
A full reference of the mandatory and optional parameters relevant for 3DS 2.0 can be found here.
The service will return the full authentication results in case of a 3DS 2.0 frictionless flow.
In case a challenge is required for 3DS 2.0, the response will return the relevant information to initiate the challenge.
| Sample Authentication Response - 3DS 2.0 Challenge |
|---|
{
..
"authenticationResult": {
"version": 2.0,
"transactionId": "60e15ea6-98df-11e9-a2a3-2a2ae2dbcce4",
"redirectUrl": "https://link-the-hosted-challange.example",
"challengeData": {
"acsUrl": "https://link-to-the-issuer.acs",
"base64EncodedChallengeRequest": "Y2hhbGxhbmdlRGF0YQ==",
"challengeWindowSize": "05"
}
...
}
...
}
|
In order to initialize the challenge iFrame based on the returned challengeData you can use a helper function from Payengine JavaScript SDK (JS Bridge) as per sample code snippet below.
| Sample handling of the challenge data |
|---|
function onChallengeFinishCallback(error, result) {
if (error) {
//something went wrong
return;
}
if (result.finalCustomerRedirectUrl) {
window.location.replace(result.finalCustomerRedirectUrl);
}
}
window.PayEngine.openChallenge(
container,
authenticationResult.challengeData.acsUrl,
authenticationResult.challengeData.base64EncodedChallengeRequest,
threeDsAuthenticationId,
authenticationResult.challengeData.challengeWindowSize,
onChallengeFinishCallback
);
|
|
In case the integrator doesn't want to present the 3DS 2.0 challenge within an iFrame in the checkout the Payengine offers a hosted page including the challenge iFrame. This page can be accessed via the redirectUrl parameter. The redirectUrl parameter will always be returned for version 2.0. |
In case the authentication was for 3DS 1.0 this service will return the redirect information instead.
| Sample Authentication Response - 3DS 1.0 Redirect |
|---|
{
..
"authenticationResult": {
"version": 1.0,
"redirectUrl": "https://link-the-hosted-challange.example",
...
}
...
}
|
No matter if there is a challenge or a redirect required the integrator can query the corresponding final results via the Authentication Result service (see next section).
An alternative way of obtaining the result information is via the Payengine's notifications service. A notification including the authentication results could be sent to the URL that was specified in the request's async.notificationUrl parameter.
The full technical description of the services can be found here.
GET /creditcard/3ds-authentication/{threeDsAuthenticationId}
This service can be used to query the results of a 3DS authentication.
Whenever a challenge or redirect is required to let the cardholder authenticate him-/herself those result will be asynchronously synced back to the Payengine. The integrator can pull for the results via this dedicated service.
| It is possible that the asychronous feedback from the issuer can take some time after the challenge was initiated, but in most cases the final results should be available even before this GET service is executed. |
The full technical description of the service can be found here.
POST /payment-instruments/{paymentInstrumentId}/card-check
This service can be used to initiate a card check which will results in a 0,00€ authorization.
Once a 3DS autentication has been initiated the returned threeDsAuthenticationId should be provided as an input in order to link the authentication to the initial card check authorization.
Supported brands:
| Sample Cardcheck Request |
|---|
{
"threeDsAuthenticationId": "threedsauthentication_123",
"cofContract": {
"type": "UNSCHEDULED",
"channel": "ECOM"
}
}
|
| Sample Card Check Response |
|---|
{
"id": "cardcheck_123",
"createdAt":<PHONE_NUMBER>930,
"modifiedAt":<PHONE_NUMBER>977,
"status": "SUCCESS",
"paymentInstrumentId": "paymentinstrument_111",
"threeDsAuthenticationId": "threedsauthentication_123",
"cofContract": {
"id": "cofcontract_123",
"type": "UNSCHEDULED",
"channel": "ECOM"
},
"errorDetails": {
"providerCode": null,
"providerMessage": null
}
}
|
The full technical description of the service can be found here.
This section will describe the options how a 3DS authentication can be connected to an order request, e.g. a preauth or a debit
The requirements for preauth and debit request will be the same.
The full technical description of the service can be found here.
This option can be used in case an authentication has been initiated in advance with the dedicated authentication API calls (3DS Version, Browser Info, Authentication).
In this case the threeDsAuthenticationId has to be provided as an input as part of the meta object. The Payengine will fetch the required 3DS authentication results internally.
| Sample Preauth Request |
|---|
{
...
"meta": {
...
"threeDsData": {
"threeDsAuthenticationId": "authentication_abc123xyz9"
}
}
}
|
It is still possible to trigger a 3DS 2.0 authentication as part of an order request, e.g. a preauth or a debit.
In order to trigger the 3DS 2.0 authentication the integrator has to provide the relevant 3DS related input parameters. A full reference of the mandatory and optional paramters can be found here.
|
In case the 3DS Version check was initiated in advance it is highly recommended to provide the corresponding threeDsVersionId as an input for the preauth or debit request. Otherwise the Payengine would execute another 3DS Version check as part of the order. This automatically means that the connection to any previously initiated invocation of the methodUrl and its benefit to improve the chances of a frictionless flow will be lost. |
|
In case no Browser Info has been collected in advance and no browserInfoId will be provided the Payengine can still execute the 3DS 2.0 authentication flow, but a potential challenge can only be initiated via the redirectUrl fallback option. No challengeData object will be returned in this case meaning that the iFrame challenge view cannot be supported! |
| Sample Preauth Request |
|---|
{
"customer": "customer_abc123xyz1",
"billingAddress": "address_abc123xyz1",
"shippingAddress": "address_abc123xyz2",
...
"payment": {
"paymentInstrumentId": "paymentinstrument_jw7xoqrg2q",
"cofContract": {
"type": "SCHEDULED",
"recurringExpiry": "2020-01-01",
"recurringFrequency": 30
}
},
"risk": {
"customerAccount": {
"accountIdentifier": "customer-abc123",
"creationDate": "2019-07-10",
"lastChangeDate": "2019-07-10",
"changeIndicator": "LESS_THAN_THIRTY_DAYS",
"lastPasswordChangeDate": "2019-07-10",
"passwordChangeIndicator": "LESS_THAN_THIRTY_DAYS",
"authenticationMethod": "OWN_CREDENTIALS",
"authenticationTimestamp": "2019-07-10T15:04:09.722Z",
"shippingAddressUsageIndicator": "FIRST_TIME",
"shippingAddressFirstUsage": "2019-07-10",
"transactionCountLastDay": 1,
"transactionCountLastYear": 10,
"orderCountLast6Months": 5,
"suspiciousActivity": false,
"accountEqualsShippingName": false,
"paymentAccountAgeIndicator": "LESS_THAN_THIRTY_DAYS",
"paymentAccountEnrollementDate": "2019-07-10"
},
"shippingInfo": {
"shippingEqualsBillingAddress": true,
"shippingIndicator": "SHIP_TO_VERIFIED_ADDRESS",
"deliveryTime": "SAME_DAY",
"deliveryEmail"<EMAIL_ADDRESS>},
"orderInfo": {
"isReorder": false,
"preOrderIndicator": "MERCHANTDISE_AVAILABLE",
"preOrderDate": "2019-07-10",
"orderType": "01"
}
}
},
"meta": {
...
"threeDsData":
"threeDsVersionId": "threedsversion_123abc456z",
"browserInfoId": "browserInfo_e1f6b193df"
}
}
}
|
If there is a frictionless flow and the transaction will be authenticated the preauth or debit transaction will trigger the payment transaction as usual and the response will also include the 3DS 2.0 results in the meta.threeDsData object.
The transaction will either have a SUCCESS or FAILURE status.
| Sample Preauth Response |
|---|
{
...
"meta": {
...
"threeDsData": {
"authenticationResult": {
"version": 2.0,
"status": "Y",
"transactionId": "8a880dc0-d2d2-4067-bcb1-b08d1690b26e",
"authenticationValue": "MTIzNDU2Nzg5MDA5ODc2NTQzMjE=",
"eci": "05"
}
}
}
|
In case a of challenge the required information to display the challenge window to the card holder will be returned in the meta.threeDsData object of preauth or debit response.
Integrators can decide if they would like to display the challenge within an iFrame (use details from challengeData object) or if they would like to display the challange within the redirect page hosted by the Payengine (use redirectUrl).
The transaction will have a PENDING status.
| Sample Preauth Response |
|---|
{
...
"meta": {
"threeDsData": {
"authenticationResult": {
"version": "2.0",
"transactionId": "3b0fb5d7-46c2-4bf1-843b-e28e43354695",
"status": "C",
"redirectUrl": "https://link-the-hosted-challange.example",
"challengeData": {
"acsUrl": "https://link-to-the-issuer.acs",
"base64EncodedChallengeRequest": "eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjNiMGZiNWQ3LTQ2YzItNGJmMS04NDNiLWUyOGU0MzM1NDY5NSIsImFjc1RyYW5zSUQiOiI0OWRiMzU1My00OTA5LTQ1YTItYTg3Ny02YWJjZjcxZDA1NTAiLCJjaGFsbGVuZ2VXaW5kb3dTaXplIjoiMDEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIn0=",
"challengeWindowSize": "05"
}
}
}
},
"redirectUrl": "https://link-the-hosted-challange.example"
}
|
|
To support a downward compatible solution for integrators that have implemented the 3DS 1.0 flow already the old redirectUrl parameter on the top level of the response will also include the URL of the Payengine redirect page including the challenge. For new integrations the redirectUrl parameter from the meta.threeDsData.authenticationResult object should always be used. |
In order to load the iFrame an integrator can call the Payengine JavaScript SDK (JS Bridge) function:
| openChallenge function provided by the Payengine's Bridge API |
|---|
PayEngine.openChallenge(container, acsUrl, base64EncodedChallengeRequest, challengeWindowSize, null, onChallengeFinishCallback); // no need to provide threeDsAuthenticationId in case of order flow
|
No matter how the challenge is presented to the cardholder the final results will be asynchronously synced back to the Payengine.
The integrator could either pro-actively pull for the results via GET /creditcard/3ds-authentication/{threeDsAuthenticationId} or register for an asynchronous notification sent to the async.notificationUrl specified in the preauth or debit request.
This option can be used for agents where an authentication is not intiated through the Payengine but through a different PSP.
In this case the authentication results have to be provided as an input as part of the meta object.
| Sample Preauth Request |
|---|
{
...
"meta": {
...
"threeDsData": {
"version": "2.0",
"transactionId": "8a880dc0-d2d2-4067-bcb1-b08d1690b26e",
"authenticationValue": "MTIzNDU2Nzg5MDA5ODc2NTQzMjE=",
"eci": "05"
}
}
}
|
A new helper function threeDsAuthentication() can be used to trigger the 3DS authentication flow.
threeDsAuthentication(paymentInstrumentId, container, parameters, callback)
3DS results with version 1.0 example:
{
threeDsVersion: "1.0",
specificData: {
threeDsVersionId: "threeDsVersionId_123"
}
}
|
3DS results with version 2.0 example:
{
threeDsVersion: "2.0",
specificData: {
authenticationId: "authentication_123"
}
}
|
Example of the threeDsAuthentication usage in case of order flow:
function callback(error, result) {
if (error) {
console.log('Error in threeDsAuthentication method', error);
return;
}
if (result.threeDsVersion === '1.0') {
//create an order with the paymentInstrumentId
//the order request will return a redirectUrl where the end customer should be redirected to
return;
}
if (result.threeDsVersion === '2.0') {
//create an order with the paymentInstrumentId and result.specificData.authenticationId
//in this case the whole 3DS 2.0 flow is finished
}
}
window.PayEngine.threeDsAuthentication(paymentInstrumentId, container, parameters, callback);
|
Payengine JavaScript SDK (JS Bridge) provides the following helper functions for the needs of custom integration:
| Function used to determine the 3DS version of the payment instrument |
|---|
PayEngine.threeDsVersion(paymentInstrumentId, callback)
|
| Function used to send base64EncodedThreeDsMethodData to the method URL, both parameters obtained from the 3DS version response |
|---|
PayEngine.invokeMethodUrl(url, methodData, container, callback)
|
| Function used to collect the browser information |
|---|
PayEngine.getBrowserInfo(callback)
|
| Function used to create 3DS authentication request |
|---|
PayEngine.threeDsAuthenticationRequest(paymentInstrumentId, threeDsVersionId, parameters, callback)
|
| Function used to create and visualise 3DS challenge iFrame |
|---|
PayEngine.openChallenge(container, acsUrl, base64EncodedChallengeRequest, challengeWindowSize, threeDsAuthenticationId, onChallengeFinishCallback)
|
The widget as a bridge will only create the payment instrument and return it as a result parameter in the "resultCallback" function.
In case a 3DS 2.0 authentication should be initiated without a payment for a payment instrument that was created with the widget as a bridge you can use our JavaScript SDK (JS Bridge) helper functions.
Example of a Payment Instrument create callback function:
var paymentInstrumentId;
var optionalParameters = {
...,
"optionalFields": {
...,
"creditCard": {
"cofContract": {
"type": "SCHEDULED"
}
}
}
};
function onCardCheckCallback(error, result) {
//the flow is finished
}
function threeDsAuthenticationCallback(error, result) {
if (error) {
console.log('Error in threeDsAuthentication method', error);
return;
}
if (result.threeDsVersion === '1.0') {
//create an order with the paymentInstrumentId
//the order request will return a redirectUrl where the end customer should be redirected to
return;
}
if (result.threeDsVersion === '2.0') {
//call cardCheck in case of separate session flow
//window.PayEngine.cardCheck(paymentInstrumentId, optionalParameters.optionalFields.creditCard.cofContract.type, null, result.specificData.authenticationId, onCardCheckCallback);
// or
//create an order with the paymentInstrumentId and result.specificData.authenticationId in case of one session flow
}
}
function piCreateCallback(error, paymentInstrument) {
paymentInstrumentId = paymentInstrument.paymentInstrumentId;
window.PayEngine.threeDsAuthentication(paymentInstrumentId, container, parameters, threeDsAuthenticationCallback);
}
window.PayEngineWidget.initAsInlineComponentPi(container, publishableKey, optionalParams, piCreateCallback);
|
|
If the piCreateCallback function is not adapted to call the PayEngine.threeDsAuthentication() or the PayEngine.browserInfo() methods and the corresponding result information is not passed into the order request (preauth or debit) a potential 3DS 2.0 challenge can only be executed via the redirectUrl fallback solution. |
The Modal Widget will take care of all required 3DS 2.0 services and no changes will be required.
In case of a challenge the corresponding iFrame will be loaded directly in the widget. All relevant results will be returned as part of the order result.
The Inline Widget will take care of all required 3DS 2.0 services and no changes will be required.
In case of a challenge the corresponding iFrame will be loaded directly in the widget. All relevant results will be returned as part of the order result.


Help
- Save all the modified documents to disk on the server. Clients can safely reconnect to the server without losing any change, but shutting down the server will discard all unsaved changes.
- Run the last local or remote preview again. If no preview has been run yet, the default entry point
index.html
is run locally.
- Run a project-wide search and display the results on the last selected device. If no search has been run yet, the results are displayed on the first remote device.
- Preview
- The first time the preview button is manually selected on a client, the default entry point
index.html
is run locally. Any other file can be previewed locally by selecting Preview from its context menu. A remote preview can be run by selecting Quick Preview from the context menu of a client. Dragging the preview button from the sidebar to a client simply makes the preview active, without running it again.
- Console
- The console contains all the logs generated from the previews on all the clients. Selecting a file reference opens the editor on the first non-touch device. JavaScript code entered through the text field at the bottom is evaluated on all the clients where the preview is active or the last preview was run locally.
- Search
- Do a project-wide search and display the results locally.
- Editor
- Files can be opened in the editor locally by selecting them in the sidebar and remotely by dragging them to the desired client.


{%- set base_url = '/'|url(alt='es') -%} {%- from "macros/translation.html" import transbag -%} {% macro render_talk(talk) %}


The article on 'Infrastructure stuck in the slow lane' (Independent 8 March 2006) reminds me of some earlier research on investment in the economy (Independent 29 Sept 1999). At that time Bob Edlin quoted my research showing that the period before the 1984 election has been characterised by high investment in a wide range of sectors with consequential benefits to sector productivity. Most rapid expansion of assets was in fishing, mining, chemicals, metals, energy, transport and communications. After 1984 the annual rate of investment in assets slowed considerably. Those sectors that were still investing in the economy included fishing, chemicals, basic metals, communications, finance and community services.
As the graph in the recent article demonstrates, the transport sector and the energy sector did not feature in this latter period. In the NZIER study this is shown as the ratio of gross capital formation in each sector to GDP as a whole, whereas the above data refers to the gross capital stock in each sector after investment was added but depreciation deducted. The latter data was derived from the work of Professor Philpott.
More recent data on capital stocks in use using the same capital formation data shows that the real stock of energy capital increased by 8.5 per cent in the period 1984-95 and by 5 percent from 1996 to 2003. Transport capital fell by 12 percent between 1984 and 1995 but rose by 1 percent between 1996 and 2003. Communications capital rose by 69 per cent in the first period and by 57 per cent in the more recent period. Over the periods 1984-95 and 1996-03, real national income increased by 12 and -4 per cent in energy, by 36 and 31 per cent in transport and by 79 and 119 per cent in communications.
National statistics do not distinguish between government investment and private investment so we have to surmise a bit to explain the causes of these changes in investment patterns. It is clear that transport and energy are usually seen as the area of government investment whereas telephones and the internet have largely been privatised since 1984. More generally, the decline in investment can be explained by the natural tendency to live off depreciation and not replace assets as they wear out. The argument can be made that it is highly desirable to put depreciation tax allowances back into better performing assets rather than disperse it to shareholders or whatever.
It seems to me that these trends in capital investment structure have been caused by the hands-off attitude of successive governments since 1984 and the lack of a central planning mechanism that took into account the more longer term needs of the economy. Roger Douglas said that privatising investment would lead to more efficient use of capital investment. If this is right there is something wrong with the market signals in recent years which should be telling us that the main infrastructural assets are wearing out viz. electricity networks, road and rail configurations and aeroplanes to mention a few. I am a disciple of the 1984 reforms in general but in this case it seems we need to go back to some earlier planning practices in the area of national investment in strategic assets.
By Robin Johnson
(Dr Johnson is an economist and former civil servant)
| Table: Sector Investment and Increase in GDP | ||||||
|---|---|---|---|---|---|---|
| Sector | increase in Real Capital Stock % | increase in Real GDP % | ||||
| 1962-83 | 1984-95 | 1996-03 | 1962-83 | 1984-95 | 1996-03 | |
| Transport | +179 | -12 | +1 | +13 | +36 | +31 |
| Energy | +132 | +9 | +5 | +114 | +12 | -4 |
| Communications | +186 | +69 | +57 | +122 | +79 | +119 |
| (Data from Diewert and Lawrence, BP Philpott, and Statistics New Zealand) |


| Ship with kg mass | and inertia modifier | aligns in seconds. |
| Earth Year: | EVE Year: | YC |
| destroyed | and lost | equals % efficiency. |
| Level skill | of rank | needs skillpoints. |
| Ship with scan resoultion | and target with m signature radius | targets in seconds. |
| Type | HP | EM% | Thermal% | Kinetic% | Explosive% |
| Shield | |||||
| Armor | |||||
| Structure | |||||
| Totals |
| Efficiency | Result | Minimum Runs |
| -10% | ||
| -9% | ||
| -8% | ||
| -7% | ||
| -6% | ||
| -5% | ||
| -4% | ||
| -3% | ||
| -2% | ||
| -1% |


(version 1.0, Chris M. Dickson, 14/4/99)
When somebody casts a vote in a simple yes/no vote, such as whether or not to create a newsgroup, they have three choices as to how to cast their vote. If they prefer "yes" to "no", they vote for "yes". If they prefer "no" to "yes", they vote for "no". If they have no preference between the two, they vote "abstain". When someone votes in a Condorcet-counted vote, they are doing essentially the same task, expressing preference for some options over other options.
I think it is likely that most uk.* Condorcet-counted votes will come when there is one newsgroup to be created with one of two possible names, or two alternative suggestions to change an existent charter or guideline. In either circumstance, we must also provide an option to preserve the Status Quo; also, we must provide an option to Re-Open the Discussion, but in only the first two votes on any one proposal. Condorcet, Status Quo and two Discussion Re-Openings were all mandated by Paul Bolchover's voting procedures guideline change CFV of April '98. Thus it is usual that a Condorcet-counted ballot paper will look like this.
======================= Start of Ballot XXX01 ====================== Your real name: [ Fill in your name between the brackets ] Your e-mail address: [<EMAIL_ADDRESS>] *PLEASE COMPLETE THE ABOVE SECTIONS FOR VOTE TO BE VALID.* Please rank your preferences below: Option A : [ ] Option B : [ ] Status Quo (create neither group): [ ] Re-Open Discussion: [ ] ======================== End of Ballot XXX01 =======================
Should there be more options to choose from, they would go between Option B and Status Quo.
Immediately before the ballot paper, you should include this text, which seems to have been accepted as the usual description of "how to vote".
---start quote---
This vote is being counted under the Condorcet system. Voters are required to mark a 1 by their favourite option, a 2 by their second favourite option and so forth. Voters are permitted to mark the same number by more than one option when they are indifferent between them. Voters are permitted to leave options unmarked, but are requested not to; the voter is assumed to show indifference between unmarked options, but to prefer all the marked options to all the unmarked options. To abstain from the vote, fill in your name and e-mail address only, leaving all four options unmarked.
---end quote---
As a result, you will get people filling the four (or more) boxes with digits. If they fill in the boxes like this:
Option A : [2] Option B : [1] Status Quo (create neither group): [4] Re-Open Discussion: [3]
then they are expressing six preferences:
A Condorcet count is little more than six simultaneous yes/no votes on those six issues. An alternative way to fill the boxes might be:
Option A : [ ] Option B : [ ] Status Quo (create neither group): [1] Re-Open Discussion: [1]
which expresses the following six statements:
Incidentally, there's no difference between
Option A : [ ] Option B : [ ] Status Quo (create neither group): [1] Re-Open Discussion: [1]
and
Option A : [2] Option B : [2] Status Quo (create neither group): [1] Re-Open Discussion: [1]
or
Option A : [3] Option B : [3] Status Quo (create neither group): [1] Re-Open Discussion: [1]
or even
Option A : [4] Option B : [4] Status Quo (create neither group): [1] Re-Open Discussion: [1]
which all express the same six statements. Boxes left blank are equivalent to boxes filled in with the number of boxes there are to fill in; that is, boxes left blank are all equal last place.
Once all the votes have come in, you can draw up a chart of voters and votes which might look like this:
| Name | A | B | S | R |
|---|---|---|---|---|
| Voter Jones | 1 | 2 | 3 | 4 |
| Voter Smith | 2 | 1 | 3 | |
| Voter Brown | 1 | 1 | 2 | |
| Voter Green | 3 | 4 | 2 | 1 |
| Voter White | X | |||
| Voter Black | 1 | 3 | 1 | 2 |
| Voter Robinson | - | - | 1 | 1 |
...and so on...
The counting is done in two stages: the first compares each of the options to the Status Quo and determines which options go on to the second stage.
The general counting technique that you need to master is how to convert a chart like the one above into a set of statements that one option beats another option by a number of votes.
Concentrate on one pair of options at a time; in the first stage, you will compare each of the options, apart from Status Quo, against Status Quo. In this case, you will compare Option A against Status Quo, then Option B against Status Quo and finally Re-Open Discussion against Status Quo. We shall deal with the first of these only.
What you need to do is ignore the rest of the chart apart from the columns containing the options you're comparing. In this case, your chart would look like
| Name | A | S |
|---|---|---|
| Voter Jones | 1 | 3 |
| Voter Smith | 2 | 3 |
| Voter Brown | 1 | |
| Voter Green | 3 | 2 |
| Voter White | X | |
| Voter Black | 1 | 1 |
| Voter Robinson | - | 1 |
...and so on...
In Jones' case, he's expressing a higher preference for A than for the Status Quo, so this is a vote for A and against Status Quo. Ditto Smith and Brown. Green and Robinson express a higher preference for the Status Quo than for Option A, so this is a vote for Status Quo and against Option A. White just put a cross against one option and left all the others blank; this is clearly a vote for Status Quo and a vote against the rest. Black expressed no preference between Option A and Status Quo, so this is an abstention between the two.
Once you've gone down the list, you'll have a statement that some number of people (say 38) prefer Option A to the Status Quo, and some other number of people (say 21) prefer the Status Quo to Option A. Do check the list going up from the bottom to the top as well as down from the top to the bottom. (I tend to split the list into groups of ten and fifteen then add the numbers of preferences in each group up to come to a final total, simply because it is easy to get confused.) This result can be treated just like the result of a simple yes/no newsgroup creation vote: if an option beats the Status Quo by at least 12 votes, it succeeds; if it doesn't beat the Status Quo by 12 or more votes, it fails.
Work this out for each of the options apart from Status Quo, because comparing Status Quo against Status Quo makes no sense.
If no options beat Status Quo by 12 or more votes, then the Status Quo prevails and Stage Two is not necessary.
If exactly one option beats Status Quo by 12 or more votes, then it is the winner and Stage Two is not necessary.
If two or more options beat Status Quo by 12 or more votes, they both survive to Stage Two, which does become necessary to declare a winner.
Again, we concentrate on one pair of options at a time. In Stage Two, we compare each surviving option against each other surviving option. Any options that failed to beat Status Quo by 12 or more votes in Stage One are ignored in Stage Two. I would imagine that the two most common situations at this point will be:
1) all the options (apart from Status Quo) reaching Stage Two
2) all the options apart from Re-Open Discussion (and Status Quo) reaching Stage Two.
The technique for comparing options against each other in Stage Two is exactly the same as in Stage One. Pick the possible pairs of competing options out one at a time and compare only the preferences awarded in those two columns.
In our example, let us suppose Option A and Option B make it through to Stage Two from the case above. Isolating those columns only,
| Name | A | B |
|---|---|---|
| Voter Jones | 1 | 2 |
| Voter Smith | 2 | 1 |
| Voter Brown | 1 | 1 |
| Voter Green | 3 | 4 |
| Voter White | ||
| Voter Black | 1 | 3 |
| Voter Robinson | - | - |
...and so on...
Voters Jones, Green and Black prefer Option A to Option B; voter Smith prefers Option B to Option A; voters Brown, White and Robinson express no preference between them. Continue in this vein for all the voters and come to a conclusion that some number preferred Option A to Option B, and some number preferred Option B to Option A. The Option out of these two which gained more preferences is the winner of this pair; there is no minimum size of victory. It is possible, but unlikely, for two Options to tie should exactly as many prefer each over the other (ie 14 prefer Option A to Option B and 14 prefer Option B to Option A).
You must proceed to declare a winner out of every possible pair of Options that can be drawn from the Options surviving from Stage One.
Hopefully, you will reach a situation where one Option is the winner of every pair of itself and any other surviving Option. This Option is your Condorcet Winner. For instance, if only Option A and Option B in the example above survived from Stage One, the winner of that pair would be the Condorcet Winner. Another case might see Option A, Option B and Re-Open Discussion surviving from Stage One, then the winner between Option A and Option B would also have to beat Re-Open Discussion in order to be the Condorcet Winner. This extends further if there are more than three Options surviving from Stage One.
The slightly conceptually scary thing about Condorcet is that it is possible there will not be a Condorcet Winner. However, this does require an unusual set of circumstances. Suppose, in a particular vote, Option B, Option D and Option E (only) survive Stage One. Suppose that furthermore, Option B is the winner of the Option B - Option D pair, Option E is the winner of the Option B - Option E pair and Option D is the winner of the Option D - Option E pair. As we do not have a single Option which is the winner of all the pairs of itself and the other surviving Options, we do not have a Condorcet Winner. Technically, we have a Condorcet Top Set of Option B, Option D and Option E. What happens in this circumstance is that Re-Open Discussion wins, regardless of whether it reached Stage Two or not (or even whether it appeared on the ballot paper or not).
It is also possible that two (or more!?) Options might tie against each other, but both be the winners of all other pairs of themselves and all other surviving Options. (For instance, Option A, Option B and Re-Open Discussion might all survive to Stage Two; if Option A ties with Option B and both Options A and B beat Re-Open Discussion, this situation would occur.) In this case, the tie shall be resolved by lot. This would result in uk.*'s biggest ever coin-toss - but that is a bridge we should cross only when we reach it.


Tropical Geometry Newton Polygon Tool
Provide an Ipe file containing a Netwon polygon with subdivisions to generate corresponding polymake code.
Select operations
Hello, world!
Provide an Ipe file containing a Netwon polygon with subdivisions to generate corresponding polymake code.
Select operations
Hello, world!


Nuxeo Platform 8.2 Release Notes
For Users
Instant Share
8.1 A new feature allows to invite users to a given folder of the Nuxeo Platform with either Read or Edit permission, by email. Invited users do not have an account on the Nuxeo Platform instance. The access is temporary and any access remains tracked in the audit log, based on the used email address. Read more in the documentation.
Nuxeo Live Connect for Box
8.1 Nuxeo Live Connect has been improved and now integrates with Box.com. Nuxeo Live Connect allows to easily reference files that are stored in the cloud and have them participate to your business processes. Check the Nuxeo Live Connect documentation for more information.
Nuxeo Live Connect for One Drive
8.2 Nuxeo Live Connect has been improved and now integrates with One Drive. Nuxeo Live Connect allows to easily reference files that are stored in the cloud and have them participate to your business processes. It offers as usual with Live Connect: direct download from the Microsoft Cloud, full text indexing etc. We also have come out with a generic One Drive Java client and a generic file picker as well. Check the Nuxeo Live Connect documentation for more information.
Users and Groups Management Audit
8.2 Creation, Update and deletion of users and groups actions are now logged into the audit trail of Nuxeo Platform.
JSF Web UI Evolutions
New Previewers
8.2 Preview now offers to see office documents with pdf.js, video documents with video.js and images with a JavaScript client side viewer. Markdown documents are rendered in HTML. Preview is opened in a fancybox.
Placeless Document Can Be Browsed
8.2 Placeless documents like persisted renditions can now be browsed in the JSF UI without any crash.
User Feedback on Permission Management Tab
8.1 Feedback using the Polymer element paper-toast has been implemented on the Permissions tab. It is used on the create, update and delete permission actions, as well as on the "send notification email" action.
No More Error Stack Trace by Default
8.2 By default the traces are hidden in error pages of Nuxeo, for security reasons. In order to activate the traces display in error pages of Nuxeo, the dev mode has to be set: org.nuxeo.dev in nuxeo.conf or in the admin center.
Smart Search is Back
8.1 Smart Search, that allows users to build their own queries, has been re-integrated to the Search tab, consistently with other search options. Smart Search is delivered as a Nuxeo Package.
Confirmation Pop-up Before Purge
8.1 In the Admin Center, when removing the permissions of a given user, you now have to confirm on a pop-up that you really want to purge all the permissions.
Password Protection
8.2 When a user changes their password, they are now required to fill in the old password value.
See Assigned Groups Before Validating Invitation
8.2 When validating an invitation request, Administrator can now see the groups the user will be granted.
More Friendly "Http Transport returned a 0 status code" Error
8.1 When this error happens, the message is now displayed as a warning and translated in a more friendly way.
CSV Importer Small Improvements
CSV Importer: Type Attribute Not Mandatory
8.2 Now, type attribute is not mandatory when updating documents. It must be given only for document creation.
CSV Importer: Possible to Redefine
dc:created
Attribute Value
8.2 It is now possible to set
dc:created
property using CSV importer. It used to be overridden with the date of import.
Nuxeo Spreadsheet
Locale is Respected
8.2 Locale setting is now taken into account when using Nuxeo Spreadsheet for the JSF Web UI.
No More Error Stack trace
8.2 By default the traces are hidden in error pages of Nuxeo, for security
reasons. In order to activate the traces display in error pages of Nuxeo, the dev mode has to be set (
org.nuxeo.dev
in
nuxeo.conf
or in the Admin Center.)
Overriding Subject of the Permission Assignment Email Notification
8.2 It is now possible to override the subject of the notification that is
sent when assigning a permission to someone on a given document. You need to override the label property
label.subject.new.permission
.
Documents created by Copy can have their own Dublincore schema metadata values
8.2 Metadata
dc:creator
, dc:creationDate
, dc:modification
and dc:contributors
are now reseted for documents created from a template (workspace template). You can also enable this behavior
for all kind of document copies by setting nuxeo.dclistner.reset-creator-on-copy
configuration property to true.
For Developers
A C# Nuxeo Client
8.1A C# Nuxeo Client has been added. A sample application is provided so as to understand how to make use of it. Read the C# client documentation for more information.
New Operations
User Invitation
8.2The operation
User.Invite
is now available to trigger a user invitation remotely.
Studio Jar Hot Reload
8.2The operation
Service.HotReloadStudioSnapshot
is now available to trigger a hot-reload of the Studio Jar.
REST Endpoint Evolutions
New Content-Type Header
8.2Content-Type header now returns the nuxeo-entity type as well:
application/json; nuxeo-entity=documents
Fetching Members of Group object
8.2 New endpoints were added for getting members of a group:
/group/{groupname}/@members
/group/{groupname}/@groups
This endpoint supports pagination and returns the full objects (full users and groups). And by default when
fetching a user or a group, users and groups members are no more marshaled (only ids are returned), you can use
fetch.group=memberUsers
and/or
fetch.group=memberGroups
to get the full object.
Directories
Generic Directory and Directory Templating
8.2 Generic Directories have been introduced, along with the possibility to
make regular directories be "templates". First, register a template directory (
template="true"
):
<extension target="org.nuxeo.ecm.directory.sql.SQLDirectoryFactory" point="directories">
<directory name="template-dir" template="true">
<dataSource>java:/nxsqldirectory</dataSource>
<createTablePolicy>always</createTablePolicy>
<querySizeLimit>100</querySizeLimit>
</directory>
</extension>
Then use a generic directory to provide specific customizations over the extended template (
extends="template-dir"
):
<extension target="org.nuxeo.ecm.directory.GenericDirectory" point="directories">
<directory name="my-directory" extends="template-dir">
<schema>myschema</schema>

mytable

<idField>id</idField>
<passwordField>password</passwordField>
<passwordHashAlgorithm>SSHA</passwordHashAlgorithm>
<substringMatchType>subany</substringMatchType>
<cacheTimeout>3600</cacheTimeout>
<cacheMaxSize>1000</cacheMaxSize>
</directory>
</extension>
The Generic Directory descriptor only supports a generic subset of the configuration of the directories in general
(see
org.nuxeo.ecm.directory.BaseDirectoryDescriptor
for the exact fields). This new indirection allows to make it easier to change implementation of a directory for a
given business requirement.
Cache is Back
8.2 Directories that still have a cacheMaxSize and cacheTimeOut but no newly-defined cacheEntryName are still be using a cache.
Elasticsearch Evolutions
ecm.path Field
8.2A new field in Elasticsearch index is available:
ecm:path
with the following informations:
"ecm:path.level1": "default-domain",
"ecm:path.level2": "workspaces",
"ecm:path.level3": "aWorkspace",
"ecm:path.level4": "aFolder",
"ecm:path.level5": "aFile",
etc.
"ecm:path.depth": 5
Mapping for Audit Index
8.2No specific mapping had been contributed for Audit index. This is now done.
Authentication Prompt
8.2 When configuring authentication chains, a new attribute is available at
the authentication chain level,
handlePrompt
so as to configure if the authentication filter delegates the login prompt to its plug-ins or if it returns
systematically a 401 response code.
Configuring TinyMCE Editor via Tag Properties
8.1 Plugins and options have been extracted to control them by tag properties in order to display different options depending on the field.
Understanding The Sequence Of Listeners Calls
8.1 You can now add this in your log4j.xml:
<category name="org.nuxeo.common.logging"> <priority value="DEBUG"/> </category>
Then use the sequence.sh to generate a PNG with a sequence diagram of all threads and listeners.
Note that all events in the chart are in chronological order (not proportional) except for the Initiate link, where the origin points to the thread that has generated a work without telling when (earlier for sure).
HTML Content in Tipsy Tooltip
8.1 Tooltips generated with Tipsy now render HTML content properly.
JSF Widgets Evolutions
Limit Attribute for
SuggestDirectoryEntries
8.2A new attribute
limit
is available for limiting the number of entries returned by the
SuggestDirectoryEntries
For Administrators
MongoDB 3.2
8.2 MongoDB 3.2 is now supported as a storage backend.
S3 Configuration via Extension Point
8.1 Customers needing to connect to more than one S3 binary managers with different
configurations are now able to do so using the new
configuration
extension point of
org.nuxeo.ecm.core.blob.BlobManager
. Previously only one bucket could be configured in
nuxeo.conf
.
<extension point="configuration" target="org.nuxeo.ecm.core.blob.BlobManager"> <blobprovider name="default"> <class>org.nuxeo.ecm.core.storage.sql.S3BinaryManager</class> <property name="awsid">your_AWS_ACCESS_KEY_ID</property> <property name="awssecret">your_AWS_SECRET_ACCESS_KEY</property> <property name="region">us-west-1</property> <property name="bucket">your_s3_bucket_name</property> <property name="bucket.prefix">myprefix/</property> <property name="directdownload">true</property> <property name="directdownload.expire">3600</property> <property name="cachesize">100MB</property> <property name="crypt.keystore.file">/my/keystore.jks</property> <property name="crypt.keystore.password">password</property> <property name="crypt.key.alias">mykey</property> <property name="crypt.key.password">password</property> <property name="connection.max">50</property> <property name="connection.retry">3</property> <property name="connection.timeout">50000</property> <property name="socket.timeout">50000</property> </blobprovider> </extension>
Server-Side Encryption with S3
8.1 Support for Server-Side Encryption (SSE-S3) has been added as an alternative to
Client-Side Encryption (CSE) as documented in the
S3
Java SDK
. This is enabled through the property
nuxeo.s3storage.crypt.serverside=true
.
GridFS as Part of the Default Distribution
8.1 GridFS is now part of the base distribution, in nuxeo-core. It will have to be
activated explicitly using the
gridfsbinaries
template. There is no need to install an additional Nuxeo Package anymore. Read our
MongoDB documentation
for more information.
SAML Addon Compatible with ADFS
8.2 After adjusting a few blind parts of the specification, the SAML plug-in has been successfully used with Active Directory Federation Services.
Elasticsearch Indexing Operations
8.1 Elasticsearch indexing operations are now available from Nuxeo Automation in addition to the Admin Center. Using a REST call you can now:
- Re-index an entire repository
- Re-index documents that match an NXQL query
- Re-index a document and its children
- Wait for indexing and perform an index refresh
Allow Separate Repository DDL Generation
8.1 Nuxeo can now start with a new
nuxeo.vcs.ddlmode
parameter that specifies how the DDL for repository initialization should be executed at startup. Depending on
the chosen mode, the DDL may not be executed at all and instead dumped to the
log/ddl-vcs-default.sql
log file. Possible values for
nuxeo.vcs.ddlmode
are:
- ignore: no DDL detected or executed. Replaces
nuxeo.vcs.noddl=true
. - compat: compatibility mode with previous version. Always executes DDL that recreates stored
procedures (and does not attempt to detect existing ones). Replaces
nuxeo.vcs.noddl=false
. - execute: executes the DDL and starts Nuxeo normally.
- dump: dumps the DDL (if any) to the file but still executes it and starts Nuxeo normally.
- dump,ignore: dumps the DDL (if any) to the file but does not execute it and starts Nuxeo normally (will likely result in errors).
- dump,abort: dumps the DDL (if any) to the file, and if not empty aborts startup.
For Nuxeo Platform 6.0 and Nuxeo Platform 7.10 the default was
nuxeo.vcs.ddlmode=compat
. For Nuxeo 8.2 the default is
nuxeo.vcs.ddlmode=execute
.
Note that all this applies to the DDL for the document repository, but not DDL used by other users of SQL in the platform (directories, quartz, JPA persistence).
Redis
Cluster Invalidation with Redis in
nuxeo.conf
8.1 Using Redis to process cluster invalidation instead of database can be
configured in nuxeo.conf using
repository.clustering.invalidation=redis
(it used to be in the repository contribution).
Less Memory Footprint for Redis
8.2 Some work has been done to optimize the size of serialized works, hence lowering the requirements in terms of memory size for Redis.
Redis Pool Size Configuration
8.2The Redis connection pool size can be configured using the new
nuxeo.conf
options:
Retry Logic For Redis Calls
8.2Nuxeo now uses a failover executor with an exponential delay policy: 1ms, 2ms, 4ms, 8ms, 16ms, 32ms .. until the timeout has reached 5min by default.
Work Manager and Shutdown
8.2There was some clean up in the way jobs were processed, especially at server's shutdown. When server is shutdown, works being processed are finished before real shutdown. If server's process is killed, job will be restarted as the system is transactional.
Web App Optimizations
8.2 Since 6.0 and migration to JSF2, some regressions on the performance of the webapp were found, especially on heavy load. Some optimization work has been done. On a commodity hardware benchmarks shows after optimization that we are able to server 25% more requests.


The U.S. has the highest number of air passengers in the world, with more than 700 million passengers (as per U.S. Airline Traffic Data) being transported each year (since 2004). With such huge number of travelers, airlines and airports are very busy and flight delays are expected to happen now and then. If you wanted to avoid flight delays, what month would you choose to fly?
The visualization below shows the percentage of flights in each month of the year whose departures have been delayed 20 minutes (or longer) from year 1988 to 2008. Pay special attention to the months having fewest delays (which are highlighted in the graph) in each year. It has been found that, over the years, September tends to be the best month for avoiding flight delays. The statistics used to build the visualization were obtained from U.S. Airline on-time performance.


{% extends "base.html" %} {% block title %}
Admin Disease Tables | OHAS
{% endblock %} {% block content %}
Viral Diseases of Humans
| # |
Diseases |
Cause |
Parts of Body Affected |
Method of spreading |
Type of Vaccination |
{% for vd in vd_data %} {%set count = 1 %} {% set outer_loop = loop %}
| {{ outer_loop.index }} |
{{vd[1]}} |
{{vd[2]}} |
{{vd[3]}} |
{{vd[4]}} |
{{vd[5]}} |
{%set count = count +1 %} {% endfor %}
Bacterial Diseases of Humans
| # |
Diseases |
Cause |
Parts of Body Affected |
Method of spreading |
Type of Vaccination |
{% for bd in bd_data %} {%set count = 1 %} {% set outer_loop = loop %}
| {{ outer_loop.index }} |
{{bd[1]}} |
{{bd[2]}} |
{{bd[3]}} |
{{bd[4]}} |
{{bd[5]}} |
{%set count = count +1 %} {% endfor %}
Diseases Caused By Worms
| # |
Diseases |
Pathogen responsible and its habitat |
Mode of transmission |
Main symptoms |
Treatment |
{% for wd in wd_data %} {%set count = 1 %} {% set outer_loop = loop %}
| {{ outer_loop.index }} |
{{wd[1]}} |
{{wd[2]}} |
{{wd[3]}} |
{{wd[4]}} |
{{wd[5]}} |
{%set count = count +1 %} {% endfor %}
Diseases caused by Fungi
| # |
Diseases |
Pathogen responsible |
Mode of transmission |
Main symptoms |
Treatment |
{% for fd in fd_data %} {%set count = 1 %} {% set outer_loop = loop %}
| {{ outer_loop.index }} |
{{fd[1]}} |
{{fd[2]}} |
{{fd[3]}} |
{{fd[4]}} |
{{fd[5]}} |
{%set count = count +1 %} {% endfor %}
{% endblock %}


FROM:Mr.Peter Wong Hang Seng Bank Ltd 17 Des Voeux Road Hq Branch. Hong Kong. This mail might come to you as a surprise and the temptation to ignore it as unserious could come into your mind; but please consider it a divine wish and accept it with a deep sense of humility. I am Mr. Peter Wong director of operations of the Hang Seng Bank Ltd. I have a obscured business suggestion for you. Before the U.S and Iraqi war our client Major Fadi Basem who was with the Iraqi forces and also business man made a numbered fixed deposit for 18 calendar months, with a value of Twenty Four millions Five Hundred Thousand United State Dollars only in my branch. Upon maturity several notices was sent to him, even during the war early this year. Again after the war another notification was sent and still no response came from him. We later find out that the Major and his family had been killed during the war in bomb blast that hit their home. After further investigation it was also discovered that Major Fadi Basem did not declare any next of kin in his official papers including the paper work of his bank deposit. And he also confided in me the last time he was at my office that no one except me knew of his deposit in my bank. So, Twenty Four millions Five Hundred Thousand United State Dollars is still lying in my bank and no one will ever come forward to claim it. What bothers me most is that according to the to the laws of my country at the expiration 3 years the funds will revert to the ownership of the Hong Kong Government if nobody applies to claim the funds. Against this backdrop, my suggestion to you is that I will like you as a foreigner to stand as the next of kin to Major Fadi Basem so that you will be able to receive his funds. WHAT IS TO BE DONE: I want you to know that I have had everything planned out so that we shall come out successful. I have contacted an attorney that will prepare the necessary document that will back you up as the next of kin to Major Fadi Basem , all that is required from you at this stage is for you to provide me with your Full Names and Address so that the attorney can commence his job. After you have been made the next of kin, the attorney will also fill in for claims on your behalf and secure the necessary approval and letter of probate in your favour for the move of the funds to an account that will be provided by you. There is no risk involved at all in the matter as we are going to adopt a legalized method and the attorney will prepare all the necessary documents. Please endeavour to observe utmost discretion in all matters concerning this issue. Once the funds have been transferred to your nominated bank account we shall share in the ratio of 60% for me, 40% for you . Should you be interested please send me: NAME: CONTACT ADDRESS: PHONE NUMBER : FAX NUMBER IF ANY: Reply to<EMAIL_ADDRESS>Finally after that I shall provide you with more details of this operation. Your earliest response to this letter will be appreciated. Kind Regards Mr.Peter Wong


FROM: Master Micheal Mumbaza Abidjan cote d'ivoire West Africa. Att: Please kindly accept this offer with your full heart. With warm heart I offer you my friendship, and I hope that this mail meets you in good time. However strange or surprising this letter might seem to you as we have not meet personally or had any dealings in the past, I humbly ask that you take due consideration of its importance and immense benefit. I am the only son of Dr Fedel C.Mumbaza from Sierra Leone. I am 22 years old. My late father, Dr Fedel C.Mumbaza was a native of Mende district in the Northern province of Sierra Leone, he was the ex-general Manager of Sierra Leone mining co-operation (S.L.M.C.) Freetown. He died as a result of a car accident ,(may his soul rest in peace) but before he died ,He disclosed to me and my brother that he deposited the sum of ( $13.4,000 000.00)thirteen Million Four Hundred Thousand United State Dollars in a private security company in Ivory coast, that the money was meant for the Cocoa export-business he wanted to establish in Abidjan,Ivory coast. Although according to my father he deposited the money in a private security company, but he decleard it as Artcraft/Family valuables, He gave us the documents for the claims, (1)deposit certificates (2)Reciepts of payments,(3)Agreement papers.and ask us to look for investors that will stand as his foreign business partner. I have arrived in Abidjan (Ivory coast) located the security company and comfirmed the (safe) metallic trunk box. Now with most honest and confidentiality I are soliciting your assistance in the following ways: (1)To stand as the foreign business partner of my late father(business assocate) so that we can retrieve the box (safe)from the security. (3) To move the money to your country for further investment. Feel free, if you may have any questions to ask. Meanwhile I will offer you 10% of the total sum . Thank you and May Almigty God bless you for your kind assistance. Micheal Mumbaza ________________________________________ Tutti i concerti da non perdere! http://musica.jumpy.it/2003jm_m_concerti.asp


[PART VIII.] RETIREMENT FOR CLASS H PUBLIC OFFICERS
AND EMPLOYEES
A. Applicability of Part II
§88-301 Applicability. The following provisions of part II of this chapter shall apply to this part:
(1) Subpart A;
(2) Subpart B, except sections 88-45, 88-46, 88-48, 88-52, 88-59, 88-59.5, 88-61, and 88-62;
(3) Subpart C, except sections 88-71, 88-72, 88-73, 88-74, 88-74.6, 88-75, 88-76, 88-79, 88-80, 88-83, 88-84, 88-85, 88-88, 88-96, 88-97, and 88-98;
(4) Subpart D; and
(5) Subpart E. [L 2004, c 179, pt of §1; am L 2006, c 169, §31; am L 2007, c 215, §21; am L 2008, c 47, §11]
Note
Section 88-72 referred to in paragraph (3) is repealed.


The ESRD Design System is a set of design and development resources that help create Section 508 compliant, responsive, and consistent web experiences. It builds on the US Web Design System and on the CMS Design System to provide resources specific to ESRD properties, particularly the new EQRS UI.
New to the design team? Download our Sketch library, and check out our design principles and style guide.
New to the development team? Take a look at our components, written to support flat sites as well as Angular development.
The guiding principles for how we design and make decisions.
Everything you need for consistent visual design for ESRD properties.
HTML, CSS and Angular code for the UI patterns and components in use on ESRD and EQRS.
Something about how we use page templates. [not built]


See what it's like to work at Room 77!
Meet our talented group of employees.
Click on a photo or use the arrow keys to move through the office.
{#
x
#}
Filter
x
“
”
Back
Favorite coding setup:
in
Countries visited:
Languages Spoken:
| {% elseif col == 1 %} | {% else %} | {% endif %} {% set name = dir_name[row][col] %} {% if row != 1 or col != 1 %} {% endif %} | {% endfor %}


You can now see your homework 1 grades (and comments) in Canvas. I was lenient grading this homework. This goal of this homework was to get your GitHub repositories setup correctly and get you started in ggplot2
. This will not be the case for future homework!
Please keep in mind the following for your future submissions:
Please do not have setwd()
in your R scripts. This will prevent me from being able to run your code directly from within R. You can use Projects in RStudio to manage your working directories instead.
If you do not have enough to write about in your discussion, then you have not customized your visualization enough. Please include what you changed and why you made those changes. You can also discuss what you tried that did not work, and what you learned about the dataset from your visualization.
Please place your discussion in README.md
since this is the file that automatically displays when I visit your repository. Also, consider using headings in README.md to separate your discussion. This will make it easy to match your discussion to its associated plot.
Overall, I am thrilled to see so many of you trying out different things in ggplot2
. I look forward to your future submissions.
Now, for the bad news. I may not always be able to look at everyone's homework submission directly. In that case, I will randomly select students to grade. Everyone else will receive a 100%. Students that do not have a homework graded are guaranteed to have the next one graded. If you did not get your homework graded and want feedback, feel free to ask me for feedback after class on Thursdays.


Hong Kong braces for 'emergency' protest call for autonomy
HONG KONG: Hong Kong anti-government protesters are due to march on Saturday (Nov 2) in what has been billed as a global "emergency call" for autonomy for the Asian financial hub that was guaranteed its freedoms when it returned from British to Chinese rule in 1997.
Prominent pro-democracy activist Joshua Wong called for 100,000 people to rally in what would be the 22nd straight weekend of protests.
Protesters have taken to the streets for five months of sometimes violent unrest, angry at perceived Chinese meddling with Hong Kong's freedoms, including its legal system and politics. China denies the charge.
READ: Tear gas as Hong Kong protesters don Halloween masks
Activists have attacked police with petrol bombs, set street fires and trashed government buildings and businesses seen as pro-Beijing.
One policeman was slashed in the neck with a knife last month.
Police have responded with tear gas, pepper spray, water cannon, rubber bullets and occasional live rounds. Several people have been wounded.
Wong was disqualified on Tuesday from standing in upcoming district elections, a move he said was "clearly politically driven".
"If more and more people, not only a few thousand, but if more than 100,000 Hong Kongers take to the streets tomorrow, it can let the world know how Hong Kong people fight for a free election," he told reporters on Friday.
READ: Chinese leadership says it will ensure Hong Kong's stability and prosperity
The bespectacled Wong was a leader of the student-led street protests of 2014 but has not been in the forefront of the current unrest.
Government data on Thursday confirmed that Hong Kong slid into recession in the third quarter for the first time since the global financial crisis of 2008. Retail sales fell 18.3 per cent in value in September from a year earlier, an eighth consecutive month of decline.
Hong Kong is a semi-autonomous "special administrative region" of China according to the "one country, two systems" formula under which it returned to Chinese rule.
MORE: Our coverage of the Hong Kong protests
Follow us on Telegram for the latest on Hong Kong: https://cna.asia/telegram


Developer -
+2347035867985
SESA
Home
About
Library
Biology
Chemistry
Computer
Geography
Inter Science
Mathematics
Physics
Others
Gallery
Excos
Parliament
H.O.D
H.O.S
PATRON
Previous President
Contact
2017/2018 Parliament Gallery
Comrd. Ashiru Abdullahi Namalama
Speaker
Comrd. Musa Adam A.
Clerk
Comrd. Cheren Ted James
Deputy Speaker
Comrd. Yusuf Ibrahim
Chief Whip
Comrd. Yunusa Muhammad
Senator Rep. Computer
Comrd. Abubakar Umar Mainta
House Leader
Comrd. Osamudiame Haruna Akioya
Duputy Clerk


---
index: 3
title: "Wumpus World Robot"
decsription: Students have the opportunity to build a LEGO robot to solve the Wumpus World Problem– the robot must navigate a 4x4 grid filled with clues and hazards to autonomously get the gold and return home safely. This non-trivial problem requires students to think about perception, action, reasoning, and decision making.
---
Students have the opportunity to build a LEGO robot to solve the Wumpus World Problem– the robot must navigate a 4x4 grid filled with clues and hazards to autonomously get the gold and return home safely. This non-trivial problem requires students to think about perception, action, reasoning, and decision making.
At the end of this course, selected and interested students will have the opportunity to build a Lego robot to solve the Wumpus World Problem for their final project. The problem here is to build a robot that moves around in a 4x4 grid, and use the clues that can be found in the grid to get to the gold, and get back home safely, without running into any of the pits or the awfully smelling Wumpus! This problem requires students to think about perception, action, reasoning, and decision making. It is a non-trivial problem, and each year only few teams are successful!
# The Wumpus World
The Wumpus world is a 4x4 grid of squares. The world contains a Wumpus, a pile of
gold, and any number of pits. Each of these items is in a square of the grid. No square
contains two of these items, some squares contain none of these items, and the items do
not move. The robot starts in the lower left square facing up, and the goal of the robot is
to get to the square with the gold and return to the start square with it, without running
into the Wumpus or a pit. The robot has one arrow with which it can shoot and kill the
Wumpus. You can assume that the world is such that an infinitely smart being can solve
the puzzle without guessing (and without knowing this particular fact).
When a robot is in a square that is next to the square with the Wumpus, the robot smells
a horrible smell. When the robot is in a square that is next to the square with the pile of
gold, the robot sees a glitter. When the robot is in a square that is next to the square with
a pit, the robot feels a breeze. If a square is next to multiple items, the robot gets multiple
clues (e.g. if the robot is on a square that is next to a square with the Wumpus, as well as
next to a square with a pit, the robot will sense a smell as well as a breeze). Being next
to multiple pits does not ‘increase’ the breeze: the robot will simply feel a breeze. When
the Wumpus has been killed, the square becomes an empty square, and the smells in the
adjacent squares go away.
# Game Play
Your robot should move from square to square, i.e. at all times the robot should be either
stopped completely in a square, or should be crossing from one square into an adjacent
square to the left, right, up, or down from it. There will be no physical smells, breezes, or
glitter. Rather, an infrared signal from a remote will be used to indicate whether a square
contains a smell, breeze, glitter, or any combination thereof.
There are two stages in the game: the first stage is looking for the gold, the second is
going back to the lower left square. During stage one the robot can stop in any square and
get a signal from the remote indicating what’s in that square before moving on. There is
no need to stop in every square though, e.g. if the robot already knows what is in a square
then the robot can simply move through that square to a different square. Once the robot
has the gold, the robot gets no more signals (as it should know how to get back safely), so
stopping in a square has no use.
To successfully shoot the Wumpus the robot has to be in the square adjacent to the
Wumpus, and face the square with the Wumpus. The robot can either physically shoot an
arrow (interesting engineering challenge!) or simply display an appropriate message on
the LCD screen. After the robot shoots the arrow, the robot should move to a new square
before getting a new signal. The game is lost when the robot moves into a square with a
pit or the Wumpus, or when the robot goes off the board.
# Resources
* [Rules for the Wumpus World](http://www.cogsci.rpi.edu/~heuveb/Teaching/M&M/WumpusWorld/WumpusWorldRules.doc)
* [Getting Started Technical Document](http://www.cogsci.rpi.edu/~heuveb/Teaching/M&M/WumpusWorld/GettingStarted.doc)
* [Interactive C](http://www.cogsci.rpi.edu/~heuveb/Teaching/M&M/WumpusWorld/InteractiveC_8_0_2.exe)
* [Driver for USB-to-Serial](http://www.cogsci.rpi.edu/~heuveb/Teaching/M&M/WumpusWorld/ProlificDriverInstaller.zip)
* [Codes for Remote](http://www.cogsci.rpi.edu/~heuveb/Teaching/M&M/WumpusWorld/RemoteCodes.doc)
* [Quick Interactive C Tutorial](http://www.cogsci.rpi.edu/~heuveb/Teaching/M&M/WumpusWorld/Tutorial.doc)
* [Sample Interactive C programs](http://www.cogsci.rpi.edu/~heuveb/Teaching/M&M/WumpusWorld/examples.zip) (.zipped; includes sony-ir.icb file)
* [Suggested Weekly Assignment Schedule](http://www.cogsci.rpi.edu/~heuveb/Teaching/M&M/WumpusWorld/WeeklySchedule.doc)
* [Wumpus World Generator](http://wumpus.evanpatton.com/)
* [Instructions for Write-Up](http://www.cogsci.rpi.edu/~heuveb/Teaching/M&M/WumpusWorld/RobotWriteup11.docx)
# Legendary LEGO Robots from years past!
## 2011
## 2010
## 2009
## 2008
## 2006
## 2005


Welcome to your school management system
Students
students
distributed in
schools
schools
Teachers
teachers
teaching for
classes
classes
Subjects
subjects
maths, physics and more
Number of classes per year
Last registrations
#
Name
Forename
Class
Timestamp
No students in this class
id
name
forename
class
timestamp


|
More
Than That
(Backstreet Boys) |
|
I
can see that you've been crying
You can't hide it with a lie What's the use in you denying The words you have at home I heard him promise you forever But forevers come and go Baby he would say whatever It takes to keep you alive Tell the truth between the lines Oh I will love you more than that I won't say those words, then take them back Don't give lonliness a chance Baby listen to me when I say I will love you more than that Baby you deserve much better What's the use in holding on Don't you see it's now or never Just why you can't be friends Baby knowing in the end And I will love you more than that I won't say those words, then take them back Don't give lonliness a chance Baby listen to me when I say (bridge) There's not a day that passes by I don't wonder why we haven't tried It's not too late to change your mind And take my hand, don't say goodbye I will love you more than that I won't say those words, then take them back Oh I will love you more than that I won't say those words, then take them back Don't give lonliness a chance Baby listen to me when I say I will love you more than that Oh I will love you more than that I won't say those words, then take them back Don't give lonliness a chance Baby listen to me when I say I will love you more than that |


ANALYSIS OF METAL MATRIX COMPOSITE STRUCTURES USING A MICROMECHANICAL CONSTITUTIVE THEORY
by
Robert Thomas Arenburg Dissertation submitted to the Faculty of the Virginia Polytechnic Institute and State University
in partial fulfillment of the requirements for the degree of DOCTOR OF PHILOSOPHY in
Engineering Mechanics
APPROVED: J. Ne Reddy, “Chairman . Oo ; . J. Aboudi S. L. Hendricks —. G. Henneke E.R. tHonnson
0. T. Mook -
December, 1988
Blacksburg, Virginia


Coding a SaaS landing page
March 20, 2023
I’ve decided to create a side project to catch up with the latest tech trends, see what’s new in frontend, and experience the thrill of setting up a small SaaS. My first step was to create a landing page, and in this post, I will share my research and results.
Before starting to write the actual software, I did some planning and listed the main features of the system I plan to build using Domain-Driven Design (DDD). Then, I decided to create a small landing page to do some marketing and measure potential during the building process.
While there are many well-known solutions to set up a landing page without coding, such as Wix, I was aware that I had been out of the frontend race for quite a while, and things change fast in frontend. So, creating a landing page could be a great way to practice and catch up with the latest trends.
Researching What’s New in Frontend
Language Choice
As someone who loves the process of learning new things, I’m always on the lookout for the latest and greatest tools in frontend development. Though it may not always be the most productive approach, I find that enjoying the development process is key when it comes to working on side projects. At first, I was captivated by Elm, but I soon realized that it doesn’t have a large following and may have some issues with integrating with the rest of the frontend development world. Additionally, I thought that using a paid template to bootstrap the app development process would be a good investment, and those templates are usually only available for major, popular frameworks.
So, I decided to go with something more industry-wide. This way, I can also refresh my skills, which may come in handy in my daily work. I have previously used all of the major Javascript UI frameworks, including React, Vue, and Angular, but it’s been a while since I’ve used the latter two. My most recent experience with React was about two years ago when I wrote a small geodata visualization app that allowed rendering interactive heatmaps on massive datasets for one of my data science projects. Overall, I enjoyed using React for writing small and medium-sized apps, so I decided to use it again.
After working extensively with dynamically-typed languages, I’ve grown tired of the price you pay for code stability and maintainability in the long run. While dynamic typing is great, static type checkers have become so intelligent that they bring a lot of value with them. Static type checking still makes your code more verbose. In a sense, it increases your development time along with improving software stability, maintainability, and making refactoring easy. As always, it’s all about tradeoffs. Dynamic typing is great as well, but there are no silver bullets. So, I opted for TypeScript. {EDIT - Changes made for better readability, storytelling, grammar and SEO optimization.}
Framework choice
While React is only one part of the solution, I was looking for a more comprehensive framework to help me bootstrap routing, hosting, and optimization. At first, I thought about following the well-trodden path with create-react-app, but then decided to look for a more advanced option. After a quick research, I discovered Next.js, which is an opinionated framework that comes with a set of choices regarding how you structure your app and which routing you use, among other things. As with any framework, if you buy into the framework’s ideology, it can give you a productivity boost.
After going through the starter course, I was impressed with Next.js’s file-path-based routing. Plus, Next.js makes it easy to quickly deploy your app using Vercel. It’s pretty open in terms of changing parts of the framework to your liking and comes with useful plugins like authentication.
Another great feature of Next.js is its capability to quickly create serverless APIs without leaving your frontend project by simply creating a file!  Although I plan to use Go as my primary backend language, this feature will come in handy for quick prototyping or integration glue code.
Next.js can be easily used to build a static website generator, SPA, or a multi-page app, meaning I could use the same framework for developing my landing page and a SaaS UI later on. Overall, their approach is all-encompassing and pretty flexible, so I’ve decided to give it a try.
CSS frameworks
I came to know about tailwind CSS, which is a very interesting take on CSS frameworks compared to Bootstrap or Bulma that I am more familiar with. Traditional CSS frameworks provide you with a set of components and well-crafted pre-defined styles that you can use to build your app. You can customize them to some extent, but they come with their own styles that can be difficult to override.
In contrast, Tailwind takes a different approach:
- No pre-defined components. If you need them, you can use Tailwind UI or other options that build on top of the core Tailwind library.
- You don’t write separate
.css
files. - Instead, you apply lots of pre-created inline classes that Tailwind provides.
- Follow a single source of truth approach where you can see both styling and markup from a single file.
After playing with it for a bit, I’ve enjoyed this approach very much. It is pretty transparent which CSS you will get compared to traditional CSS frameworks. But it still packs a decent productivity boost. The documentation is also pleasant to use. Later on, I will need to build a custom text-editor component that won’t be covered by any existing component frameworks, so it will be a good investment to get familiar with this framework. Tailwind CSS is an instant win for me.
Landing page template
As I’m not a designer, spending lots of time designing a custom landing page isn’t the best use of my time. Instead, finding a template that I can modify will do. Fortunately, there are many templates available for the NextJS and Tailwind combo. For my landing page, I wanted to find something free. Here are some of the options I’ve saved, both free and paid. Maybe this will help you reduce your search time:
- Tailwind Awesome
- Tailwind UI Templates
- Tailwind Landing Page Template by Cruip
- Shine - Tailwind Landing Page Template
- Treact - Tailwind React UI Kit
Waitlist
To add some value to the landing page, I decided to include a waitlist. While it’s possible to create one yourself, I felt that my time would be better spent on the actual software. After reviewing a few solutions, I settled on GetWaitlist. Integrating it into the landing page was simple, and the setup was fast.
The Final Result
You can see the final result here: https://hermesprompt.com/. While it may not be the best landing page ever, that wasn’t the goal. Subjectively, it’s better than many landing pages for funded startups that I’ve seen. In my next post, I’ll focus on generating ideas and building the actual product. If you are interested, join the waitlist!


Alapuzha Beach
Alappuzha is referred to as the Venice of the East which has always enjoyed an important place in the maritime history of Kerala. Presently it is famous for its boat races, backwater holidays, beaches, marine products and coir industry. Alappuzha beach is a popular picnic spot. The pier, which extends into the sea here, is over 137 years old. Entertainment facilities at the Vijaya Beach Park add to the attraction of the beach. There is also an old lighthouse nearby which plays a fascinating sight to the visitors from far and wide.


DEATH BECOMES HER A film review by Too FAT Guys Copyright 1992 by Roger & Me
Roger: Say Roger, isn't Meryl Streep a Serious Actor?
Roger: Yes. Why do you ask?
Roger: I was wondering, why does she keep squandering her talent on these pitiful comedies?
Roger: She tried it once and she liked it?
Roger: Possibly. It's a shame no one else does. Which brings us to her latest film, DEATH BECOMES HER. Streep plays Madeline, a self-consumed actor in the twilight of her career. After a disastrous performance, she steals her old friend Helen's fiancee, Ernest (Bruce Willis). Seven years later, Helen (Goldie Hawn) is still traumatized by her loss and is put into a mental hospital, presumably for depression. There she finds a new purpose in life: Eliminating Madeline. Again seven years later, Helen, looking remarkably well preserved, returns to prey on Madeline and Ernest's crumbling marriage. Madeline, in turn, prays for a miracle cure for her aging, which she finds in the form of an immortality potion.
Roger: Much of the film's humor is derived from the playful things that Industrial Light & Magic can do to immortal bodies. Many of the sight gags come off quite well, and the film gets extra points for its creative use of stairs. I have a penchant for dark and morbid humor, so I enjoyed parts of this movie immensely.
Roger: While I did enjoy some of the outrageous special effects, I think that the film lacks several crucial elements. First, the plot is full of holes, among them, why Helen also takes the magic potion. Second, if there once was a theme in this movie, it seems to have been sacrificed to the Hollywood gods. Or at least fatally obscured.
Roger: Right, unless you count "women are using, lying, vain, bitches" as a theme. I think the intended theme was "beauty is skin deep," but with all the contradictions, the "bitches" theme is all that's left.
Roger: One of these contradictions is particularly offensive. During Helen's depression, she becomes very obese. Amazing special fat-effects aside, the tone of the fat segment is extremely negative. While she is overweight, the shots are low angle closeups of her buttocks and legs, whereas while thin, the camera showcases her radiant smile and cleavage. Fat jokes just don't cut it with me. What did you think of the acting, Roger?
Roger: I found it refreshing to see Bruce Willis get away from his wise-cracking, tough guy roles. Both Goldie Hawn and Meryl Streep were competent, considering the poor source material. Isabella Rossellini, on the other hand, is magnificent in her bit part as a talking pair of breasts. I understand that they needed to provide a source for the magic potion; I fail to understand why she needed to be naked for the role. A few laughs just weren't enough to make up for all these failings. I give this film a thumbs down.
Roger: The movie was humorous enough to entertain me while I was at the theatre.
Roger: Well, that's one thumb down and a mild thumb up. That's all for now -- the tty is closed. -- --- For the latest review by the Two FAT Guys, finger<EMAIL_ADDRESS>.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Self-driving rides
Generate new!
Ride taken:
Ride taken but no points earned:
Ride missed:
Bonus:
Note: Up to 100 randomly selected rides are displayed.
Upload
Visualize Submission
×
Upload input file
File Upload
Upload output file
File Upload


Class methods do not have access to instance methods or instance variables. You can use class variables to store data that belongs to a class, but not to its instances. Class instance variables are available only in class methods, while class variables are available in both class methods and instance methods.
A class variable is prefixed with @@ symbols before its name. Instance methods can access both class methods and class variables. An instance variable is prefixed with just one @ symbol. Class instance variables use the same notation as that of an instance variable. But unlike instance variables, you declare them inside the class definition directly.
You will rarely need to use class variables, and you should very rarely use them to store state. There are only a few cases in which class variables are the right choice, like when you need store data at a class level. You may use them to store application configurations like the name, version, database and other settings. Use instance variables instead of class variables when you don't want your data to be shared across the inheritance chain.


 Media houses has been calling him “Sold out King” and “hand of Midas” to acknowledge his effect informally. It’s about time, V got formally crowned with the title of “Idol with Midas Touch” by Idol Chart polls conducted on the 28th Oct to 3rd Nov.
The survey was conducted among idols who constantly create a buzz for their selling out capacity, in which The bulletproof Boy Scouts' V bagged the title with whooping 43450 votes (51% of the votes) which is more than half of total votes. The survey had a total of 84964 people participating, the results can be found in the 'POLL' menu of the idol chart.
BTS V's selling out power is no joke and he is “Golden Handed Idol King" indeed.