--- layout: page title: Run the ChRIS Store permalink: /join-us/run-chris-store sidebar: false ---
This tutorial is based on the README files for the ChRIS Store UI repository. Where these instructions may end up differing with those resources, the README files will always be the most up-to-date and correct. We provide this tutorial as a single comprehensive document to get you started.
NOTE: These pre-requisites are the same as in the Get ChRIS Running tutorial. If you have already completed that tutorial, you may skip the pre-requisites setup steps below and skip to the next section, "Get the ChRIS Store backend running."
docker
user group. After installing Docker, do the following in a terminal:
sudo groupadd docker
sudo usermod -aG docker $USER
After you've met the pre-requisites, you'll need to the ChRIS Store backend up and running.
Open up a terminal on your system and follow these steps:git clone https://github.com/FNNDSC/ChRIS_store.git
cd ChRIS_store
./make.sh up
You can later remove all the backend containers and release storage volumes with:
$ cd ChRIS_store $ ./make.sh down
Now, let's get the web-based UI for the ChRIS Store working. The ChRIS Store UI uses TypeScript, React, the PatternFly React pattern library.
Open up a terminal on your system and follow these steps:git clone https://github.com/FNNDSC/ChRIS_store_ui.git
cd ChRIS_store_ui
docker run --rm -it -v $(pwd):/home/localuser -p 3000:3000 -u $(id -u):$(id -g) --name chris_store_ui fnndsc/chris_store_ui:dev
http://localhost:3000
More detailed instructions for the ChRIS Store UI are available in the ChRIS Store UI repository's README.Development Note
Before each commit, a precommit script is run automatically to ensure all tests pass and all JavaScript code follows the Airbnb style guide. Please note that if you are using the docker commands then you need to run git inside the container. For instance open a new terminal and type:
$ docker exec -it chris_store_ui git status
Now that you've got a got both the ChRIS backend and ChRIS front end running, why not set up the ChRIS store?
If you want to work on the ChRIS store, or need to test loading plugins into a ChRIS instance, you'll need to get the ChRIS store running on your system. Here's how.


Sweet Free Stuff
///////////////////////////////////////////
Free Ponds Gold Radiance Boosting Cleansing Mousse Sample
Posted: 27 Feb 2015 01:32 PM PST
http://feedproxy.google.com/&edburner&utm_medium=email
Free Pond’s Gold Radiance Boosting Cleansing Mousse Sample
The post Free Pond’s Gold Radiance Boosting Cleansing Mousse Sample
appeared first on Sweet Free Stuff.
///////////////////////////////////////////
$5 off Broth Bowl and Free Drink Coupon at Panera
Posted: 27 Feb 2015 04:52 AM PST
http://feedproxy.google.com/&edburner&utm_medium=email
Register or login to your Panera account and then watch the videos. If you
watch 3, you get $5 off a Broth Bowl. If you watch all 6, you also get a
free drink. $5 off Broth Bowl and Free Drink Coupon at Panera
The post $5 off Broth Bowl and Free Drink Coupon at Panera appeared first
on Sweet Free Stuff.
///////////////////////////////////////////
2 Free Drinks at Starbucks
Posted: 26 Feb 2015 10:38 PM PST
http://feedproxy.google.com/&edburner&utm_medium=email
Register or Login to Zulily then click the Starbucks image and follow the
signup steps. You’ll receive two emails within two weeks for your free
drinks. 2 Free Drinks at Starbucks
The post 2 Free Drinks at Starbucks appeared first on Sweet Free Stuff.
///////////////////////////////////////////
Free Box of Domino or C&H Brown Sugar
Posted: 26 Feb 2015 09:08 PM PST
http://feedproxy.google.com/&edburner&utm_medium=email
Save 100% when you buy ONE (1) 1lb. box of Domino® or CH® Brown Sugar!
Expires 3/1 Free Box of Domino or CH Brown Sugar
The post Free Box of Domino or CH Brown Sugar appeared first on Sweet Free
Stuff.
///////////////////////////////////////////
Allure Free Stuff in March
Posted: 26 Feb 2015 09:00 PM PST
http://feedproxy.google.com/&edburner&utm_medium=email
The first 500 Allure readers to sign up at noon EST each day from
March 2-5 will receive a free product! Allure Free Stuff in March
The post Allure Free Stuff in March appeared first on Sweet Free Stuff.
///////////////////////////////////////////
Free Kickstart 12 or 16 fl oz at Kroger Affiliate Stores
Posted: 26 Feb 2015 09:00 PM PST
http://feedproxy.google.com/&edburner&utm_medium=email
Load the coupon to your shoppers card today only (2/27) and use by 3/15.
Free Kickstart 12 or 16 fl oz at Kroger Affiliate Stores
The post Free Kickstart 12 or 16 fl oz at Kroger Affiliate Stores appeared
first on Sweet Free Stuff.
///////////////////////////////////////////
Free Jiffy Mix Recipe Book
Posted: 26 Feb 2015 05:00 AM PST
http://feedproxy.google.com/&edburner&utm_medium=email
The post Free Jiffy Mix Recipe Book appeared first on Sweet Free Stuff.
///////////////////////////////////////////
Free Montagne Jeunesse Cleansing Face Mask (Expired)
Posted: 26 Feb 2015 01:25 AM PST
http://feedproxy.google.com/&edburner&utm_medium=email
Free Montagne Jeunesse Cleansing Face Mask First 10k!
The post Free Montagne Jeunesse Cleansing Face Mask (Expired) appeared
first on Sweet Free Stuff.


The event is now FULL, please email us if you wish to go on the waiting list.
Please make sure you read the race instructions before the race. A few things have changed this year so even if you have done the event before please read them again.
Check to see if your entry has been confirmed. If you entered and paid more than 2 days ago then your name should be up. If not then please contact us.
What kit do you really need for the race and how much training should you be doing?
Many legends have taken part in the Mid Sussex Triathlon over the years. Check out the previous results to see what you've got to live up to.


Search
Preparing search index...
The search index is not available
@sheetbase/cli
Options
All
Public
Public/Protected
All
Inherited
Externals
Menu
Globals
Lib
Class Lib
Hierarchy
Lib
Index
Constructors
constructor
Properties
build
Service
drive
Service
fetch
Service
file
Service
gas
Service
google
Service
help
Service
helper
Service
message
Service
model
Service
project
Service
spreadsheet
Service
terminal
Service
Constructors
constructor
new
Lib
(
)
:
Lib
Returns
Lib
Properties
build
Service
build
Service
:
BuildService
drive
Service
drive
Service
:
DriveService
fetch
Service
fetch
Service
:
FetchService
file
Service
file
Service
:
FileService
gas
Service
gas
Service
:
GasService
google
Service
google
Service
:
GoogleService
help
Service
help
Service
:
HelpService
helper
Service
helper
Service
:
HelperService
message
Service
message
Service
:
MessageService
model
Service
model
Service
:
ModelService
project
Service
project
Service
:
ProjectService
spreadsheet
Service
spreadsheet
Service
:
SpreadsheetService
terminal
Service
terminal
Service
:
TerminalService
Globals
Lib
constructor
build
Service
drive
Service
fetch
Service
file
Service
gas
Service
google
Service
help
Service
helper
Service
message
Service
model
Service
project
Service
spreadsheet
Service
terminal
Service
Generated using
TypeDoc


