CHAPTER THREE. PARSING
id
num
+
-
*
/
(
)
$
E
1
s2
s3
s4
g7
2
r1
r1
r1
r1
r1
r1
3
r2
r2
r2
r2
r2
r2
4
s2
s3
s4
g5
5
s6
6
r7
r7
r7
r7
r7
r7
7
s8
s10
s12
s14
a
8
s2
s3
s4
g9
9
s8,r5
s10,r5
s12,r5
s14,r5
r5
r5
10
s2
s3
s4
g11
11
s8,r6
s10,r6
s12,r6
s14,r6
r6
r6
12
s2
s3
s4
g13
13
s8,r3
s10,r3
s12,r3
s14,r3
r3
r3
14
s2
s3
s4
g15
15
s8,r4
s10,r4
s12,r4
s14,r4
r4
r4
TABLE 3.33.
LR parsing table for
Grammar 3.5.
Shift-reduce con°icts are acceptable in a grammar if they correspond to
well understood cases, as in this example. But most shift-reduce con°icts, and
all reduce-reduce con°icts, are serious problems and should be eliminated by
rewriting the grammar.
PRECEDENCE DIRECTIVES
No ambiguous grammar is LR(
k
) for any
k
; the LR(
k
) parsing table of an am-
biguous grammar will always have con°icts. However, ambiguous grammars
can still be useful if we can ﬁnd ways to resolve the con°icts.
For example,
Grammar 3.5
is highly ambiguous. In using this grammar to
describe a programming language, we intend it to be parsed so that
∗
and
/
bind more tightly than
+
and
−
, and that each operator associates to the left.
We can express this by rewriting the unambiguous
Grammar 3.8.
But we can avoid introducing the
T
and
F
symbols and their associated
“trivial” reductions
E
→
T
and
T
→
F
. Instead, let us start by building
the LR(1) parsing table for
Grammar 3.5,
as shown in
Table 3.33
. We ﬁnd
many con°icts. For example, in state 13 with lookahead
+
we ﬁnd a con°ict
between
shift into state 8
and
reduce by rule 3
. Two of the items in state 13
are:
72


|
ish version 0.1
Simple Input handling middleware
|
| C:/Users/Shanageek/Desktop/ISH_Source_v0_1/ISH/enums.h [code] | |
| C:/Users/Shanageek/Desktop/ISH_Source_v0_1/ISH/HashTable.h [code] | |
| C:/Users/Shanageek/Desktop/ISH_Source_v0_1/ISH/HashTable.inl | |
| C:/Users/Shanageek/Desktop/ISH_Source_v0_1/ISH/IDevice.h [code] | |
| C:/Users/Shanageek/Desktop/ISH_Source_v0_1/ISH/IniHandler.cpp | |
| C:/Users/Shanageek/Desktop/ISH_Source_v0_1/ISH/IniHandler.h [code] | |
| C:/Users/Shanageek/Desktop/ISH_Source_v0_1/ISH/InputManager.cpp | |
| C:/Users/Shanageek/Desktop/ISH_Source_v0_1/ISH/InputManager.h [code] | |
| C:/Users/Shanageek/Desktop/ISH_Source_v0_1/ISH/ISH.cpp | |
| C:/Users/Shanageek/Desktop/ISH_Source_v0_1/ISH/ISH.h [code] | |
| C:/Users/Shanageek/Desktop/ISH_Source_v0_1/ISH/LibDef.h [code] | |
| C:/Users/Shanageek/Desktop/ISH_Source_v0_1/ISH/Singleton.h [code] | |
| C:/Users/Shanageek/Desktop/ISH_Source_v0_1/ISH/WinKeyboard.cpp | |
| C:/Users/Shanageek/Desktop/ISH_Source_v0_1/ISH/WinKeyboard.h [code] | |
| C:/Users/Shanageek/Desktop/ISH_Source_v0_1/ISH/XboxPad.cpp | |
| C:/Users/Shanageek/Desktop/ISH_Source_v0_1/ISH/XboxPad.h [code] |


--- layout: default title: FAQ permalink: {{site.baseurl}}/faq ---
The instructors will be people who develop embedded systems for a living. They have through the entire life cycle of developing a product as a part of a crowdfunding campaign. And having been participants and speakers in multiple training programs, they have good experience in teaching an audience with a varied knowledge base.
There will be guest speakers providing their unique insight right from freelancing, working with the maker community, being an author of technical books, starting a company and making stuff in general.
Please let us know in the application form and motivate the reason for your participation in this program. We'll see what we can do to subsidise the cost for your participation.
We only use the information received in the application form to select the candidates for the program. We will not share this information with any external entities.
Please do try to attend all the class, especially the first five classes where the primary learning happens. Missing a session during the project could work, depending on the coordination with your teammates.


Sorry, but your browser is not supported yet
We recommend using the following browsers, also check that you have JavaScript enabled
Chrome
Firefox
Opera


|
Wayland Server API
1.16.0
|
An event loop context. More...
#include <wayland-server-core.h>
Public Member Functions | |
| struct wl_event_loop * | wl_event_loop_create (void) |
| Create a new event loop context. More... | |
| void | wl_event_loop_destroy (struct wl_event_loop *loop) |
| Destroy an event loop context. More... | |
| void | wl_event_loop_dispatch_idle (struct wl_event_loop *loop) |
| Dispatch the idle sources. More... | |
| int | wl_event_loop_dispatch (struct wl_event_loop *loop, int timeout) |
| Wait for events and dispatch them. More... | |
| int | wl_event_loop_get_fd (struct wl_event_loop *loop) |
| Get the event loop file descriptor. More... | |
| void | wl_event_loop_add_destroy_listener (struct wl_event_loop *loop, struct wl_listener *listener) |
| Register a destroy listener for an event loop context. More... | |
| struct wl_listener * | wl_event_loop_get_destroy_listener (struct wl_event_loop *loop, wl_notify_func_t notify) |
| Get the listener struct for the specified callback. More... | |
An event loop context.
Usually you create an event loop context, add sources to it, and call wl_event_loop_dispatch() in a loop to process events.
| void wl_event_loop_add_destroy_listener | ( | struct wl_event_loop * | loop, |
| struct wl_listener * | listener | ||
| ) |
Register a destroy listener for an event loop context.
| loop | The event loop context whose destruction to listen for. |
| listener | The listener with the callback to be called. |
| struct wl_event_loop * wl_event_loop_create | ( | void | ) |
Create a new event loop context.
This creates a new event loop context. Initially this context is empty. Event sources need to be explicitly added to it.
Normally the event loop is run by calling wl_event_loop_dispatch() in a loop until the program terminates. Alternatively, an event loop can be embedded in another event loop by its file descriptor, see wl_event_loop_get_fd().
| void wl_event_loop_destroy | ( | struct wl_event_loop * | loop | ) |
Destroy an event loop context.
| loop | The event loop to be destroyed. |
This emits the event loop destroy signal, closes the event loop file descriptor, and frees loop
.
If the event loop has existing sources, those cannot be safely removed afterwards. Therefore one must call wl_event_source_remove() on all event sources before destroying the event loop context.
| int wl_event_loop_dispatch | ( | struct wl_event_loop * | loop, |
| int | timeout | ||
| ) |
Wait for events and dispatch them.
| loop | The event loop whose sources to wait for. |
| timeout | The polling timeout in milliseconds. |
All the associated event sources are polled. This function blocks until any event source delivers an event (idle sources excluded), or the timeout expires. A timeout of -1 disables the timeout, causing the function to block indefinitely. A timeout of zero causes the poll to always return immediately.
All idle sources are dispatched before blocking. An idle source is destroyed when it is dispatched. After blocking, all other ready sources are dispatched. Then, idle sources are dispatched again, in case the dispatched events created idle sources. Finally, all sources marked with wl_event_source_check() are dispatched in a loop until their dispatch functions all return zero.
| void wl_event_loop_dispatch_idle | ( | struct wl_event_loop * | loop | ) |
Dispatch the idle sources.
| loop | The event loop whose idle sources are dispatched. |
| struct wl_listener * wl_event_loop_get_destroy_listener | ( | struct wl_event_loop * | loop, |
| wl_notify_func_t | notify | ||
| ) |
Get the listener struct for the specified callback.
| loop | The event loop context to inspect. |
| notify | The destroy callback to find. |
| int wl_event_loop_get_fd | ( | struct wl_event_loop * | loop | ) |
Get the event loop file descriptor.
| loop | The event loop context. |
This function returns the aggregate file descriptor, that represents all the event sources (idle sources excluded) associated with the given event loop context. When any event source makes an event available, it will be reflected in the aggregate file descriptor.
When the aggregate file descriptor delivers an event, one can call wl_event_loop_dispatch() on the event loop context to dispatch all the available events.


