Quick Start: Linux Logical Volume Manager
Jan 14, 2014While installing the latest Ubuntu OS on your computer, you will see that you can install the OS using LVM (Logical Volume Manager) utility. Ever wonder what is it? LVM (Logical Volume Manager) is that fantastic utility for storage administration. It provide the users with abilities which were not possible with raw disks. The storage is now ‘virtualized’. You can now easily create, move and extend volumes (for now, think of it as disk partitions) without bothering about data corruption. You can carve partitions out of multiple disks, and can add and remove disks from a ‘volume group’ containing such volumes without the user noticing anything! List of all the features of LVM can be found at it’s wiki page.
This blog scratches the surface of LVM, and gives some basic insights into some storage concepts.
I’ll give you a simple example to better explain what a ‘physical volume’, a ‘volume group’ and a ‘logical volume’ is. Say I have two 1 TB hard disks - disk A and disk B. I have two equal-sized partitions on disk B, one of which I want to keep it to myself for my personal data. The ‘partition’ term used here is same as what you see in a file explorer. For the unpartitioned disk, the complete disk is one single partition.
The partitions I described above are ‘physical volumes’. That is, on the disk, these are physically separate bytes (think of that partitioned disk as a spiral on disk divided in its length at the midpoint). Out of the first disk and one partition of the second disk, we create a ‘volume group’ – a logical pool of storage, out of which we can create lots of ‘logical volumes’. Even after you’ve created logical volumes over this volume group, you can add and remove physical volumes (partitions) from the volume group. You can do many more operations such as resize, move and extend.
I hope the basic idea written above is sufficiently clear. Else, head over to this Ubuntu wiki for a slightly more detailed, but still an overview, of LVM. Anyway, I’m concentrating more on the demo, so lets move on.
Hands-on
I’m demo’ing everything on an Ubuntu machine, but it should work on any Linux distro (after you install the LVM2 package)
Install LVM2 package
sudo apt-get install lvm2
One nice thing is you don’t need to create actual partitions on disks. We’ll use files as loopback devices, which will appear to the operating system as partitions. Neat.
Create a file of size 1G to be later used as a physical volume.
rushi@jio:~$ truncate --size 1G backing_file_1
Create a loopback device over this file. Find the first free loopback device available and show its name.
rushi@jio:~$ sudo losetup --find --show backing_file_1
/dev/loop0
List all the loopback devices.
rushi@jio:~$ sudo losetup --all
/dev/loop0: [fc00]:22811987 (/home/rushi/backing_file_1)
Create a physical volume over this loopback device. Note that
rushi@jio:~$ sudo pvcreate /dev/loop0
Physical volume "/dev/loop0" successfully created
List physical volumes. Apart from pvs
(Physical Volume Scan), there are two more
commands which do the same thing, but with different level of verbosity and formatting: pvscan
and pvdisplay
. (Try them out too!)
rushi@jio:~$ sudo pvs
PV VG Fmt Attr PSize PFree
/dev/loop0 lvm2 a-- 1.00g 1.00g
/dev/sda5 ubuntu-vg lvm2 a-- 931.27g 44.00m
Let us repeat the steps to create another physical volume:
rushi@jio:~$ truncate --size 1G backing_file_2
rushi@jio:~$ sudo losetup --find --show backing_file_2
/dev/loop1
rushi@jio:~$ sudo losetup --all
/dev/loop0: [fc00]:22811987 (/home/rushi/backing_file_1)
/dev/loop1: [fc00]:22812001 (/home/rushi/backing_file_2)
rushi@jio:~$ sudo pvcreate /dev/loop1
Physical volume "/dev/loop1" successfully created
rushi@jio:~$ sudo pvs
PV VG Fmt Attr PSize PFree
/dev/loop0 lvm2 a-- 1.00g 1.00g
/dev/loop1 lvm2 a-- 1.00g 1.00g
/dev/sda5 ubuntu-vg lvm2 a-- 931.27g 44.00m
Create a volume group test-volgroup
over these two physical volumes. (Actually, even if you don’t create physical volumes over loopback devices, while creating volume groups it will automatically create physical volumes over them).
rushi@jio:~$ sudo vgcreate test-volgroup /dev/loop0 /dev/loop1
Volume group "test-volgroup" successfully created
List the volume groups. (vgs
, vgscan
or vgdisplay
can be used)
rushi@jio:~$ sudo vgs
VG #PV #LV #SN Attr VSize VFree
test-volgroup 2 0 0 wz--n- 1.99g 1.99g
ubuntu-vg 1 2 0 wz--n- 931.27g 44.00m
Create a logical volume test-logicalvol
over the test-volgroup
volume group.
rushi@jio:~$ sudo lvcreate --size 400M --name test-logicalvol test-volgroup
Logical volume "test-logicalvol" created
List logical volumes. (lvs
, lvscan
, lvdisplay
can be used)
rushi@jio:~$ sudo lvs
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
test-logicalvol test-volgroup -wi-a---- 400.00m
root ubuntu-vg -wi-ao--- 923.35g
swap_1 ubuntu-vg -wi-ao--- 7.88g
Easy, isn’t it? Let’s tear down everything. Though a simpler way would be to just remove the loopback device, which will automatically remove all the physical, logical volumes/volume groups created over them, let’s do it step-by-step. Note that you need to specify volume group while deleting logical volumes.
rushi@jio:~$ sudo lvremove test-volgroup
Do you really want to remove active logical volume test-logicalvol? [y/n]: y
Logical volume "test-logicalvol" successfully removed
rushi@jio:~$ sudo vgremove test-volgroup
Volume group "test-volgroup" successfully removed
rushi@jio:~$ sudo pvremove /dev/loop0 /dev/loop1
Labels on physical volume "/dev/loop0" successfully wiped
Labels on physical volume "/dev/loop1" successfully wiped
rushi@jio:~$ sudo losetup --detach /dev/loop0 /dev/loop1
rushi@jio:~$ rm backing_file_1 backing_file_2
Cheers!