@* login Template File *@ @(loginForm:Form[(String, String)])(implicit flash: play.api.mvc.Flash) @import helper._ @import helper.twitterBootstrap._ @main("index"){
Knoldus is a team of Passionate Technologists, focused on staying at the edge of the curve. We love to build Scalable, Performant, Concurrent systems with Functional Programming to meet the needs of the business. Our big data solutions have won accolades in domains like Social media analytics, Finance, Healthcare,Gaming, Shipping and Media. Our proactive thinking, led by the mission of Authority enables us to deliver Business Innovation & Acceleration to help you succeed.
Please provide your credentials.
@helper.form(routes.Application.authenticate){It covers Scala from basic syntax and language constructs, through its distinctive object oriented characteristics and on to f unctional programming styles and pattern matching as applied to Scala's extensive collections framework.
It helps developers to start building powerful concurrent applications with the Akka and Scala.Upon completion you learn how to apply the tools and services provided by Akka to build high performance, fault tolerant systems that scale.
The 2 day Core Play framework course is aimed at developers who want to build their web applications with Play and Scala.The course has a practical focus, mixing presentation with in depth hands on labs and exercises.


The OpenATK Tillage App provides a simple means of recording data pertaining to tillage operations and displaying operation status to the users. The data collected can be used for easy recording of tillage operations for both short- and long-term planning.
This app keeps a record of tillage operations for a list of fields with statuses of “Planned”, “Started”, or “Done”. Also, each record contains the date of last status change, the name of the operator, and comments. Each field also has an optional associated boundary polygon which is shaded according to the operation status.
Data Collected
Trello Board
Each app has its own Trello Board.
Shared Information
You can join the mailing list, fork us on GitHub, and you can always email us for more information.
Each app has its own development resources: functional specs, UI mockups, documentation, and code.
Functional Specifications
Our development process starts with functional specifications. If you don't know what those are, here's Joel Spolsky to explain it.
User Interface Mockups
We use the web-based software, mybalsamiq , to develop the UI mockups for the Map and List UIs.
GitHub
Source code for the OpenATK Tillage App is available on GitHub. Don't forget the Common Libraries.
Ideas for the Tillage App
Send a message to the mailing list to get some feedback and convince the community to get it on the roadmap.July 22, 2013
We're going live at ASABE AIM 2013!
The Future of the Tillage App
More platforms: we're only on Android now. iOS will come as soon as we get some people to work on it.
More cloud storage libraries: we've only got Trello support now. Dropbox's new Datastore API has caught our eye and moved them up the list ahead of Google Drive.
More support and community: to give this project long-term stamina, we're actively seeking partners and community developers who would like to contribute.
More stored information:
More shared information:
We are actively seeking contributors for this project and ISOBlue, so if you like either the concept or any of our apps, please contact us for more information.
A special thanks for all our support this far:


Live Translated Transcription Demo
AppID
Channel
Name
Google Cloud API Key
Select a Language you Understand
Afrikaans
Albanian
Arabic
Armenian
Catalan
Chinese
Croatian
Czech
Danish
Dutch
English
Esperanto
Finnish
French
German
Greek
Haitian Creole
Hindi
Hungarian
Icelandic
Indonesian
Italian
Japanese
Korean
Latin
Latvian
Macedonian
Norwegian
Polish
Portuguese
Portuguese (Brazil)
Romanian
Russian
Serbian
Slovak
Spanish
Spanish (Spain)
Spanish (United States)
Swahili
Swedish
Tamil
Thai
Turkish
Vietnamese
Welsh
Join
Leave
Mute Audio
Mute Video
Transcribed Text:


| add_edge | Add an edge between nodes in a graph object |
| add_edges_from_csv | Add edges and attributes from a CSV file |
| add_edges_from_df | Add edges and attributes from a data frame |
| add_edge_df | Add edges from an edge data frame to an existing graph object |
| add_node | Add a node to an existing graph object |
| add_nodes_from_csv | Add nodes and attributes from a CSV file |
| add_nodes_from_df | Add nodes and attributes from a data frame |
| add_node_df | Add nodes from a node data frame to an existing graph object |
| add_n_nodes | Add a multiple of new nodes to the graph |
| add_n_nodes_from_selection | Add a multiple of new nodes with edges from one or more selected nodes |
| add_n_nodes_to_selection | Add a multiple of new nodes with edges to one or more selected nodes |
| add_to_series | Add graph object to a graph series object |
| clear_selection | Clear a selection of nodes or edges in a graph |
| combine_edges | Combine multiple edge data frames into a single edge data frame |
| combine_graphs | Combine two graphs into a single graph |
| combine_nodes | Combine multiple node data frames into a single node data frame |
| country_graph | Create a graph object that contains the boundaries of a country |
| create_edges | Create a data frame with edges and their attributes |
| create_graph | Create a graph object using data frames representative of nodes and edges |
| create_nodes | Create a data frame with nodes and their attributes |
| create_random_graph | Create a randomized graph |
| create_series | Create a graph series object |
| create_subgraph_from_selection | Create a subgraph based on a selection of nodes or edges |
| delete_edge | Delete an edge from an existing graph object |
| delete_edges_in_selection | Delete all selected edges |
| delete_node | Delete a node from an existing graph object |
| delete_nodes_in_selection | Delete all selected nodes |
| deposit_edge_attr | Deposit edge attributes in the graph |
| deposit_edge_attr_from_selection | Deposit edge attributes (based on a selection of edges) in the graph |
| deposit_edge_count_in_selection | Deposit a count of edges (available in a selection) in the graph |
| deposit_node_attr | Deposit node attributes in the graph |
| deposit_node_attr_from_selection | Deposit node attributes (based on a selection of nodes) in the graph |
| deposit_node_count_in_selection | Deposit a count of nodes (available in a selection) in the graph |
| DiagrammeR | R + mermaid.js |
| DiagrammeROutput | Widget output function for use in Shiny |
| edge_count | Get count of all edges or edges with distinct relationship types |
| edge_info | Get detailed information on edges |
| edge_present | Determine whether a specified edge is present in an existing graph object |
| edge_rel | Create, read, update, delete, or report status of an edge relationship |
| get_edges | Get node IDs associated with edges |
| get_edge_df | Get an edge data frame from a graph |
| get_global_graph_attr | Get global graph attributes |
| get_graph_from_series | Get a graph available in a series |
| get_nodes | Get a vector of node ID values |
| get_node_df | Get a node data frame from a graph |
| get_paths | Get paths from a specified node in a directed graph |
| get_predecessors | Get node IDs for predecessor nodes to the specified node |
| get_selection | Get the current selection available in a graph object |
| get_successors | Get node IDs for successor nodes to the specified node |
| graph_count | Count graphs in a graph series object |
| grViz | R + viz.js |
| grVizOutput | Widget output function for use in Shiny |
| image_icon | Icons and their download locations |
| import_graph | Import a graph from various graph formats |
| invert_selection | Invert selection of nodes or edges in a graph |
| is_graph_directed | Is the graph a directed graph? |
| is_graph_empty | Is the graph empty? |
| mermaid | R + mermaid.js |
| node_count | Get count of all nodes or certain types of nodes |
| node_info | Get detailed information on nodes |
| node_present | Determine whether a specified node is present in an existing graph object |
| node_type | Create, read, update, delete, or report status of a node type definition |
| remove_from_series | Remove graph object from a graph series object |
| renderDiagrammeR | Widget render function for use in Shiny |
| renderGrViz | Widget render function for use in Shiny |
| render_graph | Render the graph or output in various formats |
| render_graph_from_series | Render a graph available in a series |
| replace_in_spec | Razor-like template for diagram specification |
| rescale_edge_attr_in_selection | Rescale numeric edge attribute values for edges in a selection |
| rescale_node_attr_in_selection | Rescale numeric node attribute values for nodes in a selection |
| select_edges | Select edges in a graph |
| select_edges_by_node_id | Select edges in a graph using node ID values |
| select_last_edge | Select last edge in a series of edges defined in a graph |
| select_last_node | Select last node in a series of node IDs in a graph |
| select_nodes | Select nodes in a graph |
| select_nodes_by_degree | Get node degree values from nodes available in a selection |
| select_nodes_by_id | Select nodes in a graph by ID values |
| select_nodes_in_neighborhood | Select nodes based on a walk distance from a specified node |
| series_info | Get detailed information on a graph series |
| set_edge_attr | Set edge attributes |
| set_edge_attr_with_selection | Set edge attributes based on a selection of edges |
| set_global_graph_attr | Set global graph attributes |
| set_graph_name | Set graph name |
| set_graph_time | Set graph date-time and timezone |
| set_node_attr | Set node attributes |
| set_node_attr_with_selection | Set node attributes based on a selection of nodes |
| subset_series | Subset a graph series object |
| trav_both | Traverse from one or more selected nodes to predecessors and successors, irrespective of edges, creating a new node selection |
| trav_in | Traverse inward to a selected node, skipping over edges, and creating a new node selection |
| trav_in_edge | Traverse from one or more selected nodes onto adjacent, inward edges |
| trav_in_node | Traverse from one or more selected edges toward adjacent inward nodes |
| trav_out | Traverse outward from a selected node, skipping over edges, and creating a new node selection |
| trav_out_edge | Traverse from one or more selected nodes onto adjacent, outward edges |
| trav_out_node | Traverse from one or more selected edges toward adjacent outward nodes |
| trigger_script | Trigger a script embedded in a graph series object |
| visnetwork | Render graph with visNetwork |
| vivagraph | Render graph with VivaGraphJS |
| withdraw_values | Withdraw a stored vector from a graph object |
| x11_hex | X11 colors and hexadecimal color values |


Authorizing at
Why am I seeing this?
The website requires authentication. The Mooltipass ecosystem successfully detected that authentication request and is providing you with this custom layout.
The website requires authentication. The Mooltipass ecosystem successfully detected that authentication request and is providing you with this custom layout.


To run through the test conditions, do the following:
- Open Settings > Privacy and turn off Location Services
- Request Location to trigger the native dialog that allows you to open Location Settings directly
Location available:
Location Services:
Location authorized:


Commandline
How to get help
User@Host:~$ bake -h
The most important options
-b the build configuration name
-m the main project directory (default is current directory)
-p the project to build (if not specified, the main project will be built with all dependencies)
Note
All configs of the project will be built, which is usually just one config, but if you have more than one config of the project in the workspace, use a comma separator.
Examples
Building an application
User@Host:~$ bake -b Debug
Note
It is possible to omit -b:
User@Host:~$ bake Debug
Building from within an arbitrary directory
User@Host:~$ bake Debug -m w:/root/mainProj
Building just one specific project
Assuming the project name to build s myProj.
User@Host:~$ bake Debug -m w:/root1/myProj -p myProj
Building specific projects with different roots
Assuming mainProj has several configs really included in the build (which is uncommon), you can choose one of the configs.
User@Host:~$ bake Debug -m w:/root1/myProj -p myProj,abc
Building a project which has more than one root
Assuming code has been checked out into two roots, the console supports ansi colors, you want to stop on first error and build only the project bspAbc.
User@Host:~$ bake Debug -m w:/root1/myProj -w w:/root1 -w w:/root2 -r -a black -p bspAbc
Search depth
Projects and Adaptions are searched recursively within the roots. Specify the maximum search depth like this:
User@Host:~$ bake Debug -m w:/root1/myProj -w w:/root1,3 -w w:/root2/libA,0 -r -a black -p bspAbc
- In this example the following folders are checked:
w:/root1/Project.meta
w:/root1/*/Project.meta
w:/root1/*/*/Project.meta
w:/root1/*/*/*/Project.meta
w:/root2/libA/Project.meta
Clean a project(s)
User@Host:~$ bake Debug -m w:/root1/myProj -w w:/root1 -w w:/root2 -r -a black -p bspAbc -c
Build a single file(s)
User@Host:~$ bake Debug -p bspAbc -f main.cpp
User@Host:~$ bake Debug -f .asm
Note
All files matching the pattern will be compiled (no wildcards allowed)
Roots file (roots.bake)
If a workspace has many roots, it’s cumbersome to specify all root folders with -w. Instead, you can write them into a file. This file can be also specified with -w:
User@Host:~$ bake Debug ... -w myRootsFile.txt
The content of the file is simply one root per line, e.g.:
../..
C:/another/root # comments written like this
something/else, 3 # maximum search depth = 3, same as for "-w" arguments on command line
You can specify more than one roots file or mix it with root folders if you like.
Note
IN ANY CASE an additional roots.bake file is searched from the main folder upwards. The first file found is used.
If one or more -w are specified and a roots.bake is found, they will be merged. First -w, then roots.bake.
Note
If -w and roots.bake are neither specified nor found, the default workspace root is the parent directory of the main project.


Solutions of the numerical exercises: If you are a teacher and would like to have access to the Matlab files that contain the solution of the numerical exercises, please send me an e-mail.


We are using modified version of a open source software: Scout 2 which is licensed under this license.


To help you get started, you might want to have a look at the following sample plugins. They illustrate the basic concepts needed to develop plugins for OpenCOR:
these plugins only get built if the CMake ENABLE_SAMPLES
option is set to ON
.
All plugins come under a given category. Currently supported categories are:
A category is used by OpenCOR to group plugins together to improve user experience. From a developer's perspective, a category determines where a plugin's code should be located. Thus, the different folders under [OpenCOR]/src/plugins/
are for our different categories. For example, [OpenCOR]/src/plugins/miscellaneous/
contains the code of our different Miscellaneous plugins and [OpenCOR]/src/plugins/miscellaneous/Core/
that of the Core plugin in particular.
the Sample category is a special category in that it is only available when building OpenCOR with the CMake ENABLE_SAMPLES
option set to ON
. It should therefore only be used for plugins that are aimed at helping people who want to learn how to write plugins for OpenCOR.
Plugins can implement different interfaces. Those interfaces allow a plugin, through the implementation of various methods, to interact with OpenCOR. Currently supported interfaces can be found under [OpenCOR]/src/plugins/
. They are:
Some plugins do not implement any interface (e.g. the LLVM plugin) while others may implement one or several interfaces (e.g. the Core plugin implements the core, file handling, GUI, internationalisation and plugin interfaces).
the core interface is a special interface in that it is only, and can only be, implemented by the Core plugin. Any plugin, besides the Core plugin, that tries to implement the core interface will be reported by OpenCOR as being invalid.
OpenCOR is built and packaged using CMake. When it comes to plugins, this requires creating a CMakeLists.txt
file in the plugin's root folder and calling the ADD_PLUGIN()
macro, which is defined in [OpenCOR]/cmake/common.cmake
. The ADD_PLUGIN()
macro uses information passed to it to build and package the plugin. That information comes in the form of a series of parameters, some of which are keywords:
SOURCES
: implementation files.HEADERS_MOC
: header files, which define at least one QObject
-based class.UIS
: user interface files.INCLUDE_DIRS
: various locations where header files can be found.DEFINITIONS
: definitions needed to build the plugin.PLUGINS
: plugins needed by the plugin.PLUGIN_BINARIES
: the binary version of plugins needed by the plugin.QT_MODULES
: Qt modules needed by the plugin.EXTERNAL_BINARIES_DIR
: location where external binaries needed by the plugin can be found.EXTERNAL_BINARIES
: external binaries needed by the plugin.TESTS
: tests for the plugin.
Following those keywords are the parameters themselves, as can be seen in [OpenCOR]/src/plugins/miscellaneous/Core/CMakeLists.txt
for the Core plugin.
For a plugin to be recognisable by OpenCOR, it must provide some basic information about itself, as well as define a plugin class. For this, we need a .cpp
, a .h
and .json
file, such as [OpenCOR]/src/plugins/miscellaneous/Core/src/coreplugin.cpp
, [OpenCOR]/src/plugins/miscellaneous/Core/src/coreplugin.h
and [OpenCOR]/src/plugins/miscellaneous/Core/src/coreplugin.json
for the Core plugin.
.json
file
The .json
file is a simple JSON file, which sole purpose is to reference the name of the plugin class. In the case of the Core plugin, the contents of that file is:
{ "Keys": [ "CorePlugin" ] }
The code for the basic information and plugin class must be in the plugin's own namespace within the OpenCOR
namespace. More generally, any plugin-related code should be within those two namespaces, this to ensure the integrity of the plugin's code. Thus, in the case of the Core plugin, we must have:
... namespace OpenCOR { namespace Core { ... } // namespace Core } // namespace OpenCOR ...
Plugins must provide the following basic information about themselves:
This information is made available to OpenCOR through a function, which in the case of the Core plugin has the following declaration:
PLUGININFO_FUNC CorePluginInfo();
to ensure the uniqueness of a plugin, OpenCOR uses the name of a plugin to determine the name of its function. In other words, the name of the function is expected to be <PluginName>PluginInfo()
. If it is not, OpenCOR will not be able to recognise the plugin.
In the case of the Core plugin, the body of its function is:
PLUGININFO_FUNC CorePluginInfo() { Descriptions descriptions; descriptions.insert("en", QString::fromUtf8("the core plugin.")); descriptions.insert("fr", QString::fromUtf8("l'extension de base.")); return new PluginInfo(PluginInfo::Miscellaneous, false, false, QStringList(), descriptions); }
support for the internationalisation of a plugin's description would normally be done using Qt's tr()
function, but the C nature of the function means that it cannot be done. So, instead, we use a QMap
-based approach.
We rely on Qt's support for plugins, which means that plugins must define a specific class. The class must inherit from QObject
, as well as from any interface the plugin implements. For example, the Core plugin implements the core, file handling, GUI, internationalisation and plugin interfaces, so its class definition is:
...
class CorePlugin : public QObject, public CoreInterface,
public FileHandlingInterface, public GuiInterface,
public I18nInterface, public PluginInterface
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "OpenCOR.CorePlugin" FILE "coreplugin.json
")
Q_INTERFACES(OpenCOR::CoreInterface)
Q_INTERFACES(OpenCOR::FileHandlingInterface)
Q_INTERFACES(OpenCOR::GuiInterface)
Q_INTERFACES(OpenCOR::I18nInterface)
Q_INTERFACES(OpenCOR::PluginInterface)
public:
#include "coreinterface.inl"
#include "filehandlinginterface.inl"
#include "guiinterface.inl"
#include "i18ninterface.inl"
#include "plugininterface.inl"
...
};
...
On the other hand, the LLVM plugin does not need to implement any interface since its sole purpose is to provide other plugins with access to LLVM (incl. Clang). Hence, its much simpler class definition:
...
class LLVMPlugin : public QObject
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "OpenCOR.LLVMPlugin" FILE "llvmplugin.json
")
};
...
There may be cases where a plugin declares a function or defines a class that we want to be able to use from another plugin. On Linux and OS X, nothing special needs to be done, but on Windows, the function or class needs to be exported by the original plugin:
void __declspec(dllexport) myFunction(); class __declspec(dllexport) myClass;
and imported by the plugin that wants to use it:
void __declspec(dllimport) myFunction(); class __declspec(dllimport) myClass;
Each plugin that exports functions and/or classes therefore defines a macro that refers either to __declspec(dllexport)
or to __declspec(dllimport)
, depending on how the plugin's code is to be compiled. Thus, in the case of the Compiler plugin, we have:
... #ifdef _WIN32 #ifdef Compiler_PLUGIN #define COMPILER_EXPORT __declspec(dllexport) #else #define COMPILER_EXPORT __declspec(dllimport) #endif #else #define COMPILER_EXPORT #endif ...
_WIN32
and Compiler_PLUGIN
(or, more generally, <PluginName>_PLUGIN
) are automatically defined, if at all, at build time, and are used to determine the value of COMPILER_EXPORT
(or, more generally, the value of <PLUGINNAME>_EXPORT
), which can then be used as follows without having to worry whether the function or class should be imported or exported:
void COMPILER_EXPORT myFunction(); class COMPILER_EXPORT myClass;


Urban Grammar AI
research project
In this post, we introduce a new Python package to generate clustergrams from clustering solutions. The library has been developed as part of the Urban Grammar project, and it is compatible with scikit-learn and GPU-enabled libraries such as cuML or cuDF within RAPIDS.AI.
scikit-learn
cuML
cuDF
RAPIDS.AI
When we want to do some cluster analysis to identify groups in our data, we often use algorithms like K-Means, which require the specification of a number of clusters. But the issue is that we usually don’t know how many clusters there are.
There are many methods on how to determine the correct number, like silhouettes or elbow plot, to name a few. But they usually don’t give much insight into what is happening between different options, so the numbers are a bit abstract.
Matthias Schonlau proposed another approach - a clustergram. Clustergram is a two-dimensional plot capturing the flows of observations between classes as you add more clusters. It tells you how your data reshuffles and how good your splits are. Tal Galili later implemented clustergram for K-Means in R. And I have used Tal’s implementation, ported it to Python and created clustergram - a Python package to make clustergrams.
clustergram
clustergram currently supports K-Means and using scikit-learn (inlcuding Mini-Batch implementation) and RAPIDS.AI cuML (if you have a CUDA-enabled GPU), Gaussian Mixture Model (scikit-learn only) and hierarchical clustering based on scipy.hierarchy. Alternatively, we can create clustergram based on labels and data derived from alternative custom clustering algorithms. It provides a sklearn-like API and plots clustergram using matplotlib, which gives it a wide range of styling options to match your publication style.
scipy.hierarchy
You can install clustergram from conda or pip:
conda install clustergram -c conda-forge
or
pip install clustergram
In any case, you still need to install your selected backend (scikit-learn and scipy or cuML).
[1]:
from clustergram import Clustergram import urbangrammar_graphics as ugg import seaborn as sns import matplotlib.pyplot as plt from sklearn.preprocessing import scale
[2]:
sns.set(style='whitegrid')
Let us look at some examples to understand how clustergram looks and what to do with it.
The first example which we try to analyse using clustergram is the famous Iris flower data set. It contains data on three species of Iris flowers measuring sepal width and length and petal width and length. We can start with some exploration:
[3]:
iris = sns.load_dataset("iris") g = sns.pairplot(iris, hue="species", palette=ugg.COLORS[1:4]) g.fig.suptitle("Iris flowers", y=1.01)
Text(0.5, 1.01, 'Iris flowers')
It seems that setosa is a relatively well-defined group, while the difference between versicolor and virginica is smaller as they partially overlap (or entirely in the case of sepal width).
Okay, so we know how the data looks. Now we can check how does clustergram look. Remember that we know that there are three clusters, and we should ideally be able to recognise this from clustergram. I am saying ideally because even though there are known labels, it does not mean that our data or clustering method are able to distinguish between those classes.
Let’s start with K-Means clustering. To get a stable result, we can run a clustergram with 1000 initialisations.
[4]:
data = scale(iris.drop(columns=['species']))
[5]:
cgram = Clustergram(range(1, 10), n_init=1000) cgram.fit(data)
K=1 fitted in 2.222404718399048 seconds. K=2 fitted in 1.041506290435791 seconds. K=3 fitted in 1.8730895519256592 seconds. K=4 fitted in 2.5718801021575928 seconds. K=5 fitted in 2.6239545345306396 seconds. K=6 fitted in 2.872279644012451 seconds. K=7 fitted in 2.7275290489196777 seconds. K=8 fitted in 3.0242857933044434 seconds. K=9 fitted in 3.2460429668426514 seconds.
[6]:
ax = cgram.plot(figsize=(10, 8), line_style=dict(color=ugg.COLORS[1]), cluster_style={"color": ugg.COLORS[2]}) ax.yaxis.grid(False) sns.despine(offset=10) ax.set_title('K-Means (scikit-learn)')
Text(0.5, 1.0, 'K-Means (scikit-learn)')
On the x axis, we can see the number of clusters. Points represent a centre of each cluster (by default) weighted by the first principal component (that helps with the diagram’s readability). The lines connecting points and their thickness represent observations moving between clusters. Therefore, we can read when new clusters are formed as a split of a single existing class and when they are formed based on observations from two clusters.
We’re looking for the separation, i.e., did an additional cluster bring any meaningful split? The step from one cluster to two is a big one - nice and clear separation. From two to three, we also have quite a nice split in the top branch. But from 3 to 4, there is no visible difference because the new fourth cluster is almost the same as the existing bottom branch. Although it is now separated into two, this split does not give us much information. Therefore, we could conclude that the ideal number of clusters for Iris data is three.
We can also check some additional information, like a silhouette score or Calinski-Harabazs score.
[7]:
fig, axs = plt.subplots(2, figsize=(10, 10), sharex=True) cgram.silhouette_score().plot(xlabel="Number of clusters (k)", ylabel="Silhouette score", color=ugg.COLORS[1], ax=axs[0]) cgram.calinski_harabasz_score().plot(xlabel="Number of clusters (k)", ylabel="Calinski-Harabasz score", color=ugg.COLORS[1], ax=axs[1]) sns.despine(offset=10)
These plots would suggest 3-4 clusters, similarly to clustergram, but they are not very conclusive.
Now let’s try different data, one where clusters are a bit more complicated to assess. Palmer penguins contain similar data as Iris example, but it measures several attributes of three species of penguins.
[8]:
penguins = sns.load_dataset("penguins")
[9]:
g = sns.pairplot(penguins, hue="species", palette=ugg.COLORS[3:]) g.fig.suptitle("Palmer penguins", y=1.01)
Text(0.5, 1.01, 'Palmer penguins')
Looking at the situation, we see that the overlap between species is much higher than before. It will likely be much more complicated to identify them. Again, we know that there are three clusters, but that does not mean that data has the power to distinguish between them. In this case, it may be especially tricky to differentiate between Adelie and Chinstrap penguins.
[11]:
data = scale(penguins.drop(columns=['species', 'island', 'sex']).dropna())
[12]:
K=1 fitted in 2.4900381565093994 seconds. K=2 fitted in 2.6844642162323 seconds. K=3 fitted in 3.3492660522460938 seconds. K=4 fitted in 4.542513370513916 seconds. K=5 fitted in 6.29776930809021 seconds. K=6 fitted in 6.103058338165283 seconds. K=7 fitted in 6.665079116821289 seconds. K=8 fitted in 6.739859342575073 seconds. K=9 fitted in 7.696599721908569 seconds.
[13]:
We’re looking for separations, and this clustergram shows plenty. It is actually quite complicated to determine the optimal number of clusters. However, since we know what happens between different options, we can play with that. If we have a reason to be conservative, we can go with 4 clusters (I know, it is already more than the initial species). But further splits are also reasonable, which indicates that even higher granularity may provide useful insight, that there might be meaningful groups.
Can we say it is three? Since we know it should be three… Well, not really. The difference between the split from 2 - 3 and that from 3 - 4 is slight. However, the culprit here is K-Means, not clustergram. It just simply cannot correctly cluster these data due to the overlaps and the overall structure.
Let’s have a look at how the Gaussian Mixture Model does.
[14]:
cgram = Clustergram(range(1, 10), n_init=100, method="gmm") cgram.fit(data) ax = cgram.plot(figsize=(10, 8), line_style=dict(color=ugg.COLORS[1]), cluster_style={"color": ugg.COLORS[2]}) ax.yaxis.grid(False) sns.despine(offset=10) ax.set_title('Gaussian Mixture Model (scikit-learn)')
K=1 fitted in 0.6643445491790771 seconds. K=2 fitted in 0.5813486576080322 seconds. K=3 fitted in 1.4166145324707031 seconds. K=4 fitted in 1.6115505695343018 seconds. K=5 fitted in 1.3064675331115723 seconds. K=6 fitted in 1.383194923400879 seconds. K=7 fitted in 2.40691876411438 seconds. K=8 fitted in 2.482234477996826 seconds. K=9 fitted in 3.464596748352051 seconds.
Text(0.5, 1.0, 'Gaussian Mixture Model (scikit-learn)')
The result is very similar, though the difference between the third and fourth split is more pronounced. Even here, I would probably go with a four cluster solution.
A situation like this happens very often. The ideal case does not exist. We ultimately need to make a decision on the optimal number of clusters. Clustergam gives us additional insights into what happens between different options, how it splits. We can tell that the four-cluster option in Iris data is not helpful. We can tell that Palmer penguins may be tricky to cluster using K-Means, that there is no decisive right solution. Clustergram does not give an easy answer, but it gives us additional insight, and it is upon us how we interpret it.
You can install clustergram using conda install clustergram -c conda-forge or pip install clustergram. In any case, you will still need to install a clustering backend, either scikit-learn or cuML. The documentation is available at clustergram.readthedocs.io, and the source code is on github.com/martinfleis/clustergram, released under MIT license.
If you want to play with the examples used in this article, the Jupyter notebook is on GitHub. You can also run it in an interactive binder environment in your browser.
For more information, check Tal Galili’s blog post and original papers by Matthias Schonlau.
Give it a go!


Order
delete {{orderedItems}}
R{{orderTotal}}
Total
R{{orderTotal}}Delivery Time
Total R {{orderTotal}} exceeds your daily Amount R {{totalCredits}}
You can switch off Daily Limit in Settings
You have no items in your lunchbox.
Select some heredelete {{item.product}} x {{item.quantity}}
R{{item.price * item.quantity}}
Your plan has expired, renew it here


Hi, I am Adarsh. I love writing code to make computers do things so I can relax and be lazy instead. I love all-things tech and superheroes.
June 2018 Developed Client registration application and detailed dashboard with firebase SDK
Apart from coding I like to travel and do some adventure out of the house and enjoy the life form different prospective.
In my free time I like to teach someone so to revise my concept and to see where I am and also to give my knowledge to someone who can nurture it for his better future.
When forced indoors, I follow a number of sci-fi and fantasy genre movies and television shows, I am an aspiring chef, and I spend a large amount of my free time exploring the latest technology advancements in the front-end web development world.


Activities Learning Reading books Go to gym (50$/mo) Smoke Play instrument (100$/mo each)Acoustic guitarBass guitarPianoDrumsTrumpetElectric guitarSaxophoneCelloFluteClarinetViolin Train sport (60$/mo each)FootballBasketballHandballVolleyballSwimmingArcheryDocumentsArt


Try out our Premium Member services: Virtual Legal Assistant, Query Alert Service and an ad-free experience. Free for one month and pay only if you like it.
Res. Jt in APL-697-17.doc. IN THE HIGH COURT OF JUDICATURE AT BOMBAY CRIMINAL APPELLATE JURISDICTION CRIMINAL APPLICATION NO.697 OF 2017 1) Mr. Vinod P. Mahajan, of Mumbai ] Indian Inhabitant in his capacity as Chief ] Promoter of Shree Swami Samartha ] Prasanna Co-operative Housing Society ] (proposed) having office at 11-A, ] Suyash, Near Amar Hind Mandal ] Gokhale Road (North), Dadar, Mumbai ] 400 028 ] 2) Vikas Kamlakar Walawalkar ] Partner of Samartha Development ] Corporation, a Partnership Firm ] registered under the provisions of the ] Indian Partnership Ac, 1932 having his ] Registered address at 11-A, Suyash, ] Near Amar Hind Mandal, ] Gokhale Road (N), Dadar (West), ] Mumbai 400 028 ] 3) Satish Prabhakar Shetye, an adult male ] of Mumbai, Indian Inhabitant residing at ] 306/B, Jupiter Co-operative Housing ] Society, Apna Ghar, Swami Samartha ] Nagar, Oshiwara, Andheri (West), ] Mumbai 500 058 ]..Applicants Versus 1) State of Maharashtra, ] Through Secretary, Home Department, ] Mantralaya, Mumbai 400 032 ] 2) Nandkumar Balsaraf, Circle Officer ] through the Tahsildar, Andheri, having ] his office at Dadabhai Nowroji Road, ] Andheri (West), Mumbai 400 058 ]..Respondents BGP. 1 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc. Mr. A. H. Ponda a/w Mr. Amrut Joshi, Mr. Shailesh Mahimtura, Mr. Ooril Panchal, Mr. Ashish Raghuvanshi i/by Mahimtura and Company for the Applicants. Mr. K. V. Saste, Addl. P. P. for the for the Respondent - State. CORAM : R. M. SAVANT & SANDEEP K. SHINDE, JJ. RESERVED FOR JUDGMENT :- 19th SEPTEMBER, 2017 PRONOUNCEMENT OF JUDGMENT :- 10th OCTOBER 2017 JUDGMENT (Per R. M. SAVANT, J)
1 The above Criminal Application has been filed by the Applicants for quashing the charge-sheet dated 11 th December, 2012, the FIR No.3 of 2012 registered with the Oshiwara Police Station for offences punishable under Section 15(1) and (2) of the Environment (Protection) Act, 1986 (for short "the EPA 1986"). The Applicants also seek quashing and setting aside of the order dated 11 th December, 2012 passed by the Learned Magistrate taking cognizance of the offence. 2 The Applicant No.1 herein is the Chief Promoter of Shree Swami Samartha Prasanna Co-operative Housing Society who granted development rights in or around 1975 to one Samartha Development Corporation which is a partnership firm registered under the provisions of the Indian Partnership Act, 1932. The Applicant No.1 is the original BGP. 2 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
accused in the FIR No.3 of 2012 dated 7th January 2012 registered with the Oshiwara Police Station, Andheri West, Mumbai. The Applicant No.1 has been arraigned as accused No.6 in CC No.2263/PW/2012 pending on the file of the Learned Metropolitan Magistrate, 65th Court, Andheri, Mumbai. The Applicant No.2 is a partner of Samartha Development Corporation which has been entrusted with the development of the land which is the subject matter of the FIR. The Applicant No.3 is the manager working with the said Samartha Development Corporation. The Applicant No.3 has been shown as accused No.4 in the said CC No.2263/PW/2012. It seems that the Applicant Nos.2 and 3 were not originally named in the FIR but were subsequently named in the charge-sheet. 3 The subject FIR has been registered by the Circle Officer, Andheri under Section 15(1) and (2) of the Environment (Protection) Act, 1986. The subject land is Plot No.124 which forms part of a scheme sanctioned by the Municipal Corporation vide order No.CE/649/BS 1/ Lokhandwalla. The said laid bears CTS No.1/48/1A/2 of village Oshiwara, Taluka Andheri and admeasures 7747.1 sq. mtrs. As indicated above, it is the Samartha Development Corporation which is entitled to develop the said plot in respect of which it has obtained approvals for construction of buildings on the said plot which buildings comprise of three wings.
BGP. 3 of 25
::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 :::
Res. Jt in APL-697-17.doc.
4 The plans for the said buildings have been sanctioned by the
Municipal Corporation for Greater Mumbai (for short "MCGM") on 3 rd July, 2012 and commencement certificate has been issued on 6 th April, 2013. The MCGM has also issued NOC dated 19 th July, 2012 from the Water Works Department. The Tree Authority has issued NOC on 5 th September, 2012 and provisional NOC has been issued by the MTNL on 26th July, 2012. Since the plot falls in the CRZ area, the Maharashtra Coastal Zone Management Authority (for short "MCZMA") has vide letter dated 11th November, 2011 recommended the proposed residential construction on the said plot as per the decision taken at the 71 st meeting of the MCZMA.
5 It seems that some persons made a complaint to the Tahsildar alleging that mangroves were being destroyed on the said plot of land. Pursuant to the said complaint it seems that a site visit was carried out by the Circle Officer, Nandkumar Balsaraf and the other officers of the Revenue Department on 29 th December, 2011. It seems that thereafter a letter came to be addressed by the office of the Tahsildar, Andheri on 5th January, 2012 to the Oshiwara Police Station. The Circle Officer thereafter visited the said Police Station on 6th January, 2012 and ultimately FIR came to be registered on 7 th January, 2012. The gist of the allegations in the FIR is to the following effect :-
BGP. 4 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
"(a) That an offence has been committed under Section 15(1) and (2) of the Environment (Protection) Act, 1986 (for short "the EP Act, 1986") by the said Shree Swami Samartha Prasanna Co-operative Housing Society (proposed) which is of the Samartha Development Corporation.
(b) That two or three mangrove trees exist inside a nala which flows at some distance away from the northern boundary of the plot of land, the Applicants have allegedly dumped on the said plot earth/debris at a distance of 15 or 20 from the roots of 2 or 3 mangrove trees which are growing inside the nala.
(c) That the Applicants have dumped the said debris at the said location without seeking prior permission from the concerned department.
(d) That it is the apprehension of the complainant that on account of the said unauthorized filling at the said location, harm may be caused in future to the 2 to 3 mangrove trees which are located inside the nala.
(e) That by dumping the said debris at the said location, the Applicants have violated the order passed by this Court for protection of the mangrove trees and that it cannot be ruled out that in future damage will be caused to the environment."
6 It seems that after the said complaint came to be lodged, the Applicants carried out enquiries, upon they came to know that the complaint was made by an organization called "Save Open Space". 7 Against the said FIR, the Applicants had filed Criminal Writ Petition No.1130 of 2012 in this Court. The said Writ Petition had come BGP. 5 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
up for admission before the Division Bench of this Court. The Division Bench on 22nd August, 2012 whilst disposing of the said Writ Petition observed that there is no manner of doubt that the Investigating Officer would submit appropriate report to the concerned Court. It was further observed by the Division Bench that on the said location if damage has been done to any mangroves, the Investigating Officer will record the said fact in the final report to be submitted to the concerned Court. The Division Bench further observed that the Investigating Officer shall do the needful in the matter in right earnest. The Division Bench accordingly disposed of the said Writ Petition. Hence, the said Writ Petition was filed before the final report was filed and before cognizance being taken. 8 The Investigating Officer thereafter filed the report under Section 173 of the Cr.P.C. in the Court of the Learned Metropolitan Magistrate, 65th Court, Andheri, Mumbai on 11th December, 2012. The said report was against the Applicants and the other accused. In the charge-sheet the Applicant Nos.2 and 3 have also been made accused. The Learned Metropolitan Magistrate on the same day has taken cognizance of the offence by passing the following order :-
"Charge-sheet is filed today. Cognizance of offence is taken. Issue summons to the accused."
BGP. 6 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
As indicated above, it is the charge-sheet dated 11 th December, 2012 as also the order passed on the said day i.e. 11 th December, 2012 taking cognizance of the offence which is taken exception to by way of the above Application.
9 Heard the Learned Counsel for the Applicants and the Learned Additional PP for the State.
10 The principal contention of the Learned Counsel for the Applicants in assailing the charge-sheet and the order dated 11 th December, 2012 is that the procedure and or the due process of law for registering an offence under Section 19 of the EPA 1986 was not followed. It was the contention of the Learned Counsel that Section 19 of the EPA requires the Central Government or its officer to file a complaint or a private citizen to give an advance notice of 60 days to the Central Government or its officer before filing a complaint. It was further the submission of the Learned Counsel that a combined reading of Section 19 of the EPA 1986 and Section 2(d) of the Cr.P.C. indicates that for cognizance of an offence under Section 19 a complaint has to be filed before the Magistrate and such complaint does not include a police report under Section 173 of the Cr.P.C. It was the submission of the Learned Counsel that in the present case neither a proper authority has instituted BGP. 7 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
the complaint nor has the procedure prescribed has been followed for taking cognizance of the said complaint.
In support of the said submissions, the Learned Counsel relied upon the following judgments of the Division Benches of this Court :-
1] 2016 (6) ABR 533 in the matter of Dr. Mahesh Vijay Bedekar Vs. State of Maharashtra and others.
nd 2] Unreported judgment dated 22 December, 2016 in PIL No.218 of 2013 in the matter of Navi Mumbai Environment Preservation Society and another Vs. Ministry of Environment.
th 3] Unreported judgment dated 26 August, 2014 in
Criminal Application (Main) No.116 of 2014 in the matter of Mr. Subhash Shirodkar Vs. State of Goa.
4] 2014 SCC OnLine Bom 787 in the matter of State of Maharashtra Vs. Ajay Jagdish Pande and 3 ors.
5] The Learned Counsel also relied upon the judgment of the Apex Court reported in (1986) 4 SCC 326 in the matter of A. K. Roy and another Vs. State of Punjab and others.
11 The Learned Counsel also sought to make submissions on merits by contending that the area wherein three mangrove plants are situated cannot come within the mangrove area as defined in the notification dated 2011. The Learned Counsel would also submit that the BGP. 8 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
factum of the MCZMA lifting the stay granted by it would indicate that no offence has been committed by the Applicants in as much as no mangrove has been destroyed by the Applicants in any area which can be described as a mangrove area within the definition in the notification dated 2011. 12 The Learned Additional PP, Mr. K. V. Saste sought to justify the registration of the FIR, filing of the charge-sheet and the cognizance being taken by the Learned Magistrate, but the submissions made by the Learned Additional PP were not with any deal of conviction faced with the judgments of this Court on which reliance was placed by the Learned Counsel for the Applicants.
13 In the context of the challenge raised in the above Petition, it would be necessary to advert to Sections 15 and 19 of the EPA 1986. The same are reproduced herein under for the sake of ready reference :-
"15. Penalty for contravention of the provisions of the Act and the rules, orders and direction.- (1) Whoever fails to comply with or contravenes any of the provisions of this Act, or the rules made or orders or directions issued thereunder, shall, in respect of each such failure or contravention, be punishable with imprisonment for a term which may extend to five years or with fine which may extend to one lakh rupees, or with both, and in case the failure or contravention continues, with additional fine which may extend to five thousand rupees for every day during which such failure or contravention continues after the conviction for the first such failure or contravention.
BGP. 9 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
(2) If the failure or contravention referred to in sub- section (1) continues beyond a period of one year after the date of conviction, the offender shall be punishable with imprisonment for a term which may extend to seven years."
"19. Cognizance of offences.- No Court shall take cognizance of any offene under this Act except on a complaint made by -
(a) the Central Government or any authority or officer authorised in this behalf by that Government; or
(b) any person who has given notice of not less than sixty days, in the manner prescribed, of the alleged offence and of his intention to make a complaint, to the Central Government or the authority or officer authorised as aforesaid."
Hence under Section 15, it is provided that a person who fails to comply with or contravenes any of the provisions of this Act, or the rules made or orders or directions issued thereunder, may be punished by imprisonment which may extend to five years or with a fine of one lakh rupees, or with both. In case of continuation of the contravention for a period of one year after the conviction term of imprisonment may extend to seven years. 14 In so far as Section 19 of the EPA 1986 is concerned, it provides for the manner in which cognizance of an offence under Section 15 can be taken. The said provision being worded in the negative, cognizance can only be taken of the offence under the EPA 1986 if the complaint is made by the Central Government or any authority or officer BGP. 10 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
authorised in this behalf by the Central Government or the complaint made by any person who has given notice of not less than sixty days, in the manner prescribed.
15 The issue of the action to be taken for contravention of the Noise Pollution Rules framed under the EPA 1986 had come up for consideration in Dr. Mahesh Vijay Bedekar's case (supra). The Division Bench held that the contravention of the Noise Pollution Rules would amount to an offence under Section 15 of the EPA 1986 and therefore complaint in that regard would have to be made by persons authorized to do so. The Division Bench in the said case referred to the notification issued by the Central Government being S.O.394/E which shows that under clause (a) of Section 19 of the EPA 1986. The power to set the criminal law in motion has been conferred on the Chairman or the Member Secretaries of the State Pollution Control Board as well as the Regional Officers of the State Pollution Control Board. In the said notification, even the Collector is authorized under clause (a) of Section 19 to set the criminal law in motion under clause (a) of Section 19. The Division Bench in the context of the said notification and having regard to Section 19 held that the Police Officers are not empowered to set the criminal law in motion unless there is a compliance with clause (b) of Section 19. The relevant paragraphs of the said judgment are paragraphs BGP. 11 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
47, 67 and 68 which are reproduced herein under :-
"47. In view of the aforesaid notification issued by the Government of India, the Chairman or the Member Secretary or the Regional Officers of the Maharashtra Pollution Control Board have been authorised in terms of clause (a) of Section 19 to file complaints. If such Officers file complaints, they are not required to give notice of sixty days as provided in clause (b) of Section 19. It is for this reason that in the said Civil Application filed by the Intervenor, specific directions have been sought against the Pollution Control Board enjoining the nominated officers to set the criminal law in motion under Section 19 as even the Police Officers are not empowered to set the criminal law in motion unless there is compliance with clause (b) of Section 19. In the said Central Government Notification, even the Collector is authorised under clause (a) of Section 19 to set the criminal law in motion."
"67. On plain reading of Section 19, if any person other than Central Government or authority or officer authorised in this behalf by that Government in accordance with clause (a) thereof wants to set criminal law in motion, that person has to give notice of 60 days of the alleged offences and of his intention to make a complaint as provided in clause (b) of Section 19. Thereafter, if the authority under the Noise Pollution Rules or any police officer wants to file a complaint, he has to abide by clause (b) of Section 19.
Therefore, an offence cannot be registered at least for a period of 60 days from the date of its commission. As far as clause (a) is concerned, there is a notification issued by the Central Government which is annexed to CA(St.) No.1817 of 2016. As per the said notification, the District Collectors have been appointed as authority under clause (a) of Section 19. The Chairpersons, member Secretaries and regional officers of the State Pollution Control Board who have been delegated powers under Section 24 of Air BGP. 12 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
Pollution Act are also authorities under clause (a) of Section 19."
"68. Therefore, we propose to direct the authority under the Noise Pollution Rules to ensure that as soon as a complaint is received or information is received from the Police Officer or information is otherwise received regarding any major violation of the Noise Pollution Rules, immediate information thereof shall be provided to the officers of the Maharashtra State Pollution Control Board or the District Collector who have been authorised under (a) of Section 19 to take action. As soon as such intimation is received, either the District Collector or officers of the Pollution Control Board will have to take immediate steps to make a complaint contemplated by Section 19 of the Environment Protection Act inasmuch as if the Collector or the authorised officers make a complaint, it is not necessary for them to follow requirement of giving 60 days notice under Section 19. Even the police officers can set criminal law in motion after taking recourse to clause (b) of Section 19."
16 The said issue had again come up before the Division Bench of this Court sitting at Goa in Mr. Subhash Shirodkar's case (supra). Paragraph 10 of the said judgment is material and is reproduced herein under :-
"10. By order dated 11/11/1998, the Dean of Goa Medical College and Ex-officio Additional Secretary has sanctioned provision of cadavers from Anatomy Department of Goa Medical College to Kamaxidevi Homeopathic Medical College and Hospital, Shiroda, for dissection and teaching purpose. The Goa State Pollution Control Board (GSPCB, for short), under Rule 8(4) of the Bio Medical Waste Rules, has authorised the Medical Superintendent (occupier) to BGP. 13 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
generate, store, treat and dispose of the bio-medical waste at the premises of M/s. Kamaxidevi Homeopathic Medical College and Hospital, Karai, Shiroda, Ponda, Goa. As per clause 14 of the said authorisation, the occupier should construct deep burial pit of two metres depth and no shallow well should be closed to the deep burial site. The occupier should maintain all records of pit for deep burial. From the above provisions of Rules 4, 5 and 6 of the Bio-Medical Waste Rules, and the authorisation dated 01/03/2013 given by GSPCB, it is clear that it is the "occupier" of the institution, who will be responsible for the alleged offence under Section 5 of the Act read with Rules 5 and 6 of the Bio-Medical Waste Rules. None of the petitioners is the occupier and the occupier is the Medical Superintendent of the said Hospital. Considering the provision of Section 19 of the Act, the complaint ought to have been lodged by the Central Government or any authority or officer authorised, in this behalf, by that Government or in the manner as specified by clause (b) of Section 19. However, the said provision has not been complied with. The provision is mandatory. Hence, the learned J.M.F.C., Ponda could not have taken cognizance of the said offence. On this ground alone, the F.I.R. under Section 5 of the Act read with Rules 5 and 6 of Bio- Medical Waste Rules and the Charge Sheet filed for the said offence are liable to be quashed and set aside."
Thereafter the said issue had come up before another Division Bench in Ajay Jagdish Pande's case (supra). In the said case, a submission was advanced on behalf of the accused by the Learned Counsel that the Police could not have filed a charge-sheet in respect of an offence punishable under Section 15 of the EPA 1986. It was further submitted that there was no question of the Court taking cognizance of an offence punishable under the EPA 1986 on the basis of the charge-sheet filed by the police in BGP. 14 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
view of the provisions of Section 19 of the EPA 1986. The Division Bench held that the Court would have no jurisdiction to take cognizance of the offence punishable under Section 15 of the EPA 1986 on the basis of the documents submitted to it by the Police. Paragraph 38 of the said judgment is material and is reproduced herein under :-
"38. Clearly, the Court would have no jurisdiction to take cognizance of the offence punishable under section 15 of the Environment Act, on the basis of the document submitted to it by the police. Even if any action has been taken by the Court pursuant to the filing of such document, such action would be without jurisdiction, void and ab initio. The cognizance taken in violation of a specific provision would be no cognizance at all, and would be non-est."
17 Thereafter the issue had once again come up before a Division Bench of this Court in Navi Mumbai Environment Preservation Society's case (supra). The question which arose before the Division Bench was whether the registration of an FIR at the instance of a person who is not authorised under clause (a) of Section 19 and the investigation carried out on the basis of the FIR becomes illegal. The Division Bench culled out the principles and issued the directions which are contained in paragraph 15 of its judgment. The said paragraph 15 is reproduced herein under for the sake of ready reference :-
"15 Hence, we issue further interim directions.
BGP. 15 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
(I) We direct the Committee headed by the Divisional Commissioner, Konkan Division to co-ordinate the work of filing of complaints by the authorised officers under clause (a) of Section 19 of the said Act of 1986. Proper procedure shall be laid down by the said Committee to ensure that the authorised officers promptly file complaints in case of the violations attracting the penal provisions under Section 15. The Committee will have to ensure that the authorised officers properly co-ordinate with the concerned Police officers;
(II) We direct the Central Government to consider the question of appointing Police officers of appropriate rank as authorised officers under clause (a) of Section 19 of the said Act of 1986 in different areas with a view to make implementation of the said Act of 1986 more effective. Appropriate decision shall be taken by the Central Government within a period of one month from the date on which an authenticated copy of this order is produced by the Petitioners in the office of the Secretary in charge of the Department of Environment of the Central Government. The concerned Ministry shall act upon an authenticated copy of this order;
(III) We clarify that registration of offences by the Police under Sub-Section (1) of Section 15 of the said Act of 1986 and the investigation carried se illegal. The officers out thereon is not per authorised under clause (a) of Section 19 can always file complaints in accordance with the said Code by relying upon the material collected during the investigation and material forming part of the charge sheet prepared by the Police;
(emphasis supplied) (IV) We direct the Committee appointed under the BGP. 16 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
Chairmanship of the Division Commissioner to ensure that the prosecutions which are lodged for commission of offences punishable under Sub- Section (1) of Section 15 are properly conducted;
(V) For considering the compliance by the Central Government and for issuing further directions on the basis of the decision taken by the Committee headed by the Divisional Commissioner, the Petition shall be listed on 27th January, 2017 before this Court (a Division Bench presided over by A. S. Oka, J. in terms of the directions of the Hon'ble the Chief Justice);
(VI) Issue of compliances made by the Committee, CIDCO and other authorities shall be considered on that date."
18 A reading of the aforesaid judgments (supra) therefore reveals a common thread running in them. In so far as cognizance of an offence under the EPA 1986 is concerned, the weight of the aforesaid judgments is overwhelmingly leaning towards holding that to take cognizance of an offence under Section 15 of the EPA 1986 the complaint has to be made by the Central Government or any authority or officer authorized by the government, but does not include a police report under Section 173 of the CPC. In so far as the alternative contained in Section 19 is concerned, no doubt, a private individual can file a complaint but the same has to be filed by following the mandate of clause (b) of Section 19 of the EPA 1986 i.e. by giving a notice in a prescribed manner of the alleged offence to the Central Government or its concerned officer of BGP. 17 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
State that he intends to make a complaint on the said basis and individual would have to state that if within sixty days does not get response then would proceed further. It is well settled by the judgments of the Apex Court that if a statute is requires a thing to be done, it has to be done in the said manner only and not in any other manner. It is in the aforesaid context that the relief sought in the instant application would have to be considered.
19 In so far as the instant case is concerned, there is no dispute about the fact that the FIR has been registered by the Circle Officer, Andheri and there is nothing on record to indicate that the said Circle Officer has been authorized by the Central Government to file an FIR in respect of an offence under the EPA 1986. It is pursuant to the registration of an FIR that investigation was carried out by the local police and a final report under Section 173 came to be filed by the local police. It is pursuant to the final report filed that cognizance under Section 19 of the EPA 1986 has been taken by the concerned learned Metropolitan Magistrate. Hence, in the instant case, the cognizance of the offence has been taken by the learned Magistrate on the basis of a police report which is impermissible as per the law enunciated by the Division Benches of this Court. Hence, the consequences of the cognizance being taken on the basis of a police report which is not the modality prescribed BGP. 18 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
under Section 19 would have to be followed.
20 A useful reference could also be made to the judgment of the Apex Court in A. K. Roy's case (supra). In the said case, Section 20 of the Prevention of Food Adulteration Act, 1954 which provides for cognizance and trial of offences, was in contention. The said provision reads thus :-
"20. Cognizance and trial of offences. - (1) No prosecution for an offence under this Act, not being an offence under Section 14 or Section 14-A, shall be instituted except by, or with the written consent of, the Central Government or the State Government or a person authorised in this behalf, by general or special order, by the Central Government or the State Government."
Paragraphs 9 and 10 of the said judgment are relevant and are reproduced herein under :-
"9. It is common ground that the prosecution in the instant case has not been launched either by or with the written consent of the Central Government or the State Government. It therefore becomes necessary to ascertain whether the Food Inspector, Faridkot was duly authorized to launch a prosecution. The Food Inspector had been conferred powers of the State Government under Section 20(1) of the Act viz. to initiate prosecutions for an offence under the Act, by the Food (Health) Authority i.e. the Director of Health Services. A mere perusal of the impugned notification dated September 7, 1972 makes it manifest that it was the Director of Health Services and not the State Government who had authorised the Food Inspector to launch prosecutions for an offence under the Act. It is therefore clear that the Food Inspector is not a person who has been authorised by any general or special BGP. 19 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
order issued by the Central Government or the State Government. There would be no problem if the State Government were to issue a notification under Section 20(1) of the Act conferring authority on the Food Inspector, Faridkot under Section 20(1) to launch prosecutions for an offence under the Act as is the practice in the other States.
10. A careful analysis of the language of Section 20(1) of the Act clearly shows that it inhibits institution of prosecutions for an offence under the Act except on fulfillment of one or the other of two conditions. Either the prosecutions must be institute by the Central Government or the State Government or a person authorised in that behalf by the Central Government or the State Government, or the prosecutions should be instituted with the written consent of any of the four specified categories of authorities or persons. If either of these two conditions is satisfied, there would be sufficient authority for the institution of such a prosecution for an offence under the Act. The provision contained in Section 20(1) of the Act does not contemplate the institution of a prosecution by any person other than those designated. The terms of Section 20(1) do not envisage further delegation of powers by the person authorised, except that such prosecution may be instituted with the written consent of the Central Government or the State Government or the person authorised. The use of the negative words in Section 20(1) "No prosecution for an offence under this Act.....shall be instituted except by or with the written consent of" plainly make the requirements of the section imperative. That conclusion of ours must necessarily follow from the well known rule of construction of inference to be drawn from the negative language used in a statute stated by Craies on Statute Law, 6th edn., p. 263 in his own terse language :
If the requirements of a statute which prescribes the manner in which something is to be done are expressed in negative language, that is to say, if the statute enacts that it shall be done in such a manner and in no other manner, it has been laid down that those requirements are in all cases absolute, and that neglect to attend to them will BGP. 20 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
invalidate the whole proceeding.
(emphasis supplied) Where a power is given to do a certain thing in a certain way, the thing must be done in that way or not at all. Other modes of performance are necessarily forbidden. The intention of the legislature in enacting Section 20(1) was to confer a power on the authorities specified therein which power had to be exercised in the manner provided and not otherwise."
The Apex Court in the facts of the said case where the prosecution was launched not with the written consent of the Central Government or the State Government, but by the Food Inspector, Faridkot held that the Food Inspector, Faridkot not being authorized to launch prosecution for an offence under the said Act found fault with the launching of the said prosecution. The Apex Court held that the provision contained in Section 20(1) of the said Act does not contemplate the institution of a prosecution by any person other than those designated. The Apex Court further held that the terms of Section 20(1) do not envisage further delegation of powers by the person authorised, except that such prosecution must be instituted with the written consent of the Central Government or the State Government or the person authorised. The Apex Court accordingly in the said case set aside the judgment and order passed by the High Court as well as the Special Divisional Judicial Magistrate. The said judgment in A. K. Roy's case (supra) therefore supports the case of the Applicants that in the instant case the cognizance BGP. 21 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
could have only been taken if the mandate of Section 19 was fulfilled. 21 The Applicants have assailed the registration of the FIR and filing of the charge-sheet inter-alia on the ground, that on the basis of the GPS readings and spot inspection it was recorded that there are no mangroves on the said plot, the permission granted by the MCZMA to carry out construction on the said plot and that there is no mangrove area of more than 1000 sq.mtrs. within 50 mtrs. distance from the proposed building on the said plot. That the two or three mangrove trees on the said plot as stated in the FIR do not qualify as a "mangrove area" because an area of 1000 sq.mtrs. must be covered by mangroves for there to be a mangrove area. That the said plot falls within CRZ-II and not CRZ-I and therefore there is no question of any mangroves growing on the said plot which is acknowledged by the MCGM and MCZMA. That the stop work notice dated 29th June 2013 being withdrawn by the MCZMA in its 114 meeting dated 2nd November 2016 and that the restrictions imposed vide order dated 6th October, 2005 passed by this Court in PIL No.87 of 2006 do not apply to the plot in question as the said order applies to mangrove areas which are notified and which order provides for a mechanism for the purposes of identification and notification of the mangrove areas. It is on the aforesaid grounds that the Applicants have questioned the registering of the FIR and filing of the charge-sheet by the BGP. 22 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
police. Since we have come to a conclusion that the cognizance taken by the learned Magistrate is not in terms of Section 19 of the EPA 1986 and therefore the order dated 11th December, 2012 taking cognizance would have to be set aside. It is not necessary for us to go into the grounds afore-stated questioning the registering of the FIR and the charge-sheet. It would be for the Applicants to urge the said grounds in appropriate proceedings, if the occasion arises in future. 22 Though we have come to a conclusion that the order dated 11th December, 2012 passed by the learned Magistrate of taking cognizance of the offence under Section 15 of the EPA 1986 would have to be set aside, it would not be out of place to revisit the direction of the Division Bench as contained in the order dated 22 nd December, 2016 (clause III of the order passed by the Division Bench in PIL No.218 of 2013). Since by the said direction, the Division Bench has held that the investigation carried thereon is not per-se illegal that the officer under clause (a) of Section 19 can always file complaints in accordance with the said Code by relying upon the material collected during the investigation and material forming part of the charge-sheet prepared by the police. It is therefore not necessary to quash and set aside the FIR, however, we are required to modulate the relief which is to be granted in the above application accordingly. Hence, the following order :-
BGP. 23 of 25
::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 :::
Res. Jt in APL-697-17.doc.
I) The order dated 11th December, 2012 passed by the
learned Magistrate taking cognizance for the reasons stated hereinabove is set aside. The filing of the charge-sheet by the police dated 11th December 2012 is also set aside.
II) It is however clarified that the investigation carried out by the police pursuant to the FIR as well as the material collected by the police is kept intact and it would be open for the officers authorized under clause
(a) of Section 19 to file a complaint by following the directions as contained in clause III of paragraph 15 of the order dated 22nd December, 2016 passed in PIL No.218 of 2013. The same to be done within twelve weeks from date.
III) If the procedure as contemplated by Section 19 of the EPA 1986 and as interpreted by the various judgments of this Court and especially clause III of paragraph 15 of the judgment and order dated 22nd December, 2016 in PIL No.218 of 2013 is followed, the concerned learned Magistrate would passed appropriate orders BGP. 24 of 25 ::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 ::: Res. Jt in APL-697-17.doc.
thereon as regards cognizance.
IV) Needless to state that the contentions of the Applicants on merits are kept open for being urged at the appropriate time in appropriate proceedings. The Criminal Application is allowed to the aforesaid extent.
V) Rule is accordingly made absolute.
[SANDEEP K. SHINDE, J] [R. M. SAVANT, J]
BGP. 25 of 25
::: Uploaded on - 10/10/2017 ::: Downloaded on - 11/10/2017 02:06:57 :::