|
Clingo C API
C API for clingo providing high level functions to control grounding and solving.
|
Inspection of atoms occurring in ground logic programs.
For an example, see symbolic-atoms.c.
Typedefs | |
| typedef struct clingo_symbolic_atoms | clingo_symbolic_atoms_t |
| Object to inspect symbolic atoms in a program—the relevant Herbrand base gringo uses to instantiate programs. More... | |
| typedef uint64_t | clingo_symbolic_atom_iterator_t |
| Object to iterate over symbolic atoms. More... | |
| typedef bool(* | clingo_symbol_callback_t) (clingo_symbol_t const *symbols, size_t symbols_size, void *data) |
| Callback function to inject symbols. More... | |
Functions | |
| CLINGO_VISIBILITY_DEFAULT bool | clingo_symbolic_atoms_size (clingo_symbolic_atoms_t const *atoms, size_t *size) |
| Get the number of different atoms occurring in a logic program. More... | |
| CLINGO_VISIBILITY_DEFAULT bool | clingo_symbolic_atoms_begin (clingo_symbolic_atoms_t const *atoms, clingo_signature_t const *signature, clingo_symbolic_atom_iterator_t *iterator) |
| Get a forward iterator to the beginning of the sequence of all symbolic atoms optionally restricted to a given signature. More... | |
| CLINGO_VISIBILITY_DEFAULT bool | clingo_symbolic_atoms_end (clingo_symbolic_atoms_t const *atoms, clingo_symbolic_atom_iterator_t *iterator) |
| Iterator pointing to the end of the sequence of symbolic atoms. More... | |
| CLINGO_VISIBILITY_DEFAULT bool | clingo_symbolic_atoms_find (clingo_symbolic_atoms_t const *atoms, clingo_symbol_t symbol, clingo_symbolic_atom_iterator_t *iterator) |
| Find a symbolic atom given its symbolic representation. More... | |
| CLINGO_VISIBILITY_DEFAULT bool | clingo_symbolic_atoms_iterator_is_equal_to (clingo_symbolic_atoms_t const *atoms, clingo_symbolic_atom_iterator_t a, clingo_symbolic_atom_iterator_t b, bool *equal) |
| Check if two iterators point to the same element (or end of the sequence). More... | |
| CLINGO_VISIBILITY_DEFAULT bool | clingo_symbolic_atoms_symbol (clingo_symbolic_atoms_t const *atoms, clingo_symbolic_atom_iterator_t iterator, clingo_symbol_t *symbol) |
| Get the symbolic representation of an atom. More... | |
| CLINGO_VISIBILITY_DEFAULT bool | clingo_symbolic_atoms_is_fact (clingo_symbolic_atoms_t const *atoms, clingo_symbolic_atom_iterator_t iterator, bool *fact) |
| Check whether an atom is a fact. More... | |
| CLINGO_VISIBILITY_DEFAULT bool | clingo_symbolic_atoms_is_external (clingo_symbolic_atoms_t const *atoms, clingo_symbolic_atom_iterator_t iterator, bool *external) |
| Check whether an atom is external. More... | |
| CLINGO_VISIBILITY_DEFAULT bool | clingo_symbolic_atoms_literal (clingo_symbolic_atoms_t const *atoms, clingo_symbolic_atom_iterator_t iterator, clingo_literal_t *literal) |
| Returns the (numeric) aspif literal corresponding to the given symbolic atom. More... | |
| CLINGO_VISIBILITY_DEFAULT bool | clingo_symbolic_atoms_signatures_size (clingo_symbolic_atoms_t const *atoms, size_t *size) |
| Get the number of different predicate signatures used in the program. More... | |
| CLINGO_VISIBILITY_DEFAULT bool | clingo_symbolic_atoms_signatures (clingo_symbolic_atoms_t const *atoms, clingo_signature_t *signatures, size_t size) |
| Get the predicate signatures occurring in a logic program. More... | |
| CLINGO_VISIBILITY_DEFAULT bool | clingo_symbolic_atoms_next (clingo_symbolic_atoms_t const *atoms, clingo_symbolic_atom_iterator_t iterator, clingo_symbolic_atom_iterator_t *next) |
| Get an iterator to the next element in the sequence of symbolic atoms. More... | |
| CLINGO_VISIBILITY_DEFAULT bool | clingo_symbolic_atoms_is_valid (clingo_symbolic_atoms_t const *atoms, clingo_symbolic_atom_iterator_t iterator, bool *valid) |
| Check whether the given iterator points to some element with the sequence of symbolic atoms or to the end of the sequence. More... | |
| typedef bool(* clingo_symbol_callback_t) (clingo_symbol_t const *symbols, size_t symbols_size, void *data) |
Callback function to inject symbols.
| symbols | array of symbols |
| symbols_size | size of the symbol array |
| data | user data of the callback |
| typedef uint64_t clingo_symbolic_atom_iterator_t |
Object to iterate over symbolic atoms.
Such an iterator either points to a symbolic atom within a sequence of symbolic atoms or to the end of the sequence.
| typedef struct clingo_symbolic_atoms clingo_symbolic_atoms_t |
Object to inspect symbolic atoms in a program—the relevant Herbrand base gringo uses to instantiate programs.
| CLINGO_VISIBILITY_DEFAULT bool clingo_symbolic_atoms_begin | ( | clingo_symbolic_atoms_t const * | atoms, |
| clingo_signature_t const * | signature, | ||
| clingo_symbolic_atom_iterator_t * | iterator | ||
| ) |
Get a forward iterator to the beginning of the sequence of all symbolic atoms optionally restricted to a given signature.
| [in] | atoms | the target |
| [in] | signature | optional signature |
| [out] | iterator | the resulting iterator |
| CLINGO_VISIBILITY_DEFAULT bool clingo_symbolic_atoms_end | ( | clingo_symbolic_atoms_t const * | atoms, |
| clingo_symbolic_atom_iterator_t * | iterator | ||
| ) |
Iterator pointing to the end of the sequence of symbolic atoms.
| [in] | atoms | the target |
| [out] | iterator | the resulting iterator |
| CLINGO_VISIBILITY_DEFAULT bool clingo_symbolic_atoms_find | ( | clingo_symbolic_atoms_t const * | atoms, |
| clingo_symbol_t | symbol, | ||
| clingo_symbolic_atom_iterator_t * | iterator | ||
| ) |
Find a symbolic atom given its symbolic representation.
| [in] | atoms | the target |
| [in] | symbol | the symbol to lookup |
| [out] | iterator | iterator pointing to the symbolic atom or to the end of the sequence if no corresponding atom is found |
| CLINGO_VISIBILITY_DEFAULT bool clingo_symbolic_atoms_is_external | ( | clingo_symbolic_atoms_t const * | atoms, |
| clingo_symbolic_atom_iterator_t | iterator, | ||
| bool * | external | ||
| ) |
Check whether an atom is external.
An atom is external if it has been defined using an external directive and has not been released or defined by a rule.
| [in] | atoms | the target |
| [in] | iterator | iterator to the atom |
| [out] | external | whether the atom is a external |
| CLINGO_VISIBILITY_DEFAULT bool clingo_symbolic_atoms_is_fact | ( | clingo_symbolic_atoms_t const * | atoms, |
| clingo_symbolic_atom_iterator_t | iterator, | ||
| bool * | fact | ||
| ) |
Check whether an atom is a fact.
| [in] | atoms | the target |
| [in] | iterator | iterator to the atom |
| [out] | fact | whether the atom is a fact |
| CLINGO_VISIBILITY_DEFAULT bool clingo_symbolic_atoms_is_valid | ( | clingo_symbolic_atoms_t const * | atoms, |
| clingo_symbolic_atom_iterator_t | iterator, | ||
| bool * | valid | ||
| ) |
Check whether the given iterator points to some element with the sequence of symbolic atoms or to the end of the sequence.
| [in] | atoms | the target |
| [in] | iterator | the iterator |
| [out] | valid | whether the iterator points to some element within the sequence |
| CLINGO_VISIBILITY_DEFAULT bool clingo_symbolic_atoms_iterator_is_equal_to | ( | clingo_symbolic_atoms_t const * | atoms, |
| clingo_symbolic_atom_iterator_t | a, | ||
| clingo_symbolic_atom_iterator_t | b, | ||
| bool * | equal | ||
| ) |
Check if two iterators point to the same element (or end of the sequence).
| [in] | atoms | the target |
| [in] | a | the first iterator |
| [in] | b | the second iterator |
| [out] | equal | whether the two iterators are equal |
| CLINGO_VISIBILITY_DEFAULT bool clingo_symbolic_atoms_literal | ( | clingo_symbolic_atoms_t const * | atoms, |
| clingo_symbolic_atom_iterator_t | iterator, | ||
| clingo_literal_t * | literal | ||
| ) |
Returns the (numeric) aspif literal corresponding to the given symbolic atom.
Such a literal can be mapped to a solver literal (see the Theory Propagation module) or be used in rules in aspif format (see the Program Building module).
| [in] | atoms | the target |
| [in] | iterator | iterator to the atom |
| [out] | literal | the associated literal |
| CLINGO_VISIBILITY_DEFAULT bool clingo_symbolic_atoms_next | ( | clingo_symbolic_atoms_t const * | atoms, |
| clingo_symbolic_atom_iterator_t | iterator, | ||
| clingo_symbolic_atom_iterator_t * | next | ||
| ) |
Get an iterator to the next element in the sequence of symbolic atoms.
| [in] | atoms | the target |
| [in] | iterator | the current iterator |
| [out] | next | the succeeding iterator |
| CLINGO_VISIBILITY_DEFAULT bool clingo_symbolic_atoms_signatures | ( | clingo_symbolic_atoms_t const * | atoms, |
| clingo_signature_t * | signatures, | ||
| size_t | size | ||
| ) |
Get the predicate signatures occurring in a logic program.
| [in] | atoms | the target |
| [out] | signatures | the resulting signatures |
| [in] | size | the number of signatures |
| CLINGO_VISIBILITY_DEFAULT bool clingo_symbolic_atoms_signatures_size | ( | clingo_symbolic_atoms_t const * | atoms, |
| size_t * | size | ||
| ) |
Get the number of different predicate signatures used in the program.
| [in] | atoms | the target |
| [out] | size | the number of signatures |
| CLINGO_VISIBILITY_DEFAULT bool clingo_symbolic_atoms_size | ( | clingo_symbolic_atoms_t const * | atoms, |
| size_t * | size | ||
| ) |
Get the number of different atoms occurring in a logic program.
| [in] | atoms | the target |
| [out] | size | the number of atoms |
| CLINGO_VISIBILITY_DEFAULT bool clingo_symbolic_atoms_symbol | ( | clingo_symbolic_atoms_t const * | atoms, |
| clingo_symbolic_atom_iterator_t | iterator, | ||
| clingo_symbol_t * | symbol | ||
| ) |
Get the symbolic representation of an atom.
| [in] | atoms | the target |
| [in] | iterator | iterator to the atom |
| [out] | symbol | the resulting symbol |


JS & CSS Extender Options
Global JS & CSS
This JS and CSS will be applied to all web pages you visit.
Custom JS & CSS
Edit custom JS and CSS that will be applied to specific websites.
| URL | JS | CSS |
|---|
This JS and CSS will be applied to all web pages you visit.
Edit custom JS and CSS that will be applied to specific websites.
| URL | JS | CSS |
|---|


Generates a new PIXI.Texture from the given data, which can be applied to a Sprite.
This allows you to create game graphics quickly and easily, with no external files but that use actual proper images rather than Phaser.Graphics objects, which are expensive to render and limited in scope.
Each element of the array is a string holding the pixel color values, as mapped to one of the Phaser.Create PALETTE consts.
For example:
var data = [ ' 333 ', ' 777 ', 'E333E', ' 333 ', ' 3 3 ' ];
game.create.texture('bob', data);
The above will create a new texture called bob
, which will look like a little man wearing a hat. You can then use it for sprites the same way you use any other texture: game.add.sprite(0, 0, 'bob');


Provides a platform where EDAs (estimation of distribution algorithms) based on copulas can be implemented and studied. The package offers complete implementations of various EDAs based on copulas and vines, a group of well-known optimization problems, and utility functions to study the performance of the algorithms. Newly developed EDAs can be easily integrated into the package by extending an S4 class with generic functions for their main components.
| Version: | 1.4.3 |
| Depends: | methods |
| Imports: | copula, vines, mvtnorm, truncnorm |
| Suggests: | cec2005benchmark, cec2013 |
| Published: | 2018-07-29 |
| Author: | Yasser Gonzalez-Fernandez [aut, cre], Marta Soto [aut] |
| Maintainer: | Yasser Gonzalez-Fernandez <ygonzalezfernandez at gmail.com> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| URL: | https://github.com/yasserglez/copulaedas |
| NeedsCompilation: | no |
| Citation: | copulaedas citation info |
| Materials: | NEWS |
| In views: | Optimization |
| CRAN checks: | copulaedas results |
| Reference manual: | copulaedas.pdf |
| Package source: | copulaedas_1.4.3.tar.gz |
| Windows binaries: | r-devel: copulaedas_1.4.3.zip, r-release: copulaedas_1.4.3.zip, r-oldrel: copulaedas_1.4.3.zip |
| OS X binaries: | r-release: copulaedas_1.4.3.tgz, r-oldrel: copulaedas_1.4.3.tgz |
| Old sources: | copulaedas archive |
Please use the canonical form https://CRAN.R-project.org/package=copulaedas to link to this page.


