CelOS is an Ubuntu-based Linux distribution that puts 3 main philosophies into practice! Beautiful design, security and ease of use!
Beautiful design:
We aim to have a stunning design, by using the GNOME desktop enviroment and stunning animations, complete with some GNOME extensions and our own "Fluent" theme, we plan to have a beautiful and easy to use desktop.
Security:
We aim to be as secure as possible. Most preinstalled applications come from Flatpak and flathub, a containerised, sandboxed method of Linux application distribution.
Ease of use:
We aim to be a distribution for the majority of people, those who want a beautiful, stable and secure desktop. Flatpak is at the heart of CelOS. The core applications you may be using eg: Firefox, will come from a flathub repository. Any software or games you might want to install (examples include: spotify, discord, steam, minecraft) can be installed right from the terminal with one command! Go here to learn about how you can use flatpak.
We believe that open-source software is the way forward; it brings in positive change to the developing community, as well as aspiring new developers to try their hand in the computing scene. Which is why, like every other Cob:web project, we are allowing open contributions to CelOS, from any user, from any background.
Ready to try CelOS?
Download here!


SmartEdit Integration
Note: Spartacus 3.x is no longer maintained. Please upgrade to the latest version.
Note: Spartacus 3.x was tested with SAP Commerce Cloud versions 1905 to 2105. Spartacus 3.x has not been verified to work with (and is not guaranteed to work with) SAP Commerce Cloud 2211 or later releases.
Note: This feature is introduced with version 1.0 of the Spartacus libraries.
Table of Contents
Prerequisites
For Spartacus to work with SmartEdit, you need SAP Commerce Cloud 1905 (or newer) with the spartacussampledata
installed.
Configuring SmartEdit to Work With a Spartacus Storefront
The SmartEdit feature library is introduced with version 3.2 of the Spartacus libraries. If you are using version 3.2 or newer of the Spartacus libraries, see Configuring SmartEdit to work with Spartacus 3.2 or Newer. If you are using version 3.1 or older of the Spartacus libraries, see Configuring SmartEdit to work with Spartacus 3.1 or Older.
Configuring SmartEdit to Work With Spartacus 3.2 or Newer
The following steps are for configuring SmartEdit to work using the SmartEdit feature library.
-
Build your Angular app, adding Spartacus libraries as normal.
If you are using schematics to build your app, you have the option to install the SmartEdit library at the same time as the core libraries. For more information, see Building the Spartacus Storefront From Libraries.
-
If you did not install the SmartEdit feature library in the previous step, make sure the app is working before continuing. You can then install the SmartEdit library by running the following schematics command:
ng add @spartacus/smartedit
If you install the SmartEdit library manually (that is, without schematics), then you also need to either copy the
webApplicationInjector.js
file fromnode_modules/@spartacus/smartedit/assets
to your application’s asset folder, or else addnode_modules/@spartacus/smartedit/assets
into theassets
array inangular.json
, as shown in the following example:{ "glob": "**/*", "input": "node_modules/@spartacus/smartedit/assets", "output": "assets/" }
-
Update the SmartEdit configuration in your application if you want to replace the default values, which are shown in the following example:
export const defaultSmartEditConfig: SmartEditConfig = { smartEdit: { storefrontPreviewRoute: 'cx-preview', allowOrigin: 'localhost:9002', }, };
If you want to change the value of
storefrontPreviewRoute
orallowOrigin
, you can replace the default configuration by adding the following to your application:provideConfig(<SmartEditConfig>{ smartEdit: { storefrontPreviewRoute: 'your-preview-route-value', allowOrigin: 'your-origin', }, })
-
Ensure that the WCMS Cockpit Preview URL is set correctly by carrying out the following steps:
- In Backoffice, in WCMS > Website > your site, click the WCMS Properties tab.
- Set the WCMS Cockpit Preview URL to match your Spartacus web site. (SmartEdit opens the preview URL in its iframe.)
-
Ensure that the Spartacus site is allowlisted in SmartEdit. The following is one example of how you can do this:
-
Sign in to SmartEdit as the admin user.
-
Click the Settings icon in the top right.
-
In the Configuration Editor, scroll down to
whiteListedStorefronts
and add the exact URL of your Spartacus storefront. For this example, it is["https://localhost:4200"]
.
For more information, see Adding Storefronts to the Allowlist of Permitted Domains in the Configuration Editor on the SAP Help Portal.
-
-
Start your Angular app in SSL mode, as follows:
yarn start --ssl
By starting your app in SSL mode, you avoid an
unsafe scripting
message from the browser.Note: If you start your application without using SSL mode, the two references to
https://localhost:4200
must be changed tohttp://localhost:4200
.
Configuring SmartEdit to Work With Spartacus 3.1 or Older
The following steps are for configuring SmartEdit to work without the SmartEdit feature library.
-
Build your Angular app, adding Spartacus libraries as normal.
Make sure the app is working before continuing. For more information, see Building the Spartacus Storefront From Libraries.
-
Copy the
webApplicationInjector.js
SmartEdit file to thesrc
folder of your Angular app.This file can be found in your SAP Commerce Cloud installation in the following folder:
hybris/bin/modules/smartedit/smarteditaddon/acceleratoraddon/web/webroot/_ui/shared/common/js/webApplicationInjector.js
-
In the root folder of your Angular app, edit the
angular.json
file by addingsrc/webApplicationInjector.js
toarchitect > build > option > assets
. The following is an example:"architect": { "build": { "builder": "@angular-devk build-angular:browser", "options": { "outputPath": "dist/mystore", "index": "src/index.html", "main": "src/main.ts", "polyfills": "src/polyfills.ts", "tsConfig": "src/tsconfig.app.json", "assets": [ "src/favicon.ico", "src/assets", "src/webApplicationInjector.js" ], ...
-
In the
HEAD
section ofsrc/index.html
, add the following line:<script id="smartedit-injector"src="webApplicationInjector.js"data-smartedit-allow-origin="localhost:9002"><script>
Replace
localhost:9002
with the domain of your server.This line tells SmartEdit that Spartacus is allowed to be edited by SmartEdit.
-
Ensure that the WCMS Cockpit Preview URL is set correctly by carrying out the following steps:
- In Backoffice, in WCMS > Website > your site, click the WCMS Properties tab.
- Set the WCMS Cockpit Preview URL to match your Spartacus web site. (SmartEdit opens the preview URL in its iframe.)
-
Ensure that the Spartacus site is allowlisted in SmartEdit. The following is one example of how you can do this:
-
Sign in to SmartEdit as the admin user.
-
Click the Settings icon in the top right.
-
In the Configuration Editor, scroll down to
whiteListedStorefronts
and add the exact URL of your Spartacus storefront. For this example, it is["https://localhost:4200"]
.
For more information, see Adding Storefronts to the Allowlist of Permitted Domains in the Configuration Editor on the SAP Help Portal.
-
-
Start your Angular app in SSL mode, as follows:
yarn start --ssl
By starting your app in SSL mode, you avoid an
unsafe scripting
message from the browser.Note: If you start your application without using SSL mode, the two references to
https://localhost:4200
must be changed tohttp://localhost:4200
.
Troubleshooting
When you are in SmartEdit, if you have not opened any actual Spartacus pages (such as the Homepage), then any issues you might encounter are not caused by Spartacus. For example, on the Your Site page, Spartacus is not actually opened on this page. If you see an issues (such as the site list not containing any base sites), please open a SNOW support ticket with the component set to SmartEdit.
The Perspective Toolbar is Missing
The perspective toolbar will be missing if webApplicationInjector.js
is not loaded. Please see the procedures above for information on how to copy and set webApplicationInjector.js
.
The following example shows the perspective toolbar not appearing when webApplicationInjector.js
is not loaded.
The Preview URL Does Not Match Your Website URL
SmartEdit opens the previewUrl
in its iframe. You can open the previewUrl
in a browser to see whether it works. Although it is recommended to start the app in SSL mode, you are not required to do so. You only need to make sure that the preview URL matches your site URL.
The Page is Not Refreshed When You Add, Edit, or Remove Components
When you add, edit, or remove components, the CMS page data is reloaded. If the page does not refresh, it may be caused by the caching in OCC.
You can verify this by opening the Network tab in your browser (right-click > Inspect), and then editing a component. When you do this, you should see a new request to load CMS page data. Check the response of this request to see whether the edited component data is updated.
If only some operations do not make the page refresh (for example, editing a component causes the page to refresh, but updating an image does not cause the page to refresh), then try downloading the latest webApplicationInjector.js
from the latest patch release of SAP Commerce Cloud and replace the one in your application’s asset folder.
Error Message: Not Allowed to Override This Storefront
If you see an error message that says ... is not allowed to override this storefront.
, it means allowOrigin
is not set correctly. Please see the procedures above for information on how to set allowOrigin
.
Notes:
-
The value of the
allow-origin
query parameter is a comma-separated list of domains. The following is an example:allowOrigin: 'localhost:7000, <IP_ADDRESS>:7000, *.x.y'
-
You must specify a port.
-
You can use an asterisk (
*
) as a wildcard. When using a wildcard, you must adhere to the following rules:- The host must contain at least two subdomains, such as
*.x.y
. - The wildcard can only replace one subdomain. It cannot replace a period (
.
).
- The host must contain at least two subdomains, such as
Your Website is Not in the SmartEdit Allowlist
If you see an error message that says disallowed storefront is trying to communicate with smarteditcontainer
, it means your storefront is not in the SmartEdit allowlist. Please see the procedures above for information on how to add you site to the SmartEdit allowlist.
The SmartEdit Slot Contextual Menu is Missing
For information on how to resolve this issue, see Spartacus GitHub issue #845.


Preparation time
over 2 hours
Cooking time
30 mins to 1 hour
Serves
Serves 8
Lightly oil two round tins 25cm/10in in diameter, 10cm/4in high with olive oil.
Place the flour, salt, oil, yeast and water into a large bowl and mix together until all the flour has been used up by the water.
Tip the dough onto a floured surface and knead for six minutes, then place the dough back into the bowl to prove for one hour.
Preheat the oven to 220C/425F/Gas 7.
Divide the dough into eight equal pieces and roll each piece into a circle so it will just fit into the tin.
Place one in the bottom of one of the tins and spread the chopped green olives over the top evenly.
Place another dough circle on top of the olives and cover with parma ham.
Place another dough circle on the parma and cover with mozzarella.
Rip the basil and place on the top of the cheese.
Place a final dough circle on the top and leave to rise for one hour.
Repeat with the Cypriot fillings and remaining dough circles.
Place both tins in the oven for 30-40 minutes until golden brown.
Remove from the tins once cooled slightly, cut into wedges and serve warm or cold.


B&Y Lamp
Looking for a way to showcase your products, portfolio, services or simply yourself and your work? Look no more, becouse with this stylish & modern demo you can showcase simply anyhting in a modern and clean manner.
Check it outLeathery Goodness
Looking for a way to showcase your products, portfolio, services or simply yourself and your work? Look no more, becouse with this stylish & modern demo you can showcase simply anyhting in a modern and clean manner.
Check it outThe yellow director
Looking for a way to showcase your products, portfolio, services or simply yourself and your work? Look no more, becouse with this stylish & modern demo you can showcase simply anyhting in a modern and clean manner.
Check it outThe woodpecker
Looking for a way to showcase your products, portfolio, services or simply yourself and your work? Look no more, becouse with this stylish & modern demo you can showcase simply anyhting in a modern and clean manner.
Check it out


3
And scouring to the raid at dawn,
4
Then, therewith, with their trail of dust,
5
Cleaving, as one, the centre (of the foe),
6
Lo! man is an ingrate unto his Lord
7
And lo! he is a witness unto that;
8
And lo! in the love of wealth he is violent.
9
Knoweth he not that, when the contents of the graves are poured forth
10
And the secrets of the breasts are made known,
11
On that day will their Lord be perfectly informed concerning them.


Unity ML-Agents Documentation
Getting Started
- ML-Agents Overview
- Installation & Set-up
- Getting Started with the 3D Balance Ball Environment
- Example Environments
Creating Learning Environments
- Making a New Learning Environment
- Designing a Learning Environment
- Learning Environment Best Practices
- Using the Monitor
- TensorFlowSharp in Unity (Experimental)
Training
- Training ML-Agents
- Training with Proximal Policy Optimization
- Training with Curriculum Learning
- Training with Imitation Learning
- Training with LSTM
- Training on the Cloud with Amazon Web Services
- Using TensorBoard to Observe Training


Templafy
$25M
SERIES C
Google's decision to make Meet free for all isn't charity — it's effective marketing
Why we are hardwired to focus on the wrong parts of our product
Animal Crossing: New Horizons player masterfully recreates ‘Hyrule’ from The Legend of Zelda
Life imitating art: Quarantined people remix famous paintings with household items
A Cats butthole cut ‘trailer’ is out — an analysis of its alternative reality
Google's decision to make Meet free for all isn't charity — it's effective marketing
Why we are hardwired to focus on the wrong parts of our product
Animal Crossing: New Horizons player masterfully recreates ‘Hyrule’ from The Legend of Zelda
Life imitating art: Quarantined people remix famous paintings with household items
A Cats butthole cut ‘trailer’ is out — an analysis of its alternative reality
Google's decision to make Meet free for all isn't charity — it's effective marketing
Why we are hardwired to focus on the wrong parts of our product
Animal Crossing: New Horizons player masterfully recreates ‘Hyrule’ from The Legend of Zelda
Life imitating art: Quarantined people remix famous paintings with household items
A Cats butthole cut ‘trailer’ is out — an analysis of its alternative reality
Google's decision to make Meet free for all isn't charity — it's effective marketing
Why we are hardwired to focus on the wrong parts of our product
Animal Crossing: New Horizons player masterfully recreates ‘Hyrule’ from The Legend of Zelda
Life imitating art: Quarantined people remix famous paintings with household items
A Cats butthole cut ‘trailer’ is out — an analysis of its alternative reality
Google's decision to make Meet free for all isn't charity — it's effective marketing
Why we are hardwired to focus on the wrong parts of our product
Animal Crossing: New Horizons player masterfully recreates ‘Hyrule’ from The Legend of Zelda
Life imitating art: Quarantined people remix famous paintings with household items
A Cats butthole cut ‘trailer’ is out — an analysis of its alternative reality
Google's decision to make Meet free for all isn't charity — it's effective marketing
Why we are hardwired to focus on the wrong parts of our product
Animal Crossing: New Horizons player masterfully recreates ‘Hyrule’ from The Legend of Zelda
Life imitating art: Quarantined people remix famous paintings with household items
A Cats butthole cut ‘trailer’ is out — an analysis of its alternative reality
Google's decision to make Meet free for all isn't charity — it's effective marketing
Why we are hardwired to focus on the wrong parts of our product
Animal Crossing: New Horizons player masterfully recreates ‘Hyrule’ from The Legend of Zelda
Life imitating art: Quarantined people remix famous paintings with household items
A Cats butthole cut ‘trailer’ is out — an analysis of its alternative reality
Google's decision to make Meet free for all isn't charity — it's effective marketing
Why we are hardwired to focus on the wrong parts of our product
Animal Crossing: New Horizons player masterfully recreates ‘Hyrule’ from The Legend of Zelda
Life imitating art: Quarantined people remix famous paintings with household items
A Cats butthole cut ‘trailer’ is out — an analysis of its alternative reality
82% OFF
97% OFF
98% OFF
97% OFF
97% OFF
100% OFF


HUMCO ALUMINUM ACETATE (BURROW)- aluminum acetate liquid
Humco Holding Group, Inc.
Disclaimer: Most OTC drugs are not reviewed and approved by FDA, however they may be marketed if they comply with applicable regulations and policies. FDA has not evaluated whether this product complies.
Active Ingredient
Aluminum Acetate 5.3 %
Purpose
Astringent / ant-inflammatory
Use
Asasrtingent used as an antinflammatory wet dressing for the relief of minor irritations of skin conditions such as insect bites, poison ivy, and athlete's foot.
Warnings
For external use only
Avoid contact with eyes ad mucous membranes.
When using this product
Discontinue use if condition worsens, does not improve or if symptoms persist for more than 7 days and consult a doctor.
Keep out of reach of children
In case of accidental ingestion, seek preofessional assistance or contact a poison Control Center immediately.
Directions
For use as a compress or wet dressing; dilute with 10 to 40 parts water, saturate a clean, soft, white cloth (such as a diaper or torn sheet) in the solution, gently squeeze and appply loosely to the affected area. Saturate cloth in solution every 15 to 30 minutes and apply to the affected area. Repeat as often as necessary. Discard remaining solution after use. Do not cover or compress or wet dressing with plastic or other imprevious material.
principal display panel
label
Humco Holding Group, Inc.


--- permalink: /test/progress-marker layout: test ---
Lorem ipsum dolor sit amet consectetur adipisicing elit. Inventore eos nihil cupiditate, expedita quas velit.


Asset Class
The asset class is a set of methods to help with the collection, grouping and displaying of assets (js, css, img, or custom types).
Multiple asset instances
The Asset class supports the use of multiple instances. This might prove useful if you are using themes, where
every theme has its own set of assets, or you are developing a modular application where each module provides
its own set of assets.
In these cases, it would not be handy to have only a single instance and use search paths, since the chances of
a duplicate asset name are quite high, causing your application to load the wrong asset.
You can use the same methods on an asset instance as you would when you the static methods. For the method
definition see the class usage page.
forge($config = array())
The forge method allows you to manually instantiate an asset instance.
| Static |
Yes |
| Parameters |
| Param |
Default |
Description |
| $name |
null
|
Name of the instance requested. If it doesn't exist, it will be forged. If no name is
given, the default instance is returned.
|
| $config |
array()
|
You can pass a custom configuration when forging a new asset instance. The configuration array
has the same structure as the asset configuration file. The custom config will be merged with
a default configuration as documented here and with the
configuration in your asset config file, so you only have to pass values you want changed.
|
|
| Returns |
object - The instantiated asset object. |
| Example |
// instantiate a asset object with a custom search path
$asset = Asset::forge('custom', array('paths' => array('custom/assets/'));
// define some css files
$asset->css(array('header.css', 'footer.css'), array(), 'layout', false);
|
instance($name = null)
The instance method allows you load a named instance of the asset class.
| Static |
Yes |
| Parameters |
| Param |
Default |
Description |
| $name |
null
|
Name of the instance requested. If it doesn't exist, false is returned. If no name is
given, the default instance is returned.
|
|
| Returns |
mixed - The named asset instance or false if the instance does not exist. |
| Example |
// instantiate a named asset object with a custom search path
Asset::forge('custom', array('paths' => array('custom/assets/')));
// define some css files using the defined instance
Asset::instance('custom')->css(array('header.css', 'footer.css'), array(), 'layout', false);
|
The static methods of the Asset class will also use the default instance. Remember this if you
alter the configuration (for example search paths) of the default instance!
Adding custom asset types
The asset instance allows you to add custom types, so you can have it render other files
or tags than only CSS, JS or IMG tags.
add_type($type, $path = null, $renderer = null)
The add_type method allows to add custom types to be rendered by the Asset
class at runtime.
| Static |
No |
| Parameters |
| Param |
Default |
Description |
| $type |
null
|
Name of the type you want to be able to render as part of your View output.
You could for example define the type 'youtube' to have Asset render the
HTML needed to embed a youtube video on your page.
|
| $path |
null
|
If relevant for your type, the path from which the assets have to be loaded.
In the example of 'youtube', you won't need a path, as the assets will be
loaded from an internet URL.
|
| $renderer |
null
|
A closure that will render your type. The closure will get three parameters
passed: the name of the file to render, an array of attributes, and a boolean
whether or not there is inline display required. Note that not all of this
could be relevant for your type. For example, javascript can be loaded from file
or rendered inline between script tags. An image however can only be rendered as
an "img" tag, you can not include it inline in the HTML.
|
|
| Returns |
string - The rendered HTML. |
| Example |
// create a youtube renderer on the default asset instance
Asset::instance()->add_type(
'youtube',
null,
function ($file, $attr, $inline) {
// simple example, just renders an iframe
return '<iframe width="420" height="315" src="http://www.youtube.com/embed/'.$file.'?autoplay=1"></iframe>';
}
);
// render a youtube movie
echo Asset::instance()->youtube('XGSy3_Czz8k');
|


John Grisham's The Rainmaker
A movie review by Michael J. Legeros Copyright 1997 by Michael J. Legeros
(Paramount) Directed by Francis Ford Coppola Written by Francis Ford Coppola, based on the novel by John Grisham Cast Matt Damon, Claire Danes, Danny DeVito, Jon Voight, Danny Glover, Mary Kay Place, Virginia Madsen, Mickey Roarke, Roy Scheider, Andrew Shue, Dean Stockwell MPAA Rating "PG-13" Running Time 140 minutes Reviewed at General Cinemas at Pleasant Valley, Raleigh, NC (15NOV97)
==
Frankly, the *last* thing that I wanted to see on a Saturday night was yet another John Grisham flick, about yet another young law dude (Matt Damon) tackling his first big case. (This is, what, the *third* such story in a row, after THE CHAMBER and A TIME TO KILL?) Imagine my surprise to find adaptation #6 possessing a strong, often broadly played comedic streak. Sure, the outcome is predictable, duh, but the road to get there is refreshingly lighter-hearted. Francis Ford Coppola, who wrote and directed, serves up ample humor at every turn, from those de- liriously tacky Memphis locales to the occasional bit of outright slap- stick. (The scene-stealer, here, is DeVito. In a smaller role, Mickey Rourke is oily fun. And don't miss Dean Stockwell's delightful hacking- cough cameo.) The courtroom scenes have the requisite surprises, but not nearly enough dramatic punch. The tone is breezy, almost whimsical; the pacing is methodical, though we could use a bit more urgency toward the end. Trickier is the subplot involving Claire Danes as an abused young wife (and potential love interest), but the filmmakers pull it off. (That is, except for Elmer Bernstein's score, that too often in- trudes upon the couple's quiet time.) And, as the main character real- izes by the end of the movie, there's no small irony in a story about an ambulance-chasing, money-grubbing law firm going after a claims-denying, money-grubbing insurance agency.
Grade: B+
-- Mike Legeros - Movie Hell http://www.nonvirtual.com/hell/
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


Also a Cyber Security Enthusiast ,with a bug of entrepreneurship.
"Lot of things on the way"
Name: Aryan Singh
Address: Sitapura industrial area,vidhani Jaipur 303905
Phone: (+91)-9554574976
Jaipur- India
april,2019 - Present
Jaipur - India
2018 - Present
Gorakhpur-Uttar Pradesh
2018
Gorakhpur-Uttar pradesh
2016


Vegas police: 4 kids in house during couple’s murder-suicide
LAS VEGAS (AP) - Las Vegas police say four children ages 3-9 were in a home when a man fatally shot a woman and then himself.
Lt. Ray Spencer said the shooting occurred Friday night after a domestic argument between the man and woman who Spencer said were in a relationship of some kind and who apparently lived at the home.
Spencer said police didn’t immediately know the relationships between the adults and the children but said the children were “physically fine” and being reunited with “other biological parents.”
TOP STORIES
'There will be blood': Maher sees civil war breaking out if we don't 'learn to live with each other'
George Soros group asks Fox News to ban guest who claimed billionaire controls State Dept.
Nancy Pelosi goes for slam dunk -- and crashes to court
He said a fifth child had gone to a store with a grandmother who called 911 and returned to the home after she called the house and was told by one of the children that the two adults had been shot.
No identities were released.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


--- author: Steve Gill categories: app date: '2011-04-01 23:44:32' permalink: /2011/04/01/phonegap-meetups-everywhere/ slug: phonegap-meetups-everywhere status: publish title: PhoneGap Meetups Everywhere! type: post format: html ---
Hey Everyone,
I wanted to let you all know that the PhoneGap meetups are starting to pop up everywhere! Check out this map showing where they have already started and sign up to the one nearest to you!
If you are interested in starting a meetup, read my earlier blog post about starting a PhoneGap meetup.
Cheers, -Steve @StevenGill97


SUNSHINE --------
An alcoholic elixer known as "A Taste of Sunshine" brings wealth and social standing to the Jewish family Sonnenschein (German for sunshine) under the helm of Emmanuelle (David De Keyser, "Yentl"). Ralph Fiennes plays his son Ignatz as well as two subsequent generations as the family is buffetted through almost a century of turbulent Hungarian history.
LAURA:
Director Istvan Szabo ("Mephisto") cowrote this epic with famed playwright Israel Horovitz ("Growing Up Jewish") which takes its family through the end of a monarchy, the subsequent decline into fascism (and the Holocaust) and the reactionary institution of communism. Ignatz makes his father proud by studying law and becoming a judge loyal to the crown, while his brother Gustave (James Frain, "Where the Heart Is") becomes a doctor of more liberal politics. Then there's Valerie (Jennifer Ehle, daughter of Rosemary Harris who takes on the role as the character ages), the orphaned daughter of Emmanuel's brother whom Emmanuel adopts and raises as his own. The sexual spark between Valerie and Ignatz causes grief to their parents while making Gustave jealous, but it will not be denied and the two marry. However, Valerie's political leanings are aligned with Gustave's and eventually she leaves one brother for the other. Ignatz also changes his family name to the more Hungarian (and less Jewish) Sors (which means destiny) at the suggestion of the chief justice and Valerie and Gustave follow suit, much to their parents' sadness.
 He too has women problems as his sister-in-law Greta (Rachel Weisz, "The Mummy") bullies him into an affair ('We're a lucky family - everyone loves everybody else,' Adam comments wryly.). When the Nazi regime rises and rules governing Jewishness are heard on the radio, the Sonnenscheins/Sors family qualify for special standing due to war medals and that Olympic gold, but the family still ends up in the death camps, which only Adam's son Ivan (Fiennes) and his grandmother Valerie (Harris by this point) survive.
Ivan becomes a pawn of the communist movement, although he has a good man, Andor Knorr, as a mentor. Like his father and grandfather before him, Ivan has a messy love life, becoming embroiled in an affair with the wife (Deborah Kara Unger, "The Game") of a high ranking official. When the communist party begins to turn in upon itslef and Knorr is targetted, Ivan is forced to condemn his old friend.
The story is always interesting, yet is harmed by its willingness to stoop to soap opera level. Even more serious of a flaw is that each generation played by Fiennes is essentially a weak, comprised man overpowered by the women who love him. The three hour film seems too short in that scenes are abbreviated while we barrel into the next one in order to cram all the events in. The film plays like a six hour miniseries that's been editted for theatrical release.
There are some standout performances, chiefly Jennifer Ehle ("Wilde," "Bedrooms and Hallways") who resembles a young Meryl Streep in both looks and talent. Her strong character is never compromised as she searches for truth and beauty in life. Rosemary Harris picks up the reins admirably, but the film suffers when Ehle leaves the screen. (A far less smooth transition is achieved when John Neville ("The Adventures of Baron von Munchausen") takes over for Frain, whom he resembles not in the slightest).
Also exceptional is David De Keyser as Emmanuel, the good father whose children perplex and try him while also filling him with pride. Miriam Margolyes ("The Age of Innocence") gives another great turn as his embittered wife Rose who loves her own sons over her niece and resents a similar cousin who once tempted her own husband. Fiennes himself is solid, creating three distinct characters whose bloodlines demand they still resemble each other, but his performance is passionless. William Hurt stands out as the decent Knorr, remaining honorable as he's besmirched by his own party. Rachel Weisz is appropriately hiss-worthy as Adam's selfish lover while Molly Parker ("Kissed") is bland as his wife.
The film looks stunning, with cinematography by Lajos Koltai ("Mother") utilizing a marvelous color scheme. The first hour of the film is bathed in golds and ambers, reflecting the "Taste of Sunshine" upon which the family is based, as well as nostalgia for a lost age. The subsequent two hours begin with the blinding whites of the fencing sport, which evolves into the reds of Communism and sickly greens of institutionism - the three colors of the oft-seen Hungarian flag.
B
ROBIN:
Ralph Fiennes stars as father, son and grandson in the multi-generation drama by veteran Hungarian filmmaker Istvan Szabo ("Mephisto," "Colonel Redl") in the epic family film, "Sunshine." The story is told by grandson Ivan Sonnenschein (which translates to the "Sunshine" of the title) and begins the tale of how Great-great-grandfather Emmanuelle built his fortune using a secret family recipe for a marvelous elixir called "A Taste of Sunshine." However, his sons Ignatz (Fiennes) and Gustav (James Frain) refuse to follow in his footsteps and seek more intellectual pursuits - Ignatz becomes a judge, while Gustav pursued a career in medicine.
The family fable focuses on the ambitious Ignatz Sonnenschein as he abandons his Jewish heritage in favor of advancing himself in the Hungarian Empire's judicial system. His father is aghast when Ignatz changes his name to the more Christian sounding Sors and announces his amorous intentions for his cousin (almost a sister) Valerie. Ignatz's loyalty is to his emperor, not to his family, and he forsakes his Jewish past for personal advancement. His conservatism backfires, though, as the Europe is thrust into the throes of The Great War and beyond. When Communism rears its ugly head, Ignatz falls from grace with the ruling regime and becomes a mere pawn in his country's political upheaval.
As Ignatz fades from the picture, his son, Adam (Fiennes), develops into an outstanding athlete. He continues his father's denial of their Jewish faith, converting to Catholicism in order to compete on the restricted national fencing team. When he wins the gold medal at the 1936 Munich Olympics, his future in the again conservative regime seems assured. Then, with the rise of the Nazis to power in Europe, anti-Semitism rages and the Jewish Laws are issued. Adam steadfastly maintains that his exemptions - converted Catholic and national hero - protect him and his family from the fate awaiting Europe's Jews. In shock, Adam and his son, Ivan, are shipped to a concentration camp where Adam's demands that he is exempt and should be released end, literally, in his chilling death.
Ivan (Fiennes) survives the camp and, as a young man, becomes a police investigator and embraces the Communist Cause as the savior for the survivors of the Holocaust and Hitler's deadly fascism. But, changing masters does not create the freedom that Ivan expected as the communist leaders, under the thumb of Josef Stalin, reprise the same brutal repression as Hitler's henchmen. Ivan, through the influences of his old grandma (Valerie, played in later years by Rosemary Harris) and aging uncle Gustav (John Neville), embraces his Hebrew past and rejects, even subverts, the communist oppression of the Hungarian people. The final straw for the young man is when he is ordered to interrogate and expose his friend and mentor, Andor Korr (William Hurt), bringing the family tale full circle.
"Sunshine" is an ambitious film that spans decades, with the concentration on Fiennes's several lives. The political and personal lives of each Sonnenschein lad are influenced by the whims of history as one regime replace another, each with a promise of a better life for its citizens. The promise is never kept, though, and the people are mere duckpins in the political game as conservative regime replaces liberal, then communist replaces fascist, ad infinitum. The political scope of the film is impressive in it span of time and detail. The upheavals that occur through Hungary's history are depicted with accuracy, starting with the decaying opulence of the Austria-Hungarian Empire of Franz Josef.
When World War One is thrust upon the countries of Europe, the political fabric is torn asunder and traditional ways are destroyed forever. Chaos takes control as followers of the left and right vie with each other to take control. Communism takes command of Russia, while the rise of the Nazis grips Germany and, eventually, the rest of the continent. Hungary sways first in one direction, then the other, as the left and right struggle to take over the government. This strife is shown in parallel as each of the Sonnenschein boys makes his mark on their individual generations, trying to garner favor from the powers that be.
While Ralph Fiennes is the nominal star of the film, it is really an ensemble effort with some outstanding performances. Fiennes puts a unique spin on each of his characters and does an impressive job of making each one different. It's a big creative challenge that the actor handles well enough, but there is a flatness that permeates all three perfs. More impressive is the pair of performances by the actresses who portray Valerie as, first, a young lady, and later, an old woman. Jennifer Ehle is cast as Valerie the younger who becomes the lover and wife of Ignatz. Ehle outshines Fiennes (and everyone else) in every scene she is in, coming across as smart, independent, confident and capable. Rosemary Harris, Ehle's real-life mother, plays Valerie in her twilight years and carries forth the strengths developed by the younger Val. These two ladies are the best things in "Sunshine."
The rest of the large cast provides the requisite depth to their respective roles, but are all so briefly presented that there isn't much time to develop each character. Of the others, William Hurt stands out as the honest and trusting Andor. He believes that his country is finally ready to care for its people, only to have his ideals smashed by the brutal oligarchy of the communists. His downfall also reps a significant turning point for Ivan.
There is depth in the screenplay by Szabo and Hungarian playwright Israel Horowitz and they have no trouble in filling the film's 180 minute run time with its three interlocking tales. But, 3 hours is a big investment of time for a moviegoer and Fiennes does not give a compelling enough performance to warrant the time for most. It's not the type of film I can "recommend" but I don't regret seeing it, either. It's an enigma.
Tech credits are first rate with Lajos Koltai providing the lush photography that helps carry the sought after period feel. Costume, by Pedro Moreno, and set design, by Attila Kovacs, recreate, nicely, the flow of Hungarian history over the last century. The score, by Maurice Jarre, suits the mood of the film.
I give "Sunshine" a B.
For more Reeling reviews visit www.reelingreviews.com
<EMAIL_ADDRESS><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


Migrating a Legacy App to Symfony
Melbourne Symfony2 Meetup - Nov 2015
Tom Corrigan /
@tommygnr
About Me
Lead Developer at
EstimateOne
Co-Founder of
RosterCloud
About EstimateOne
Started in 2008
Last year $53 billion of construction work was posted on EstimateOne.
#1 Position in Australia
Just Launched in New Zealand
Subcontractor noticeboard
Builder portal
Sounds good so far
Except
The codebase is as old as the app
Lots of bad practices
Servers are hand configured, running different OS versions
Business Challenges
Write the amazing new app while maintaining the existing product.
Migrating data from the old app to the new
Make the migration a win for customers, not just developers
Why Symfony2?
Team has PHP expertise
Symfony2 is best in class PHP framework
Take advantage of the ecosystem
The team
3 Devs + 1 part time dev ops + 1 technical CEO
Andrew - Technical CEO
Rami - Dev
James - Dev
Tom - Dev
Will - DevOps
Servers - Prod
Servers - Stage
The Plan
Keep a largely similar web interface
All the hard work should be behind the scenes
Customers like the app - developers don't
Migration script
772 commits, 6000 lines in one file!
Extract/transform/load 35GB data.
Biggest table had 90million rows
xhprof/uprofiler
What we did well
Wrote and tested a migration playbook - 10 pages, all the nitty gritty
Optimised the heck out of the slow stuff
ETL
Indexing ~30Gb data in elasticsearch
What we didn't do well
Follow the migration playbook
Get enough sleep
Delay launch until we were ready!
What worked
Capistrano
Slack
Ansible + Vagrant
PHPStorm
Ditching PHP
Ditching SQL dumps
Code Review
Continuous Integration
GitHub
What worked
Capistrano
$ bin/cap prod deploy
Notifies slack channel deployment started
Checks build status with GitHub - if it's not green deploy aborts
Updates code on all web servers, composer install etc
Runs migrations
Builds assets with gulp etc
Sends deploy success notification to slack
Reloads php-fpm for 0 downtime deploy
What worked
Slack
No more productivity killing interruptions
Searchable archive
Gifs
Integrations
Everybody can see I'm deploying
Everybody can see James broke the build
Everybody can see the uptick in sentry errors when Rami deployed the broken build
What worked
Ansible + Vagrant
$ ansible-playbook playbook.yml
Integrates extremely nicely with vagrant
Rolling out config changes is as easy as deploying code changes
prod/dev parity - not a single issue in production that slipped through due to a different dev environment
Anyone can understand and reason about our server infrastructure
Changes to production environment can be easily tested locally
What worked
PHPStorm
I used to hate IDEs - not anymore
The symfony2 plugin is amazing
Knows every service
Crazy good code completion
Cheap!
What worked
Ditching PHP
There are some things you shouldn't use PHP for
Creating 1.5Gb zip archives is one of them
Node.js to the rescue
What worked
Ditching SQL dumps
Used to backup via sql dumps (we skipped the big tables to speed it up) 45 mins
Importing sql dumps to dev even more painful 1.5 - 2 hours
Innobackupex does a file level backup
Can sync a 35GB database from prod to local dev in ~40mins
What worked
Code review
Every piece of work, no matter how small, gets reviewed
We catch multiple bugs every week
Code quality much higher
Coding standards are maintained
Productivity is higher too!
What worked
Continuous integration
We have 2 functional tests! - Have caught 4 bugs this way!
50 unit tests - no bugs yet, but greater confidence in refactoring
We need to double down here
Scope to add
coding style checks
Checks for missing migrations
Performance tests (eg too many queries on a page)
Cross browser testing
What worked
GitHub
Bitbucket sucked
26 weeks ago is when we switched to github
We didn't realise how much we hated bitbucket
What didn't work
Starting from scratch
Time estimates
Premature optimisation
Low spec iMacs
BitBucket & HipChat
What didn't
Start from scratch
The first attempt was a rewrite and reimagining of everything
As is typically the case when you try such things - it failed
What didn't
Time Estimates
Not a good look for a company called EstimateOne!
Initial prediction, launched late december 2014.
Missed every date we set up to late July - so we stopped setting them
Finally launched September 26
What didn't
Scope creep and premature optimisation
Don't build it til you need it
We still have entities that we haven't used.
Features were added then ripped out (morale killer)
What didn't
Low spec hardware
Our iMacs had mechanical hard disks and 8Gb ram
Running multiple vagrant machines + PHPStorm was excruciating
Don't skimp on something you're using 35-40 hours a week
What didn't
Atlassian products
HipChat: ew
Bitbucket: Recall productivity gains
I won't be buying Atlassian shares
What's next
Statsd
Elasticsearch/logstash/kibana
New products
Questions


Earn points by producing resources. Each resource is worth 100 points. Points are multiplied by Goal Zero, which equals the number of turns you've played without an incident happening.
The game runs for two weeks and is broken down into two episodes. Episodes consist of seven turns each. A turn lasts 24 hours.
Ripple Effect is a collaborative game, so you'll do better if you communicate and collaborate. How you organize this is up to you. Your team consists of office players and frontline players. What players can do depends on their roles.
At the start of each turn, your team gets a shared pool of actions for office players, equal to four times the number of office players in the team, and a shared pool of actions for frontline players equal to two times the number of office players in the team. There is no limit to the number of actions a single player can spend.
Each office player runs a station with a unique safety and production quality profile. Office players can do the following things:
All these things cost one action, except resource production, which is free.
Frontline players don't have their own stations, but can do the following things to support the office players in their team:
All these things cost one action.
At the start of each turn, office players may receive an event. Events modify certain aspects of the game, either for you or for your whole team. Note that frontline players can see what an office player's event for the next turn will be.
As an office player, there are two important aspects of the game you must manage: your station's safety, and its production quality.
Your station's safety is represented by a stack of eight tokens. Each token is either blank or a risk. To get a partial view of your stack's composition, you can inspect safety. To decrease the number of risks in your safety stack, you can improve safety.
Each time you inspect safety, your safety stack is shuffled and half of it is revealed. Thus, inspecting multiple times will provide you with more insight. Note that frontline players can also inspect the safety of office player stations.
Each time you improve safety, a blank token is added to your safety stack, it is shuffled and a random token is removed.
Your station's production quality is represented by a stack of eight tokens. Each token is either blank or a resource. To get a partial view of your stack's composition, you can inspect production quality. To increase the number of resources in your production quality stack, you can improve production quality.
Each time you inspect production quality, your production quality stack is shuffled and half of it is revealed. Thus, inspecting multiple times will provide you with more insight.
Each time you improve production quality, a resource token is added to your production quality stack, it is shuffled and a random token is removed.
To produce resources, you must plan at least one resource production unit and may optionally place temporary barriers. For each resource production unit, one token will be drawn from your production quality stack and from your safety stack. An additional token is drawn for each resource encountered as well as for each risk, until only blanks are drawn or a stack is empty.
2 resources and 3 blanks
2 risks and 3 blanks
2 barriers
Each placed temporary barrier prevents one risk from turning into an incident. Temporary barriers are lost after resource production regardless of how many risks were encountered.
You score points for your resources as long as no incident happens. If an incident does happen, you do not score any points and your goal zero is reset.
After resource production, your station's safety and production quality experience wear. A risk token is added to the former and a blank token is added to the latter. Both stacks are shuffled and a random token is removed from each.
Continue


Channel Plots
Hold on... It might take a few seconds to load the plots depending on how big your data is.
$contentphys2BIDS Output Directory
$tree
Hold on... It might take a few seconds to load the plots depending on how big your data is.
$content$tree


Seattle Adventure Story
Our Team
Welcome!
Let's embark on an exciting adventure. You will get to choose where you go and what you do.
First, what is your name?
Let's go!


AMERICAN DREAMER A film review by Steve Rhodes Copyright 1996 Steve Rhodes
RATING (0 TO ****): ***
My wife rented one of her favorite old movies for us to watch again, the 1984 comedy and fantasy called AMERICAN DREAMER. If you like romantic fairy tales and light hearted comedies, then you may find this is the simple sort of fable perfect for a rainy day.
Cathy Palmer (JoBeth Williams) is a housewife and would be writer. Her favorite books are the Rebecca Ryan series. Rebecca is a brilliant international spy who is fluent in five languages and is a martial arts master. Cathy dreams of being Rebecca. Who among us has had not similar dreams?
One day she enters a writing contest where the author who writes in a style closest to that of the Rebecca Ryan novels will win a trip to Paris where Rebecca is based. Cathy wins, but her controlling husband Kevin (James Staley), who claims he is too busy at work to join her, informs her "It would be selfish, childish and irresponsible to go, but I'm not going to tell you not to go. I'm going to leave that decision up to you."
Her husband is a cliche, but this is a comedy. When they are laying in bed at night, she wants to make love, but he says he has "accounts," and so at first he declines. He has their bed littered with his paperwork ("accounts") from the office. He even has an electric pencil sharpener beside him so that he can grind up a fresh one without leaving their bed.
Needless to say, she ignores her husband and heads off by herself to Paris. Once there she has a feeling of genuine exhilaration with her new success and independence. The fun starts when she gets hit on the head in an accident. When she wakes up, you guessed it, she is convinced that she is Rebecca Ryan.
She tells people at the Embassy ball in Paris that, "I'm Rebecca Ryan, and I can drink any man here under the table." She does. She even quotes Nietzsche ("What doesn't destroy me makes me stronger") in the original German to the people she meets. The show gets really loony at this point, but Williams plays the role with great panache and with her good sense of comedic timing pulls it off brilliantly. I love watching Williams. Makes you want to go live your dreams.
Along the way she meets people whom she is convinced are other characters from the novels. Chief among these is Victor Marchand (Tom Conti). Conti, who was good during this period of his acting career, is sweet here. His main purpose is to be a foil to Williams.
AMERICAN DREAMER was directed by Rick Rosenthal and written by David Greenwalt and Jim Kouf based on a story by Ann Biderman. The script is lighted hearted and funny, and the director's pacing is zany. The success of the show, however, should be credited to Williams. Comedy is a personal taste, and for me this show is a fun romp.
AMERICAN DREAMER runs about an hour and a half. It is rated PG for reasons of which I am not quite sure. There is no sex, nudity, violence or bad language. It would be fine for any kid old enough to be interested in a comedy featuring adults. I recommend this little picture to you and give it ***.
**** = One of the top few films of this or any year. A must see film. *** = Excellent show. Look for it. ** = Average movie. Kind of enjoyable. * = Poor show.  Totally unbearable.
REVIEW WRITTEN ON: May 25, 1996
Opinions expressed are mine and not meant to reflect my employer's.
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


CASE NO.: Writ Petition (civil) 182 of 1996 PETITIONER: M. C. MEHTA Vs. RESPONDENT: KAMAL NATH & ORS. DATE OF JUDGMENT: 15/03/2002 BENCH: M.B. Shah & Doraiswamy Raju JUDGMENT:
RAJU, J.
The above matter has been set down for hearing before us pursuant to the orders passed by this Court (Justice S.Saghir Ahmad and Justice Doraiswamy Raju) on May 12, 2000 and the consequent Notice issued to the Executive Director, M/s Span Motels Pvt. Ltd. at Manali, and the Executive Director, Span Motels Pvt. Ltd., Operations Headquarters at New Delhi, calling upon them to show cause as to why in addition to damages, exemplary damages be not awarded for having committed the various acts set out and enumerated in detail in the main judgment reported in M.C. Mehta vs. Kamal Nath & Others [(1997)1 SCC 388] wherein it was held as hereunder:
"39. We, therefore, order and direct as under:
1. The public trust doctrine, as discussed by us in this judgment is a part of the law of the land.
2. The prior approval granted by the Government of India, Ministry of Environment and Forest by the letter dated 24.11.1993 and the lease deed dated 11.4.1994 in favour of the Motel are quashed. The lease granted to the Motel by the said lease deed in respect of 27 bighas and 12 biswas of area, is cancelled and set aside. The Himachal Pradesh Government shall take over the area and restore it to its original-natural conditions.
3. The Motel shall pay compensation by way of cost for the restitution of the environment and ecology of the area. The pollution caused by various constructions made by the Motel in the riverbed and the banks of River Beas has to be removed and reversed. We direct NEERI through its Director to inspect the area, if necessary, and give an assessment of the cost which is likely to be incurred for reversing the damage caused by the Motel to the environment and ecology of the area. NEERI may take into consideration the report by the Board in this respect.
4. The Motel through its management shall show cause why pollution fine in addition be not imposed on the Motel.
5. The Motel shall construct a boundary wall at a distance of not more than 4 metres from the cluster of rooms (main building of the Motel) towards the river basin. The boundary wall shall be on the area of the Motel, which is covered by the lease dated 29.9.1981. The Motel shall not encroach/cover/utilize any part of the river basin. The boundary wall shall separate the Motel building from the river basin. The river bank and the river basin shall be left open for the public use.
6. The Motel shall not discharge untreated effluents into the river. We direct the Himachal Pradesh Pollution Control Board to inspect the pollution control devices/treatment plants set up by the Motel. If the effluent/waste discharged by the Motel is not conforming to the prescribed standards, action in accordance with law be taken against the Motel.
7. The Himachal Pradesh Pollution Control Board shall not permit the discharge of untreated effluent into River Beas. The Board shall inspect all the hotels/institutions/factories in Kullu-Manali area and in case any of them are discharging untreated effluent/waste into the river, the Board shall take action in accordance with law.
8. The Motel shall show cause on 18.12.1996 why pollution fine and damages be not imposed as directed by us. NEERI shall send its report by 17.12.1996. To be listed on 18.12.1996."
On being served with a Notice dated 14.12.1996, the matter was heard on 19.12.1996, when this Court (Justice Kuldip Singh and Justice S. Saghir Ahmed) passed the following order:
"Pursuant to the above quoted direction NEERI has filed its report. A copy of the report was given to the learned counsel for the Motel yesterday. Show cause notice to the Motel has been given on 2 counts (i) why the Motel be not asked to pay compensation to reverse the degraded environment and (ii) why pollution fine, in addition, be not imposed. Mr. H.N. Salve, learned counsel appearing for the Motel states that he intends to file counter to the report filed by the NEERI. He has asked for short adjournment. We are of the view that prayer for adjournment is justified.
We, however, make it clear that this Court in the judgment dated December 13, 1996 has found as a fact that the Motel by constructing walls and bunds on the river Banks and in the river Bed, as detailed in the judgment, has interfered with the flow of the river. The said finding is final and no argument can be permitted to be addressed in that respect. The only question before this Court is the determination of quantum of compensation and further whether the fine in addition be imposed, if so, the quantum of fine."
[Emphasis supplied] When the matter came up for hearing on 4.8.98, the State of Himachal Pradesh was directed to examine the Report submitted by NEERI and also submit its own Plan of Action, too. Since, it was felt that the various owners of properties along the river banks would be benefited by the plan that is prepared, they should also be heard before any action is taken on the basis of such plan. The suggested plan and list of owners of properties were directed to be filed and thereupon Notices were also issued to them, in due course. On 16.3.99, Notice was issued to the Ministry of Environment, Government of India, to indicate their response to the Action Plan submitted by the Government of Himachal Pradesh on 21.12.98, wherein it was also stated that they are not possessed of sufficient financial means to implement their own action plan unless the Government of India provides them necessary finances. On 3.8.99, it was ordered that the larger issue regarding Action Plan will be considered later and the matter will be taken to decide the question relating to pollution fine, if any, to be imposed on the 1st respondent. On 28.9.99, the statement of Mr. Salve, learned counsel on behalf of the respondent, that M/s Span Motels (P) Ltd. was prepared to bear their fair share of the project cost of ecological restoration was recorded, and directed the same to be submitted in writing. On 19.01.2000, it was also ordered that the question of apportionment of cost of restoration of ecology as also the question of pollution fine will be considered by the Court on the next date of hearing. At the hearing on 29.2.2000, Shri G.L. Sanghi, Senior Advocate, appearing for M/s Span Motels (P) Ltd., challenged the legality of the proposed levy of fine, otherwise than through the manner envisaged under the relevant pollution laws by resorting to prosecution before criminal court and after a fair trial therefor. Mr. M.C. Mehta, apart from making submissions, was permitted to submit a note in response to the submissions of Shri G.L. Sanghi.
On a consideration of the respective stand on behalf of the parties on either side, by a judgment dated 12.5.2000, reported in 2000 (6) SCC 213, after adverting to the various laws relating to the prevention and control of pollution and for protection of environment, it was held as follows:
"Thus, in addition to the damages which have to be paid by M/s Span Motel, as directed in the main judgment, it cannot be punished with fine unless the entire procedure prescribed under the Act is followed and M/s Span Motel are tried for any of the offences contemplated by the Act and is found guilty.
The notice issued to M/s Span Motel why pollution fine be not imposed upon them is, therefore, withdrawn. But the matter does not end here.
Pollution is a civil wrong. By its very nature, it is a Tort committed against the community as a whole. A person, therefore, who is guilty of causing pollution has to pay damages (compensation) for restoration of the environment and ecology. He has also to pay damages to those who have suffered loss on account of the act of the offender. The powers of this Court under Article 32 are not restricted and it can award damages in a PIL or a Writ Petition as has been held in a series of decisions. In addition to damages aforesaid, the person guilty of causing pollution can also be held liable to pay exemplary damages so that it may act as a deterrent for others not to cause pollution in any manner. Unfortunately, notice for exemplary damages was not issued to M/s Span Motel although it ought to have been issued. The considerations for which "fine" can be imposed upon a person guilty of committing an offence are different from those on the basis of which exemplary damages can be awarded. While withdrawing the notice for payment of pollution fine, we direct a fresh notice be issued to M/s Span Motel to show cause why in addition to damages, exemplary damages be not awarded for having committed the acts set out and detailed in the main judgment. This notice shall be returnable within six weeks. This question shall be heard at the time of quantification of damages under the main judgment."
Shri G.L. Sanghi, learned Senior counsel and Shri Rajiv Dutta, Senior counsel, were heard for M/s Span Motels Pvt. Ltd. Mr. M.C. Mehta, Shri Vijay Panjwani for Central Pollution Control Board, Shri N.C. Kochhar for State of Himachal Pradesh, and others were heard. Both Shri G.L. Sanghi and Shri N.C. Kochhar, took us in great detail to the relevant portions of the pleadings, the various orders passed on different occasions and the reports submitted by the Central Pollution Control Board as well as by NEERI and the action plan submitted by the State of Himachal Pradesh. The counsel for Central Pollution Control Board also explained the tenor of the report submitted by it apart from inviting attention to Section 24 of the Water (Prevention & Control of Pollution) Act, 1974.
We have carefully considered the submissions made by them in the light of the materials on record. The sum and substance of the stand taken for M/s Span Motels (P) Ltd., is that the action taken and construction works executed by them at heavy cost was meant to protect not only their own property but the property of the State and the same was also in the interests of those on the basin and banks of both sides of the river Beas and a perusal of the remedial measures suggested in the technical reports noticed above would go to show that they have only executed such nature and type of works which now are suggested for execution in those reports as protective measures and, therefore, they cannot be held guilty of having committed any illegalities and interfered with or endangering the environment or ecology in the place to warrant the levy of exemplary damages against them. In pursuing such a stand the repeated endeavor was to reiterate that M/s Span Motels (P) Ltd. could not be said to have committed any illegal acts, when they really approached all the authorities concerned for effective action and even obtained necessary permissions for executing those necessary protective measures and works, at a stage when the authorities who are obliged themselves to undertake such works were feeling helpless for want of funds to undertake them. Finally, it was contended that they have already spent considerable sum of their own money for the protective and relief measures undertaken by them and it will be unjust and harsh to impose upon them any further liability in the shape of exemplary damages, when they have already undertaken responsibility to bear a fair share of the project cost of ecological restoration. Shri G.L. Sanghi also reiterated and reinforced the said undertaking by stating that his clients still stand by the same and there is no justification whatsoever to levy any exemplary damages against them.
This Court, on the earlier occasions, after adverting to the pleadings, relevant documents and the technical report of the Central Pollution Control Board, enumerated the various activities of the Span Motels considered to be illegal and constituted "callous interference with the natural flow of river Beas" resulting in the degradation of the environment and for that purpose indicted them with having "interfered with the natural flow of the river by trying to block the natural relief/spill channel of the river". We do not want to burden this judgment once again by repeating them in extenso. Equally, the Himachal Pradesh Government also was held to have committed patent breach of public trust by leasing the ecologically fragile land to the Motel. It is only on such findings, the "polluter pays" principle as interpreted by this Court with liability for harm to compensate not only the victims but also the cost of restoring the environmental degradation and reversing the damaged ecology was held applicable to this case. Those findings rendered earlier were held to be "final and no argument can be permitted to be addressed in that respect" and the only question that remained left is the "determination of quantum of compensation and further whether the fine in addition be imposed, if so, the quantum of fine". Therefore, not only it is impermissible for the counsel for the Motel or anyone else to claim for a reversal of those findings or any reconsideration of the nature, character and legality or propriety of those activities of SMPL but we feel bound by them and not persuaded to proceed on a clean slate, by-passing the exercise earlier undertaken and the conclusions firmly recorded in this regard. After the submission of the technical report by NEERI also, it was held that the "question of apportionment of cost of restoration of ecology as also the question of pollution fine will be considered by the Court" on the next and further hearings. The NEERI report also does not appear to either give a clean chit or completely exonerate the Span Motel Pvt. Ltd for their activities, which were earlier considered to constitute an onslaught on the fragile environment and ecology of the area.
Even in the judgment of this Court, since reported in 2000(6) SCC 213 (supra) while accepting the claim of the Motels that the sine qua non for punishment of imprisonment and fine is a fair trial in a competent Court and that such punishment of imprisonment or fine can be imposed only after the person is found guilty by the competent court, a general and passing reference has also been made to the earlier findings and as a consequence of which only it has been again held that though no fine as such can be imposed and the notice issued by this Court earlier be withdrawn, a fresh notice was directed to be issued to Span Motels Pvt. Ltd. as to why in addition to damages, as directed in the main judgment, exemplary damages cannot be awarded against them "for having committed the acts set out and detailed in the main judgment". Equally, the object and purpose of such levy of exemplary damages was also indicated as to serve "a deterrent for others not to cause pollution in any manner". Having regard to what has been stated supra, the question as to the imposition of exemplary damages and the liability of Span Motels Pvt. Ltd. in this regard has to necessarily depend upon the earlier findings of this Court that the Motel by constructing walls and bunds on the river banks and in the river bed as detailed in the judgment has interfered with the flow of the river and their liability to pay the damages on the principle of "Polluter pays" and also as an inevitable consequence thereof. The specification in the NEERI report regarding details of the activities of Span Motels Pvt. Ltd. and the nature of constructions made in 1993 in figure No.2 that (a) "in 1993, to protect the newly acquired land as also the main resort land, the SMPL constructed concrete studs, stepped wall and concrete bars as depicted in Fig.2"; (b) "blocked the mouth of the natural relief/spill channel by dumping of boulders" resulting in the leveling of the leased area and (c) "at the downstream of M/s SMPL, a private property owner has blocked the relief/spill channel by constructing a stonewall across the channel (E & F)" also confirms and only reinforce the need and justification for the indictment already made. The basis for their liability to be saddled with the exemplary costs has been firmly and irreversibly already laid down in the main judgment itself and there is no escape for the Span Motels Pvt. Ltd. in this regard. We have to necessarily proceed further only on those bases of facts and position of law, found and declared.
The question remaining for further consideration relating to the award of exemplary damages is only as to the quantum. The various laws in force to prevent, control pollution and protect environment and ecology provide for different categories of punishment in the nature of imposition of fine as well as or imprisonment or either of them, depending upon the nature and extent of violation. The fine that may be imposed alone may extend even to one lakh of rupees. Keeping in view all these and the very object underlying the imposition of imprisonment and fine under the relevant laws to be not only punish the individual concerned but also to serve as a deterrent to others to desist from indulging in such wrongs which we consider to be almost similar to the purpose and aim of awarding exemplary damages, it would be both in public interest as well as in the interests of justice to fix the quantum of exemplary damages payable by Span Motels Pvt. Ltd. at Rupees Ten lakhs only. This amount we are fixing keeping in view the undertaking given by them to bear a fair share of the project cost of ecological restoration which would be quite separate and apart from their liability for the exemplary damages. The question relating to the said quantum of liability for damages on the principle of "polluter pays", as held by this Court against the Span Motels Pvt. Ltd. and undertaken by them, will be determined separately and left open for the time being. The amount, of special damages of Ten lakhs of rupees, shall be remitted to the State Government in the Department of Irrigation and Public Health to the Commissioner/Secretary for being utilized only for the flood protection works in the area of Beas river affected by the action of Span Motels Pvt. Ltd.
J.
[ M.B. Shah ] J.
[ Doraiswamy Raju ] March 15, 2002.


2 Kings 14:3
And he did that which was right in the sight of the LORD, yet not like David his father: he did according to all things as Joash his father did.


1997-12-21
false
8.1.2.c datatype bound to input element
You must see an input bound to a node of type xsd:date. It
might be rendered as a calendar control. The default value is 1997-12-21.
Date Of Birth
You must see an input bound to a node of type boolean. It might be rendered
as a checkbox. The default value is false.
Confirm that date of birth is


- Landlords are the parties responsible for drafting the Contract, they enter the details of contract as discussed with the Tenants and follow guidelines defined by the government.
- The contracts have details like Ethereum Address of the Tenant, Address of the Property, Duration, Rent, Security Deposits and Other Terms of Agreement.
- Landlords have to pay the Registration Fee defined by Government at the time of drafting the contract, it will be refuded back if the Contract is rejected by either the Tenant or the Government.
- After the deployment of contract, the tenants will verify and approve the Contract, they are also required to pay the Security Deposit at the same step which will be held in an Escrow Account and released only when both parties give their approval.
- After the Tenant's Approval, third step would be Government's Verification of the Contract, with the completion of this step the contract will become Active and deployed on the Blockchain.


Before Change
self._index(product_results[TransitiveHydratedTargets])
yielded_addresses = set()
for subject, product in zip(subjects, product_results[BuildFileAddresses]):
if not product.dependencies:
raise self.InvalidCommandLineSpecError(
"Spec {} does not match any targets.".format(subject))
for address in product.dependencies:
if address not in yielded_addresses:
yielded_addresses.add(address)
yield address
class HydratedTarget(datatype("HydratedTarget", ["address", "adaptor", "dependencies"])):
A wrapper for a fully hydrated TargetAdaptor object.
Transitive graph walks collect ordered sets of TransitiveHydratedTargets which involve a huge amount
After Change
logger.debug("Injecting specs to %s: %s", self, subjects)
with self._resolve_context():
specs = tuple(subjects)
thts, = self._scheduler.product_request(TransitiveHydratedTargets,
[Specs(specs)])
self._index(thts.closure)


MorisPro
Home
About
Photo
Videos
Shayf Ahmed
Web Designer
Courses
HTML
CSS
JavaScrpet
PHP
Shayf Ahmed
Programmer


Adding an API State Change Workflow¶
This section explains how to add a custom workflow to control the API state changes in the API Manager. First see Workflow Extensions for more information on different types of workflow executors. For more details on API states see API Lifecycle .
Configuring the Business Process Server¶
- Download WSO2 Enterprise Integrator .
-
Set an offset of 2 to the default BPS port in
<EI_HOME>/conf/carbon.xml
file. This prevents port conflicts that occur when you start more than one WSO2 product on the same server. Also see Changing the Default Ports with Offset .xml <Offset>2</Offset>
Tip
**Tip** : If you change the EI port **offset to a value other than 2 or run the API Manager and EI on different machines** (therefore, want to set the ` hostname ` to a different value than ` localhost ` ), you do the following: - Search and replace the value 9765 in all the files (.epr) inside /business-processes folder with the new port (9763 + port offset).
-
Start the EI server and log in to its management console (
https://<Server Host>:9443+<port offset>/carbon
).Warning
If you are using Mac OS with High Sierra, you may encounter following warning when login into the Management console due to a compression issue exists in High Sierra SDK. ``` java
WARN {org.owasp.csrfguard.log.JavaLogger} - potential cross-site request forgery (CSRF) attack thwarted (user:
, ip:xxx.xxx.xx.xx, method:POST, uri:/carbon/admin/login_action.jsp, error:required token is missing from the request) `` To avoid this issue open
/ ` conf/tomcat/catalina-server.xml and change the compression="on" to compression="off" in Connector configuration and restart the EI. -
Select Processes > Add > BPMN and upload the
<APIM_HOME>/business-processes/api-state-change/APIStateChangeApprovalProcess.bar
file to EI. {width="700"}
Configuring the Business Process Server¶
- Download WSO2 Business Process Server .
-
Set an offset of 2 to the default BPS port in
<BPS_HOME>/repository/conf/carbon.xml
file. This prevents port conflicts that occur when you start more than one WSO2 product on the same server. Also see Changing the Default Ports with Offset .xml <Offset>2</Offset>
Tip
**Tip** : If you change the BPS port **offset to a value other than 2 or run the API Manager and BPS on different machines** (therefore, want to set the ` hostname ` to a different value than ` localhost ` ), you do the following: - Search and replace the value 9765 in all the files (.epr) inside /business-processes folder with the new port (9763 + port offset).
-
Start the BPS server and log in to its management console (
https://<Server Host>:9443+<port offset>/carbon
).Warning
If you are using Mac OS with High Sierra, you may encounter following warning when login into the Management console due to a compression issue exists in High Sierra SDK. ``` java
WARN {org.owasp.csrfguard.log.JavaLogger} - potential cross-site request forgery (CSRF) attack thwarted (user:
, ip:xxx.xxx.xx.xx, method:POST, uri:/carbon/admin/login_action.jsp, error:required token is missing from the request) `` To avoid this issue open
/ ` repository/conf/tomcat/catalina-server.xml and change the compression="on" to compression="off" in Connector configuration and restart the BPS. -
Select Processes > Add > BPMN and upload the
<APIM_HOME>/business-processes/api-state-change/APIStateChangeApprovalProcess.bar
file to BPS. {width="700"}
Configuring the API Manager¶
- Open
<APIM_HOME>/repository/conf/api-manager.xm
l and set in<Enabled>
totrue
in the<WorkflowConfigurations>
section. - Change the
<ServerUrl>
if you have configured the BPS/EI to run on a different port offset.
Engaging the WS Workflow Executor in the API Manager¶
First, enable the API state change workflow.
- Log in to the APIM management console (
https://<Server Host>:9443/carbon
) and select Browse under Resources. -
Go to the
/_system/governance/apimgt/applicationdata/workflow-extensions.xml
resource, disable the Simple Workflow Executor and enable WS Workflow Executor.html/xml <WorkFlowExtensions> .... <!-- Publisher related workflows --> <!--<APIStateChange executor="org.wso2.carbon.apimgt.impl.workflow.APIStateChangeSimpleWorkflowExecutor" />--> <APIStateChange executor="org.wso2.carbon.apimgt.impl.workflow.APIStateChangeWSWorkflowExecutor"> <Property name="processDefinitionKey">APIStateChangeApprovalProcess</Property> <Property name="stateList">Created:Publish,Published:Block</Property> </APIStateChange> .... </WorkFlowExtensions>
You have now engaged the API WS Workflow. The default configuration is set for Created to Publish and Published to Block state changes. See Advanced Configurations for information on configuring more state changes.
When enabling the workflow features, make sure you import the certificate of the API Manager into the
client-truststore
located inside the<BPS_HOME>/repository/resources/security
directory. -
Log in to the API Publisher (
https://<Server Host>:9443/publisher
) and publish an API. See Create and Publish an API . A message related to the publish workflow will be displayed because the workflow is enabled for Created to Publish state change. {width="700"}Note that the Save & Publish button will be disabled until the workflow task is completed or deleted. {width="700"}
-
You can revoke the state change by clicking Delete Task in the Lifecycle tab. {width="700"}
-
Log in to the Admin Portal (
https://<Server Host>:9443/admin
) and click API State Change to see the list of tasks awaiting approval. {width="700"} Click Assign to Me to approve the task . Select Approve and click Complete to resume and complete the API state change. {width="700"} - Using WSO2 BPS
Configuring the BPS for tenants¶
- Log in to the EI with the credentials of the tenant. Select Processes > Add > BPMN and upload the
<APIM_HOME>/business-processes/api-state-change/APIStateChangeApprovalProcess.bar
file to EI. - Copy the
<EI_HOME>/wso2/business-process/repository/deployment/server/webapps/bpmn.war
web app to<EI_HOME>/wso2/business-process/repository/tenants/<tenant_id>/webapps
. - To engage the WS Workflow Executor, log in to the admin console using the credentials of the tenant and repeat step 2 from Engaging the WS Workflow Executor in the API Manager .
Configuring the BPS for tenants¶
- Log in to the BPS with the credentials of the tenant. Select Processes > Add > BPMN and upload the
<APIM_HOME>/business-processes/api-state-change/APIStateChangeApprovalProcess.bar
file to BPS. - Copy the
<BPS_HOME>/repository/deployment/server/webapps/bpmn.war
web app to<BPS_HOME>/repository/tenants/<tenant_id>/webapps
. - To engage the WS Workflow Executor, log in to the admin console using the credentials of the tenant and repeat step 2 from Engaging the WS Workflow Executor in the API Manager .
Advanced Configurations¶
Given below are the configurations that can be changed by editing <APIM_HOME>/repository/conf/api-manager.xml
``` html/xml
The elements of the above configuration are explained below.
| Element name | Description |
|----------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` Enabled ` | Enables the Admin Portal to approve state change tasks. |
| ` ServerUrl ` | The URL of the BPMN server. |
| ` ServerUser ` | User accessing the BPMN REST API. |
| ` ServerPassword ` | Password of the user accessing the BPMN REST API. |
| ` WorkflowCallbackAPI ` | The REST API invoked by the BPMN to complete the workflow. |
| ` TokenEndPoint ` | The API call to generate the access token is passed to the BPMN process. Once the access token is received, it is used to call the workflow callback API. |
| ` DCREndPoint ` | Endpoint to generate OAuth application. This application is used by the BPMN process to generate the token. |
| ` DCREndPointUser ` | Endpoint user. |
| ` DCREndPointPassword ` | Endpoint password. |
Setting a DCREndPointUser
Create a user with exclusive **apim:apiworkflow** scope permissions when setting a ` DCREndPointUser. ` Please avoid using super admin credentials. If super admin credentioals are used, the created OAuth application will have all the permissions related to scopes in the other REST APIs. Follow the steps below to create a user with **apim:apiworkflow** scope permissions:
1. Log in to APIM management console ( ` https://<Server Host>:9443/carbon ` ) and create a role named ` workflowCallbackRole ` . Set create and publisher or subscriber permissions to this role.
2. Go to **Resources** and click **Browse** . Go to ` /_system/config/apimgt/applicationdata/tenant-conf.json ` and update the role related to ‘apim:api\_workflow’ scope with the newly created role.
``` java
...
{
"Name": "apim:api_workflow",
"Roles": "workflowCallbackRole"
}
...
```
3. Assign this role to a user.
4. Update <DCREndPointUser> and <DCREndPointPassword> with this user's credentials.
For more details on how to create users and roles see [managing users and roles](https://docs.wso2.com/display/AM220/Managing+Users+and+Roles) .
The configurations that can be changed by editing the ` /_system/governance/apimgt/applicationdata/workflow-extensions.xml ` are given below.
**Simple WorkFlow**
``` java
<APIStateChange executor="org.wso2.carbon.apimgt.impl.workflow.APIStateChangeSimpleWorkflowExecutor" />
WS WorkFlow
<APIStateChange executor="org.wso2.carbon.apimgt.impl.workflow.APIStateChangeWSWorkflowExecutor">
<Property name="processDefinitionKey">APIStateChangeApprovalProcess</Property>
<Property name="stateList">Created:Publish,Published:Block</Property>
</APIStateChange>
The elements of the above configuration are explained below.
| Element Name | Mandatory/Optional | Description |
|---|---|---|
processDefinitionKey |
Mandatory | BPMN process definition id. BPMN process provided with AM as default has ‘APIStateChangeApprovalProcess’ as the id |
stateList |
Mandatory | This is a comma separated list of the current state and intended action. For example, Created:Publish,Published:Block |
serviceEndpoint |
Optional | The URL of the BPMN process engine. This overrides the global <ServerUrl> value from the api-manager.xml file. This can be used to connect a separate workflow engine for a tenant. |
username |
Optional | Username for the external BPMN process engine. This overrides <ServerUser> defined in the api-manager.xml file for the tenant. |
password |
Optional | password for the external BPMN process engine. This overrides <ServerPassword> defined in the api-manager.xml file for the tenant. |
Attachments:¶
{width="8" height="8"} Upload-BPMN.png (image/png) {width="8" height="8"} Resources-Browse.png (image/png) {width="8" height="8"} API-State-Change-Request-Sent-Message.png (image/png) {width="8" height="8"} Disabled-SaveAndPublish.png (image/png) {width="8" height="8"} Delete-State-Change-Task.png (image/png) {width="8" height="8"} Approval-Task-AssignToMe.png (image/png) {width="8" height="8"} Approval-Tasks-Admin.png (image/png)


When someone is first starting out in R, if they are not used to programming, the various errors, warnings and messages that R provides can be intimidating. This is meant to be a useful collection of observed types of messages that R provides, along with an explanation of what R is trying to tell them.
If you have an error message you need help with file an issue.
If you have an error message and explanation you want to add, please clone the repo, add your message, and create a pull request.
You don’t need to do ‘install.packages(“tidyverse”)’ every time. Install is installing it on your system. You only need to do it again if you re-install R, or want a newer version. ‘library()’ loads it for use, and ‘install.packages()’ installs it to your computer.
instal.packages("tidyverse")
Error in instal.packages("tidyverse") :
could not find function "instal.packages
This error is telling you it can’t find the function. Most times, this is because it is spelled wrong, as it is here. Other times, it’s because you haven’t done “library(‘tidyverse’)” yet and it can’t find the function you want. This is a good reason to use a tab-completion enabled editor such as RStudio, it will help you make sure the spelling of functions is correct.
library("tidyverse")
-- Conflicts ------------------------------------------ tidyverse_conflicts() --
::filter() masks stats::filter()
x dplyr::lag() masks stats::lag() x dplyr
This is telling you that there are packages you have loaded via ‘library(“tidyverse”)’ that have functions that are named the same as functions in the base install that are always loaded.
ggplot(...)
in ggplot() : could not find function "ggplot" Error
This is telling you that you have not loaded the library that the ggplot function is in (ggplot2 in this case). To fix this you load ggplot2 first with library(ggplot2)
.
= rnorm(100)
x = rnorm(1000)
y plot(x,y)
in xy.coords(x, y, xlabel, ylabel, log) :
Error 'x' and 'y' lengths differ
This is pretty clear, the number of x coordinates is different to the number of y coordinates you have given. Often caused by either a typo in x or y names, or you subsetted one and not the other. You can double check it by doing:
1:2)*(1:3)
(1] 1 4 3
[:
Warning messageIn (1:2) * (1:3) :
longer object length is not a multiple of shorter object length
This is only a warning, but you should usually think of it as an error. Your code is trying to do an operation on two vectors of different lengths. R has rules that allow the operation to proceed (which is why it’s only a warning) but you probably used the wrong name or subsetted one and not the other, or something similar.
2]
df[in df[2] : object of type 'closure' is not subsettable Error
Technically, R is telling you that you are trying to subset a function (df
is the density function for the F distribution). In practice, this almost always happens when you think you have a variable called df
(eg, a data frame) but R can’t find it. Most likely the variable doesn’t exist, but it might exist somewhere that R can’t see.
zip(zipfile, ...)
: 1: : Permission denied
sh:
Warning messagesystem2(zip, args, input = input) : error in running command In
As of R 4.0.3, this means that R can’t find the zip command on a Unix or Linux type system. The way to fix it is to do:
Sys.setenv(R_ZIPCMD = "path/to/zip")
If you have an error message you need help with file an issue. If you have an error message and explanation you want to add, please clone the repo, add your message, and create a pull request.
This project has a Contributor Code of Conduct, and you are asked to abide by it.


module MKDynamics_FFT use, intrinsic :: iso_c_binding include 'fftw3.f03' type(C_PTR) :: plan integer, parameter :: num_expected_args=3 ! Input file name, output file name and number of bins real(C_DOUBLE), dimension(:), allocatable :: in ! FFTW input array complex(C_DOUBLE_COMPLEX), dimension(:), allocatable :: out ! FFTW output array real(C_DOUBLE), dimension(:), allocatable :: temp_real_array ! Holds the data read from the input file real(C_DOUBLE) :: magnitude, phase, temp_real ! Used to perform complex math integer :: EOF_marker ! For checking if EOF reached integer :: file_good1, file_good2, file_good3 ! For checking if files opened successfully integer :: good_write1, good_write2 ! For checking if files written successfully integer :: i ! Counter used to traverse arrays integer :: num_args ! Contains number of arguments for verification of proper command line call integer :: num_bins_int ! Holds obtained number of bins integer :: status1, status2, status3 ! Holds memory allocation status of arrays character(len=80) :: input_file, output_mag_file ! Holds file names character(len=80) :: output_phase_file real :: num_log2_bins_real integer :: num_bins_int_pow2 contains subroutine close_files_and_exit close(1) close(10) close(20) print *, 'Files closed.....' print *, 'Exiting.....' stop end subroutine close_files_and_exit subroutine close_files_deallocate_and_exit(state) integer :: state close (1) close (10) close (20) deallocate (in) deallocate (out) deallocate (temp_real_array) if (state .eq. -1) then print *, 'Files closed and memory deallocated' print *, 'Exiting.....' stop else print *, 'Files closed and memory deallocated' end if end subroutine close_files_deallocate_and_exit subroutine get_args ! Verify that the number of arguments is correct. Should be 3, otherwise display ! error and terminate program num_args = command_argument_count() if (num_args .ne. num_expected_args) then print *, 'Improper number of arguments' print *, 'Argument list:' print *, '<input file name> <output magnitude file name> <output phase file name>' call close_files_and_exit ! Graceful exit, no cleanup end if ! Call subroutines that obtain the command line arguments and load the appropriate variables call get_command_argument (1, input_file) call get_command_argument (2, output_mag_file) call get_command_argument (3, output_phase_file) ! Debug code that ensures command line arguments were passed in properly print *, 'The first argument is ->' print *, input_file print *, 'The second argument is ->' print *, output_mag_file print *, 'The third argument is ->' print *, output_phase_file end subroutine get_args subroutine open_files ! Begin to open files open (unit=1, file=TRIM(input_file), status="old", IOSTAT=file_good1, form="formatted", access="sequential", action="read") !open (unit=1, file=TRIM(input_file), IOSTAT=file_good1) if (file_good1 .ne. 0) then print *, 'Error opening input file!' call close_files_and_exit ! Graceful exit, no cleanup else if (file_good1 .eq. 0) then print *, 'Input file opened successfully...' end if open (unit=10, file=TRIM(output_mag_file), status="replace", IOSTAT=file_good2, form="formatted", access="sequential") if (file_good2 .ne. 0) then print *, 'Error creating output magnitude file!' call close_files_and_exit ! Graceful exit, no cleanup else if (file_good2 .eq. 0) then print *, 'Output magnitude file created successfully...' end if open (unit=20, file=TRIM(output_phase_file), status="replace", IOSTAT=file_good3, form="formatted", access="sequential") if (file_good3 .ne. 0) then print *, 'Error creating output phase file!' call close_files_and_exit ! Graceful exit, no cleanup else if (file_good3 .eq. 0) then print *, 'Output phase file created successfully...' end if ! Debug code follows. Tests to see if file opened properly. read (unit=1, fmt='(f20.10)', IOSTAT = EOF_marker), temp_real print *, 'The status of EOF_marker is' print *, EOF_marker print *, 'The first element read was' print *, temp_real ! Debug code ends end subroutine open_files subroutine get_num_data_elements ! Traverse through data file and count number of data elements in file ! Get first data element from file to see whether it is the EOF character print *, 'Entering get_num_data_elements procedure' print * i = 1 rewind(1) read (1, '(f30.20)', IOSTAT = EOF_marker), temp_real ! Debug code starts here write (*, '(a, i4)'), 'The counter is ->', i write (*, '(a, f30.20)'), 'The first data element was ->', temp_real write (*, '(a, i4)'), 'The EOF marker is ->', EOF_marker ! print * ! print * ! Debug code ends here if (EOF_marker < 0) then print *, 'ERROR: Input file is empty' call close_files_and_exit ! Graceful exit, no cleanup end if ! Establish loop that will count number of elements in file count_loop: do if (EOF_marker < 0) then print *, 'EOF reached' exit count_loop else i = i + 1 read (1, '(f30.20)', IOSTAT = EOF_marker), temp_real !write (*, '(a, i4, a, f30.20)'), 'The data element at', i, ' was ->', temp_real !write (*, '(a, i4)'), 'The EOF_marker is ->', EOF_marker end if end do count_loop ! Copy over the number of counted elements into the num_bins_int variable less one for the EOF character num_bins_int = i - 1 write (*, '(a, i10)'), 'The number of lines in the input file is ->', num_bins_int print *, 'Exiting get_num_data_elements procedure' print * end subroutine get_num_data_elements subroutine allocate_memory ! Allocate memory based on the number of bins ! The number of bins will be used to find the next power of 2. ! Display success status of memory allocation ! If there is a problem with memory allocation, display error and terminate print *, 'Entering allocate_memory procedure' print * num_log2_bins_real = log(real(num_bins_int))/log(real(2)) write (*, '(a, f20.4)'), 'The closest log base 2 bins is (as real)->', num_log2_bins_real num_bins_int_pow2 = 2**(ceiling(num_log2_bins_real)) write (*, '(a, i8)'), 'The closest number of power of 2 bins is (as integer)->', num_bins_int_pow2 allocate (in(num_bins_int_pow2), stat=status1) print * write (*, '(a, l)'), 'Was memory allocated successfully for input array? ->', allocated(in) if (status1 .ne. 0) then print *, 'Memory allocation error on input array' call close_files_and_exit ! Graceful exit, no cleanup end if write (*, '(a, i10)'), 'Input Array allocated with size ->', size(in) allocate (out(num_bins_int_pow2), stat=status2) print * write (*, '(a, l)'), 'Was memory allocated successfully for output array? ->', allocated(out) if (status2 .ne. 0) then print *, 'Memory allocation error on output array' deallocate (in) call close_files_and_exit ! Graceful exit, no cleanup end if write (*, '(a, i10)'), 'Output Array allocated with size ->', size(out) allocate (temp_real_array(num_bins_int_pow2), stat=status3) print * write (*, '(a, l)'), 'Was memory allocated successfully for scratchpad array? ->', allocated(temp_real_array) if (status3 .ne. 0) then print *, 'Memory allocation error on scratchpad array' deallocate (in) deallocate (out) call close_files_and_exit ! Graceful exit, no cleanup end if write (*, '(a, i10)'), 'Scratchpad Array allocated with size ->', size(temp_real_array) print *, 'Exiting allocate_memory procedure' print * end subroutine allocate_memory subroutine read_from_file_into_array ! Establish a loop that reads the file from 1 to num_bins_int ! Bring file pointer for input file back to first element print *, '***** Subroutine read_from_file_into_array ******' rewind(1) !do i=1, 100 do i=1, num_bins_int read (1, '(f30.20)', IOSTAT = EOF_marker), temp_real_array(i) ! read data element from file ! Debug code starts here !write (*, '(a, i4)'), 'The EOF marker is ->', EOF_marker !write (*, '(a, i4)'), 'The counter is ->', i !write (*, '(a, 30f30.20)'), 'The data element was -> ', temp_real_array(i) !print * !print * ! Debug code ends here end do print *, 'Padding remainder of array with zeros to fill up to size of next power of 2....' do i=num_bins_int+1, num_bins_int_pow2 temp_real_array(i) = 0.0 !write (*, '(a, i4)'), 'The counter is ->', i !write (*, '(a, 30f30.20)'), 'The data element was -> ', temp_real_array(i) end do print *, 'Exiting read_from_file_into_array procedure' print * end subroutine read_from_file_into_array subroutine compute_DFFT ! *************** FFT COMPUTATION SECTION ********************** ! Establish array of reals that is the input the FFTW3 function print *, 'Entering compute_DFFT procedure' print * in = temp_real_array print *, 'num_bins_int_pow2 ->', num_bins_int_pow2 ! Use built in fucntion to create FFTW3 plan. Tells FFTW3 what to do. plan = fftw_plan_dft_r2c_1d((num_bins_int_pow2), in, out, FFTW_ESTIMATE) !print *, 'The FFTW3 plan is ->' !call fftw_print_plan(plan) print * print * ! Debug code starts here !print *, "The contents of the input array is ->" ! do i = 1,num_bins_int_pow2 ! write (*, '(f30.20)'), in(i) ! end do ! Debug code ends here ! Execute FFTW3 to produce DFFT on data from file stored in array print *, "Executing DFFT on input array..." call fftw_execute_dft_r2c(plan, in, out) print *, "DFFT execution successfull" ! Debug code starts here ! print *, "The contents of the output array is ->" ! do i = 1,num_bins_int_pow2 ! write (*, '(f30.20, f30.20)'), out(i) ! end do ! Debug code ends here print *, 'Exiting compute_DFFT procedure' print * end subroutine compute_DFFT subroutine write_DFFT_to_file real :: real_float, imag_float real :: pi integer(kind=8) :: real_int, imag_int print *, 'Entering write_DFFT_to_file procedure' print * pi = 4*atan(1.0) ! Traverse through output array that contains the complex DFFT, calculate magnitude and ! write results to output file !do i = 1, 100 do i = 1,(num_bins_int_pow2/2) ! Lines below for debug !write (*, '(a, i4)'), 'The counter i is ->', i !write (*, '(a, f30.20, f30.20)'), 'The DFFT data element is -> ', out(i) real_float = real(out(i)) !write (*, '(a, f30.20)'), 'The value of real_float is ->', real_float imag_float = aimag(out(i)) !write (*, '(a, f30.20)'), 'The value of imag_float is ->', imag_float magnitude = sqrt((real_float**2) + (imag_float**2)) phase = (atan2(imag_float,real_float))*(180/pi) !write (*, '(a, f30.20)'), 'The magnitude is -> ', magnitude !write (*, '(a, f30.20)'), 'The phase is -> ', phase !print * write (10, '(f30.20)', IOSTAT = good_write1), magnitude write (20, '(f30.20)', IOSTAT = good_write2), phase if (good_write1 .ne. 0) then !print *, 'The state of good_write1 is:' !print *, good_write1 print *, 'Error writing to magnitude file!' call close_files_deallocate_and_exit(-1) else if (good_write2 .ne. 0) then !print *, 'The state of good_write2 is:' !print *, good_write2 print *, 'Error writing to phase file!' call close_files_deallocate_and_exit(-1) end if end do ! Tell user that output file was written successfully if (good_write1 .eq. 0) then print *, 'Output magnitude file written successfully....' endif if (good_write2 .eq. 0) then print *, 'Output phase file written successfully....' endif !  The following debug code checks to see if the Inverse DFFT will produce the original input data ! ! print *, "Output file written successfully!" ! ! ! !   DFFT from Processed Data File ! Written by Mark Khusid 2015 ! ! 2018 ! Version 5 ! Commented out debug code and rearranged some inconsequential lines. ! ! 2015 ! Version 4 ! Numerous fixes. Changed code to allocate memory based on the next power of 2 relative ! to the number of element in the input file. For example, a data file with 1000 data elements ! will cause arrays to be allocated with 1024 elements. This is done to prevent errors in the FFT. ! Reformatted most of the debug output. ! Used ATAN2, separate variables and formatting to ensure that small values of the real part will not ! cause phase errors. ! ! Version 3 ! This version counts the number of data elements in the file automatically. ! This version is rewritten to make use of subroutines.