- Blog
-
stonestylesun123(at)gmail(dot)com
- Github
- Phone
-
+8613450299626
- Address
-
Room 406, Mingde Garden Building 2
Sun Yat-sen University, Guangzhou
China, 510006
Objectives
-
We shape our tools, and thereafter, our tools shape us.
-
Dive into programming and build tools to make human life more fulfilling.
Skills
-
Writing clean code in C/Java/Python, and Ruby(learning now) with practical experiences.
-
Web programming with HTML/CSS/javascript, and learning to be a perfectionist.
-
Having a strong interest in Python/Ruby.
-
Web development with Python Flask and Rails(learning now).
-
Getting experience with Wxpython(UI)/Mysqldb/Flask programming.
-
Software testing with Junit/RSpec(learning now).
-
Source code management: Git/Subversion.
-
Editor/IDE: Vim/Eclipse.
-
Operating systems: Linux (especially Debian, Ubuntu).
-
I also have rich experience with common Unix command line utilities.
-
Excellent quick learning and problem-solving ability under time constraints.
-
Critical thinking and effective communication.
-
Strong self-reliance, warm and lively.
Project Experience
SYSU-jwxt - In Feb 2012, in order to solve the "campus problem" that only IE browser can access the SYSU educational administration management system, we decide to build a third-party web site, using Python/Flask, allowing for all types of browers(Gecko/Webkit/Trident and also mobile browsers) to visit. (github)
mini-Library - In Mar 2012, we make the mini-Library software for the course project of System Design and Implementation using python and third-party libs wxpython(UI), Mysqldb(Mysql). (github)
Education
-
I am currently a 3th-grade undergraduate in School of Software at SYSU University.
Hobbies
-
Enjoying baseketball, NBA stars(especially KoBe).
-
Playing dota games, and wishing to be a "Great God"(大神).
-
Watching the lastest movies, and having a movie dream.
Notes
-
This resume was created using Vim and Markdown. The process of generating HTML and uploading it to my server is automated by using Markdown, Git.
-
This web link: stonesisi.me/resume.html