Configure HostPath Storage For Prometheus on OpenShift v3.11
This post covers the configuration of persistent storage with HostPath for OpenShift Monitoring stack.
In OpenShift v3.11, Prometheus cluster monitoring is now fully supported and deployed by default. As the monitoring stack is fairly new, there are many on-going discussions on supported storage plugins. And the documentation does not cover the detailed steps of setting up the storage. The configurability is also limited with Operator in placed which “protects” the configuration.
Through various implementations with HostPath requirement, I have figured a way to make HostPath storage works with Operator.
Configuration Steps
Assumptions
- HostPath SCC is already created
- HostPath SCC set to allow hostpath directory volume plugin
- Granting access to this SCC to all users
Inventory file
It is mandatory set the following variables in the inventory file:
| Variable | Description |
|---|---|
| openshift_cluster_monitoring_operator_node_selector={‘role’:’metrics’} | I have created a label, “role=metrics” to land the pods on the dedicated nodes for Prometheus/Alertmanager. These nodes should contain the HostPath for persistent storage. |
| openshift_cluster_monitoring_operator_prometheus_storage_capacity=50G | The persistent volume claim size for each of the Prometheus instances. This variable applies only if openshift_cluster_monitoring_operator_prometheus_storage_enabled is set to true. Defaults to 50Gi. |
| openshift_cluster_monitoring_operator_alertmanager_storage_capacity=5Gi | The persistent volume claim size for each of the Alertmanager instances. This variable applies only if openshift_cluster_monitoring_operator_alertmanager_storage_enabled is set to true. Defaults to 2Gi. |
| openshift_cluster_monitoring_operator_prometheus_storage_enabled=true | Enable persistent storage for Prometheus |
| openshift_cluster_monitoring_operator_alertmanager_storage_enabled=true | Enable persistent storage for Alertmanager |
Run the playbook
$ ansible-playbook -i <INVENTORY> /usr/share/ansible/openshift-ansible/playbooks/openshift-monitoring/config.yml```
Node hostpath configuration
- Find the namespace ID:
```
$ oc get namespace openshift-monitoring -o yaml
apiVersion: v1
kind: Namespace
metadata:
annotations:
openshift.io/description: Openshift Monitoring
openshift.io/display-name: “”
openshift.io/node-selector: “”
openshift.io/sa.scc.mcs: s0:c11,c0
openshift.io/sa.scc.supplemental-groups:<PHONE_NUMBER>/10000
openshift.io/sa.scc.uid-range:<PHONE_NUMBER>/10000
creationTimestamp: 2019-04-29T03:48:23Z
labels:
openshift.io/cluster-monitoring: “true”
name: openshift-monitoring
resourceVersion: “15977564”
selfLink: /api/v1/namespaces/openshift-monitoring
uid: a3173b3e-6a31-11e9-b915-000c29451a06
spec:
finalizers:
- kubernetes status: phase: Active ```
In the example above, my namespace ID is<PHONE_NUMBER>.
- Change ownership and SELinux label of the HostPath:
$ chown<PHONE_NUMBER>:root /metrics/ $ semanage fcontext -a -t svirt_sandbox_file_t /metrics $ restorecon -v /metrics/ $ chown<PHONE_NUMBER>:root /alertmanager/ $ semanage fcontext -a -t svirt_sandbox_file_t /alertmanager $ restorecon -v /alertmanager/
Post Installation - Prometheus
After the playbook has completed successfully, you will see that the pods are starting:
$ oc get pods
NAME READY STATUS RESTARTS AGE
cluster-monitoring-operator-6566bf44b-sb8wk 1/1 Running 0 1m
prometheus-operator-77bc9b6c68-gw92h 1/1 Running 0 28s
NAME READY STATUS RESTARTS AGE
cluster-monitoring-operator-6566bf44b-sb8wk 1/1 Running 0 2m
grafana-67cb69b946-684vc 2/2 Running 0 55s
prometheus-k8s-0 0/4 Pending 0 5s
prometheus-operator-77bc9b6c68-gw92h 1/1 Running 0 1m
By default, when openshift_cluster_monitoring_operator_prometheus_storage_enabled is set to true, it will create a default storage class and Prometheus-k8s-0 will remain in Pending state until it has successfully claims its PV.
- The first thing to do is to delete the PVC created by deployment:
$ oc get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE prometheus-k8s-db-prometheus-k8s-0 Pending 4m $ oc delete pvc prometheus-k8s-db-prometheus-k8s-0 persistentvolumeclaim "prometheus-k8s-db-prometheus-k8s-0" deleted
- Create the new PV for Prometheus:
$ vi pv-prometheus-0.yml apiVersion: v1 kind: PersistentVolume metadata: name: prometheus-k8s-db-prometheus-k8s-0 spec: capacity: storage: 100G accessModes: - ReadWriteOnce hostPath: path: /metrics persistentVolumeReclaimPolicy: Retain ClaimRef: name: prometheus-k8s-db-prometheus-k8s-0 namespace: openshift-monitoring $ oc create -f pv-prometheus-0.yml
Note that /metrics is the HostPath attached to the node.
- Create the new PVC for Prometheus:
$ vi pvc-prometheus-0.yml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: prometheus-k8s-db-prometheus-k8s-0 spec: resources: requests: storage: 100G accessModes: - ReadWriteOnce $ oc create -f pvc-prometheus-0.yml -n openshift-monitoring
- After this is done, the second Prometheus pod will start to spin up. So, repeat the steps 1 to 3, creating a new PV and PVC with prometheus-k8s-db-prometheus-k8s-1:
$ vi pv-prometheus-1.yml apiVersion: v1 kind: PersistentVolume metadata: name: prometheus-k8s-db-prometheus-k8s-1 spec: capacity: storage: 100G accessModes: - ReadWriteOnce hostPath: path: /metrics persistentVolumeReclaimPolicy: Retain ClaimRef: name: prometheus-k8s-db-prometheus-k8s-1 namespace: openshift-monitoring $ vi pvc-prometheus-1.yml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: prometheus-k8s-db-prometheus-k8s-1 spec: resources: requests: storage: 100G accessModes: - ReadWriteOnce
Post Installation - Alertmanager
After two Prometheus pods are spun up successfully, Alertmanager pods will be spinning up right after.
$ oc get pods
NAME READY STATUS RESTARTS AGE
alertmanager-main-0 0/3 Pending 0 42s
cluster-monitoring-operator-6566bf44b-sb8wk 1/1 Running 0 14m
grafana-67cb69b946-684vc 2/2 Running 0 13m
prometheus-k8s-0 4/4 Running 1 1m
prometheus-k8s-1 4/4 Running 3 6m
prometheus-operator-77bc9b6c68-gw92h 1/1 Running 0 13m
Again, the alertmanager will remain at Pending status until it has claimed the PV successfully.
- Delete the Alertmanager PVC created by deployment:
$ oc get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE alertmanager-main-db-alertmanager-main-0 Pending 41s prometheus-k8s-db-prometheus-k8s-0 Bound prometheus-k8s-db-prometheus-k8s-0 100G RWO 7m prometheus-k8s-db-prometheus-k8s-1 Bound prometheus-k8s-db-prometheus-k8s-1 100G RWO 4m $ oc delete pvc alertmanager-main-db-alertmanager-main-0 persistentvolumeclaim "alertmanager-main-db-alertmanager-main-0" deleted
- Create the new PV for Alertmanager:
$ vi pv-alertmanager-0.yml apiVersion: v1 kind: PersistentVolume metadata: name: alertmanager-main-db-alertmanager-main-0 spec: capacity: storage: 10G accessModes: - ReadWriteOnce hostPath: path: /alertmanager persistentVolumeReclaimPolicy: Retain storageClassName: alertmanager-storageclass ClaimRef: name: alertmanager-main-db-alertmanager-main-0 namespace: openshift-monitoring $ oc create -f pv-alertmanager-0.yml
Note that /alertmanager is the HostPath attached to the node.
- Create the PVC for Alertmanager:
$ vi pvc-alertmanager-0.yml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: alertmanager-main-db-alertmanager-main-0 spec: resources: requests: storage: 10G accessModes: - ReadWriteOnce $ oc create -f pvc-alertmanager-0.yml -n openshift-monitoring
After this is done, the second and third Alertmanager pod will start to spin up. So, repeat the steps 1 to 3, creating a new PV and PVC with alertmanager-main-db-alertmanager-main-1 and alertmanager-main-db-alertmanager-main-2 respectively.
The end result for the PV and PVC in OpenShift-Monitoring:
$ oc get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
alertmanager-main-db-alertmanager-main-0 10G RWO Retain Bound openshift-monitoring/alertmanager-main-db-alertmanager-main-0 5m
alertmanager-main-db-alertmanager-main-1 10G RWO Retain Bound openshift-monitoring/alertmanager-main-db-alertmanager-main-1 1m
alertmanager-main-db-alertmanager-main-2 10G RWO Retain Bound openshift-monitoring/alertmanager-main-db-alertmanager-main-2 8s
prometheus-k8s-db-prometheus-k8s-0 100G RWO Retain Bound openshift-monitoring/prometheus-k8s-db-prometheus-k8s-0 13m
prometheus-k8s-db-prometheus-k8s-1 100G RWO Retain Bound openshift-monitoring/prometheus-k8s-db-prometheus-k8s-1 11m
$ oc get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
alertmanager-main-db-alertmanager-main-0 Bound alertmanager-main-db-alertmanager-main-0 10G RWO 3m
alertmanager-main-db-alertmanager-main-1 Bound alertmanager-main-db-alertmanager-main-1 10G RWO 1m
alertmanager-main-db-alertmanager-main-2 Bound alertmanager-main-db-alertmanager-main-2 10G RWO 6s
prometheus-k8s-db-prometheus-k8s-0 Bound prometheus-k8s-db-prometheus-k8s-0 100G RWO 13m
prometheus-k8s-db-prometheus-k8s-1 Bound prometheus-k8s-db-prometheus-k8s-1 100G RWO 10m


Real Madrid squad 'relieved by Jose Mourinho's Tottenham Hotspur move'
Members of Real Madrid's first-team squad are allegedly pleased to see Jose Mourinho appointed as the new head coach of Tottenham Hotspur.
by Darren PlantLess than 12 hours after Spurs officially parted ways with Mauricio Pochettino, Mourinho was confirmed as the Argentine's replacement on a three-and-a-half-year deal.
The beginning of Mourinho's third spell at a Premier League outfit comes just weeks after the Portuguese was linked with a second spell at Real.
However, according to Sport, several high-profile names at the Bernabeu were not in favour of the 56-year-old returning to Los Blancos.
The report claims that the likes of Sergio Ramos will 'now breathe easier' after Mourinho secured another position in English football.
Between 2010 and 2013, Mourinho won one La Liga and one Copa del Rey while boss of the Spanish giants.
body check tags ::


Tutorial 00: jupyter basics
Posted on Wed 06 December 2017 in misc by Corey Adams, Kazuhiro Terao
This post covers the very basics of how to use a Jupyter notebook. If you're already somewhat familiar with it, you can check this link for more comprehensive guide.
The name "notebook" comes from the fact that it literally acts like a notebook where you write down your findings, formulas, etc.. It's awesome because you can "execute code" you wrote, or keep texts as just notes, "make comments", and "keep figures in place". Let's explore these basics.
Python code¶
The individual blocks of notebook interface are called cells, and you use shift+enter to execute a cell. The actions taken persist in backend of Jupyter called the kernel. By default, these blocks are executed as a python code (by a python kernel).
from __future__ import print_function
x = 5
print(x)
The order in which cells execute matters, so if you update a variable in a later cell, and reexecute a previous one, results can change. The order of execution can be seein inside the square bracket on the left of executed code block.
Commenting your code¶
You can comment your python block as you would normally do:
# This is a python code block
# You can add comments to a jupyter notbook by changing the format from Code to Markdown
... but that looks not great (especially in this color scheme!).
Another way to comment is this, how I have been writing this notebook as a Markdown cell. You can also use
Plotting a figure¶
You can import anything just as you would normally do in your python session
import numpy
import matplotlib.pyplot as plt
%matplotlib inline
The last line above tells jupyter to show all matplotlib plots below the code that created them, and if you save the notebook and commit it to, say, github then the plots will be shown in the browser when looking at the notebook:
x = numpy.arange(0,10, 0.01)
y = numpy.sin(x)
fig, ax = plt.subplots(figsize=(16,9))
plt.plot(x, y, label="Sin(x)")
plt.grid(True)
plt.xlabel("X", fontsize=20)
plt.ylabel("Y", fontsize=20)
plt.legend(fontsize=20)
plt.show()
Once you got these basics (and play a bit more by yourself), again I advertise this awesome notebook guidance. The community of Jupyter notebook is huge, so you will find answers to most of your questions, if not all, from professor Google.


Product type: image mosaic (Level-5)
Grid resolution: 12.5 m per pixel
Note: currently, only the MC11-E quadrangle is available.
Data source: - currently not available for public download.
Reference to the single-strip processing:
http://www.hou.usra.edu/meetings/lpsc2016/pdf/2034.pdf
Reference to the mosaic processing:
Michael et al. (2016), Systematic processing of Mars Express HRSC panchromatic and colour image mosaics: Image equalisation using an external brightness reference, doi: 10.1016/j.pss.2015.12.002


No! Check out "React Without JSX" to learn more.
No! Check out "React Without ES6" to learn more.
<div> {/* Comment goes here */} Hello, {name}! </div>
<div> {/* It also works for multi-line comments. */} Hello, {name}! </div>


Trump says: "[Clinton] has no idea whether it is Russia, China or anybody else... Our country has no idea."


I want to give slightly earlier notice than normal because of two nice developments for the Minnow Mayor Town Hall. This Sunday night I’m having not one but two youtube sensations on the Minnow Mayor Town Hall.
David Pakman
Hopefully you’ve seen this youtuber as he hit the trending page recently. David runs and stars in a political Youtube channel, which you can find here: https://www.youtube.com/user/MidweekPolitics. He’s made some pleas to his channel, which boasts 400k subscribers, to come to to Steem. Essentially here at Steem they can write, post, earn and support David and his work. So far so good David. You’re on fire and here’s hoping mspwaves can help pour some gasoline on it!
Angelo Atienza from They Will Kill You
I had a great conversation with Angelo last night. He’s agreed to come on the air the same night as David. Angelo has nearly a million subscribers and recently launched a crypto channel as well. Angelo runs They Will Kill You, and like David has expressed some concerns about the YouTube Adpocolapse. While talking with him he mentioned that he’s friends with a bunch of people that have successful YouTube channels like him (many were his roommates at one time). That lead to an epic idea!
5 Million Subscriber YouTube Panel!
Between David and Angelo we’re up to 1.4M youtube subscribers. With maybe 3 more or so we can have an audience of 5M YoutTube folks and David and Angelo both seem game to help do that! So, here’s the plan. I’ve offered to pay these folks 100 steem each to be on the panel discussion and 100 steem to any of their buddies with large youtube channels too. Should be fun, should help grow some interest in the platform, might get some of them active again, and even with a simple thing like “click here to my steem profile” at the end of their videos I think we could see a ton of activity.
Wanna listen to the show live and interact with them?
David and Angelo will be live during the Minnow Mayor Town Hall this Sunday night. The show starts at 8pm EST (0100UTC) and runs to 11 or midnight. David will be on right at 9:30. It’s a big of a mystery still what time Angelo will be there.
You can listen to the show live here: https://discord.gg/pGHjVtc or mspwaves.com/listen.
You can interact by text by going here: https://discord.gg/BS8WTzM
If you’re hoping to go on air with me please make sure you have a working mic and headset and you can test out your audio here: https://discord.gg/hesUJmg
Dice Bitches
We’ll play dice bitches for 50 steem. The rules changed slightly as the bot is slightly different
we start with t!dice 10d10 and will keep moving down from there 9d9 and 8d8 and so on.
If you tie my roll or beat it you’re in the next level. If you’re the last person standing you’ll win.
If I win once we’ll try again. If I win twice I’ll send the money to @msp-waves.
Delegation
I think I’m going to switch up how my delegation works. I think I’m going to start delegating to an audience based account, and people that show up to the shows frequently will be given automatic votes! I’m thinking that roughly every time you show up to one of my shows I’ll add some percentage to the auto vote. That way everyone wins that comes to listen!
See you there and I’m looking forward to building this panel!
https://steemitimages.com/DQmbu8H6RDh6XRycGGsD8ZFnoDkQEfqvhviu66bqTNJ2EfK/MSP%20waves%20logo.gif
This page is synchronized from the post: ‘David Pakman, Angelo Atienza (They Will Kill You) and the quest for the FIVE MILLION Youtube subscriber Panel Discussion on mspwaves!’


The rules for the Best Prediction category are as
follows.
The target variable for the prediction problem is "ASPFWR5"
as provided in the Hull Tactical data set.
This is the 5 (trading) day forward ERP of the S&P 500 adjusted
for dividends.
This category of the contest will have two
evaluation phases. Phase I will involve an out-of-sample test
and Phase II will involve a real-time prediction scenario.
Phase I of the contest will be judged on the best R-square
measure of your prediction algorithm based on some period in
2018 (as a result the data set you are given does not include
2018). This will take place on April 8th.
Phase II involves a live
contest that will run from April 8th to May 8th. It will
evaluate your prediction algorithms on real time S&P 500 returns
and will include a live leaderboard. These live scores will
again be based on R-squared performance.
The winner of the Best Prediction category will be based on
the average of the final R-square scores from the two phases.
You will be able to update your code during the live
portion of the contest. Using additional data sources is
also allowed provided you source them programmatically.
You final implementation will be
made public under a free software license.
The rules for the Most Creative category are as
follows.
The Most Creative category will expand the judgement
criteria to topics other than just prediction. This could be
an explanation of some market phenomena, a novel trading
strategy or an insightful analysis.
Some example entries include interesting visualization
(graphs, animations, etc), discovering new nonlinear
relationships in the data, proposing new data transformations,
testing a new variable for predictive power,
explaining a market anomaly pertaining to stock returns, etc.
The submitted entries in the
form of a typewritten report will be judged by a panel of
experts consisting of UCSB faculty and Hull Tactical
professionals.
A team is allowed to participate in one or both of
the contest categories. You are encouraged to participate in
both. The winners of both categories will deliver
a presentation to explain their ideas on May 16h.


|
In this tutorial, we will create a four-bar mechanism. You will use four-bar as a basis for many linkages. It is used for the crank-&-slider, and the six-bar mechanism described in Tutorial 2 and Tutorial 3. 1. From the start screen (http://purl.org/pmks/sim), notice the pendulum swinging around counter-clockwise at 10 rpm. Let us first change the speed to twice as fast in the opposite direction. This is accomplished by replacing the “10.0” in the speed box, with a -20. 2. Next, find the second joint in the table. Under the Links column, it only lists “input.” This is the name of the single link that is spinning around. Note that its x-y position is at {25, 0}, which corresponds to the open circle in the main viewer. As your mouse approaches the icon, the purple move arrow appears. Click and drag the joint to the y-axis – a point near {0, 50}. Feel free to click on the row and type 0 and 50 in the appropriate boxes. If you need to pan, use the arrow keys; if you need to zoom in or out, you can do this by the following methods: Table 1: Shortcuts for zooming in &
out.
3. Add a new link to this joint by typing a new link-name on the line next to “input.” First double-click the cell and put a comma or space to separate the name from “input”. You can write anything for the name – use “coupler”, or your first name or simply the number “1” or the letter “a.” Note that the simulation stops and a faint shape appear at the end of the joint. 4. Add two more joints. This is done by writing in two more rows in the table. On a new row, add two link-names to the Links column. Ensure that one of them is the same name as your new name in Step 3; make up another name. Use the default “R (pin joint)” for all new joints. For the x-y position, put any values in. Now, add a fourth joint. Under the Links column, include your latest name and a second name which is either “ground” or “0”. Note that ground is a special link that must exist in your mechanism. PMKS_Web will likely correct common misspellings of ground as well. Once you finish putting in the new x-y position , you will likely notice movement. This is because you now have a one Degree-of-Freedom mechanism again and the simulation begins automatically. Troubleshooting:
If you don’t have a four-bar moving on your screen and the DOF is not 1 –
make sure that you have not made a mistake in misspelling the link-names. If
the naming is correct and there is 1 DOF, try clicking the “Redraw” button in
the lower left. 5. Move the joints around and notice the changes in behavior. By now you likely noticed the three checkboxes at the end of the row and the one radio-button at the front of the row.
Figure 1: The left-most and right-most
part of the tables include check boxes for showing These “P, V, A” check boxes show the Path, Velocity, and Acceleration of the chosen joint. Check these to see the result in your mechanism. Note that the checkboxes have no effect for the grounded joints. You will also note in this figure the DOF shown in the bottom corner and buttons to remove rows in the mechanism. 6. Add one more joint to the mechanism (add one more row to the table) for a path-tracer point. Assign only one link. It should be the name you used for the non-grounded link. Move this new point around to see the coupler-curves. Be sure to click the “P” checkbox in this new row to show the green path followed by this tracer point. You mechanism might look something like this:
Figure 2: Example Four-bar created through this tutorial. 7.
Save your work. It is important to save your
work often, since this is a web program (and very must in beta development!).
There are two ways to do this: click the “Save Configuration” button, which
will say the details as a small text file; or click the “Get as URL” button.
This latter choice doesn’t save anything but rather generates a messy URL
that you should copy and paste somewhere else. Check out other tutorials: · Tutorial 2: Creating a Crank-and-Slider · Tutorial 3: Additional Capabilities (n-Bar, Target Shapes, & Outputting Data) Copyright ©2014 Matthew I. Campbell, Oregon State University Disclaimer |


This is a list of the Department of Computer Science's faculty.
Thomas Allen
William Bailey
Michael K. Bradshaw
Alex Martin McAllister
David M. Toth
Want to return to the homepage? Click
here!


Headings are role names (qualified by view). Checkboxes represent the expected access of each test persona on a view. A box is checked if and only if the labelled persona is expected to have access.
If a box is red, the changes you are making have altered the expected state. Please either modify your changes to maintain the expected state, or click the checkbox to explicitly change the expected access.


Before Change
// Second: D is too large. M needs to be > 1 or D will be set to 0...
// unfortunately, this takes a long time.
with warnings.catch_warnings(record=True) as w:
_ = auto_arima(wineind, seasonal=True, m=2, // noqa: F841
suppress_warnings=False,
D=3, error_action="warn")
assert len(w) > 0
After Change
// Second: D is too large. M needs to be > 1 or D will be set to 0...
// unfortunately, this takes a long time.
with pytest.warns(ModelFitWarning):
auto_arima(wineind, seasonal=True, m=2, // noqa: F841
suppress_warnings=False,
D=3, error_action="warn")
def test_warn_for_stepwise_and_parallel():
with warnings.catch_warnings(record=True) as w:
_ = auto_arima(lynx, suppress_warnings=False, d=1, // noqa: F841
error_action="ignore", stepwise=True, n_jobs=2)


Covid-19 News
Global
Countries
New Actives
Actives
New Recovered
Recovered
New Deaths
Deaths
Confirmed
Recovered
Deaths


How much will you earn?
Tell us how much you expect to earn between 6 April 2015 and 5 April 2016.
*RUTH* Can we get an example of how to calculate the income - manually? I.E. A sum
Tell us how much you expect to earn between 6 April 2015 and 5 April 2016.
*RUTH* Can we get an example of how to calculate the income - manually? I.E. A sum


Dear {username},
Recently a request was submitted to reset a password for your account.
If this was a mistake, just ignore this email and nothing will happen.
The following link will expire in 7 days.
To reset your password, visit the following link:
{resetURL}
Regards,
{web_name}


class Rake::Task
A Task is the basic unit of work in a Rakefile. Tasks have associated actions (possibly more than one) and a list of prerequisites. When invoked, a task will first ensure that all of its prerequisites have an opportunity to run and then it will execute its own actions.
Tasks are not usually created directly using the new method, but rather use
the file
and task
convenience methods.
Attributes
List of actions attached to a task.
Has this task already been invoked? Already invoked tasks will be skipped unless you reenable them.
Application owning this task.
File/Line locations of each of the task definitions for this task (only valid if the task was defined with the detect location option set).
List of prerequisites for a task.
List of prerequisites for a task.
Array of nested namespaces names used for task lookup by this task.
List of sources for task.
Public Class Methods
Return a task with the given name. If the task is not currently known, try to synthesize one from the defined rules. If no rules are found, but an existing file matches the task name, assume it is a file task with no dependencies or actions.
# File lib/rake/task.rb, line 383 def [](task_name) Rake.application[task_name] end
Clear the task list. This cause rake to immediately forget all the tasks that have been assigned. (Normally used in the unit tests.)
# File lib/rake/task.rb, line 370 def clear Rake.application.clear end
Define a rule for synthesizing tasks.
# File lib/rake/task.rb, line 400 def create_rule(*args, &block) Rake.application.create_rule(*args, &block) end
Define a task given args
and an option block. If a rule with
the given name already exists, the prerequisites and actions are added to
the existing task. Returns the defined task.
# File lib/rake/task.rb, line 395 def define_task(*args, &block) Rake.application.define_task(self, *args, &block) end
Create a task named task_name
with no actions or
prerequisites. Use enhance
to add actions and prerequisites.
# File lib/rake/task.rb, line 96 def initialize(task_name, app) @name = task_name.to_s @prerequisites = [] @actions = [] @already_invoked = false @comments = [] @lock = Monitor.new @application = app @scope = app.current_scope @arg_names = nil @locations = [] @invocation_exception = nil end
Apply the scope to the task name according to the rules for this kind of task. Generic tasks will accept the scope as part of the name.
# File lib/rake/task.rb, line 407 def scope_name(scope, task_name) scope.path_with_task_name(task_name) end
TRUE if the task name is already defined.
# File lib/rake/task.rb, line 388 def task_defined?(task_name) Rake.application.lookup(task_name) != nil end
List of all defined tasks.
# File lib/rake/task.rb, line 375 def tasks Rake.application.tasks end
Public Instance Methods
Add a description to the task. The description can consist of an option argument list (enclosed brackets) and an optional comment.
# File lib/rake/task.rb, line 289 def add_description(description) return unless description comment = description.strip add_comment(comment) if comment && !comment.empty? end
List of all unique prerequisite tasks including prerequisite tasks' prerequisites. Includes self when cyclic dependencies are found.
# File lib/rake/task.rb, line 74 def all_prerequisite_tasks seen = {} collect_prerequisites(seen) seen.values end
Name of arguments for this task.
# File lib/rake/task.rb, line 137 def arg_names @arg_names || [] end
Clear the existing prerequisites, actions, comments, and arguments of a rake task.
# File lib/rake/task.rb, line 148 def clear clear_prerequisites clear_actions clear_comments clear_args self end
Clear the existing actions on a rake task.
# File lib/rake/task.rb, line 163 def clear_actions actions.clear self end
Clear the existing arguments on a rake task.
# File lib/rake/task.rb, line 175 def clear_args @arg_names = nil self end
Clear the existing comments on a rake task.
# File lib/rake/task.rb, line 169 def clear_comments @comments = [] self end
Clear the existing prerequisites of a rake task.
# File lib/rake/task.rb, line 157 def clear_prerequisites prerequisites.clear self end
First line (or sentence) of all comments. Multiple comments are separated by a “/”.
# File lib/rake/task.rb, line 313 def comment transform_comments(" / ") { |c| first_sentence(c) } end
Enhance a task with prerequisites or actions. Returns self.
# File lib/rake/task.rb, line 111 def enhance(deps=nil, &block) @prerequisites |= deps if deps @actions << block if block_given? self end
Execute the actions associated with this task.
# File lib/rake/task.rb, line 265 def execute(args=nil) args ||= EMPTY_TASK_ARGS if application.options.dryrun application.trace "** Execute (dry run) #{name}" return end application.trace "** Execute #{name}" if application.options.trace application.enhance_with_matching_rule(name) if @actions.empty? @actions.each { |act| act.call(self, args) } end
Full collection of comments. Multiple comments are separated by newlines.
# File lib/rake/task.rb, line 307 def full_comment transform_comments("\n") end
Return a string describing the internal state of a task. Useful for debugging.
# File lib/rake/task.rb, line 345 def investigation result = "------------------------------\n".dup result << "Investigating #{name}\n" result << "class: #{self.class}\n" result << "task needed: #{needed?}\n" result << "timestamp: #{timestamp}\n" result << "pre-requisites: \n" prereqs = prerequisite_tasks prereqs.sort! { |a, b| a.timestamp <=> b.timestamp } prereqs.each do |p| result << "--#{p.name} (#{p.timestamp})\n" end latest_prereq = prerequisite_tasks.map(&:timestamp).max result << "latest-prerequisite time: #{latest_prereq}\n" result << "................................\n\n" return result end
Invoke the task if it is needed. Prerequisites are invoked first.
# File lib/rake/task.rb, line 181 def invoke(*args) task_args = TaskArguments.new(arg_names, args) invoke_with_call_chain(task_args, InvocationChain::EMPTY) end
Name of the task, including any namespace qualifiers.
# File lib/rake/task.rb, line 118 def name @name.to_s end
Is this task needed?
# File lib/rake/task.rb, line 277 def needed? true end
List of prerequisite tasks
# File lib/rake/task.rb, line 58 def prerequisite_tasks prerequisites.map { |pre| lookup_prerequisite(pre) } end
Reenable the task, allowing its tasks to be executed if the task is invoked again.
# File lib/rake/task.rb, line 143 def reenable @already_invoked = false end
Set the names of the arguments for this task. args
should be
an array of symbols, one for each argument name.
# File lib/rake/task.rb, line 339 def set_arg_names(args) @arg_names = args.map(&:to_sym) end
First source from a rule (nil if no sources)
# File lib/rake/task.rb, line 90 def source sources.first end
# File lib/rake/task.rb, line 49 def sources if defined?(@sources) @sources else prerequisites end end
Timestamp for this task. Basic tasks return the current time for their time stamp. Other tasks can be more sophisticated.
# File lib/rake/task.rb, line 283 def timestamp Time.now end
Return task name
# File lib/rake/task.rb, line 39 def to_s name end
Protected Instance Methods
Same as invoke, but explicitly pass a call chain to detect circular dependencies.
If multiple tasks depend on this one in parallel, they will all fail if the first execution of this task fails.
# File lib/rake/task.rb, line 192 def invoke_with_call_chain(task_args, invocation_chain) new_chain = Rake::InvocationChain.append(self, invocation_chain) @lock.synchronize do begin if application.options.trace application.trace "** Invoke #{name} #{format_trace_flags}" end if @already_invoked if @invocation_exception if application.options.trace application.trace "** Previous invocation of #{name} failed #{format_trace_flags}" end raise @invocation_exception else return end end @already_invoked = true invoke_prerequisites(task_args, new_chain) execute(task_args) if needed? rescue Exception => ex add_chain_to(ex, new_chain) @invocation_exception = ex raise ex end end end
Private Instance Methods
Get the first sentence in a string. The sentence is terminated by the first period, exclamation mark, or the end of the line. Decimal points do not count as periods.
# File lib/rake/task.rb, line 332 def first_sentence(string) string.split(/(?<=\w)(\.|!)[ \t]|(\.$|!)|\n/).first end
Format the trace flags for display.
# File lib/rake/task.rb, line 256 def format_trace_flags flags = [] flags << "first_time" unless @already_invoked flags << "not_needed" unless needed? flags.empty? ? "" : "(" + flags.join(", ") + ")" end
Transform the list of comments as specified by the block and join with the separator.
# File lib/rake/task.rb, line 319 def transform_comments(separator, &block) if @comments.empty? nil else block ||= lambda { |c| c } @comments.map(&block).join(separator) end end


by Joe M. » Mon Mar 27, 2006 10:55 pm
Here's what I have so far. I need to finish out the last section and throw in the combat rules, but other than that, I'm good.

Born To Rule
Our goal at Unseen Studios is to create a game unlike any seen before. Formed in our high school years, Unseen Studios has been through ups and downs, but our goal is clear: Born to Rule. A fantastic world, populated with strange peoples and frightening monsters, a world that breathes magic. A game that plays this world in a fast-paced shooter-game-influenced style. The basic purpose of any game is to have fun, and we of the Unseen recognize that, because we are gamers ourselves, out to do one better. We believe that the key to making any online game fun is by allowing the players to interact with each other unencumbered by the game itself, and in addition, by keeping the development team closely tied to the players, not locked away in an ivory tower, out of touch with our own supporters.
Born to Rule started with that simple idea: a fast-paced online game that remembers what fun is. We now have some goals???how we plan to accomplish that idea, to make that dream real. What follows is simply a sketch of our plans, to display to the world our vision. So enjoy, and keep visiting the site and supporting us as we try to make this game???for you, for ourselves, for us.
Character Workings:
Attributes and Levels:
*A character is defined by a set of ???attributes??? that outline the core of what is that person???take away all education, all possessions, what are you left with?
Strength???raw physical power.
Agility???quickness, reflexes.
Endurance???toughness, health.
Intelligence???innate intelligence, not education, but quickness of brain.
Soul???supernatural affinity.
*Every character starts with a score of 0 in each attribute, and the player may distribute 6 points among the five attributes at birth. The player may also decrease any attribute to a minimum of -2, but this carries weighty penalties, and is not to be taken lightly.
*As a character lives life and gains power, their abilities naturally increase. This is represented by ???levels,??? which are gained through the accumulation of ???experience points,??? or simply ???xp??? for short. In the Born to Rule system, unlike in similar systems, levels will be relatively easy to acquire, but will have less impact on a character???s power with each one; this better represents reality, in which people to not gain knowledge or power in leaps and jumps, but rather in small bits, over time. These levels grant access to new abilities and powers, as well as increasing natural attributes over time.
Skills:
*On top of natural abilities, all people have certain acquired abilities???through education, through trial and error, through practice???everybody knows how to do something. The characters??? ???skills??? represent these acquired abilities, whether with swordplay, blacksmithing, or spell-crafting.
*Skills in Born to Rule will be advanced in one of two ways:
Education/Buying: When a character first starts, they are granted a certain number of skill points to distribute among basic skills, representing any early education or training that they have received. When a character advances in level, he is given a small number of skill points to distribute in the same manner, representing any education or training that they have come by in addition to regular practice of their skills.
Practice: Once a character has been educated in the basics of a skill, he may advance that skill through practice. After a while of using a skill, however, the player receives less and less benefit from each use of the skill, and may never advance the skill past a certain number determined by their level.
*Skills can also decrease, if they are not used. If skills are not used for a while, they start to go down at a fairly slow rate, but never descend below a certain point???no matter how long it???s been since you???ve practiced that martial art, your body remembers more than you would think.
Special Abilities:
*Unlike many role-playing-style games, particularly the progenitor of all RPGs, Dungeons & Dragons, we believe that the system of ???classes??? is unnecessary in a computer game, but believe instead in other methods to focus character development. At character creation, a player can choose between a list of ???professions,??? which represent what job your character has basic training for???thief or warrior, monk or magician???and translate, in game terms, into bonuses with certain skills.
*A major part in the world of Born to Rule is the system of guilds. Guilds control many resources, and as such are an easy way for a character to gain access to new abilities, items, and quests.
*Access to special abilities (rage attack, multi-spells, dual-wielding of weapons) is therefore determined by a player???s level, skill in certain related areas, and guild membership.
*These guilds are generally institutions in the game world, run by non-player characters (NPCs), far-reaching, and powerful. Player characters (PCs) can form their own guilds as well, but may belong to one NPC guild and one PC guild concurrently.
The World and the Game:
Cities, Transportation, and the Players:
*Cities in Born to Rule are safe-zones in all but very unusual circumstances. This is, while not realistic, designed to allow the players to have fun. Everybody needs an area to relax in. Therefore, cities will be non-combat zones, with no damage given or received. The only circumstances that this would change would be by direct admin intervention???such as in the case of a coup d?????tat attempted by a cabal of dark wizards, or an invasion by a local tribe of troglodytes.
*While in a city or another safe area, a character???s tracking screen will show the presence of other entities and sketch a map out as the character explores, which can be enlarged to view, and to which labels may be appended by the player.
*Transportation between cities of the world will be relatively easy at higher levels, with each town within easy traveling distance of the next. Eventually, there will be a system of transportation between towns, but that is for the future.
*Certain landmarks or special areas will be able to be controlled by player groups, creating tension and possibly war. These landmarks???be they castles or magical sites or ghost towns???will confer some benefits to the owners, making them desirable to own.
Dangerous Areas:
*Any area not immediately outside of a city is considered a dangerous area. This means no law and order for humanity. Other beings???orcs and elves and trolls and goblins and other Tolkein-esque or otherwise creatures???may have established government in the wasteland, but nothing friendly to humanity.
*In a dangerous area, a character may deal and receive damage or malicious influences freely, guided only by his own conscious. (This will relate heavily to the PC Interactions section later on.)
*In a dangerous area, a character???s tracking screen is a dead black in normal circumstances. The screen can be activated either through special abilities, such as danger sense or tracking, or supernatural abilities, such as a detect evil spell, with potency determined by the power of the ability used. Players with a cartography skill of sufficient level will see a sketched-outline map of dangerous areas they explore similar to that they see in cities, and with a higher skill, may copy out maps of areas they are visiting for other players to use. Certain enchantments, cast at the time of creation, can enable maps to show beings on the character???s tracking screen.
*In dangerous areas, ???monsters??? spawn. ???Monsters??? is here used as a very general-purpose word (thanks to the terminology that Dungeons & Dragons has spawned) to mean beings hostile on general principle toward PCs. These monsters are controlled by the game, and will seek to harm any players that trespass into their territory.
*Different types of monsters are of different intelligence levels, but overall, these beings are not stupid: they are protecting their home and their lives, so don???t expect the masses of weak monsters that can be found in other computer games???we at Unseen Studios think that that???s just plain boring.
*Also in dangerous areas, unexplored by humanity, there are treasures to be found for those clever enough to find them. Hidden areas, elaborate puzzles, and tricky maps are to be expected in certain dangerous areas???nobody should expect that the crypt of the greatest mage of the last century be a gazebo of joy: nasty traps, fabulous jewels, devious guardians, mazes and difficult riddles are the order of the day (in some higher-level areas, at least).
PC Interactions:
*Bounty Hunting
*Auction House
*Parties
*Guild System
*Faction
*Quests


1 Reportable IN THE SUPREME COURT OF INDIA CRIMINAL APPELLATE JURISDICTION CRIMINAL APPEAL NOS.1130-31 OF 2003 K.K. Ahuja ... Appellant Vs. V.K. Vora & Anr. ... Respondents JUDGMENT
R. V. RAVEENDRAN, J.
The question as to who can be said to be persons "in-charge of, and was responsible to the company for the business of the company" referred to in section 141 of the Negotiable Instruments Act, 1881 (for short 'the Act') arises for consideration in this appeal by special leave by a complainant.
2. The appellant filed two complaints (Crl. Comp.No.58/2001 and 59/2001) in the Court of the Metropolitan Magistrate, Delhi, against M/s. Motorol Speciality Oils Ltd. (`the Company' for short) and eight others under section 138 of the Act. The first complaint was in regard to dishonour 2 of five cheques (each for Rs.5,00,000/-, all dated 28.2.2001). The second complaint was in regard to dishonour of three cheques (for Rs.3 lakhs, 3 lakhs and 10 lakhs dated 31.10.2000, 30.11.2000 and 20.12.2000 respectively). The cheques were alleged to have been drawn in favour of the appellant's proprietary concern (M/s Delhi Paints & Oil Traders) by the company represented by its Chairman. In the said complaints, the appellant had impleaded nine persons as accused, namely, the company (A-1), its Chairman (A-2), four Directors (A-3 to A-6) as also its Vice-President (Finance), General Manager and Deputy General Manager (A-7, A-8 and A- 9 respectively). In the complaint the complainant averred that "at the time of the commission of offence, accused 2 to 9 were in-charge of and responsible for the conduct of day to day business of accused No.1" and that therefore they were deemed to be guilty of offence under section 138 read with section 141 of the Act and section 420 of the Indian Penal Code. The appellant also alleged that respondents 2 to 9 were directly and actively involved in the financial dealings of the company and that the accused had failed to make payment of the cheques which were dishonoured. In the pre- summoning evidence, the appellant reiterated that accused 2 to 9 were responsible for the conduct of day to day business of first accused company at the time of commission of offence. The learned Magistrate by order dated 3.10.2001 directed issue of summons to all the accused. 3
3. Accused no. 9 (first respondent herein) filed two petitions under section 482 Cr.P.C. for quashing the proceedings against him on the ground that as "Deputy General Manager", he was not "in-charge of and was responsible to the company for the conduct of the business of the company". He also contended that merely stating that he was directly and actively involved in the financial dealings of the accused or was responsible for the conduct of day to day business would not be sufficient to fasten criminal liability on him. He submitted that neither the complaint nor the sworn statement gave any particulars of the part played by him or part attributed to him in the alleged offence. At the hearing before the High Court, the Learned counsel for the appellant-complainant conceded that details as to how the first respondent could be said to be "in charge of, and was responsible to the company for the conduct of the business of the company" were not given in the complaint or the statement on oath. It was also conceded that the averments necessary to make out an offence under section 420 IPC were not contained in the complaint. The High Court by order dated 10.10.2002 allowed the said petitions and quashed the orders summoning the first respondent on the ground that he was not a signatory to the cheques nor was a party to the decision to allow the cheques to be dishonoured. The said order is under challenge.
4
4. The appellant contends that having regard to the specific averment in the complaint that the accused 2 to 9 were in charge of and responsible for the conduct of day to day business of the company, the order summoning the first respondent could not have been quashed under section 482 Cr.P.C. It is also submitted that at the stage of summoning the accused, when evidence was yet to be led by the parties, the High Court committed an error in quashing the order summoning the first respondent, on the basis of an unwarranted assumption that the first respondent was not responsible for or involved in the conduct of the business of the company. Reliance is placed on the decision of this Court in S.M.S. Pharmaceuticals Ltd. v. Neeta Bhalla & Anr. [2005 (8) SCC 89 for short `SMS Pharma (I)'].
5. Section 141 of the Act deals with offences by companies. Relevant portions of the said section are extracted below :
"141. Offences by companies.--(1) If the person committing an offence under section 138 is a company, every person who, at the time the offence was committed, was in charge of, and was responsible to the company for the conduct of the business of the company, as well as the company, shall be deemed to be guilty of the offence and shall be liable to be proceeded against and punished accordingly:
xxxxx (2) Notwithstanding anything contained in sub-section (1), where any offence under this Act has been committed by a company and it is proved that the offence has been committed with the consent or connivance of, or is attributable to, any neglect on the part of, any 5 director, manager, secretary or other officer of the company, such director, manager, secretary or other officer shall also be deemed to be guilty of that offence and shall be liable to be proceeded against and punished accordingly."
Explanation - For the purposes of this section, -
(a) "company means any body corporate and includes a firm or other association of individuals; and
(b) "director" in relation to a firm, means a partner in the firm.
6. A three-Judge Bench of this Court considered the scope of section 141 of the Act in SMS Pharma (I) and held that it is necessary to specifically aver in a complaint under Sections 138 and 141 of the Act, that at the time when the offence was committed, the person accused was in charge of, and responsible for the conduct of business of the company and that in the absence of such averment, section 141 cannot be invoked . This Court held:
"What is required is that the persons who are sought to be made criminally liable under Section 141 should be at the time the offence was committed, in charge of and responsible to the company for the conduct of the business of the company. Every person connected with the company shall not fall within the ambit of the provision. It is only those persons who were in charge of and responsible for conduct of business of the company at the time of commission of an offence, who will be liable for criminal action. It follows from this that if a director of a Company who was not in charge of and was not responsible for the conduct of the business of the company at the relevant time, will not be liable under the provision. The liability arises from being in charge of and responsible for conduct of business of the company at the relevant time when the offence was committed and not on the basis of merely holding a designation or office in a company. Conversely, a person not holding any office or designation in a Company may be liable if he satisfies the main requirement of being in charge of and responsible for conduct of business of a Company at the relevant time. Liability depends on the role one plays in the affairs of a Company and not on designation or status. If being a Director or Manager or Secretary was enough to cast criminal liability, the Section would have said so. Instead of "every person" the section would have said "every Director, Manager or Secretary in a Company is liable"....etc. The legislature is aware that it is a 6 case of criminal liability which means serious consequences so far as the person sought to be made liable is concerned. Therefore, only persons who can be said to be connected with the commission of a crime at the relevant time have been subjected to action."
"To sum up, there is almost unanimous judicial opinion that necessary averments ought to be contained in a complaint before a person can be subjected to criminal process. A liability under section 141 of the Act is sought to be fastened vicariously on a person connected with a company, the principal accused being the company itself. It is a departure from the rule in criminal law against vicarious liability. A clear case should be spelled out in the complaint against the person sought to be made liable. Section 141 of the Act contains the requirements for making a person liable under the said provision. That the respondent falls within the parameters of section 141 has to be spelled out. A complaint has to be examined by the Magistrate in the first instance on the basis of averments contained therein. If the Magistrate is satisfied that there are averments which bring the case within section 141, he would issue the process. We have seen that merely being described as a director in a company is not sufficient to satisfy the requirement of section 141. Even a non-director can be liable under section 141 of the Act. The averments in the complaint would also serve the purpose that the person sought to be made liable would know what is the case which is alleged against him. This will enable him to meet the case at the trial."
(emphasis supplied) This Court then proceeded identified the nature of allegations required to be made against members of Board of Directors and person signing the cheque as follows :7
(i) Managing Director/Joint Managing Director: By virtue of the office they hold, these persons are in charge of and responsible for the conduct of business of the company. Therefore, they would fall under Section 141(1), even though there is no specific averment against them.
(ii) Person signing the cheque: The signatory of a cheque which is dishonoured, is clearly responsible for the act and will be covered under sub-section (2) of Section 141. Therefore, no special averment would be necessary to make him liable.
(iii) Director: The fact that a person is a director of a company is not by itself sufficient to make him liable under Section 141 of the Act. A director in a company cannot be deemed to be in charge of and responsible to the company for the conduct of its business. The requirement of Section 141 is that the person sought to be made liable should be in charge of and responsible for the conduct of the business of the company at the relevant time. This has to be averred, as there is no deemed liability upon a director .
7. In Sabitha Ramamurthy vs. RBS Channabasavaradhya - 2006 (10) SCC 581, this Court re-stated the requirements of section 141 of Act thus, in the context of a petition for quashing the process under Sec.482 Cr PC:
"It may be true that it is not necessary for the complainant to specifically reproduce the wordings of the section but what is required is a clear statement of fact so as to enable the court to arrive at a prima facie opinion that the accused are vicariously liable. Section 141 raises a legal fiction. By reason of the said provision, a person although is not personally liable for commission of such an offence would be vicariously liable therefor. Such vicarious liability can be inferred so far as a company registered or incorporated under the Companies Act, 1956 is concerned only if the requisite statements, which are required to be averred in the complaint petition, are made so as to make the accused therein vicariously liable for the offence committed by the company. Before a person can be made vicariously liable, strict compliance of the statutory requirements would be insisted........... In a case where the court is required to issue summons which would put the accused to some sort of harassment, the court should insist strict compliance with the statutory requirements."
[emphasis supplied] 8
8. In Saroj Kumar Poddar v State (NCT of Delhi) - 2007 (3) SCC 693, while dealing with an appeal against the refusal to quash the order taking cognizance, by an Ex-Director who had resigned from the Board prior to the date of issuance of the cheque, this Court held that making some bald averment was not sufficient. In that case, the complaint contained the following averments:
"That Accused 1 is a public limited company incorporated and registered under the Companies Act, 1956, and Accused 2 to 8 are/were its Directors at the relevant time and the said Company is managed by the Board of Directors and they are responsible for and in charge of the conduct and business of the Company, Accused 1. However, cheques referred to in the complaint have been signed by Accused 3 and 8 for and on behalf of Accused 1 Company."
In spite of the averment that accused were Directors at the relevant time and were responsible for and in charge of the conduct of the business of the company, this Court held that allegations in the complaint, even if taken to be correct in their entirety, did not disclose any offence by the appellant, on the following reasoning :
"Apart from the Company and the appellant, as noticed hereinbefore, the Managing Director and all other Directors were also made accused. The appellant did not issue any cheque. He, as noticed hereinbefore, had resigned from the Directorship of the Company. It may be true that as to exactly on what date the said resignation was accepted by the Company is not known, but, even otherwise, there is no averment in the complaint petitions as to how and in what manner the appellant was responsible for the conduct of the business of the Company or otherwise responsible to it in regard to its functioning. He had not issued any cheque. How he is responsible for dishonour of the cheque has not been stated. The allegations made in paragraph 3, thus, in our opinion do not satisfy the requirements of Section 141 of the Act."9
[emphasis supplied]
9. In two subsequent decisions - SMS Pharmaceuticals v. Neeta Bhalla -
2007 (4) SCC 70 [for short 'SMS Pharma (II)'] and Everest Advertising (P) Ltd. v. State, Govt. of NCT of Delhi - 2007 (5) SCC 54, relating to complaints against Directors of a company, the very same two-Judge Bench which decided Saroj Kumar Poddar, clarified that the observations therein that `the complaint should contain averments as to how and in what manner the accused was responsible for the conduct of the business of the company, or otherwise responsible for its functioning' were with reference to the particular facts of that case and should not be considered as a general proposition of law. But latter decisions dealing with liability of directors - N. K. Wahi vs. Shekhar Singh - 2007 (9) SCC 481, DCM Financial Services Ltd. vs. J. N. Sareen - 2008 (8) SCC 1, and Ramraj Singh vs. State of MP (a decision of a Bench of three Judges) - 2009 (5) SCALE 670, have reiterated the principle laid down in Saroj Kumar Poddar. The prevailing trend appears to require the complainant to state how a Director who is sought to be made an accused, was in charge of the business of the company, as every director need not be and is not in charge of the business of the company. If that is the position in regard to a director, it is needless to emphasise that in the case of non-director officers, there is all the more the 10 need to state what his part is with regard to conduct of business of the company and how and in what manner he is liable.
10. Having regard to section 141, when a cheque issued by a company (incorporated under the Companies Act, 1956) is dishonoured, in addition to the company, the following persons are deemed to be guilty of the offence and shall be liable to be proceeded against and punished :
(i) every person who at the time the offence was committed, was in charge of and was responsible to the company for the conduct of the business of the company;
(ii) any Director, Manager, Secretary or other officer of the company with whose consent and connivance, the offence under section 138 has been committed; and
(iii) any Director, Manager, Secretary or other officer of the company whose negligence resulted in the offence under section 138 of the Act, being committed by the company.
While liability of persons in the first category arises under sub-section (1) of Section 141, the liability of persons mentioned in categories (ii) and (iii) arises under sub-section (2). The scheme of the Act, therefore is, that a person who is responsible to the company for the conduct of the business of the company and who is in charge of business of the company is vicariously liable by reason only of his fulfilling the requirements of sub- section (1). But if the person responsible to the company for the conduct of business of the company, was not in charge of the conduct of the business of 11 the company, then he can be made liable only if the offence was committed with his consent or connivance or as a result of his negligence.
11. The criminal liability for the offence by a company under section 138, is fastened vicariously on the persons referred to in sub-section (1) of section 141 by virtue of a legal fiction. Penal statutes are to be construed strictly. Penal statutes providing constructive vicarious liability should be construed much more strictly. When conditions are prescribed for extending such constructive criminal liability to others, courts will insist upon strict literal compliance. There is no question of inferential or implied compliance. Therefore, a specific averment complying with the requirements of section 141 is imperative. As pointed out in K. Srikanth Singh vs. North East Securities Ltd - 2007 (12) SCC 788, the mere fact that at some point of time, an officer of a company had played some role in the financial affairs of the company, will not be sufficient to attract the constructive liability under section 141 of the Act.
12. Sub-section (2) of section 141 provides that a Director, Manager, Secretary or other officer, though not in charge of the conduct of the business of the company will be liable if the offence had been committed with his consent or connivance or if the offence was a result of any 12 negligence on his part. The liability of persons mentioned in sub-section (2) is not on account of any legal fiction but on account of the specific part played - consent and connivance or negligence. If a person is to be made liable under sub-section (2) of section 141, then it is necessary to aver consent and connivance, or negligence on his part.
13. This takes us to the next question under sub-section (1) of section 141, as to (i) who are the persons who are responsible to the company for the conduct of the business of the company, and (ii) who could be said to be in charge and was responsible to the company for the conduct of the business of the company.
14. The words "every person who, at the time of the offence was committed, was in charge of, and was responsible for the conduct of the business of the company" occurs not only in section 141(1) of the Act but in several enactments dealing with offences by companies, to mention a few - Section 278 B of the Income Tax Act, 1961, Section 22C of Minimum Wages Act, 1948, Section 86A of the Employees State Insurance Act, 1948, Section 14A of Employees Provident Fund and Miscellaneous Provisions Act, 1952, Section 29 of Payment of Bonus Act, 1965, Section 40 of The Air 13 (Prevention and Control of Pollution) Act, 1981 and section 47 of Water (Prevention and Control of Pollution) Act, 1974. But neither section 141(1) of the Act, nor the pari materia provisions in other enactments give any indication as to who are the persons responsible to the company, for the conduct of the business of the company. Therefore, we will have to fall back upon the provisions of Companies Act, 1956 which is the law relating to and regulating companies. Section 291 of the said Act provides that subject to the provisions of that Act, the Board of Directors of a company shall be entitled to exercise all such powers, and to do all such acts and things, as the company is authorised to exercise and do. A company though a legal entity can act only through its Board of Directors. The settled position is that a Managing Director is prima facie in charge of and responsible for the company's business and affairs and can be prosecuted for offences by the company. But insofar as other directors are concerned, they can be prosecuted only if they were in charge of and responsible for the conduct of the company's business. A combined reading of Sections 5 and 291 of Companies Act, 1956 with the definitions in clauses (24), (26), (30), (31), (45) of section 2 of that Act would show that the following persons are considered to be the persons who are responsible to the company for the conduct of the business of the company : --
(a) the managing director/s;
14
(b) the whole-time director/s;
(c) the manager;
(d) the secretary;
(e) any person in accordance with whose directions or instructions the Board of directors of the company is accustomed to act;
(f) any person charged by the Board with the responsibility of complying with that provision (and who has given his consent in that behalf to the Board); and
(g) where any company does not have any of the officers specified in clauses
(a) to (c), any director or directors who may be specified by the Board in this behalf or where no director is so specified, all the directors. It follows that other employees of the company, cannot be said to be persons who are responsible to the company, for the conduct of the business of the company.
15. Section 141 uses the words "was in charge of, and was responsible to the company for the conduct of the business of the company". It is evident that a person who can be made vicariously liable under sub-section (1) of Section 141 is a person who is responsible to the company for the conduct of the business of the company and in addition is also in charge of the business of the company. There may be many directors and secretaries who are not in charge of the business of the company at all. The meaning of the words "person in charge of the business of the company" was considered by this Court in Girdhari Lal Gupta v. D.N. Mehta [1971 (3) SCC 189] followed in State of Karnataka v. Pratap Chand [1981 (2) SCC 335] and Katta Sujatha 15 vs. Fertiliser & Chemicals Travancore Ltd. [2002 (7) SCC 655]. This Court held that the words refer to a person who is in overall control of the day to day business of the company. This Court pointed out that a person may be a director and thus belongs to the group of persons making the policy followed by the company, but yet may not be in charge of the business of the company; that a person may be a Manager who is in charge of the business but may not be in overall charge of the business; and that a person may be an officer who may be in charge of only some part of the business.
16. Therefore, if a person does not meet the first requirement, that is being a person who is responsible to the company for the conduct of the business of the company, neither the question of his meeting the second requirement (being a person in charge of the business of the company), nor the question of such person being liable under sub-section (1) of section 141 does not arise. To put it differently, to be vicariously liable under sub- section (1) of Section 141, a person should fulfill the 'legal requirement' of being a person in law (under the statute governing companies) responsible to the company for the conduct of the business of the company and also fulfill the 'factual requirement' of being a person in charge of the business of the company.
16
17. Therefore, the averment in a complaint that an accused is a director and that he is in charge of and is responsible to the company for the conduct of the business of the company, duly affirmed in the sworn statement, may be sufficient for the purpose of issuing summons to him. But if the accused is not one of the persons who falls under the category of 'persons who are responsible to the company for the conduct of the business of the company' (listed in para 14 above), then merely by stating that 'he was in charge of the business of the company' or by stating that 'he was in charge of the day to day management of the company' or by stating that he was in charge of, and was responsible to the company for the conduct of the business of the company', he cannot be made vicariously liable under section 141(1) of the Act.
18. It should, however, be kept in view that even an officer who was not in charge of and was responsible to the company for the conduct of the business of the company can be made liable under sub-section (2) of Section
141. For making a person liable under Section 141(2), the mechanical repetition of the requirements under Section 141(1) will be of no assistance, but there should be necessary averments in the complaint as to how and in 17 what manner the accused was guilty of consent and connivance or negligence and therefore, responsible under sub-section (2) of section 141 of the Act.
19. Another aspect that requires to be noticed is that only a Director, Manager, Secretary or other officer can be made liable under sub-section (2) of section 141. But under sub-section (1) of section 141, it is theoretically possible to make even a person who is not a director or officer, liable, as for example, a person falling under category (e) and (f) of section 5 of Companies Act, 1956. When in SMS Pharma (I), this Court observed that 'conversely, a person not holding any office or designation in a company may be liable if he satisfies the requirement of being in charge of and responsible for conduct of the business of the company', this Court obviously had in mind, persons described in clauses (e) and (f) of section 5 of Companies Act. Be that as it may.
20. The position under section 141 of the Act can be summarized thus :
(i) If the accused is the Managing Director or a Joint Managing Director, it is not necessary to make an averment in the complaint that he is in charge of, and is responsible to the company, for the conduct of the business of the company. It is sufficient if an averment is made that the accused was the Managing Director or Joint Managing Director at the relevant time. This is because the prefix `Managing' to the word `Director' makes it clear that 18 they were in charge of and are responsible to the company, for the conduct of the business of the company.
(ii)In the case of a director or an officer of the company who signed the cheque on behalf of the company, there is no need to make a specific averment that he was in charge of and was responsible to the company, for the conduct of the business of the company or make any specific allegation about consent, connivance or negligence. The very fact that the dishonoured cheque was signed by him on behalf of the company, would give rise to responsibility under sub-section (2) of Section 141.
(iii) In the case of a Director, Secretary or Manager (as defined in Sec. 2(24) of the Companies Act) or a person referred to in clauses (e) and (f) of section 5 of Companies Act, an averment in the complaint that he was in charge of, and was responsible to the company, for the conduct of the business of the company is necessary to bring the case under section 141(1). No further averment would be necessary in the complaint, though some particulars will be desirable. They can also be made liable under section 141(2) by making necessary averments relating to consent and connivance or negligence, in the complaint, to bring the matter under that sub-section.
(iv)Other Officers of a company can not be made liable under sub-section (1) of section 141. Other officers of a company can be made liable only under sub-section (2) of Section 141, be averring in the complaint their position and duties in the company and their role in regard to the issue and dishonour of the cheque, disclosing consent, connivance or negligence.
21. If a mere reproduction of the wording of section 141(1) in the complaint is sufficient to make a person liable to face prosecution, virtually every officer/employee of a company without exception could be impleaded as accused by merely making an averment that at the time when the offence was committed they were in charge of and were responsible to the company 19 for the conduct and business of the company. This would mean that if a company had 100 branches and the cheque issued from one branch was dishonoured, the officers of all the 100 branches could be made accused by simply making an allegation that they were in charge of and were responsible to the company for the conduct of the business of the company. That would be absurd and not intended under the Act. As the trauma, harassment and hardship of a criminal proceedings in such cases, may be more serious than the ultimate punishment, it is not proper to subject all and sundry to be impleaded as accused in a complaint against a company, even when the requirements of section 138 read and section 141 of the Act are not fulfilled.
22. A Deputy General Manger is not a person who is responsible to the company for the conduct of the business of the company. He does not fall under any of the categories (a) to (g) listed in section 5 of the Companies Act (extracted in para 14 above). Therefore the question whether he was in charge of the business of the company or not, is irrelevant. He cannot be made vicariously liable under Section 141(1) of the Act. If he has to be made liable under Section 141(2), the necessary averments relating to consent/connivance/negligence should have been made. In this case, no such averment is made. Hence the first respondent, who was the Deputy General 20 Manger, could not be prosecuted either under sub-section (1) or under sub- section (2) of Section 141 of the Act.
23. Thus, we find no error/infirmity in the order quashing the summons as against the first respondent who was the Deputy General Manager of the company which issued the dishonoured cheque. The appeals are therefore dismissed.
............................J.
(R V Raveendran) New Delhi; .............................J. July 6, 2009. (Dr. Mukundakam Sharma)


{{- partial "global/head.html" . -}}
Home
Company
Register
Resources
{{- block "main" . }}{{- end }}
{{- block "jsxScript" . }}{{- end }} {{- partial "global/script.html" . -}}


Google Earth Enterprise Documentation Home | Install Google Earth Enterprise
Uninstalling
OpenGEE provides command line uninstall scripts. To uninstall Google Earth Enterprise Fusion and Server:
- Open a terminal window on your Linux workstation.
- Log in as
root
. - Stop Google Earth Enterprise processes, if you have a previous version installed and it is running:
/etc/init.d/gefusion stop
/etc/init.d/geserver stop
- Navigate to the location at which you initially cloned the GEE git repo.
- Within the GEE git repo, navigate to
earthenterprise/earth_enterprise/src/installer
and run theuninstall_fusion.sh
anduninstall_server.sh
scripts.


ngPasswordStrength
CSS mode:
Foundation
Bootstrap
Calculation mode:
Formula (default)
Entropy
Goal
To improve performance goal is not watched so you have to change password to see how it influences
Vars
Mode
Current strength is
{{demo.passStrength}}


What is an "international" or a "multilingual" web site?
“International” and “multilingual” are two words that are sometimes used interchangeably, but they can have very specific meanings when they pertain to web sites. It is important to clearly distinguish between these two concepts. Understanding the differences can help you more precisely plan and define requirements for a site. There are very specific requirements with respect to design, development, and deployment, and these requirements could call for different technical solutions.
Simply stated, an “international” web site is one that is intended for an international audience, and a “multilingual” web site refers to a web site that uses more than one language. An international web site may or may not be multilingual, just as a multilingual web site may or may not be international. For example, the W3C’s site is an international site because it is intended for an international audience. While this site is primarily written in English, there are some pages that contain other languages, thereby making the site multilingual as well.
The global home pages of many companies are often international in nature. Being intended for international audiences, they often ask the user to select a regional site. Such regional sites tend to be in a single language (usually the common language for the majority of the expected audience). The regional selection might direct the user to a sub-site within the same domain, or it might direct to a website in a different country. Regardless of the method, a good consistent design will make the user feel that it is still the part of the same site, and retain the feeling of an international site.
Multilingual sites can exist in different forms. A site might offer language selection and then present the content in only a single language at a time. A multilingual site might also mix multiple languages within the same page, either because the audience is believed to be multilingual, or because there might be a need for embedded foreign text. An online foreign dictionary is a common example of such a site.
Understanding the international and multilingual requirements for a site will help to determine and define the file structure of the site, the hardware and software requirements, the structure and markup of the content, and provide valuable input for designers to allow for possible scenarios in presentation. The site's navigation is also dependant on these requirements. International sites typically navigate users through country/region selections plus language, and multilingual sites may just involve language selection. Revising any of these later is a significantly greater challenge then allowing for the possibility of international and multilingual aspects from the beginning.
A multilingual site is concerned with more than just the language. There are many regional and cultural differences in the way that information is displayed. Some cultures use a comma as a thousands separator and a period as a decimal point, while other cultures use the period and comma, respectively. For example, 1.547 in one country and 1,547 in another country might actually be the same number. While the only difference in this example is a single character, the difference in meaning is significant.
The presentation of dates and times are a very typical example of something that causes confusion for the user. When using two digits each to represent year, month, and day, the actual date might not be obvious. A few examples from different cultures include DD/MM/YY, MM/DD/YY, and YY/MM/DD. A single date in the format “01/02/03” could be interpreted as three different dates.
There are many other concerns that should also be addressed when creating a multilingual site (such as punctuation, text that reads from right to left, displaying prices in multiple currencies). This is only a sampling of some of these.


In REPL mode package declarations are invalid statements.
In Plain mode needed package declaration is automatically added during compilation.


--- layout: post title: Rails podcast has been relaunched categories: - sightings author: admin published: true date: 2005-10-24 13:48:36.000000000 +01:00 ---
The Rails podcast is back in business with a handful of new shows conducted by Geoffrey Grosenbach of Topfunky. There are interviews with Amy Hoy, Obie, Matt, and Thomas Fuchs. And Geoffrey promise to keep the deliveries regular. Fire up that nano.