Splatalogue — Module for performing splatalogue queries.¶
Module to search Splatalogue.net via splat, modeled loosely on ftp://ftp.cv.nrao.edu/NRAO-staff/bkent/slap/idl/ :author: Adam Ginsburg<EMAIL_ADDRESS>:updated for CASA: Brian Kent<EMAIL_ADDRESS>:updated for ADMIT: Douglas Friedel<EMAIL_ADDRESS>Dependencies for python requests and astropy modules have been removed.
-
class
admit.util.Splatalogue.
SpeciesLookuptable
[source]¶ Simple class that extends the dictionary class so that keys can be searched
Methods
clear
(() -> None. Remove all items from D.)copy
(() -> a shallow copy of D)find
(s[, flags, return_dict])Search dictionary keys for a regex match to string s fromkeys
(...)v defaults to None. get
((k[,d]) -> D[k] if k in D, ...)has_key
((k) -> True if D has a key k, else False)items
(() -> list of D’s (key, value) pairs, ...)iteritems
(() -> an iterator over the (key, ...)iterkeys
(() -> an iterator over the keys of D)itervalues
(...)keys
(() -> list of D’s keys)pop
((k[,d]) -> v, ...)If key is not found, d is returned if given, otherwise KeyError is raised popitem
(() -> (k, v), ...)2-tuple; but raise KeyError if D is empty. setdefault
((k[,d]) -> D.get(k,d), ...)update
(([E, ...)If E present and has a .keys() method, does: for k in E: D[k] = E[k] values
(() -> list of D’s values)viewitems
(...)viewkeys
(...)viewvalues
(...)-
find
(s, flags=0, return_dict=True)[source]¶ Search dictionary keys for a regex match to string s
Parameters: s : str
String to compile as a regular expression
return_dict : bool
Return a dictionary if true or just the matching values if false. Default: True
flags : int
re (regular expression) flags. Default: 0
Returns: Subset of parent dictionary if return_dict, else list of values
corresponding to matches
-
-
class
admit.util.Splatalogue.
Splatalogue
(**kwargs)[source]¶ Class for searching for lines in the online Splatalogue database. The resulting Splatalogue tables can be returned as a list of dictionaries.
Parameters: kwargs : dict
The keyword value pairs of the arguments, possible keywords are:
- min_frequency : float
Lower limit of frequency search range in GHz. Default: 0.0
- max_frequency : float
Upper limit of frequency search range in GHz. Defualt: 100000.0
- band : str
The frequency band to search in. ‘min/max_frequency’ and ‘band’ are mutually exclusive. If both are given then ‘band’ is preferred. Possibles are
“any”: All bands
“alma3”: ALMA Band 3 (84-116 GHz)
“alma4”: ALMA Band 4 (125-163 GHz)
“alma5”: ALMA Band 5 (163-211 GHz)
“alma6”: ALMA Band 6 (211-275 GHz)
“alma7”: ALMA Band 7 (275-373 GHz)
“alma8”: ALMA Band 8 (385-500 GHz)
“alma9”: ALMA Band 9 (602-720 GHz)
“alma10”: ALMA Band 10 (787-950 GHz)
“pf1”: GBT PF1 (0.29-0.92 GHz)
“pf2”: GBT PF2 (0.91-1.23 GHz)
“l”: GBT/VLA L (1-2 GHz)
“s”: GBT/VLA S (1.7-4 GHz)
“c”: GBT/VLA C (3.9-8 GHz)
“x”: GBT/VLA X (8-12 GHz)
“ku”: GBT/VLA Ku (12-18 GHz)
“kfpa”: GBT KFPA (18-27.5 GHz)
“k”: VLA K (18-26.5 GHz)
“ka”: GBT/VLA Ka (26-40 GHz)
“q”: GBT/VLA Q (38-50 GHz)
“w”: GBT W (67-93.3 GHz)
“mustang”: GBT Mustang (80-100 GHz)
Default: ‘any’
- top20 : list
Limit results to the given top20 list(s). Possibles are:
‘comet’: molecules most likely found in comets
‘planet’: molecules most likely planetary atmospheres
‘top20’: most common molecules
‘ism_hotcore’: molecules most likely found in hot cores
‘ism_darkcloud’: molecules most likely found in dark clouds
‘ism_diffusecloud’: molecules most likely found in diffuse clouds
Default: None
- chemical_name : str
Limit results to the specified chemical, by name. Default: ‘’
- line_lists : list
Which line list(s) to use for the search. Possibles are:
‘Lovas’: Search the Lovas/NIST list of molecules
‘SLAIM’: Search the SLAIM list of molecules
‘JPL’: Search the Jet Propulsion Lab list of molecules
‘CDMS’: Search the Cologne database of molecules
‘ToyoMA’: Search the ToyoMA list of moleules
‘OSU’: Search the Ohio State list of molecules
‘Recomb’: Search for recombination lines
‘Lisa’: Search the TopModel list
‘RFI’: Search for radio frequency interference lines
Default: [‘Lovas’, ‘SLAIM’, ‘JPL’, ‘CDMS’, ‘ToyoMA’, ‘OSU’, ‘Recomb’, ‘Lisa’, ‘RFI’]
- line_strengths : list
Which line strength units should be reported, several can be given. Possibles are:
‘ls1’: JPL/CDMS
‘ls2’: Sijmu^2
‘ls3’: Sij
‘ls4’: Aij
‘ls5’: Lovas/SLAIM
Default: (‘ls1’, ‘ls2’, ‘ls3’, ‘ls4’, ‘ls5’)
- energy_levels : list
Which energies should be reported. Possibles are:
‘el1’: Lower state in cm^-1
‘el2’: Lower state in K
‘el3’: Upper state in cm^-1
‘el4’: Upper state in K
Default: [‘el1’, ‘el2’, ‘el3’, ‘el4’]
- exclude : list
Which types of molecules to exclude from the search. Possibles are:
‘potential’: Species that may be found in the ISM
‘atmospheric’: Species know to be in the Earth’s atmosphere
‘probable’: Species that might be found in the ISM
Default: [‘potential’, ‘atmospheric’, ‘probable’]
- version : str
Which Splatalogue interface is being used. Default: ‘v2.0’
- only_NRAO_recommended : bool
Only return lines that are recommended by NROA. Can eliminate duplicate lines from multiple databases. Default: False
- export : bool
Wherther splatalogue should return an export formatted list rather than HTML. Default: True
- export_limit : int
The maximum number of lines to return. Default: 10000
- noHFS : bool
Whether or not to suppress hyperfine components in the results. Default: False
- displayHFS : bool
Whether or not to return the hyperfine line strength. Default: False
- show_unres_qn : bool
Whether or not to return the unresolved quantum numbers. Typically in a machine readable format. Default: False
- show_upper_degeneracy : bool
Whether or not th return the upper state degeneracy of each transition. Default: False
- show_molecule_tag : bool
Whether or not to return the molecule tag. Default: False
- show_qn_code : bool
Whether or not to return the quantum number encoding (the encoding of ‘show_unres_qn’). Default: False
- show_lovas_labref : bool
Whether or not to return the lab reference frequency from the Lovas/NIST list. Default: False
- show_lovas_obsref : bool
Whether or not to return the observational reference from the Loval/NIST list. Default: False
- show_orderedfreq_only : bool
Default: False
- show_nrao_recommended : bool
Whether or not to return the NRAO recommended rest frequency. Default: False
- chem_re_flags : int
Default: 0
- energy_min : float
Minimum lower/upper state energy to search for. Units are specified in ‘energy_type’. Default None
- energy_max : float
Maximum lower/upper state energy to search for. Units are specified in ‘energy_type’. Default None
- energy_type : str
The energy units for the ‘energy_min’ and ‘energy_max’ columns. Possibles are:
‘el_cm1’: Lower state in cm^-1
‘el_k’: Lower state in K
‘eu_cm1’: Upper state in cm^-1
‘eu_k’: Upper state in K
Default: None
- intensity_lower_limit : float
Lower limit for the transition strength, units are specified in ‘intensity_type’. Default: None
- intensity_type : str
The units for the ‘intensity_lower_limit’ parameter. Possibles are:
‘cdms_jpl’: Cologne database/JPL intensity units
‘aij’: Einstein A units
- ‘sijmu2’: Smu^2, line strength times the square of the relevant dipole
moment
Default: None
- transition : str
Seach for a specific transition (i.e. ‘(1-0)’‘). Default: None
- fel : bool
Whether or not to remove results that have an uncertainty of over 50 MHz. Default: False
Examples
>>> from splatalogue import Splatalogue >>> sp = Splatalogue #Create an object of type Splatalogue
>>> # Query by frequency range in units of GHz >>> sp.query_lines(min_frequency=114.0, max_frequency=116.0)
>>> # Query by frequency range and chemical name >>> sp.query_lines(min_frequency=114.0, max_frequency=116.0, chemical_name=" CO ")
>>> # Query by frequency range (no keywords needed and chemical name) >>> sp.query_lines(0.1,1000.0, chemical_name='Ethylene Glycol')
>>> # Query by line list and energy >>> sp.query_lines(218.40, 218.50, energy_max=300, energy_type='eu_k', line_lists='JPL')
>>> # Parse response into a list of dictionaries and store in result >>> result = sp.parse_response()
Attributes
None Methods
get_species_ids
([restr, reflags])Get a dictionary of “species” IDs, where species refers to the molecule name, mass, and chemical composition. parse_response
()Parse a response (of type urllib2.urlopen) into a list of dictionaries. query_lines
([min_frequency, max_frequency])Query Splatalogue for transitions between min_frequency and max_frequency with the given kwargs. set_default_options
(\*\*kwargs)Method to modify the default options. -
ALL_LINE_LISTS
= ('Lovas', 'SLAIM', 'JPL', 'CDMS', 'ToyoMA', 'OSU', 'Recomb', 'Lisa', 'RFI')¶
-
FREQUENCY_BANDS
= {'pf1': 'GBT PF1 (0.29-0.92 GHz)', 'pf2': 'GBT PF2 (0.91-1.23 GHz)', 'mustang': 'GBT Mustang (80-100 GHz)', 'any': 'Any', 'kfpa': 'GBT KFPA (18-27.5 GHz)', 'alma10': 'ALMA Band 10 (787-950 GHz)', 'ku': ' GBT/VLA Ku (12-18 GHz)', 'ka': ' GBT/VLA Ka (26-40 GHz)', 'alma6': 'ALMA Band 6 (211-275 GHz)', 'alma7': 'ALMA Band 7 (275-373 GHz)', 'alma4': ' ALMA Band 4 (125-163 GHz)', 'alma5': ' ALMA Band 5 (163-211 GHz)', 'alma3': 'ALMA Band 3 (84-116 GHz)', 'alma8': 'ALMA Band 8 (385-500 GHz)', 'alma9': 'ALMA Band 9 (602-720 GHz)', 'c': 'GBT/VLA C (3.9-8 GHz)', 'k': 'VLA K (18-26.5 GHz)', 'l': 'GBT/VLA L (1-2 GHz)', 'q': 'GBT/VLA Q (38-50 GHz)', 's': 'GBT/VLA S (1.7-4 GHz)', 'w': 'GBT W (67-93.3 GHz)', 'x': 'GBT/VLA X (8-12 GHz)'}¶
-
LINES_LIMIT
= 10000¶
-
QUERY_URL
= 'http://www.cv.nrao.edu/php/splat/c_export.php'¶
-
TIMEOUT
= 60¶
-
TOP20_LIST
= ('comet', 'planet', 'top20', 'ism_hotcore', 'ism_darkcloud', 'ism_diffusecloud')¶
-
get_species_ids
(restr=None, reflags=0)[source]¶ Get a dictionary of “species” IDs, where species refers to the molecule name, mass, and chemical composition.
Parameters: restr : str
String to compile into an re, if specified. Searches table for species whose names match. Default: None
reflags : int
Flags to pass to re. Default: 0
Returns: The id of the species
-
parse_response
()[source]¶ Parse a response (of type urllib2.urlopen) into a list of dictionaries.
Parameters: None Returns: A dictonary of the response
-
query_lines
(min_frequency=None, max_frequency=None, **kwargs)[source]¶ Query Splatalogue for transitions between min_frequency and max_frequency with the given kwargs.
Parameters: min_frequency : float
The starting frequency for the search in GHz. Default: None
max_frequency : float
The ending frequency for the search in GHz. Default: None
kwargs : dict
Any additional arguments for the search.
Returns: response : requests.Response
The response of the HTTP request.
-
set_default_options
(**kwargs)[source]¶ Method to modify the default options.
Parameters: kwargs : dict
See the class description for the key words and their meaning
Returns: None
-
versions
= ('v1.0', 'v2.0')¶
-
admit.util.Splatalogue.
clean_column_headings
(header, renaming_dict={'Resolved QNs': 'QNs', 'Log10 (Aij)': 'log10(Aij)', 'E_U (K)': 'EU_K', 'Sij': 'Sij'})[source]¶ Rename column headings to shorter version that are easier for display on-screen / at the terminal
Parameters: header : dict
A dictionary of the header keywords
renaming_dict : dict
A dictionary containing the old names (as the key) and the new names (as the value)
Returns: The new header.


12 Week Plan to Financial Freedom
The Plan
Week
Weekly Earnings
1
$50
2
$0
3
$0
4
$100 weekly earnings - thus begins perpetual free gold and extra cash
5
$150
6
$250
7
$550
8
$1,100
9
$2,100
10
$4,350
11
$8,550
12
$17,250
weekly
Contact Terrence Brannon
818-359-0893 - cell
617-500-1717 - 3 minute message
800-699-3843 - 20 minute message
<EMAIL_ADDRESS>The Process
Enroll for free now
Select a package
Move $65 into savings each week
Find 2 others who will repeat these steps
The Result
Passive residual income of at least $15,000/month.
Get Started
The Product
...
...
...
...
More Information
Daily webinar at 12 noon EST
Internet:
http://KaratbarsWebinar.com
Telephone:<PHONE_NUMBER> | Access code 542 635 231
Nightly webinar at 9pm EST
Internet:
http://KaratbarsWebinar.com
Telephone:<PHONE_NUMBER> | Access code 542 635 231


♬
Original idea from
Raphael
and
Matthieu
using
Simon's button design
and a royalty sound music from the
Asterisk Project
.


Travel
Contact
Booking now
New York
3 nights
$1,000
Booking Options
breakfast
dinner
pick up
garden
internet
parking
television
drink
Number of member
1 member
2 members
Team
Family
Date Join
Date Leave
Let Finish
Book Now


Visualizing Landslide and Flood Risks for Syrian Refugees and Internally-Displaced PersonsClick on a tent icon for the name of the camp
Click on a tent icon for the name of the camp


You will be taken to home page of Browser Password Decryptor. Please click the below link to visit directly.
Visit Browser Password Decryptor


 Now you have {{Constants.endowment}}.
How much do you want to send to the Receiver?
{% formfield group.sent_amount label='' %}
{% next_button %}
{% endblock %}


Django-crispy-forms defines another powerful class called Layout, which allows you to change the way the form fields are rendered. This allows you to set the order of the fields, wrap them in divs or other structures, add html, set ids, classes or attributes to whatever you want, etc. And all that without writing a custom form template, using programmatic layouts. Just attach the layout to a helper, layouts are optional, but probably the most powerful thing django-crispy-forms has to offer.
A Layout is constructed by layout objects, which can be thought of as form components.
All these components are explained later in Universal layout objects, what you need to know now about them is that every component renders a different template and has a different purpose. Let’s write a couple of different layouts for our form, continuing with our form class example (note that the full form is not shown again).
Some layout objects are specific to a template pack. For example ButtonHolder is for uni_form template_pack, while FormActions is for bootstrap template pack.
Let’s add a layout to our helper:
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Fieldset, ButtonHolder, Submit
class ExampleForm(forms.Form):
[...]
def __init__(self, *args, **kwargs):
self.helper = FormHelper()
self.helper.layout = Layout(
Fieldset(
'first arg is the legend of the fieldset',
'like_website',
'favorite_number',
'favorite_color',
'favorite_food',
'notes'
),
ButtonHolder(
Submit('submit', 'Submit', css_class='button white')
)
)
super(ExampleForm, self).__init__(*args, **kwargs)
When we render the form now using:
{% load crispy_forms_tags %}
{% crispy example_form %}
We will get the fields wrapped in a fieldset, whose legend will be set to ‘first arg is the legend of the fieldset’. The fields’ order will be: like_website, favorite_number, favorite_color, favorite_food and notes. We also get a submit button wrapped in a
 which uni-form CSS positions in a nice way. That button has its CSS class set to button white.
This is just the tip of the iceberg: now imagine you want to add an explanation for what notes are, you can use HTML layout object:
Layout(
Fieldset(
'Tell us your favorite stuff {{ username }}',
'like_website',
'favorite_number',
'favorite_color',
'favorite_food',
HTML("""

We use notes to get better, please help us {{ username }}

"""),
'notes'
)
)
As you’ll notice the fieldset legend is context aware and you can write it as if it were a chunk of a template where the form will be rendered. The HTML object will add a message before the notes input and it’s also context aware. Note how you can wrap layout objects into other layout objects. Layout objects Fieldset, Div, MultiField and ButtonHolder can hold other Layout objects within. Let’s do an alternative layout for the same form:
Layout(
MultiField(
'Tell us your favorite stuff {{ username }}',
Div(
'like_website',
'favorite_number',
css_id = 'special-fields'
),
'favorite_color',
'favorite_food',
'notes'
)
)
This time we are using a MultiField, which is a layout object that as a general rule can be used in the same places as Fieldset. The main difference is that this renders all the fields wrapped in a div and when there are errors in the form submission, they are shown in a list instead of each one surrounding the field. Sometimes the best way to see what layout objects do, is just try them and play with them a little bit.
These ones live in module crispy_forms.layout. These are layout objects that are not specific to a template pack. We’ll go one by one, showing usage examples:
Div: It wraps fields in a
:
Div('form_field_1', 'form_field_2', 'form_field_3', ...)
NOTE Mainly in all layout objects you can set kwargs that will be used as HTML attributes. As class is a reserved keyword in Python, for it you will have to use css_class. For example:
Div('form_field_1', style="background: white;", title="Explication title", css_class="bigdivs")
HTML: A very powerful layout object. Use it to render pure html code. In fact it behaves as a Django template and it has access to the whole context of the page where the form is being rendered. This layout object doesn’t accept any extra parameters than the html to render, you cannot set html attributes like in Div:
HTML("{% if success %}
Operation was successful
 {% endif %}")
Field: Extremely useful layout object. You can use it to set attributes in a field or render a specific field with a custom template. This way you avoid having to explicitly override the field’s widget and pass an ugly attrs dictionary:
Field('password', id="password-field", css_class="passwordfields", title="Explanation")
Field('slider', template="custom-slider.html")
This layout object can be used to easily extend Django’s widgets.
Submit: Used to create a submit button. First parameter is the name attribute of the button, second parameter is the value attribute:
Submit('search', 'SEARCH')
Submit('search', 'SEARCH')
Renders to:
<input type="submit" name="search" value="SEARCH" class="submit submitButton" id="submit-id-search" />
Hidden: Used to create a hidden input:
Hidden('name', 'value')
Button: Creates a button:
Button('name', 'value')
Reset: Used to create a reset input:
reset = Reset('name', 'value')
Fieldset: It wraps fields in a <fieldset>. The first parameter is the text for the fieldset legend, as we’ve said it behaves like a Django template:
Fieldset("Text for the legend {{ username }}",
'form_field_1',
'form_field_2'
)
These ones live in module crispy_forms.layout. Probably in the future they will be moved out to a uni_form module:
ButtonHolder: It wraps fields in a
, which uni-form positions in a nice way. This is where form’s submit buttons go in uni-form:
ButtonHolder(
HTML("✓ Saved data"),
Submit('save', 'Save')
)
MultiField: It wraps fields in a
 with a label on top. When there are errors in the form submission it renders them in a list instead of each one surrounding the field:
MultiField("Text for the label {{ username }}",
'form_field_1',
'form_field_2'
)
These ones live under module crispy_forms.bootstrap.
FormActions: It wraps fields in a
. It is usually used to wrap form’s buttons:
FormActions(
Submit('save', 'Save changes'),
Button('cancel', 'Cancel')
)
AppendedText: It renders a bootstrap appended text input. The first parameter is the name of the field to add appended text to, then the appended text which can be HTML like. There is an optional parameter active, by default set to False, that you can set to a boolean to render appended text active:
AppendedText('field_name', 'appended text to show')
AppendedText('field_name', '$', active=True)
PrependedText: It renders a bootstrap prepended text input. The first parameter is the name of the field to add prepended text to, then the prepended text which can be HTML like. There is an optional parameter active, by default set to False, that you can set to a boolean to render prepended text active:
PrependedText('field_name', 'Prepended text to show')
PrependedText('field_name', '@', placeholder="username")
PrependedAppendedText: It renders a combined prepended and appended text. The first parameter is the name of the field, then the prepended text and finally the appended text:
PrependedAppendedText('field_name', '$', '.00'),
InlineCheckboxes: It renders a Django forms.MultipleChoiceField field using inline checkboxes:
InlineCheckboxes('field_name')
InlineRadios: It renders a Django forms.ChoiceField field with its widget set to forms.RadioSelect using inline radio buttons:
InlineRadios('field_name')
StrictButton: It renders a button using <button> html, not input. By default type is set to button and class is set to btn:
StrictButton('Button's content', name="go", value="go", css_class="extra")
StrictButton('Success', css_class="btn-success")
FieldWithButtons: You can create an input connected with buttons:
FieldWithButtons('field_name', StrictButton("Go!"))
Tab & TabHolder: Tab renders a tab, different tabs need to be wrapped in a TabHolder for automatic javascript functioning, also you will need bootstrap-tab.js included in your static files:
TabHolder(
Tab('First Tab',
'field_name_1'
Div('field_name_2')
),
Tab('Second Tab',
Field('field_name_3', css_class="extra")
)
)
The mentioned set of Universal layout objects has been thoroughly designed to be flexible, standard compatible and support Django form features. Every Layout object is associated to a different template that lives in templates/{{ TEMPLATE_PACK_NAME }}/layout/ directory.
Some advanced users may want to use their own templates, to adapt the layout objects to their use or necessities. There are three ways to override the template that a layout object uses.
Globally: You override the template of the layout object, for all instances of that layout object you use:
from crispy_forms.layout import Div
Div.template = 'my_div_template.html'
Individually: You can override the template for a specific layout object in a layout:
Layout(
Div(
'field1',
'field2',
template = 'my_div_template.html'
)
)
Overriding templates directory: This means copying the templates directory into your project and overriding the templates editing them.
You need to differentiate between layout objects’ templates and django-crispy-forms templates. There are some templates that live in templates/{{ TEMPLATE_PACK_NAME }} that define the form/formset structure, how a field or errors are rendered, etc. They add very little logic and are pretty much basic wrappers for the rest of django-crispy-forms power.
You can overwrite the templates that django-crispy-forms comes geared with using your own. If you have a template pack based on a CSS library, submit it so more people can benefit from it.
The Universal layout objects bundled with django-crispy-forms are a set of the most seen components that build a form. You will probably be able to do anything you need combining them. Anyway, you may want to create your own components, for doing that, you will need a good grasp of django-crispy-forms. Every layout object must have a method called render. Its prototype should be:
def render(self, form, form_style, context):
The official layout objects live in layout.py and bootstrap.py, you may want to have a look at them to fully understand how to proceed. But in general terms, a layout object is a template rendered with some parameters passed.
If you come up with a good idea and design a layout object you think others could benefit from, please open an issue or send a pull request, so django-crispy-forms gets better.
Imagine you have several forms that share a big chunk of the same layout. There is a way you can create a Layout, reuse and extend it in an easy way. You can have a Layout as a component of another Layout, let’s see an example:
common_layout = Layout(
MultiField("User data",
'username',
'lastname',
'age'
)
)
example_layout = Layout(
common_layout,
Div(
'favorite_food',
'favorite_bread',
css_id = 'favorite-stuff'
)
)
example_layout2 = Layout(
common_layout,
Div(
'professional_interests',
'job_description',
)
)
We have defined a common_layout that is used as a base for two different layouts: example_layout and example_layout2, which means that those two layouts will start the same way and then extend the layout in different ways.


Pricey Pets: Tips for Saving Money
Americans will spend over $50 billion on pet care this year. In these trying times, not all pet owners can afford to take care of their pets and still meet their financial goals. Below are some ways in which you can cut down on costs while still providing the care your pet needs for a happy and healthy life.
Preventive Care
-
Routine preventive care such as vaccinations and regular checkups are big time cost savers. If you skip the $20 vaccination you might find yourself paying thousands of dollars for your pet’s infections. If you’re really against paying for the vaccinations, contact your local shelter or ASPCA, sometimes they offer free preventive vaccinations and treatments
-
Regular checkups, this isn’t up for debate and it’s important enough to mention twice. Don’t wait until your pet is showing signs of sickness because it might be too late.
-
Obesity, it’s a pet and wallet killer. It’s hard to say no to the pet you love, especially when they make that face (you know the one I’m talking about!). Before you give your pet that second helping, remember that obesity in pets can lead to countless chronic health issues including broken bones, ruptured discs, chronic pain, joint problems, heart disease, and diabetes. Watch what you feed your pet and give them plenty of exercise and you’ll improve your pet’s chances of a long healthy life without lifelong medical expenses
Food
-
Pet Food is likely your biggest recurring expense, take advantage of bulk buying for your favorite brands or special sales when they come up.
-
Remember that price does not equal quality. Do your homework on the food you serve, there are many lower cost brands that will provide all the necessary nutrition your pet needs at steep discounts. Your vet should be able to provide you with some nutrition guidance, an extra five minutes in the store will turn that knowledge into regular savings
-
Consider joining a discount program. You can save money on everything from pet food to pet supplies through programs like AAA , Student Advantage, or specific pet discount programs
Pet Insurance
-
American’s are spending well over $13 billion on vet care each year. Costs are expected to grow as more conditions become treatable with new sophisticated medical techniques. If you’re the kind of Pet owner who’s going to pay to provide top notch medical care for your pet regardless of the ailment, then insurance is a must have
-
While insurance creates an added monthly cost for a pet owner, it will protect your family from the expensive emergency care costs that can break your wallet
Discount Pet Meds
-
There are many discount websites that will sell the same medication you’ve been purchasing for cheaper. One word of caution is to make sure that site is reputable and has a license to sell in your state otherwise you might not be purchasing exactly what you ordered
-
Surprisingly, many vets sell their medication directly to patients (but more likely owners of patients ☺) at highly competitive prices to the big box pharmacies and grocery chains. It’s ok to compare prices before you purchase
Grooming
aka washing away your money. While it always feels good to look good, professional bathing and grooming expenses can add up quickly if you’re not careful. If money’s tight, try grooming your pet at home. Some helpful tips we’ve learned include:
-
Ask your vet to show you how to brush your pet’s teeth and clean it’s ears. Doing both at home will save you money and help protect your pet from expensive health issues
-
When you do get your pet’s hair trimmed, go for a shorter look. This will make professional grooming visits less frequent (for even greater savings try doing touchups on your own)
-
Going over your pet’s fur with a wire-bristled brush, and follow up with a steel comb once a week. This is not only good for your pet, but it will keep their coat looking great without the expense of going to a groomer
-
There are free videos on youtube of pet grooming, learn to do it all yourself and cut out nearly all the costs!
Toys, collars, and bowls, oh my!
Don’t overspend on the frills! Many dog owners overdo it buying stylish collars, funky bowls or buckets of toys. Most animals don’t care what their bowl looks like, can’t look at their own collar, and just want to play with one or two toys (or frankly just the bucket). If variety is important to you, craigslist and yard sales can supply you with many of the essentials cheaply. For toys we suggest that instead of buying boxes of expensive $30 toys, stick to the basics. Cat’s will gladly play with a ball of tinfoil or anything else they can bat around. Dog’s are happy with something durable they can chew. In our experience, the more simple the toy, the more fun the pet’s seem to have with it


Trying to use the emonTX_CT123_Voltage sketch as a starting point, but I'm confused with calibration. The sketch includes:
ct1.voltageTX(234.6, 1.7); // Voltage: calibration, phase_shift
ct1.currentTX(1, 113.4);
But the web site suggests
emon.calibration(238.56, 138.8,1.7);
Is the latter just a roll up of the first two? Can someone explain a little more please?
Thanks
Lloyd
Re: emonTX - confused with calibration
Apologies about the confusion about calibration, we have changed the calibration values several times recently as we switched different components. The latest CT calibration for the YHDC SCT-013-000 with a 18ohm burden resistor is: 111.11
If you have a 15ohm burden resistor it would be: 133.33
For the Voltage transformer the new calibration is: 234.26. I will be updating all the sketches with this change today.
For detailed information, including the potential error in the calibration due to component tolerances see here:
http://openenergymonitor.org/emon/buildingblocks/ct-and-ac-power-adaptor-installation-and-calibration-theory
Re: emonTX - confused with calibration
Thanks for that. Can you explain the difference between what appears to me to be two different set of function calls. Do I need to call emon.calibration?
Lloyd
Re: emonTX - confused with calibration
No sorry thats the old EmonLibrary function call.
The new calibration functions are on the emontx: (note that the voltage pin is preset and the ct is referenced by the emontx channel rather than the arduino input pin)
If your not using the emontx you can skip out the TX part and set the arduino pins directly:
Have you got the latest EmonLib and emonTXfirmware downloaded?
Re: emonTX - confused with calibration
so the old basic sketch with calibration is not good anymore??you are using the emonTx, but if I wish to continue on the old version it is still good?? since I worker all the way and all of a sudden I came back here and found everything renovated :)
Re: emonTX - confused with calibration
There is nothing wrong with the old version, we have just been reorganizing the code to make it consistent and easier to follow. If the old version is working for you then don't worry about changing. We recommend you try and check the energy readings against another meter and further tweak the calibration if needed.
Re: emonTX - confused with calibration
many thanks :) I really appreciate


Oklahoma Department of Motor Vehicles - DMVUSA.com
Oklahoma Department of Motor Vehicles. Moving to a new state is always challenging. Why add to your stress by having to deal with the DMV? Here at .
http://www.dmvusa.com/state.php?id=37
Treatment for Herniated or Bulging Discs
Oklahoma Department of Public Safety
The Oklahoma Department of Public Safety: Information on getting an Oklahoma Driver License, the Oklahoma Highway Patrol, Size and . Motor Vehicle Laws .
http://www.dps.state.ok.us/
Oklahoma DMV Guide - DMV.org: The OK DMV Made Simple
DMV.org makes understanding the Oklahoma Department of Motor Vehicles simple. Get quick access to OK DMV forms, practice tests, rules & regulations, and .
http://www.dmv.org/ok-oklahoma/
oklahoma department of motor vechical Herniated or Bulging Discs
Oklahoma Driving records DMV Department of Motor Vehicles ...
Oklahoma DMV Driving records - OK DMV. Easy-to-access information and resources for all your Oklahoma Motor Vehicle needs. You can now access dmv .
http://www.4safedrivers.com/OK-Oklahoma-driving-records.html
Application For Motor Vehicle Hunting Permit - Oklahoma ...
OKLAHOMA DEPARTMENT OF WILDLIFE CONSERVATION. Street Address: Mailing address: 1801 N. Lincoln. P.O. Box 53465. Oklahoma City, OK 73105 .
http://www.wildlifedepartment.com/lawforms/motorvehicle.pdf
Oklahoma Department of Public Safety: Jenks Tag Agency OK
Oklahoma Department of Public Safety: Jenks Tag Agency OK. . Find the Department of Motor Vehicles for every state © Copyright 1999- All rights reserved .
http://onlinedmv.com/locator/onlinedmv/jenks_tag_agency-ok-5470.html
Official Impairment Listing for Spinal Disorders
Motor Vehicle Information - Oklahoma Tax Commission
Aug 30, 2011 . Motor Vehicle Information. "Vehicle Information Request (Form 769) Revision"; CARS: Online Car Tag Renewal · Registration Renewal .
http://www.tax.ok.gov/motveh.html
- new cast of lost season 6 (narrowing of the spine)
Driver Licenses and ID Cards - Oklahoma Department of Public Safety
Effective January 30, 2012, the Oklahoma Department of Public Safety (DPS) will be adding your medical certification status and the information on your medical .
http://www.dps.state.ok.us/dls/Oklahoma Dept. of Transportation
oklahoma department of transportation, press, press release information, traffic advisories, beautification, maps, work zone. . Drivers License · Motor Vehicle .
http://www.okladot.state.ok.us/
Department of Motor Vehicles by State - California Casualty
Here is a complete list of Motor Vehicle Departments by State. Make sure . New Hampshire Division of Motor Vehicles . Oklahoma Department of Public Safety .
http://www.calcas.com/web/ccmc/department-of-motor-vehicles-by-state
DMV - Department of Motor Vehicles
DMV USA - online department of motor vehicles, drivers license, registration, plates, information by state.
http://www.dmvusa.com/
Medical-Vocational Allowance for Herniated Disc
Oklahoma DMV Locations, OK DMV Hours, Phone Numbers, & DMV ...
The Motor Vehicle Division (MVD), acting as a branch of the Oklahoma Tax Commission, handles registering and titling of .
http://www.dmv.org/ok-oklahoma/dmv-office-finder.php
Department of motor vehicles in Oklahoma City, OK | Oklahoma City ...
Results 1 - 6 of 6 . 6 listings of Vehicle License & Registration in Oklahoma City on YP.com. Find reviews, directions & phone numbers for the best department of .
http://www.yellowpages.com/oklahoma-city-ok/department-of-motor-vehicles
Appealing a Denial of Benefits
Oklahoma Insurance Department. - Used Motor Vehicle and Parts ...
Department Of Consumer Credit. This agency regulates entities that extend credit to consumers. This includes dealers who do in house financing.
http://www.umvpc.state.ok.us/otheragencies.htm
Department of motor vehicles in Woodward, OK | Woodward ...
2 listings of Vehicle License & Registration in Woodward on YP.com. Find reviews, directions & phone numbers for the best department of motor vehicles in .
http://www.yellowpages.com/woodward-ok/department-of-motor-vehicles


This app automatically scans for BLE devices.
Requirements: 1) The Evothings Client app or your own Cordova app having the plugin com.evothings.ble. 2) A device with support for Bluetooth 4.0 and Android 4.3 or higher.
How to use: Make sure that your BLE devices are discoverable. Choose a discovered device in the list to retrieve its services.
Troubleshooting: There are known problems with that BLE stops working when switching between apps or doing multiple reloads. In this case restart the Evothings Client app. Additionally, you can use the Evothings Workbench Tools to see any error messages that may help in your investigation.


[ aws . elasticache ]
Makes a copy of an existing snapshot.
Note
This operation is valid for Redis only.
Warning
Users or groups that have permissions to use the copy-snapshot operation can create their own Amazon S3 buckets and copy snapshots to it. To control access to your snapshots, use an IAM policy to control who has the ability to use the copy-snapshot operation. For more information about using IAM to control the use of ElastiCache operations, see Exporting Snapshots and `Authentication Access Control`_ .
You could receive the following error messages.
Error Messages
See also: AWS API Documentation
copy-snapshot
--source-snapshot-name <value>
--target-snapshot-name <value>
[--target-bucket <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]
--source-snapshot-name (string)
The name of an existing snapshot from which to make a copy.
--target-snapshot-name (string)
A name for the snapshot copy. ElastiCache does not permit overwriting a snapshot, therefore this name must be unique within its context - ElastiCache or an Amazon S3 bucket if exporting.
The Amazon S3 bucket to which the snapshot is exported. This parameter is used only when exporting a snapshot for external access.
When using this parameter to export a snapshot, be sure Amazon ElastiCache has the needed permissions to this S3 bucket. For more information, see Step 2: Grant ElastiCache Access to Your Amazon S3 Bucket in the Amazon ElastiCache User Guide .
For more information, see Exporting a Snapshot in the Amazon ElastiCache User Guide .
--cli-input-json (string) Performs service operation based on the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, the CLI values will override the JSON-provided values.
--generate-cli-skeleton (string) Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.
Snapshot -> (structure)
Represents a copy of an entire Redis cache cluster as of the time when the snapshot was taken.
SnapshotName -> (string)
The name of a snapshot. For an automatic snapshot, the name is system-generated. For a manual snapshot, this is the user-provided name.ReplicationGroupId -> (string)
The unique identifier of the source replication group.ReplicationGroupDescription -> (string)
A description of the source replication group.CacheClusterId -> (string)
The user-supplied identifier of the source cache cluster.SnapshotStatus -> (string)
The status of the snapshot. Valid values: creating | available | restoring | copying | deleting .SnapshotSource -> (string)
Indicates whether the snapshot is from an automatic backup (automated ) or was created manually (manual ).CacheNodeType -> (string)
The name of the compute and memory capacity node type for the source cache cluster.
Valid node types are as follows:
- General purpose:
- Current generation: cache.t2.micro , cache.t2.small , cache.t2.medium , cache.m3.medium , cache.m3.large , cache.m3.xlarge , cache.m3.2xlarge , cache.m4.large , cache.m4.xlarge , cache.m4.2xlarge , cache.m4.4xlarge , cache.m4.10xlarge
- Previous generation: cache.t1.micro , cache.m1.small , cache.m1.medium , cache.m1.large , cache.m1.xlarge
- Compute optimized: cache.c1.xlarge
- Memory optimized:
- Current generation: cache.r3.large , cache.r3.xlarge , cache.r3.2xlarge , cache.r3.4xlarge , cache.r3.8xlarge
- Previous generation: cache.m2.xlarge , cache.m2.2xlarge , cache.m2.4xlarge
Notes:
- All T2 instances are created in an Amazon Virtual Private Cloud (Amazon VPC).
- Redis backup/restore is not supported for Redis (cluster mode disabled) T1 and T2 instances. Backup/restore is supported on Redis (cluster mode enabled) T2 instances.
- Redis Append-only files (AOF) functionality is not supported for T1 or T2 instances.
For a complete listing of node types and specifications, see Amazon ElastiCache Product Features and Details and either Cache Node Type-Specific Parameters for Memcached or Cache Node Type-Specific Parameters for Redis .
Engine -> (string)
The name of the cache engine (memcached or redis ) used by the source cache cluster.EngineVersion -> (string)
The version of the cache engine version that is used by the source cache cluster.NumCacheNodes -> (integer)
The number of cache nodes in the source cache cluster.
For clusters running Redis, this value must be 1. For clusters running Memcached, this value must be between 1 and 20.
PreferredAvailabilityZone -> (string)
The name of the Availability Zone in which the source cache cluster is located.CacheClusterCreateTime -> (timestamp)
The date and time when the source cache cluster was created.PreferredMaintenanceWindow -> (string)
Specifies the weekly time range during which maintenance on the cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period.
Valid values for ddd are:
- sun
- mon
- tue
- wed
- thu
- fri
- sat
Example: sun:23:00-mon:01:30
TopicArn -> (string)
The Amazon Resource Name (ARN) for the topic used by the source cache cluster for publishing notifications.Port -> (integer)
The port number used by each cache nodes in the source cache cluster.CacheParameterGroupName -> (string)
The cache parameter group that is associated with the source cache cluster.CacheSubnetGroupName -> (string)
The name of the cache subnet group associated with the source cache cluster.VpcId -> (string)
The Amazon Virtual Private Cloud identifier (VPC ID) of the cache subnet group for the source cache cluster.AutoMinorVersionUpgrade -> (boolean)
This parameter is currently disabled.SnapshotRetentionLimit -> (integer)
For an automatic snapshot, the number of days for which ElastiCache retains the snapshot before deleting it.
For manual snapshots, this field reflects the SnapshotRetentionLimit for the source cache cluster when the snapshot was created. This field is otherwise ignored: Manual snapshots do not expire, and can only be deleted using the delete-snapshot operation.
Important If the value of SnapshotRetentionLimit is set to zero (0), backups are turned off.SnapshotWindow -> (string)
The daily time range during which ElastiCache takes daily snapshots of the source cache cluster.NumNodeGroups -> (integer)
The number of node groups (shards) in this snapshot. When restoring from a snapshot, the number of node groups (shards) in the snapshot and in the restored replication group must be the same.AutomaticFailover -> (string)
Indicates the status of Multi-AZ for the source replication group.
Note
ElastiCache Multi-AZ replication groups are not supported on:
- Redis versions earlier than 2.8.6.
- Redis (cluster mode disabled):T1 and T2 cache node types. Redis (cluster mode enabled): T1 node types.
NodeSnapshots -> (list)
A list of the cache nodes in the source cache cluster.
(structure)
Represents an individual cache node in a snapshot of a cache cluster.
CacheClusterId -> (string)
A unique identifier for the source cache cluster.NodeGroupId -> (string)
A unique identifier for the source node group (shard).CacheNodeId -> (string)
The cache node identifier for the node in the source cache cluster.NodeGroupConfiguration -> (structure)
The configuration for the source node group (shard).
Slots -> (string)
A string that specifies the keyspaces as a series of comma separated values. Keyspaces are 0 to 16,383. The string is in the format startkey-endkey .
Example: "0-3999"
ReplicaCount -> (integer)
The number of read replica nodes in this node group (shard).PrimaryAvailabilityZone -> (string)
The Availability Zone where the primary node of this node group (shard) is launched.ReplicaAvailabilityZones -> (list)
A list of Availability Zones to be used for the read replicas. The number of Availability Zones in this list must match the value of ReplicaCount or ReplicasPerNodeGroup if not specified.
(string)
CacheSize -> (string)
The size of the cache on the source cache node.CacheNodeCreateTime -> (timestamp)
The date and time when the cache node was created in the source cache cluster.SnapshotCreateTime -> (timestamp)
The date and time when the source node's metadata and cache data set was obtained for the snapshot.


Class BasicScanUISettings
- java.lang.Object
-
- com.microblink.photopay.uisettings.UISettings<BasicOverlayController>
-
- com.microblink.photopay.uisettings.BasicScanUISettings
-
- All Implemented Interfaces:
BeepSoundUIOptions
,DebugImageListenerUIOptions
,HelpIntentUIOptions
,HighResSuccessFrameCaptureUIOptions
,SplashScreenUIOptions
- Direct Known Subclasses:
PhotopayUISettings
public abstract class BasicScanUISettings extends UISettings<BasicOverlayController> implements DebugImageListenerUIOptions, SplashScreenUIOptions, BeepSoundUIOptions, HighResSuccessFrameCaptureUIOptions, HelpIntentUIOptions
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
BasicScanUISettings(android.content.Intent intent)
protected
BasicScanUISettings(RecognizerBundle recognizerBundle)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description BasicOverlayController
createOverlayController(android.app.Activity activity, ScanResultListener scanResultListener)
Creates overlay controller and configures it using set values.protected abstract BasicOverlaySettings.Builder
createOverlaySettingsBuilder()
void
enableHighResSuccessFrameCapture(boolean enabled)
Sets whether to enable capturing high res frames on recognition success.RecognizerBundle
getRecognizerBundle()
Returns theRecognizerBundle
containing recognizers that will be used for processing.void
saveToIntent(android.content.Intent intent)
Saves this scan activity settings toIntent
so it can be passed to the corresponding scan activity.void
setBeepSoundResourceID(int beepSoundResourceID)
Defines the resource ID of the sound to be played when recognition is successful.void
setDebugImageListener(DebugImageListener debugImageListener)
Sets implementation ofDebugImageListener
interface that will obtain images that are being processed.void
setForcedOrientation(OverlayOrientation orientation)
Defines forced overlay orientation.void
setHelpIntent(android.content.Intent helpIntent)
Defines intent for help activity called when help should be shown.void
setRegionOfInterestRotatable(boolean regionOfInterestRotatable)
Defines whether ROI (Region of Interest) will be rotated with user interface.void
setScanRegionOfInterest(Rectangle scanRegionOfInterest)
Sets the scanning ROI (Region of Interest) that will be scanned.void
setSplashScreenLayoutResourceID(int splashScreenLayoutResourceID)
Defines the ID of the layout resource that will be used as camera splash screen displayed while camera is being initialized.-
Methods inherited from class com.microblink.photopay.uisettings.UISettings
getActivityTheme, getFilterTouchesWhenObscured, getTargetActivity, getUsingFlagSecure, setActivityTheme, setCameraSettings, setFilterTouchesWhenObscured, setUsingFlagSecure
-
-
-
-
Constructor Detail
-
BasicScanUISettings
protected BasicScanUISettings(@NonNull RecognizerBundle recognizerBundle)
-
BasicScanUISettings
protected BasicScanUISettings(@NonNull android.content.Intent intent)
-
-
Method Detail
-
getRecognizerBundle
@NonNull public RecognizerBundle getRecognizerBundle()
Returns theRecognizerBundle
containing recognizers that will be used for processing.- Returns:
- the
RecognizerBundle
containing recognizers that will be used for processing.
-
saveToIntent
public final void saveToIntent(@NonNull android.content.Intent intent)
Description copied from class:UISettings
Saves this scan activity settings toIntent
so it can be passed to the corresponding scan activity. Intent target activity must be set before calling this method, and target activity must be compatible with this settings.  Improper usage will crash your app.- Overrides:
saveToIntent
in classUISettings<BasicOverlayController>
- Parameters:
intent
- Intent to which this scan activity settings should be saved.
-
setScanRegionOfInterest
public final void setScanRegionOfInterest(@Nullable Rectangle scanRegionOfInterest)
Sets the scanning ROI (Region of Interest) that will be scanned.- Parameters:
scanRegionOfInterest
- scanning ROI.- See Also:
RecognizerRunnerView.setScanningRegion(Rectangle, boolean)
-
setRegionOfInterestRotatable
public final void setRegionOfInterestRotatable(boolean regionOfInterestRotatable)
Defines whether ROI (Region of Interest) will be rotated with user interface. Default isfalse
.- Parameters:
regionOfInterestRotatable
- whether ROI (Region of Interest) will be rotated with user interface.- See Also:
RecognizerRunnerView.setScanningRegion(Rectangle, boolean)
-
setBeepSoundResourceID
public final void setBeepSoundResourceID(int beepSoundResourceID)
Description copied from interface:BeepSoundUIOptions
Defines the resource ID of the sound to be played when recognition is successful.- Specified by:
setBeepSoundResourceID
in interfaceBeepSoundUIOptions
- Parameters:
beepSoundResourceID
- resource ID of the sound to be played when recognition is successful.
-
setSplashScreenLayoutResourceID
public final void setSplashScreenLayoutResourceID(@LayoutRes int splashScreenLayoutResourceID)
Description copied from interface:SplashScreenUIOptions
Defines the ID of the layout resource that will be used as camera splash screen displayed while camera is being initialized. If not set, default splash screen will be used.- Specified by:
setSplashScreenLayoutResourceID
in interfaceSplashScreenUIOptions
- Parameters:
splashScreenLayoutResourceID
- ID of the layout resource that will be used as camera splash screen displayed while camera is being initialized.
-
setDebugImageListener
public final void setDebugImageListener(@Nullable DebugImageListener debugImageListener)
Description copied from interface:DebugImageListenerUIOptions
Sets implementation ofDebugImageListener
interface that will obtain images that are being processed. DebugImageListener will receive all possible debug images that become available during recognition process.- Specified by:
setDebugImageListener
in interfaceDebugImageListenerUIOptions
- Parameters:
debugImageListener
- Implementation of debug image listener ornull
to clear listener that has been set previously.
-
enableHighResSuccessFrameCapture
public void enableHighResSuccessFrameCapture(boolean enabled)
Description copied from interface:HighResSuccessFrameCaptureUIOptions
Sets whether to enable capturing high res frames on recognition success. Default isfalse
.- Specified by:
enableHighResSuccessFrameCapture
in interfaceHighResSuccessFrameCaptureUIOptions
- Parameters:
enabled
-true
if you wish to enable high res success frame capture
-
setForcedOrientation
public void setForcedOrientation(@Nullable OverlayOrientation orientation)
Defines forced overlay orientation.- Parameters:
orientation
- forced overlay orientation.- See Also:
for more details.
-
setHelpIntent
public final void setHelpIntent(@Nullable android.content.Intent helpIntent)
Description copied from interface:HelpIntentUIOptions
Defines intent for help activity called when help should be shown. If not set or set to null, help button will not be shown in the scanning UI.- Specified by:
setHelpIntent
in interfaceHelpIntentUIOptions
- Parameters:
helpIntent
- intent for help activity called when help should be shown.
-
createOverlayController
@NonNull public BasicOverlayController createOverlayController(@NonNull android.app.Activity activity, @NonNull ScanResultListener scanResultListener)
Description copied from class:UISettings
Creates overlay controller and configures it using set values.- Specified by:
createOverlayController
in classUISettings<BasicOverlayController>
-
createOverlaySettingsBuilder
@NonNull protected abstract BasicOverlaySettings.Builder createOverlaySettingsBuilder()
-
-


NFS
In some cases the default shared folder implementations (such as VirtualBox shared folders) have high performance penalties. If you're seeing less than ideal performance with synced folders, NFS can offer a solution. Vagrant has built-in support to orchestrate the configuration of the NFS server on the host and guest for you.
Windows users: NFS folders do not work on Windows hosts. Vagrant will ignore your request for NFS synced folders on Windows.
Prerequisites
Before using synced folders backed by NFS, the host machine must have nfsd
installed, the NFS server daemon. This comes pre-installed on Mac OS X, and is typically a simple package install on Linux.
Additionally, the guest machine must have NFS support installed. This is also usually a simple package installation away.
Root Privilege Requirement
To configure NFS, Vagrant must modify system files on the host. Therefore, at some point during the vagrant up
sequence, you may be prompted for administrative privileges (via the typical sudo
program). These privileges are used to modify /etc/exports
as well as to start and stop the NFS server daemon.
Enabling NFS Synced Folders
To enable NFS, just add the nfs: true
flag onto your synced folder:
Vagrant.configure("2") do |config|
# ...
config.vm.synced_folder ".", "/vagrant", nfs: true
end
If you add this to an existing Vagrantfile that has a running guest machine, be sure to vagrant reload
to see your changes.


Dog Runs
Services
Pest Control
Termite Control
Pest Index
Ants
Bed Bugs
Cockroaches
Fleas
Flies
Mosquitoes
Rodents
Hornets
Termites
Spiders
Animal Index
Mammals
Reptiles
Why Calvert?
About Us
Clients
Veteran Owned
FAQ
Contact Us
Credits
Technologies
StartBootstrap - Modern Business
Copyright 2013-2019 Blackrock Digital LLC. Code released under the MIT license.
Images
Muhammad Mahdi Karim
/
GFDL 1.2
Penarc
/
CC BY-SA
Content Providers(s): CDC/ Harvard University, Dr. Gary Alpert; Dr. Harold Harlan; Richard Pollack. Photo Credit: Piotr Naskrecki
/ Public domain
Gary Alpert
/
CC BY-SA
Lmbuga
/
CC BY-SA
Alvesgaspar
/
CC BY-SA
Erturac
/
CC BY-SA
USDAgov
/ Public domain
André Karwath aka Aka
/
CC BY-SA
EBKauai
/
CC BY
Alvesgaspar
/
CC BY-SA
Unknown author (original) / Ilmari Karonen (editing)
/ Public domain
6th Happiness
/
CC BY-SA
AnemoneProjectors
/
CC BY-SA
Liftarn
/
CC BY-SA
Mehdi Taba
/
CC BY-SA
Photo by Scott Bauer.
/ Public domain
Ken-ichi Ueda
/
CC BY
Rosa Pineda
/
CC BY-SA
Patrick Edwin Moran
/
CC BY-SA
U.S. Fish and Wildlife Service Headquarters
/ Public domain
Steve from washington, dc, usa
/
CC BY-SA
Yathin S Krishnappa
/
CC BY-SA
Airwolfhound from Hertfordshire, UK
/
CC BY-SA
Cody Pope
/
CC BY-SA
David Menke
/ Public domain
Dan & Lin Dzurisin
/
CC BY
BirdPhotos.com
/
CC BY
Judy Gallagher
/
CC BY
Steve Jurvetson from Menlo Park, USA
/
CC BY
Patrick Coin (Patrick Coin)
/
CC BY-SA


--- imgsrc: "Jewish_art_will_deutsch_tzedakah.jpg" buylink: "http://store.notesfromthetribe.com/product/jewish-art-8-5-x11-tzedakah-print" postDate: "05.09.11" layout: post ---
I once saw a man pray to his golf club.
‘Dear Lord’ he whispered softly to the putter, ‘please guide my hand steadily with your infinite wisdom, so that I might sink this ball.’
This was a fully developed grown male.
My first thought was that God really doesn’t have the time for this kind of nonsense.
War, famine and disease. As it stands the human race is probably on the brink of environmental and nuclear destruction.
God’s got a lot on his plate.

But then I started thinking about my own to-do list.
I have to take care of my health insurance premiums, write up some licensing contracts, file for another extension on my taxes and re-register my car. But before all that I start with the easy stuff…..I have to get a cover for my new Ipad.
So maybe that’s why the world is still messed up. Maybe God’s taking care of golf games before he gets to the big problems.
Until then it’s up to us to fix the world ourselves.
Think about that the next time you put a penny in the pushka.


SFC is engaged in various Social and Community Development programs aimed for the benefit of poor, vulnerable and needy women, senior citizens, children of our society. Our objective is not only to eradicate illiteracy among the weaker sections of the society but also to uplift them and levy the foundation for Women Empowerment, Healthcare, Development and Human rights.
Our core philosophy has its bedrock in education as we believe it is the only weapon which can change the world and the best way to make this grand change is to impart education to the building block of our society i.e. our children. Hence, we ensure that each child gets access to these opportunities. However, the complete eradication of illiteracy will happen only by educating the women and elder folks, along with children. So, we have devoted special Programs for all of them. Our Vision and Mission are fulfilled wholeheartedly by our utmost core values, intense dedication and commitment of our Team.
But as we all know Vision alone is not enough, so combining it with the venture, we have our three main projects- Project Gyan, Project Sampuran and Project Vatavarn which are the hearts of our Working Model. The education imparted to the lesser fortunate is covered under Project Gyan. And all the other crucial issues of the society are dealt under Project Sampuran like visiting Old Age Homes, or organizing Donation Drives or Awareness Campaigns. Project Vatavarn deals with all the issues related to Environmental Protection and Animal Welfare. And to conquer huge development challenges, we have a colossal pool of Interns and Volunteers, who are pivotal members of our Foundation. When like-minded people come together with common aspirations, great results can be achieved and SFC has become the platform of success due to such devoted people only.


mongoc_write_concern_t
Write Concern abstraction
Synopsis
mongoc_write_concern_t provides an abstraction on top of the MongoDB connection write concern. It allows for hinting to the driver how durable writes should be, both in replication as well as on a per node basis.
You can specify a read preference mode on connection objects, database objects, collection objects, or per-operation.
Write Concern Levels
Network Related
MONGOC_WRITE_CONCERN_W_DEFAULT (1) |
With a receipt acknowledged write concern, the mongod confirms the receipt of the write operation. Acknowledged write concern allows clients to catch network, duplicate key, and other errors. |
MONGOC_WRITE_CONCERN_W_ERRORS_IGNORED (-1) |
With an errors ignored write concern, MongoDB does not acknowledge write operations. With this level of write concern, the client cannot detect failed write operations. These errors include connection errors and mongod exceptions such as duplicate key exceptions for unique indexes. Although the errors ignored write concern provides fast performance, this performance gain comes at the cost of significant risks for data persistence and durability. |
MONGOC_WRITE_CONCERN_W_UNACKNOWLEDGED (0) |
With an unacknowledged write concern, MongoDB does not acknowledge the receipt of write operation. Unacknowledged is similar to errors ignored; however, mongoc attempts to receive and handle network errors when possible. |
MONGOC_WRITE_CONCERN_W_MAJORITY (majority) |
Require that a write has been propagated to a majority of the nodes in the replica set. |
n |
Require that a write has been propagated to at least n nodes in the replica set. |
Node Persistence
fsync |
Force a full fsync() on the node receiving the write. |
journal |
Force a flush to the journal on the node receiving the write. |


This module displays a list of news items to a page.
{module_announcement, filter, id, noTemplate, effect, target, reserved, reserved, reserved, length, sort}
{module_announcement,a,,,,_parent}
- will display all news items and open them in parent frame {module_announcement,l,5}
- will display the latest 5 news{module_announcement,r,,true,ajax,_blank,,,,,datereverse}
- will open a random item in a new window and will not apply the template and will use the Ajax effect where the detail content opens right underneath the news name and all the news items will be displayed from the oldest to the latest {module_announcement,cl,34392,,ajax,,,,,5}
- will display the 5 latest news items in the category with the ID 34392{module_announcement,a,,,ajax,_blank template="/Layouts/Custom/news.tpl"}
- will display all the news items using the "ajax" effect using the news.tpl custom template


Loading ...
Failed to load data.
{{name}}
Confirm
Delete
Sending...
{{result}}
An error occurred.
See more


Yemen result shows we can win without key players: Tatsuma Yoshida
Lions coach was without Faris, Shakir and Shawal for 2-1 win over Yemen
Singapore coach Tatsuma Yoshida said yesterday that the Lions' World Cup 2022 qualifying win away to Yemen was proof that his side can win without key players.
The 2-1 triumph at Al Muharraq Stadium in Bahrain - Yemen have to host their home matches at a neutral venue due to an ongoing civil war - was achieved without wingers Faris Ramli (personal reasons), Shawal Anuar (injury) and left-back Shakir Hamzah (disciplinary reasons).
The trio have been regular starters for the 45-year-old Japanese coach.
Despite the absentees, the Lions coach told The New Paper before the game that it was a "must-win" match, and his players duly obliged.
Said Yoshida: "I am really happy to get this good result for the Singapore fans back home.
"We said before the match that it was a must-win, and it is important that we got it.
"The result may be surprising for some people, but it is not a surprise for me.
"The boys have shown a great attitude and I trust them.
"We showed that we could win even without some important players (Faris, Shakir and Shawal). The others stepped up and proved themselves."
Among the others who also stepped up was Hafiz Nor, who bagged the winner.
The 31-year-old winger scored his first goal in his sixth cap in the 52nd minute of the Group D tie.
He cut inside his defender on the left flank and curled a brilliant strike from just outside the box which clipped the post and nestled into Salem Saeed's net.
Said Hafiz: "I am very happy to get my first international goal and it was one to remember.
"When I got the ball, the only thing in my mind was to beat the player and go for a shot; that was what coach told me to do in training and I am happy I did it."
While the absent Faris, Shakir and Shawal are key players for the Lions, perhaps no one is more important to Yoshida now than striker Ikhsan Fandi.
The youngest member of the squad at 20 opened the scoring against Yemen against the run of play when he met Shahdan Sulaiman's 19th-minute corner with a well-struck volley from just inside the box.
ONE CLEAN SHEET
However, Nasser Al-Gahwashi's goal five minutes from time meant that the Lions have kept only one clean sheet - in a 0-0 draw with Jordan at the Amman International Stadium last month - in Yoshida's nine matches in charge.
Despite that, there are positives to be taken after the Lions moved up to third in Group D, two points adrift of group leaders Uzbekistan.
The win over Yemen was Singapore's first away success against a higher-ranked Middle-Eastern team since another 2-1 win against Lebanon in Beirut in a World Cup qualifier in 2008.
Said Hafiz: "We did pretty well and followed the game plan; we played as a team and won as a team.
"Playing against Middle-Eastern opposition is not easy, but we achieved the win and everyone is very happy about it."


--- layout: post title: "UK doctors reports people not turning up for vaccine appointments" subtitle: "As the government's mass vaccination programme gets underway, one nurse at a hospital in west London said some supplies were being thrown away due to people failing to make their appointment times" date: 2021-01-13 22:31:13 +0530 background: '/assets/images/Health.jpg' published: true categories: [ Health ] tags: [ health, covid, doctors, vaccines, uk, london] ---
Doctors are reportedly being forced to bin coronavirus vaccine doses as people 'fail to turn up for appointments’. As the government's mass vaccination programme gets underway, one nurse at a hospital in West London said some supplies were being thrown away.
The nurse said the problem was occurring "all over London" and therefore probably right across the country.
Speaking to the MailOnline, the nurse said: "Loads of people are not keeping the appointments their GPs have made for them.
"The problem is the vaccine has to be given or it has to be thrown away.
"On Thursday night we had something like 45 people who were booked for jabs but didn't turn up and didn't let us or their GP know in advance."


Even if condensate wastewater and coal tar is generated from gasifiers in small amount in Morbi Wankaner Industrial cluster, its cumulative impact on the ecosystem is very severe as there are very large number of ceramic industries exists. Management and handling of wastewater and hazardous waste (coal tar) from all industries together exceeds the assimilative capacity of the region and therefore any gasifier generating condensate wastewater and coal tar should not be permitted. Instead of further experimenting with older moving coal bed gasifiers (currently existing in Morbi), advanced fluidized bad gasifier should be designed along with all pollution control device for meeting the clean energy demands in Morbi region.
Till a cleaner technology for synthetic gas generation is demonstrated, ceramic industries having gasifiers may opt for PNG. Natural gas grid/pipe connections are already established in the area and most of industries are Page 65 of 80 Downloaded on : Tue Nov 19 20:51:38 IST 2019 C/SCA/6756/2019 CAV JUDGMENT having connections."
ANALYSIS
16. Thus, the experts have made themselves abundantly clear that the use of coal gasifiers of any type should be discontinued at any cost. The experts have also made themselves very clear that the Ceramic Industries should switchover to a cleaner technology and should opt for natural gas, i.e., the PNG. In the report, it has been clearly stated that the natural gas grid/pipelines are already laid and made functional in the area and most of the Ceramic Industries have opted for gas connections. If that be so, then why an exception should be carved out for the writ applicants of the Special Civil Applications Nos.6757 of 2019 and 6774 of 2019 respectively.
17. We fail to understand why are they insisting for coal gasifiers may be with an advanced technology. We take judicial notice of the fact that Morbi and the surrounding area was a hell sometime back, and the Ceramic Industries, using the coal gasifiers, are solely responsible for creating this hell. As days were passing by, situation was getting more and more worst. The situation was so grim that the issue had to be taken up with the National Green Tribunal and it is only after the intervention of the National Green Tribunal and passing of various orders, that steps came to be taken by the GPCB to restrain the Ceramic Industries from using the coal gasifiers. The coal gasifier of any type, be it with a better technology, is not at all advisable. It will lead to further problems. With great difficulty and with lot of efforts, the situation has been brought in control. Even, as on date, the air quality is very poor. The menace of coal gasifiers have not only created air pollution but Page 66 of 80 Downloaded on : Tue Nov 19 20:51:38 IST 2019 C/SCA/6756/2019 CAV JUDGMENT has also contaminated the soil to such an extent that the underground water has also become contaminated.
18. The writ applicants are talking about unemployment etc. They have no right to say a word in this regard. The report indicates that the workers, hailing from poor strata of society, were found to be working in extremely bad conditions. The workers were being exposed to most unhygienic conditions. Even if there is unemployment on account of the closure of the Ceramic Industries, using coal gasifiers, the same can be approved because to ask the workers to die working in such unhygienic conditions would be still worst.
19.
20. We find this litigation, more particularly, the Special Civil Application No.6756 of 2019 very unique. For the first time, we have come across a case, in which, a private company, engaged in the manufacturing of coal gasifier, is asking a Writ Court boasting about its fine technology to issue a writ of mandamus to the GPCB to look into the technology of the Company and then take a decision whether to permit the installation of the same in the Ceramic Industries. What is the Company trying to convey?. Is the Company trying to advertise its technology by seeking a writ of mandamus?. Is the GPCB and other statutory authorities duty bound to look into the technology of the Company, more particularly, when the same has been looked into by the committee of experts and the NGT, as noted above. The situation, as on date, is that at any cost, the coal gasifiers cannot be permitted to be used in the Ceramic Industries. The coal gasifier, of which, the Page 67 of 80 Downloaded on : Tue Nov 19 20:51:38 IST 2019 C/SCA/6756/2019 CAV JUDGMENT company is talking about, also has its own shortcomings. When 60 to 70 percent of the Ceramic Industries have switched over to natural gas by taking connections from the Gujarat Gas Company, then why the writ applicants in the present case are still insisting for the coal gasifier. They are only interested in their own profits. They are insisting for coal gasifier because they may not be able to bear the expense of natural gas. This hardly can be a ground for issue of any writ of mandamus to the GPCB to look into the technology and take an appropriate decision whether the same would serve the purpose or not.
21. Before an applicant could get a writ of mandamus or an order in the nature of mandamus, he has to satisfy the court that the following conditions are fulfilled.
(a) The applicant has a legal right;
(b) The opposite party has a legal duty;
(c) The application is made in good faith;
(d) The applicant has no other alternative remedy; and
(e) The opposite party has refused relief, i.e. demand and refusal.
22. Mandamus is one of the prerogative writs issued by the superior courts (High Court or Supreme Court), which is in the shape of command to the State, its instrumentality or its functionaries to compel them to perform their constitutional / statutory/public duty.
23. A writ of mandamus is an extraordinary remedy to be invoked only upon special occasion and in exceptional circumstances. It is intended to supply deficiency in law. It Page 68 of 80 Downloaded on : Tue Nov 19 20:51:38 IST 2019 C/SCA/6756/2019 CAV JUDGMENT cannot be granted merely for the asking but has to be obtained where there is no alternative, efficacious and adequate remedy. It cannot be used as an appeal against the decision of a court, tribunal or an authority exercising statutory power. It can only be issued as a last resort where the court is satisfied that without its aid there would be failure of justice.
24. Mandamus is an action or judicial proceeding of a civil nature extraordinary in the sense that it can be maintained only when there is no other adequate remedy, prerogative in its character to the extent that the issue is discretionary, to enforce only clear legal rights, and to compel courts to take jurisdiction or proceed in the exercise of their jurisdiction, or to compel corporations, public and private, and public boards, commissions, or officers, to exercise their jurisdiction or discretion and to perform ministerial duties, which duties result from an office, trust, or station, and are clearly and peremptorily enjoined by law as absolute and official (P.R. Aiyar, Advanced Law Lexicon, (2005), Vol. III P. 2873.).
25. Mandamus is not a writ of right and is not granted as a matter of course (ex debito justitiae). Its grant or refusal is at the discretion of the court. A court may refuse mandamus unless it is shown that there is a clear legal right of the applicant or statutory duty of the respondent and there is no alternative remedy available to the applicant. (Union of India v. S.B. Vohra, (2004) 2 SCC 150)
26. The discretion of the court, however, is not arbitrary and it must be exercised fairly, reasonably and on sound and well established legal principles.
Page 69 of 80 Downloaded on : Tue Nov 19 20:51:38 IST 2019 C/SCA/6756/2019 CAV JUDGMENT27. The court, in the exercise of discretion, must take into account wide variety of circumstances. It must consider the facts of the case, the exigency which calls for the exercise of discretion, the consequences of granting or refusing the writ, the nature and extent of injury likely to ensue by the grant or refusal of the writ, etc. In short, courts discretion must be governed by considerations of public policy, public interest and public good.
28. Thus, we are not in agreement with any of the submissions canvassed by the learned counsel on behalf of the writ applicants for the reason that mandamus can be enforced only, if the writ applicant satisfies the Court that there is an existence of statutory or legal right recognized and protected by law.
29. In Wharton's Law Lexicon, the word 'Right' means; (1) is a legally protected interest (2) is an averment of entitlement arising out of legal rules (3) right is an interest recognised and protected by moral or legal rules (4) right, comprehends every right known to the law.
30. In K.J.Aiyar's Judicial Dictionary, the word 'Right' means;
1) a right is a legally protected interest, 2) a right is an interest which is recognised and protected by law.
31. In Stroud's Judicial Dictionary, the word 'Right' means, is where one hath a thing that was taken from another wrongfully, as by disseisin, discontinuance, or putting out, or such like, and the challenge or claime that he hath who should have the thing, is called right.
Page 70 of 80 Downloaded on : Tue Nov 19 20:51:38 IST 2019 C/SCA/6756/2019 CAV JUDGMENT32. Writ of mandamus cannot be issued merely because a person is praying for. One must establish the right first and then he must seek for the prayer to enforce the said right. If there is failure of duty by the authorities or inaction, one can approach the Court for mandamus. The said position is well settled in a series of decisions.
(a) In Comptroller and Auditor General of India vs. K.S.Jegannathan, reported in AIR 1987 SC 537 = 1986 (2) SCC 679, a Three-Judge Bench of the Hon'ble Apex Court referred to Halsbury's Laws of England 4th Edition, Vol.I. Paragraph 89, about the efficacy of mandamus:
"89.Nature of Mandamus.-- .... is to remedy defects of justice; and accordingly it will issue, to the end that justice may be done, in all cases where there is a specific legal right and no specific legal remedy, for enforcing that right; and it may issue in cases where, although there is an alternative legal remedy, yet that mode of redress is less convenient, beneficial and effectual."
(b) In the decision reported in (1996) 9 SCC 309, State of U.P. and Ors. v. Harish Chandra and Ors., in paragraph 10, the Apex Court held as follows:
"10. ...Under the Constitution a mandamus can be issued by the court when the applicant establishes that he has a legal right to the performance of legal duty by the party against whom the mandamus is sought and the said right was subsisting on the date of the petition.... "
(c) In the decision reported in (2004) 2 SCC 150, Union of India v. S.B. Vohra, the Supreme Court considered the said issue and held that 'for issuing a writ of mandamus in favour of Page 71 of 80 Downloaded on : Tue Nov 19 20:51:38 IST 2019 C/SCA/6756/2019 CAV JUDGMENT a person, the person claiming, must establish his legal right in himself. Then only a writ of mandamus could be issued against a person, who has a legal duty to perform, but has failed and/or neglected to do so.
(d) In the decision reported in (2008) 2 SCC 280, Oriental Bank of Commerce v. Sunder Lal Jain, in paragraphs 11 and 12, the Supreme Court held thus, "11. The principles on which a writ of mandamus can be issued have been stated as under in The Law of Extraordinary Legal Remedies by F.G. Ferris and F.G. Ferris, Jr.:
Note 187.-Mandamus, at common law, is a highly prerogative writ, usually issuing out of the highest court of general jurisdiction, in the name of the sovereignty, directed to any natural person, corporation or inferior court within the jurisdiction, requiring them to do some particular thing therein specified, and which appertains to their office or duty. Generally speaking, it may be said that mandamus is a summary writ, issuing from the proper court, commanding the official or board to which it is addressed to perform some specific legal duty to which the party applying for the writ is entitled of legal right to have performed.
Note 192.-Mandamus is, subject to the exercise of a sound judicial discretion, the appropriate remedy to enforce a plain, positive, specific and ministerial duty presently existing and imposed by law upon officers and others who refuse or neglect to perform such duty, when there is no other adequate and specific legal remedy and without which there would be a failure of justice. The chief function of the writ is to compel the performance of public duties prescribed by statute, and to keep subordinate and inferior bodies and tribunals exercising public functions within their jurisdictions. It is not necessary, however, that the duty be imposed by statute; mandamus lies as well for the enforcement of a common law duty.
Note 196.-Mandamus is not a writ of right. Its issuance unquestionably lies in the sound judicial discretion of the Page 72 of 80 Downloaded on : Tue Nov 19 20:51:38 IST 2019 C/SCA/6756/2019 CAV JUDGMENT court, subject always to the well-settled principles which have been established by the courts. An action in mandamus is not governed by the principles of ordinary litigation where the matters alleged on one side and not denied on the other are taken as true, and judgment pronounced thereon as of course. While mandamus is classed as a legal remedy, its issuance is largely controlled by equitable principles. Before granting the writ the court may, and should, look to the larger public interest which may be concerned-an interest which private litigants are apt to overlook when striving for private ends. The court should act in view of all the existing facts, and with due regard to the consequences which will result. It is in every case a discretion dependent upon all the surrounding facts and circumstances. Note 206.- ... The correct rule is that mandamus will not lie where the duty is clearly discretionary and the party upon whom the duty rests has exercised his discretion reasonably and within his jurisdiction, that is, upon facts sufficient to support his action. "
12. These very principles have been adopted in our country. In Bihar Eastern Gangetic Fishermen Coop. Society Ltd. v. Sipahi Singh after referring to the earlier decisions in Lekhraj Sathramdas Lalvani v. N.M. Shah, Rai Shivendra Bahadur (Dr.) v. Nalanda College and Umakant Saran (Dr.) v. State of Bihar this Court observed as follows in para 15 of the Reports (SCC): (Sipahi Singh case, SCC pp. 152-53) "15. ... There is abundant authority in favour of the proposition that a writ of mandamus can be granted only in a case where there is a statutory duty imposed upon the officer concerned and there is a failure on the part of that officer to discharge the statutory obligation. The chief function of a writ is to compel performance of public duties prescribed by statute and to keep subordinate tribunals and officers exercising public functions within the limit of their jurisdiction. It follows, therefore, that in order that mandamus may issue to compel the authorities to do something, it must be shown that there is a statute which imposes a legal duty and the aggrieved party has a legal right under the statute to enforce its performance.... In the instant case, it has not been shown Page 73 of 80 Downloaded on : Tue Nov 19 20:51:38 IST 2019 C/SCA/6756/2019 CAV JUDGMENT by Respondent 1 that there is any statute or rule having the force of law which casts a duty on Respondents 2 to 4 which they failed to perform. All that is sought to be enforced is an obligation flowing from a contract which, as already indicated, is also not binding and enforceable. Accordingly, we are clearly of the opinion that Respondent 1 was not entitled to apply for grant of a writ of mandamus under Article 226 the Constitution and the High Court was not competent to issue the same. Therefore, in order that a writ of mandamus may be issued, there must be a legal right with the party asking for the writ to compel the performance of some statutory duty cast upon the authorities...."
33. Mandamus is the most valuable and essential remedy in Administrative Justice resorted to supply want of some appropriate ordinary remedy. The functions of the writ court is to compel the performance of public duty, for which, the person approaching the writ court should statutorily, has a clear, specific and unequivocal, constitutional or statutory or legal right to the relief sought for and the failure on the part of those who are bound to perform certain duties and functions, as laid down by the legislature or directions issued for the purpose of enforcing the provisions of an enactment or of any delegated or subordinate legislation. There must be a legal right and corresponding legal duty.
34. In State of Kerala v. A.Lakshmi Kutty, reported in 1986 (4) SCC 632, the Supreme Court held that a Writ of Mandamus is not a writ of course or a writ of right but is, as a rule, discretionary. There must be a judicially enforceable right for the enforcement of which a mandamus will lie. The legal right to enforce the performance of a duty must be in the applicant himself. In general, therefore, the Court will only Page 74 of 80 Downloaded on : Tue Nov 19 20:51:38 IST 2019 C/SCA/6756/2019 CAV JUDGMENT enforce the performance of statutory duties by public bodies on application of a person who can show that he has himself a legal right to insist on such performance. The existence of a right is the foundation of the jurisdiction of a Court to issue a writ of Mandamus. The present trend of judicial opinion appears to be that in the case of non- selection to a post, no writ of mandamus lies.
35. When a Writ of Mandamus can be issued, has been summarised in Corpus Juris Secundum, as follows:
"Mandamus may issue to compel the person or official in whom a discretionary duty is lodged to proceed to exercise such discretion, but unless there is peremptory statutory direction that the duty shall be performed mandamus will not lie to control or review the exercise of the discretion of any board, tribunal or officer, when the act complained of is either judicial or quasi-judicial unless it clearly appears that there has been an abuse of discretion on the part of such Court, board, tribunal or officer, and in accordance with this rule mandamus may not be invoked to compel the matter of discretion to be exercised in any particular way. This principle applies with full force and effect, however, clearly it may be made to appear what the decision ought to be, or even though its conclusion be disputable or, however, erroneous the conclusion reached may be, and although there may be no other method of review or correction provided by law. The discretion must be exercised according to the established rule where the action complained has been arbitrary or capricious, or based on personal, selfish or fraudulent motives, or on false information, or on total lack of authority to act, or where it amounts to an evasion of positive duty, or there has been a refusal to consider pertinent evidence, hear the parties where so required, or to entertain any proper question concerning the exercise of the discretion, or where the exercise of the discretion is in a manner entirely futile and known by the officer to be so and there are other methods which it adopted, would be effective." (emphasis supplied)"Page 75 of 80 Downloaded on : Tue Nov 19 20:51:38 IST 2019 C/SCA/6756/2019 CAV JUDGMENT
36. A prerogative writ, like, a Mandamus cannot be demanded ex debito justiatiae, but it can be issued by the court in its discretion, for which, it must be shown that, there is a non discretionary legal duty upon the authority against whom, the relief is sought for and that the person approaching the High Court under Article 226 of the Constitution of India, has to prove that he has a legal right to be enforced against the authority, for the failure of performance of a legal or statutory duty, by the authority against whom, the relief is sought for.
37. To sum up, (a) certain conditions have to be satisfied before a writ of mandamus is issued; (b) the petitioner for a writ of mandamus must show that he has a legal right to compel the respondent to do or abstain from doing something; (c ) there must be in the petitioner a right to compel the performance of some duty cast on the respondents; (d) the duty sought to be enforced must have three qualities. It must be a duty of public nature created by the provisions of the Constitution or of a statute or some rule of common law; (e) the remedy of a writ of mandamus is not intended to supersede completely the modes of obtaining relief by an action in a Civil Court or to deny defence legitimately open in such actions; (f) the power to issue a writ of mandamus is a discretionary power. It is sound use of discretion to leave the party to seek his remedy by the ordinary mode of action in a Civil Court and to refuse to issue a writ of mandamus; (g) a writ of mandamus is not a writ of course or a writ of right but is, as a rule a matter for the discretion of the Court; (h) in Page 76 of 80 Downloaded on : Tue Nov 19 20:51:38 IST 2019 C/SCA/6756/2019 CAV JUDGMENT petitions for a writ of mandamus, the Supreme Court and the High Courts do not act as a Court of appeal and examine the facts for themselves. It is not the function of the Court to substitute its wisdom and discretion for that of the person to whom the judgment in the matter in question was entrusted by law. The Supreme Court does not issue a writ of mandamus except at the instance of a party whose fundamental rights are directly and substantially invaded or are in imminent danger of being so invaded; (i) a writ of mandamus is not issued to settle private disputes or to enforce private rights. A writ of mandamus cannot be issued against the President of India or the Governor of State; (j) A writ will not be issued unless the Court is certain that its command will be carried out. The Court must not issue a futile writ.
38. We are not inclined to interfere, in any manner, more particularly, when the entire issue has been looked into in details by the National Green Tribunal. It is open for the writ applicants to approach the National Green Tribunal and seek appropriate relief in accordance with law. We are not impressed with the vociferous submission canvassed on behalf of the writ applicants, more particularly, the owners of the Ceramic Industries that their application as well as the application preferred by the Company, manufacturing coal gasifiers, has been held to be not maintainable in law and, therefore, they have no other option but to come before this Court. Our understanding of such observations made by the National Green Tribunal in its order is that such applications preferred by them are not tenable in law. To put it in other words, they are not entitled to seek any relief by preferring Page 77 of 80 Downloaded on : Tue Nov 19 20:51:38 IST 2019 C/SCA/6756/2019 CAV JUDGMENT such applications. If the writ applicants are aggrieved by such observation, then they may either prefer a review application before the Tribunal or may challenge the order before the Hon'ble the Supreme Court by preferring appropriate appeal in accordance with the provisions of the National Green Tribunal Act.
Special Civil Application No.7142 of 2019
39. In this writ application, it is the case of the writ applicants that they would like to avail the gas connection. However, till this date, the gas connection has not been provided by the respondent No.3, i.e., the Gujarat Gas Limited. We take notice of the affidavit filed on behalf of the Gujarat Gas Limited, duly affirmed by its Vice President (Secretarial & Legal). The following has been stated in the affidavit-in-reply.
"3.0 GGL is a government company as per the provision of Section 2(45) of the Companies Act, 2013 primarily involved in the business of City Gas Distribution (CGD). GGL supplies natural gas to various industries and also piped natural gas (PNG) to households as well as compressed natural gas (CNG) for usage in vehicles. Amongst various other Geographical Areas in the State of Gujarat. GGL is authorized by Petroleum and Natural Gas Regulatory Board (for short 'PNGRB') to lay, build, operate and expand CGD Network and supply gas therefrom in and around the town of Morbi. The total capital investment made by GGL in the said Geographical Area in and around the Town of Morbi as on 31.03.2019 is approx. Rs.437 Crores.
4.0 In paragraph 11 of the petition, the petitioners have made an averment that the petitioners have applied for obtaining pipeline connection from GGL for securing supply of natural gas. It is stated that the connection is still not made available at the location where the petitioners are conducting the industrial activities. At Annexure-E to the petition, two applications are annexed, Page 78 of 80 Downloaded on : Tue Nov 19 20:51:38 IST 2019 C/SCA/6756/2019 CAV JUDGMENT one by Exora Tiles LLP dated 08.03.2019 and the other by Casva Tiles Pvt. Ltd. dated 28.10.2014.
5.0 it is to be noted that the petitioners are industrial customers and in accordance with the standard industry practices, the connection to such customers can be made available only upon execution of commercial arrangement in the nature of gas sales agreement. GGL already has pipeline network covering the entirety of the area of main cluster of ceramics tiles manufactures at Morbi and the units of the petitioners are located in nearby vicinity of such pipeline network of GGL. Thus, thought at present, GGL is pipeline is not extended to the exact location of the Petitioner' units, GGL is ready and willing to extend the pipeline infrastructure and connect the Petitioners' units. However, the Petitioners would be required to engaged with GGL and agree upon the commercial terms for execution of the gas sales agreement in line with industry practice.
Till the time the pipeline is extended, GGL is ready and willing to engage with the Petitioners in working out the modalities to ensure commencement of gas supply to the units of the petitioners.
GGL has written letters dated 04.06.2019 to the petitioners informing them that GGL is planning to extend its gas grid to the industries located in the cluster of Khakhrech/Aniyari. For the purpose, GGL requires an estimate of total consumption required by the industries in the cluster. A format is enclosed along with the letter to be filled in by the industries and sent to GGL so as to assist GGL in estimating the volumes required and to have other necessary details. The said letters are annexed hereto as Annexure-A colly."
40. Thus, it appears from the stance of the respondent No.3 that they are in the process of providing the gas connection to the writ applicants.
41. Ms. Aspi Kapadia, the learned counsel appearing for the respondent No.3 makes a statement, after taking instructions from his client, that within a period of four months, all the Page 79 of 80 Downloaded on : Tue Nov 19 20:51:38 IST 2019 C/SCA/6756/2019 CAV JUDGMENT necessary modalities would be worked out with the writ applicants and they would be provided with the gas connection in accordance with the rules and the regulations of the company.
42. In such circumstances, referred to above, we need not adjudicate this matter any further. We appreciate the stance of the writ applicants. They are switching over to the use of natural gas which would be beneficial to one and all. We direct the respondent No.3 to take all possible steps at the earliest and see to it that the gas connections are provided to the writ applicants at the earliest.
43. With the above, the Special Civil Application No.7142 of 2019 stands disposed of.
44. So far as the other three petitions are concerned, they are ordered to be rejected with liberty to approach either the National Green Tribunal or the Hon'ble the Supreme Court of India.
45. All connected civil applications are also disposed of.
(J. B. PARDIWALA, J) (A. C. RAO, J) Vahid Page 80 of 80 Downloaded on : Tue Nov 19 20:51:38 IST 2019