Hi to everybody,
I builded emonTx pcb for read PV and cosumation and I connected only two CT (one for pv and 1 for consumation), its works fine, but I would to know if there's a method to extend the emonTx functionality to read a digital value without to change a pcb. I need to read a value coming from an external device, Is there a pin that can use?
I hope my explanation is clear
Thanks
Re: Extend emonTx
Yes, the temperature sensor does exactly what you want using the one-wire protocol.
Also, look at this http://openenergymonitor.blogspot.co.uk/2012/08/reading-watt-hour-data-f... which uses the pulse input.
Re: Extend emonTx
let's hope it's not serial data he want's to read... and worse if he wants to ways serial com with the external device..
given up on figure that one out for the emontx myself
Re: Extend emonTx
Others have successfully implemented serial input, if you cannot do it, it does not mean the everybody is the same.
Re: Extend emonTx
There is a pulse input on the standard board which is designed to read a digital value, i am using it to read rpm for a heat pump. My experience is that its more difficult to read exact ad values with current emontx scripts.
Re: Extend emonTx
nope it does not mean that... i have seen threads about input only but it will be another thing for meters that require a request before they output anything.
Re: Extend emonTx
Thanks to all for reply.
My goal is to read a digital value that comes from an alarm system.
If value is true means that my allarm is active otherwise is turned off
I not need to read a serial data, I need to read only one value
Re: Extend emonTx
hmm... i think you can use the pulse input... of course it will require a small mod so it does only report either on or off..
the pulse i normal used to messure things like water or electricity that gives 1 pulse for every liter or kwh (in most cases it requires more pulses to say 1 liter etc)
if you used the pulse input without mods you will only have a pulse when alarm is activated or turned off.. of course it would work somehow but you would have to go back and figure if the alarm is on or off instead of a simple value of on or off
Re: Extend emonTx
By digital value, do you mean a voltage out on the alarm? If so then if you can adjust it to provide a suitable input voltage for the emontx (not sure if has to be 3.3v or if 5v will do).
This page http://openenergymonitor.org/emon/emontx/reference%20 gives the pin uses of which Digital 5, 6 and 7 could be used for 'if pin HIGH = alarm triggered'.
This page http://solderpad.com/openenergymon/emontx/ should help you identify the pins, but they are the pads set out to be compatible with the Jeenodes.
Maybe you mean something else though?
Dennis
Re: Extend emonTx
Thanks,
For summary
Digital 5, corresponding to pin 11 that is connect to CT3 connector is free
Digital 6, corresponding to pin 12 that is connect to AC-DC 9 V measurement, connector already in use
Digital 7, corresponding to pin 13, that is connect to to CT1, connector already in use
Digital 4, corresponding to to pin 6, that is connect to temperature measure, connector is free
If I understand correctly I can use Digital 5 or Digital 4, correct?
On P1 is connected also the CT2 connector, if I use the Digital 4, is compromise CT2
read ?
Thanks
Re: Extend emonTx
Not from how I read it, unless you mean you have built/designed your own board?
If using the OEM Emontx then:
Digital 5, 6 & 7 are all free, and ready setup to use the Jeenode layout.
CT3 is connected to Analogue 1/ Digital 15/Pin 24 which can be used if you don't use CT3, but as there already unassigned pins then why use it - maybe you want to make use of the available jack?
9v AC input is connected Analogue 2/ Digital 16/Pin 25.
On P1 the digital port is in use, but it is the One Wire Temperature input.
Dennis
Re: Extend emonTx
Sorry but perhaps I wrong to read a schema.
If I understand if something use the pin AIO of PX connector, this is in use. I look a DIO pin of PX connector.
If it is connect where, in the schema, I connect my cable to read a input?
Thanks


- sCog - Variable in class EnigmaSolver.GuessEncryption
-
- setCipherText(String) - Method in class UserInterface.EnigmaMachineView
-
This method sets the cipher text after plain text has been encrypted.
- setCipherText(String) - Method in class UserInterface.EnigmaSolverView
-
This method is for setting the value of cipherTextField which is given by the user.
- setCogValue(String, JTextField) - Method in class UserInterface.EnigmaSolverView
-
This method is used to return the start values of the cogs.
- setCurrentValue(int) - Method in class EnigmaMachine.Cog
-
This method is used for setting the current value of the cog.
- setDecipherListener(ActionListener) - Method in class UserInterface.EnigmaSolverView
-
This method creates a listener for performing the decryption the ciphertext when the button is
pressed.
- setDecryptTextListener(ActionListener) - Method in class UserInterface.EnigmaMachineView
-
This method is used for creating the listener for performing the decryption when the button is
pressed.
- setEncryptTextListener(ActionListener) - Method in class UserInterface.EnigmaMachineView
-
This method is used for creating the listener for performing the encryption when the button is
pressed.
- setErrorText(String) - Method in class UserInterface.SolverErrorView
-
This method is used to set the message for the error message presented to the user.
- setNumberOfValues(int) - Method in class EnigmaMachine.Cog
-
This method is used for setting the number of potential values a cog can have.
- setOKButtonListener(ActionListener) - Method in class UserInterface.SolverErrorView
-
This method adds a listener to the OK button to allow it to be closed.
- setOpenEnigmaMachine(ActionListener) - Method in class UserInterface.MainView
-
This method is used for adding a listener to the Enigma Machine button so when clicked it opens
the Enigma Machine view.
- setOpenEnigmaSolver(ActionListener) - Method in class UserInterface.MainView
-
This method is used for adding a listener to the Enigma Solver button so when clicked it opens
the Enigma Solver view.
- setPlainText(String) - Method in class UserInterface.EnigmaMachineView
-
This method allows for the text in the plain text to be set using this method.
- setPlainText(String) - Method in class UserInterface.EnigmaSolverView
-
This method is for setting the value of plaintextField, which it has calculated using the
decryption method.
- setRoundValue(String) - Method in class UserInterface.EnigmaSolverView
-
This method is used for showing how many rounds of encryption were used to encrypt the
ciphertext.
- setUp() - Method in class TestEnigmaMachine.TestCog
-
This method is used for setting up the Cog variables for testing purposes.
- setUp() - Method in class TestEnigmaMachine.TestCogRotate
-
This method is used for setting up the Cog variables for testing purposes.
- setUp() - Method in class TestEnigmaMachine.TestConversion
-
This method is used for setting up the Conversion variables for testing purposes.
- setUp() - Method in class TestEnigmaMachine.TestEncryption
-
This method is used for setting up the Encryption variables for testing purposes.
- smallCogTitle - Variable in class UserInterface.EnigmaSolverView
-
- SolverErrorView - Class in UserInterface
-
- SolverErrorView(int) - Constructor for class UserInterface.SolverErrorView
-
Create the dialog.


Deltacloud Client (Ruby)
- Basics
- Connecting to a Deltacloud provider
- Listing realms
- Listing hardware profiles
- Listing images
- Listing instances
- Launching instances
- Manipulating instances
The Deltacloud project includes a Ruby client. Other language-bindings are possible and will be supported soon. The client aims to insulate users from having to deal with HTTP and REST directly.
Each resource type has an associated model to ease usage. Where resource reference other resources, natural navigation across the object model is possible.
For example
puts instance.image.name
puts instance.hardware_profile.architecture
Basics
To use the client, you must require deltacloud
.
require 'deltacloud'
Connecting to a Deltacloud provider
require 'deltacloud'
api_url = 'http://localhost:3001/api'
api_name = 'mockuser'
api_password = 'mockpassword'
client = DeltaCloud.new( api_name, api_password, api_url )
# work with client here
In addition to creating a client, operations may occur within a block included on the initialization
DeltaCloud.new( api_name, api_password, api_url ) do |client|
# work with client here
end
In the event of a failure, any underlying HTTP transport exceptions will be thrown all the way out to the caller.
Listing realms
You may retrieve a complete list of realms available to you
realms = client.realms
You may retrieve a specific realm by its identifier
realm = client.realm( 'us' )
Listing hardware profiles
You may retrieve a complete list of hardware profiles available for launching machines
hwp = client.hardware_profiles
You may filter hardware profiles by architecture
hardware_profiles = client.hardware_profiles( :architecture=>'x86_64' )
You may retrieve a specific hardware profile by its identifier
hardware_profile = client.hardware_profile( 'm1-small' )
Listing images
You may retrieve a complete list of images
images = client.images
You may retrieve a list of images owned by the currently authenticated user
images = client.images( :owner_id=>:self )
You may retrieve a list of images visible to you but owned by a specific user
images = client.images( :owner_id=>'daryll' )
You may retrieve a specific image by its identifier
image = client.image( 'ami-8675309' )
Listing instances
You may retrieve a list of all instances visible to you
instances = client.instances
You may retrieve a specific instance by its identifier
instance = client.instance( 'i-90125' )
Launching instances
An instance may be launched using just an image identifier
image = client.image( 'ami-8675309' )
instance = client.create_instance( image.id )
Optionally, a hardware profile or a realm may be specified
instance = client.create_instance( image.id, :hardware_profile=>'m1-small', :realm=>'us' )
Manipulating instances
Given an instance, depending on its state, various actions may be available.
To determine what's available, the instance#actions
method may be used.
instance.actions # [ 'reboot', 'stop' ]
For a valid action, the method matching the action with an exclamation point may be called.
instance.reboot!
Upon invoking an action, the instance will refresh its contents, in case the state has changed.
To determine later if the state has changed again, the instance must be refetched using
the client.instance(...)
method.


D-Bus VMState¶
Introduction¶
The QEMU dbus-vmstate object’s aim is to migrate helpers’ data running on a QEMU D-Bus bus. (refer to the D-Bus document for some recommendations on D-Bus usage)
Upon migration, QEMU will go through the queue of
org.qemu.VMState1
D-Bus name owners and query their Id
. It
must be unique among the helpers.
It will then save arbitrary data of each Id to be transferred in the migration stream and restored/loaded at the corresponding destination helper.
For now, the data amount to be transferred is arbitrarily limited to 1Mb. The state must be saved quickly (a fraction of a second). (D-Bus imposes a time limit on reply anyway, and migration would fail if data isn’t given quickly enough.)
dbus-vmstate object can be configured with the expected list of
helpers by setting its id-list
property, with a comma-separated
Id
list.
Interface¶
On object path /org/qemu/VMState1
, the following
org.qemu.VMState1
interface should be implemented:
<interface name="org.qemu.VMState1">
<property name="Id" type="s" access="read"/>
<method name="Load">
<arg type="ay" name="data" direction="in"/>
</method>
<method name="Save">
<arg type="ay" name="data" direction="out"/>
</method>
</interface>
“Id” property¶
A string that identifies the helper uniquely. (maximum 256 bytes including terminating NUL byte)
Note
The helper ID namespace is a separate namespace. In particular, it is not related to QEMU “id” used in -object/-device objects.
Load(in u8[] bytes) method¶
The method called on destination with the state to restore.
The helper may be initially started in a waiting state (with an –incoming argument for example), and it may resume on success.
An error may be returned to the caller.
Save(out u8[] bytes) method¶
The method called on the source to get the current state to be migrated. The helper should continue to run normally.
An error may be returned to the caller.


Good evening everyone, I am Ameen Saleh, I am 24 years old, I am a marketer and I have 5 years experience as an agricultural store manager and about programming I would like to be data science specialist.
This is the Qs:
what your name?
how old are you?
do you have any hobbies? , type at least one
why you started to learn coding?