Custom helpers and Lo-Dash mixins are so easy to use with Assemble, the possibilities are truly limitless.
To make it easier for Assemble users to consume custom helpers created by other users, we offer the following conventions and recommendations for your consideration.
Helpers can either be an object or a single register
function. If register
is on the object, then it calls the register
function, passing in the engine. Otherwise each method is registered as a helper. For
example, the following will result in 2 helpers being registered:
module.exports.foo = function (str) { return str; };
module.exports.bar = function (str) { return str; };
And the following will result in the foo
helper getting register directly through Handlebars:
module.exports.register = function (Handlebars, options) {
Handlebars.registerHelper('foo', function (str) {
return str;
});
};
The Handlebars.registerHelper
method takes the name of the helper and the helper function as arguments. Handlebars.js then takes whatever is returned from the helper function and writes it out to the template, so be sure to always return a string from your custom helpers.
Adding a third argument, params
, to the call to helper.register
will pass in grunt and assemble so that they may be used from inside helpers:
module.exports.register = function (Handlebars, options, params) {
Handlebars.register('awesome', function () {
return params.assemble.options.foo;
};
};
Minimatch patterns can be used in the helpers
option, and they'll look inside your devDependencies for any node modules that it finds. If it finds modules, it will attempt to load those as helpers.
Requirements for use:
npm install my-custom-helper-module --save-dev
options: { helpers: ['*-helper-module'] } }
assemble.options
into helpersAny value from assemble.options
may be passed to helpers when the helper defines the register
method. For example:
Given our Gruntfile.js
has the following assemble
task configuration:
assemble: {
options: {
version: '0.1.0', // or we could use '<%= pkg.version %>'
},
...
}
And given we have defined a custom helper, opt
, which gets properties from the assemble.options
object and returns them:
module.exports.register = function (Handlebars, options) {
Handlebars.registerHelper('opt', function (key) {
return options[key] || '';
});
};
We can now user our helper in a Handlebars template like this:

Version: v{{opt 'version'}}

And the output would be something like:

Version: v0.1.0

If you haven't already done so, install [Grunt][grunt] and grunt-init:
npm i -g grunt-cli grunt-init
Windows users, see the documentation for the correct destination directory path.
Once grunt-init is installed, place the template in your ~/.grunt-init/
directory. It's recommended that you use git clone
to install this template into that directory as follows:
git clone https://github.com/assemble/grunt-init-helper.git ~/.grunt-init/helper
Then, in the directory where your custom helpers will be stored, run grunt-init helper
and follow the prompts to generate a new helper with placeholder code that should be customized.
Note that you may also force grunt-init
to use custom default values, move the defaults.json
file to your ~/.grunt-init/
directory, and customize the values in that file.
If you are creating a helper for distribution, then you might consider using grunt-init-assemble first to create a new Assemble project, then use grunt-init-helper to generate the new helper.
We recommend that you save the helper to the root of the project to make it easy for others to consume via package managers, such as Bower.
assemble-helper-[custom helper name]
" (with helper
being singular or plural).helper-[helper-name].js
". All "official" helpers have been created following the pattern "helper-*.js" so that they can easily
be consumed by assemble.options.helpers
via simple minimatch patterns. This doesn't prevent them from being used elsewhere either.Oftentimes, beyond being used as a Handlebars helper, the code for many helpers can easily be generalized so that they can also be used as Lo-Dash mixins, filters for other template engines etc. It's worth doing this whenever you can to make the helper more useful to others. Also:
main
property to the project's package.json with a path to the helper.See the template for this page →
Find an error? Let us know →


VSL // Art Blogs. Olfactory Art Blogs.
* Perfume Shrine
today’s Very Short List:
culture 15 Oct 2014
Chandler Burr is the former New York Times scent critic and founded the Department of Olfactory Art at the Museum of Arts and Design. He collaborates with great chefs to give scent dinners around the world, like this one in London
Subscribe
* Basenotes, Grant Osborne’s (London) discussion forum, is arguably the most important in the world. This thread: my Untitled Series Season 01, Episode 05
* Designer Simone Shitrit (São Paulo) creates perhaps the most quixotic of the blogs
http://link.nyobserver.com/516ca68465217dc6e1b9a3a61wi4z.2660/TvnrKi0WTdwTHwxwC210b
delightful e-mail that shares
cultural gems from a
different curator every day.
If you have any problems reading this e-mail, click here
http://link.nyobserver.com/516ca68465217dc6e1b9a3a61wi4z.2660/UHyHCJsf7NZSKXrPC559a
Subscribe
Forward
My Account
Unsubscribe
culture 13 Oct 2014
Daniel Handler, aka Lemony Snicket, shares his writing playlist.
food 10 Oct 2014
Mandy Aftel indulges in feasts for the senses.
culture 8 Oct 2014
Magali Duzant on small spaces and proof of our existence.
Editorial Policy
Privacy Policy
Contact Us
Press
Terms + Conditions
very fine print: ©2014
Observer VSL LLC.
321 West 44th Street, 6th Floor
New York, NY 10036 USA
All rights reserved.
Questions?<PHONE_NUMBER>.
This message was intended for<EMAIL_ADDRESS>If you believe this has been sent to you in error, please safely unsubscribe


nips nips2005 nips2005-84 nips2005-84-reference knowledge-graph by maker-knowledge-mining
Source: pdf
Author: Eyal Krupka, Naftali Tishby
Abstract: We argue that when objects are characterized by many attributes, clustering them on the basis of a relatively small random subset of these attributes can capture information on the unobserved attributes as well. Moreover, we show that under mild technical conditions, clustering the objects on the basis of such a random subset performs almost as well as clustering with the full attribute set. We prove a ﬁnite sample generalization theorems for this novel learning scheme that extends analogous results from the supervised learning setting. The scheme is demonstrated for collaborative ﬁltering of users with movies rating as attributes. 1
[1] A. K. Jain, M. N. Murty, and P. J. Flynn. Data clustering: a review. ACM Computing Surveys, 31(3):264–323, September 1999.
[2] T. M. Cover and J. A. Thomas. Elements Of Information Theory. Wiley Interscience, 1991.
[3] V. N. Vapnik. Statistical Learning Theory. Wiley, 1998.
[4] N. Tishby, F. Pereira, and W. Bialek. The information bottleneck method. Proc. 37th Allerton Conf. on Communication and Computation, 1999.
[5] M. Seeger. Learning with labeled and unlabeled data. Technical report, University of Edinburgh, 2002.
[6] M. Szummer and T. Jaakkola. Information regularization with partially labeled data. In NIPS, 2003.
[7] W. Hoeffding. Probability inequalities for sums of bounded random variables. Journal of the American Statistical Association, 58:13–30, 1963.
[8] E. Krupka and N. Tishby. Generalization in clustering with unobserved features. Technical report, Hebrew University, 2005. http://www.cs.huji.ac.il/~tishby/nips2005tr.pdf.
[9] L. Paninski. Estimation of entropy and mutual information. Neural Computation, 15:1101– 1253, 2003.
[10] B. Marlin. Collaborative ﬁltering: A machine learning perspective. Master’s thesis, University of Toronto, 2004. 1 Chinaberries are the fruits of the Melia azedarach tree, and are poisonous.


"Really?" The Branch Manager, aka Viking King, aka Scarry Big Guy looming over you, asks.
Yes! So much, really! you reply.
"Well then, a friend of Jessica's is a friend of mine. Let me help you up." The Branch Manager then reaches down and helps you to your feet. "Her locker is over there if you want to leave her a note." He says, pointing Westward.


Home
Project
Features
Success Stories
Sign Up
My Account
Dashboard
Create New Projects
Save
Campaign Name
Price
Short Description
What will backers get
Description


We're sorry but vue-popper doesn't work properly without JavaScript enabled. Please enable it to continue.


We meetup often across places in Delhi and would love to meet with someone interested like us !
Catch up in our next meetup


{% extends "base.html" %}
{% block content %}
{% load static %}
Here are your results for: {{input_hashtag}}
Use the button below to display all pulled Tweets or simply download the raw data as Excel file to work with it on your own.


Housing On Campus & Off Campus
Transfer Dorms
There is some space for transfer students in the transfer dorm on campus. Only transfer students that are freshmen or sophomores will be eligible for on campus housing. If you submit the separate on campus housing application with your College application, you will be notified upon acceptance if you have been given a spot in the transfer dorm. Otherwise, transfer students will have to seek off campus housing options.
Off Campus Housing
There are a lot of housing options surrounding the College campus. Students can find housing in apartment building or houses shared with other College students! Plus, most of the off campus housing is location on a College bus route.
Dorms for Freshmen & Sophomores
Undergraduate Freshmen and Sophomores are guaranteed a dorm room upon acceptance. There are eight undergraduate dorms on campus. Your acceptance letter will contain information about your assignment.


{% extends 'base.html' %} {% load static %} {% block title %}
Access to 2 members profile
Unable to send in app messages
GHC 0.00
SUBSCRIBEAccess to 6 members profile
30 messages limited
GHC 10.00
SUBSCRIBEAccess to unlimited members profile
Unlimited messages
GHC 60.00
SUBSCRIBE


The "Carpe Diem" themed works of Andrew Marvell and Robert Herrick.
"Carpe Diem" is a Latin phrase that translates as "seize the day", or, make the most out of the time we have, get up and do something, or, don't let life pass you by. Carpe Diem
is used by many authors to help convince the reader or, person to the work was addressed to, to go and do something while they still can. Here we focus on Andrew marvell and Robert
Herrick's use of Carpe Diem in their seduction poetry. Carpe Diem was used by both authors to convince various women to not be so reserved, and to enjoy their youth while they still
can. Click on the links on the navigation bar to check out their poetry.


That Never Fading Smile
That Never Fading Smile is a collaboration website between D & G Web Remedies and Friends. It is dedicated to the loving memory of Levon Thomas, a friend, son, brother, and cousin that left us much too soon. After losing our dear friend, we needed a space to continue to share the passion we all have for music and create a place where other music lovers such as ourselves, could share what they’re listing to, too.
1. Our Vision
What truly began as a form of self-expression and in many ways, a platform to mourn the loss of a loved one, quickly turned into an exciting and fun side project we are deeply passionate about. As music lovers inspired by sounds, riffs and lyrics of various genres from all around the world, we never imagined that this site would receive the response it has. Since we love finding and sharing new artists and song with our friends anyway, this site has also become a great source for visitors to discover cool new music. Check it out, Listen, Enjoy and always rock That Never Fading Smile
2. The Back End
That Never Fading Smile runs on Jekyll, a simple, blog-friendly, static site generator and accesses audio files directly from Soundcloud playlists handpicked and updated weekly.


TritonEd Website redesign is a two month project in which I, in conjunction with three other people, find problems with the current unfriendly website(shown below), conduct research to understand what users want and implement those changes.
I conducted many interviews and watched my subjects perform given tasks such as check assignment or check due date. We used Google Form to collect what was not so efficient in current website and I helped to write some of the questions to contextualize problems users had. This process proved to be very crucial as data we collected served to guide us in the design stage.
The final version is the result of relocation of features that emerged useful during interviews, integration of suggestions mentioned in the Google Form and beautification of interfaces originally on the website. I suggested that we should incorprate some mobile design scheme into our website design because users are becoming incresingly fammiliar with the mobile design language due to the excessive amount of exposure with mobile applications.
This idea was carried out with a three dash hidden menu at the top left corner. The menu contains some of the secondary functions which will get used but not so often. Also at the bottom right calender function, a pop-up displaying exams, quizes and due dates window will show up whenever hovering on a certain date. The main page is given full consideration and optimization for student usage and if adopted, will no doubt increase the efficiency on the page and reduce frustration.


Data preparation¶
Quantipy provides a number of convenience functions for working with your data. Many of these take advantage of Quantipy variable metadata and as such can manage, for example, the technical differences between single- and multiple-choice variables for you.
All of the functions detailed in this article can all be imported using the following statements:
>>> from quantipy.core.tools.dp.prep import(
... frange,
... recode,
... crosstab,
... frequency,
... get_index_mapper
... )
>>> from quantipy.core.tools.view.logic import (
... has_any, not_any, has_count,
... has_all, not_all, not_count,
... is_lt, is_eq, is_gt,
... is_le, is_ne, is_ge,
... union, intersection
... )
Data management¶
frange
¶
This function takes a string of abbreviated ranges, possibly delimited by a comma (or some other character) and extrapolates its full, unabbreviated list of ints.
Signature/Docstring¶
>>> def frange(range_def, sep=','):
... """
... Return the full, unabbreviated list of ints suggested by range_def.
...
... This function takes a string of abbreviated ranges, possibly
... delimited by a comma (or some other character) and extrapolates
... its full, unabbreviated list of ints.
...
... Parameters
... ----------
... range_def : str
... The range string to be listed in full.
... sep : str, default=','
... The character that should be used to delimit discrete entries in
... range_def.
...
... Returns
... -------
... res : list
... The exploded list of ints indicated by range_def.
... """
Basic range¶
>>> frange('1-5')
[1, 2, 3, 4, 5]
Range in reverse¶
>>> frange('15-11')
[15, 14, 13, 12, 11]
Combination¶
>>> frange('1-5,7,9,15-11')
[1, 2, 3, 4, 5, 7, 9, 15, 14, 13, 12, 11]
May include spaces for clarity¶
>>> frange('1-5, 7, 9, 15-11')
[1, 2, 3, 4, 5, 7, 9, 15, 14, 13, 12, 11]
recode
¶
This function takes a mapper of {key: logic}
entries and injects the
key into the target column where its paired logic is True. The logic
may be arbitrarily complex and may refer to any other variable or
variables in data. Where a pre-existing column has been used to
start the recode, the injected values can replace or be appended to
any data found there to begin with. Note that this function does
not edit the target column, it returns a recoded copy of the target
column. The recoded data will always comply with the column type
indicated for the target column according to the meta.
Signature/Docstring¶
>>> def recode(meta, data, target, mapper, default=None, append=False,
... intersect=None, initialize=None, fillna=None):
... """
... Return a recoded copy of the target column using the given mapper.
...
... This function takes a mapper of {key: logic} entries and injects the
... key into the target column where its paired logic is True. The logic
... may be arbitrarily complex and may refer to any other variable or
... variables in data. Where a pre-existing column has been used to
... start the recode, the injected values can replace or be appended to
... any data found there to begin with. Note that this function does
... not edit the target column, it returns a recoded copy of the target
... column. The recoded data will always comply with the column type
... indicated for the target column according to the meta.
...
... Parameters
... ----------
... meta : dict
... Quantipy meta document.
... data : pandas.DataFrame
... Data accompanying the given meta document.
... target : str
... The column name that is the target of the recode. If target
... is not found in meta['columns'] this will fail with an error.
... If target is not found in data.columns the recode will start
... from an empty series with the same index as data. If target
... is found in data.columns the recode will start from a copy
... of that column.
... mapper : dict
... A mapper of {key: logic} entries.
... default : str
... The column name to default to in cases where unattended lists
... are given in your logic, where an auto-transformation of
... {key: list} to {key: {default: list}} is provided. Note that
... lists in logical statements are themselves a form of shorthand
... and this will ultimately be interpreted as:
... {key: {default: has_any(list)}}.
... append : bool, default=False
... Should the new recodd data be appended to items already found
... in series? If False, data from series (where found) will
... overwrite whatever was found for that item in ds1 instead.
... intersect : logical statement, default=None
... If a logical statement is given here then it will be used as an
... implied intersection of all logical conditions given in the
... mapper.
... initialize : str or np.NaN, default=None
... If not None, a copy of the data named column will be used to
... populate the target column before the recode is performed.
... Alternatively, initialize can be used to populate the target
... column with np.NaNs (overwriting whatever may be there) prior
... to the recode.
... fillna : int, default=None
... If not None, the value passed to fillna will be used on the
... recoded series as per pandas.Series.fillna().
...
... Returns
... -------
... series : pandas.Series
... The series in which the recoded data will be stored and
... returned.
... """
target¶
target
controls which column meta should be used to control the
result of the recode operation. This is important because you cannot
recode multiple responses into a ‘single’-typed column.
The target
column must already exist in meta.
The recode
function is effectively a request to return a copy of
the target
column, recoded as instructed. recode
does not
edit the target
column in place, it returns a recoded copy of it.
If the target
column does not already exist in data
then a new
series, named accordingly and initialized with np.NaN
, will begin
the recode.
Return a recoded version of the column radio_stations_xb
edited
based on the given mapper:
>>> recoded = recode(
... meta, data,
... target='radio_stations_xb',
... mapper=mapper
... )
By dfault, recoded data resulting from the the mapper will replace any data already sitting in the target column (on a cell-by-cell basis).
mapper¶
A mapper is a dict of {value: logic}
entries where value represents
the data that will be injected for cases where the logic is True.
Here’s a simplified example of what a mapper looks like:
>>> mapper = {
... 1: logic_A,
... 2: logic_B,
... 3: logic_C,
... }
1 will be generated where logic_A
is True
, 2 where logic_B
is
True
and 3 where logic_C
is True
.
The recode function, by referencing the type indicated by the meta, will manage the complications involved in single vs delimited set data.
>>> mapper = {
... 901: {'radio_stations': frange('1-13')},
... 902: {'radio_stations': frange('14-20')},
... 903: {'radio_stations': frange('21-25')}
... }
This means: inject 901 if the column radio_stations
has any of the
values 1-13, 902 where radio_stations
has any of the values 14-20
and 903 where radio_stations
has any of the values 21-25.
default¶
If you had lots of values to generate from the same reference column
(say most/all of them were based on radio_stations
) then we can
omit the wildcard logic format and use recode’s default parameter.
>>> recoded = recode(
... meta, data,
... target='radio_stations_xb',
... mapper={
... 901: frange('1-13'),
... 902: frange('14-20'),
... 903: frange('21-25')
... },
... default='radio_stations'
... )
This means, all unkeyed logic will default to be keyed to
radio_stations
. In this case the three codes 901, 902 and 903 will
be generated based on the data found in radio_stations
.
You can combine this with reference to other columns, but you can only provide one default column.
>>> recoded = recode(
... meta, data,
... target='radio_stations_xb',
... mapper={
... 901: frange('1-13'),
... 902: frange('14-20'),
... 903: frange('21-25'),
... 904: {'age': frange('18-34')}
... },
... default='radio_stations'
... )
Given that logic can be arbitrarily complicated, mappers can be as well. You’ll see an example of a mapper that recodes a segmentation in Example 4, below.
append¶
If you want the recoded data to be appended to whatever may already be in the target column (this is only applicable for ‘delimited set’-typed columns), then you should use the append parameter.
>>> recoded = recode(
... meta, data,
... target='radio_stations_xb',
... mapper=mapper,
... append=True
... )
The precise behaviour of the append parameter can be seen in the following examples.
Given the following data:
>>> df['radio_stations_xb']
1 6;7;9;13;
2 97;
3 97;
4 13;16;18;
5 2;6;
Name: radio_stations_xb, dtype: object
We generate a recoded value of 901 if any of the values 1-13 are
found. With the default append=False
behaviour we will return the
following:
>>> target = 'radio_stations_xb'
>>> recode(meta, data, target, mapper)
1 901;
2 97;
3 97;
4 901;
5 901;
Name: radio_stations_xb, dtype: object
However, if we instead use append=True
, we will return the following:
>>> target = 'radio_stations_xb'
>>> recode(meta, data, target, mapper, append=True)
1 6;7;9;13;901;
2 97;
3 97;
4 13;16;18;901;
5 2;6;901;
Name: radio_stations_xb, dtype: object
intersect¶
One way to help simplify complex logical conditions, especially when
they are in some way repetitive, is to use intersect
, which
accepts any logical statement and forces every condition in the mapper
to become the intersection of both it and the intersect condition.
For example, we could limit our recode to males by giving a logical
condition to that effect to intersect
:
>>> recoded = recode(
... meta, data,
... target='radio_stations_xb',
... mapper={
... 901: frange('1-13'),
... 902: frange('14-20'),
... 903: frange('21-25'),
... 904: {'age': frange('18-34')}
... },
... default='radio_stations',
... intersect={'gender': [1]}
... )
initialize¶
You may also initialize
your copy of the target column as part of your
recode operation. You can initalize
with either np.NaN (to overwrite
anything that may already be there when your recode begins) or by naming
another column. When you name another column a copy of the data from that
column is used to initialize your recode.
 )
Example 1¶
Here’s an example of copying an existing question and recoding onto it a net code.
Create the new metadata:
>>> meta['columns']['radio_stations_xb'] = copy.copy(
... meta['columns']['radio_stations']
... )
>>> meta['columns']['radio_stations_xb']['values'].append(
... {
... "value": 901,
... "text": {"en-GB": "NET: Listened to radio in past 30 days"}
... }
... )
Initialize the new column. In this case we’re starting with a copy of
the radio_stations
column:
>>> data['radio_stations_xb'] = data['radio_stations'].copy()
Recode the new column by appending the code 901 to it as indicated by the mapper:
>>> data['radio_stations_xb'] = recode(
... meta, data,
... target='radio_stations_xb',
... mapper={
... 901: {'radio_stations': frange('1-23, 92, 94, 141')}
... },
... append=True
... )
Check the result:
>>> data[['radio_stations', 'radio_stations_xb']].head(20)
radio_stations radio_stations_cb
0 5; 5;901;
1 97; 97;
2 97; 97;
3 97; 97;
4 97; 97;
5 4; 4;901;
6 11; 11;901;
7 4; 4;901;
8 97; 97;
9 97; 97;
10 97; 97;
11 92; 92;901;
12 97; 97;
13 1;13;17; 1;13;17;901;
14 6; 6;901;
15 1;5;6;10; 1;5;6;10;901;
16 6; 6;901;
17 2;4;16; 2;4;16;901;
18 6;10; 6;10;901;
19 6; 6;901;
Example 2¶
Here’s an example where the value 1 is generated based on some logic and then all remaining cases are given the value 2 using the pandas.Series.fillna() method.
Create the new metadata
>>> meta['columns']['age_xb'] = {
... 'type': 'single',
... 'text': {'en-GB': 'Age'},
... 'values': [
... {'value': 1, 'text': {'en-GB': '16-25'}},
... {'value': 2, 'text': {'en-GB': 'Others'}}
... ]
... }
Initialize the new column:
>>> data['age_xb'] = np.NaN
Recode the new column:
>>> data['age_xb'] = recode(
... meta, data,
... target='age_xb',
... mapper={
... 1: {'age': frange('16-40')}
... }
... )
Fill all cases that are still empty with the value 2:
>>> data['age_xb'].fillna(2, inplace=True)
Check the result:
>>> data[['age', 'age_xb']].head(20)
age age_grp_rc
0 22 1
1 68 2
2 32 1
3 44 2
4 33 1
5 52 2
6 54 2
7 44 2
8 62 2
9 49 2
10 64 2
11 73 2
12 43 2
13 28 1
14 66 2
15 39 1
16 51 2
17 50 2
18 77 2
19 42 2
Example 3¶
Here’s a typical example of recoding age into custom bands.
In this case we’re using list comprehension to generate the first ten values objects and then concatenate that with a final ‘65+’ value object which doesn’t folow the same label format.
Create the new metadata:
>>> meta['columns']['age_xb_1'] = {
... 'type': 'single',
... 'text': {'en-GB': 'Age'},
... 'values': [
... {
... 'value': i,
... 'text': {'en-GB': '{}-{}'.format(r[0], r[1])}
... }
... for i, r in enumerate(
... [
... [18, 20],
... [21, 25], [26, 30],
... [31, 35], [36, 40],
... [41, 45], [46, 50],
... [51, 55], [56, 60],
... [61, 65]
... ],
... start=1
... )
... ] + [
... {
... 'value': 11,
... 'text': {'en-GB': '65+'}
... }
... ]
...  )
Check the result:
>>> data[['age', 'age_xb_1']].head(20)
age age_cb
0 22 2
1 68 11
2 32 4
3 44 6
4 33 4
5 52 8
6 54 8
7 44 6
8 62 10
9 49 7
10 64 10
11 73 11
12 43 6
13 28 3
14 66 11
15 39 5
16 51 8
17 50 7
18 77 11
19 42 6
Example 4¶
Here’s an example of using a complicated, nested series of logic statements to recode an obscure segmentation.
The segemenation was given with the following definition:
1 - Self-directed:
- If q1_1 in [1,2] and q1_2 in [1,2] and q1_3 in [3,4,5]
2 - Validators:
- If q1_1 in [1,2] and q1_2 in [1,2] and q1_3 in [1,2]
3 - Delegators:
- If (q1_1 in [3,4,5] and q1_2 in [3,4,5] and q1_3 in [1,2])
- Or (q1_1 in [3,4,5] and q1_2 in [1,2] and q1_3 in [1,2])
- Or (q1_1 in [1,2] and q1_2 in [3,4,5] and q1_3 in [1,2])
4 - Avoiders:
- If (q1_1 in [3,4,5] and q1_2 in [3,4,5] and q1_3 in [3,4,5])
- Or (q1_1 in [3,4,5] and q1_2 in [1,2] and q1_3 in [3,4,5])
- Or (q1_1 in [1,2] and q1_2 in [3,4,5] and q1_3 in [3,4,5])
5 - Others:
- Everyone else.
Create the new metadata:
>>> meta['columns']['segments'] = {
... 'type': 'single',
... 'text': {'en-GB': 'Segments'},
... 'values': [
... {'value': 1, 'text': {'en-GB': 'Self-directed'}},
... {'value': 2, 'text': {'en-GB': 'Validators'}},
... {'value': 3, 'text': {'en-GB': 'Delegators'}},
... {'value': 4, 'text': {'en-GB': 'Avoiders'}},
... {'value': 5, 'text': {'en-GB': 'Other'}},
... ]
... }
Initialize the new column?
>>> data['segments'] = np.NaN
Create the mapper separately, since it’s pretty massive!
 ])
... ])
... }
Recode the new column:
>>> data['segments'] = recode(
... meta, data,
... target='segments',
... mapper=mapper
... )
Note
Anything not at the top level of the mapper will not benefit from using
the default
parameter of the recode function. In this case, for example,
saying default='q1_1'
would not have helped. Everything in a nested level
of the mapper, including anything in a union
or intersection
list,
must use the explicit dict form {"q1_1": [1, 2]}
.
Fill all cases that are still empty with the value 5:
>>> data['segments'].fillna(5, inplace=True)
Check the result:
>>> data[['q1_1', 'q1_2', 'q1_3', 'segments']].head(20)
q1_1 q1_2 q1_3 segments
0 3 3 3 4
1 3 3 3 4
2 1 1 3 1
3 1 1 2 2
4 2 2 2 2
5 1 1 5 1
6 2 3 2 3
7 2 2 3 1
8 1 1 4 1
9 3 3 3 4
10 3 3 4 4
11 2 2 4 1
12 1 1 5 1
13 2 2 4 1
14 1 1 1 2
15 2 2 4 1
16 2 2 3 1
17 1 1 5 1
18 5 5 1 3
19 1 1 4 1
get_index_mapper
¶
This function converts a mapper in the form
{key: logic}
to a mapper in the form {key: index}
, where index is
the index needed to slice from data those cases for which logic
was True. This is very useful when checking complicated logic
statements, because it gives you access to the cases that result
from any logical statement.
Signature/Docstring¶
>>> def get_index_mapper(meta, data, mapper, default=None):
... """
... Convert a {value: logic} map to a {value: index} map.
...
... This function takes a mapper of {key: logic} entries and resolves
... the logic statements using the given meta/data to return a mapper
... of {key: index}. The indexes returned can be used on data to isolate
... the cases described by arbitrarily complex logical statements.
...
... Parameters
... ----------
... meta : dict
... Quantipy meta document.
... data : pandas.DataFrame
... Data accompanying the given meta document.
... mapper : dict
... A mapper of {key: logic}
... default : str
... The column name to default to in cases where unattended lists
... are given as logic, where an auto-transformation of {key: list}
... to {key: {default: list}} is provided.
...
... Returns
... -------
... index_mapper : dict
... A mapper of {key: index}
... """
Basic usage¶
The segmentation mapper that was generated in Example 4 of the article
explaining the recode
function is an example of a set of conditions
that are too complicated to check with a simple crosstab. In these
cases there’s no way around looking at the data selected by the
logical condition and interrogating it directly to confirm that the
statement has returned what you expect it to.

Here we’re able to verify that the index mapper is returning a slicer compatible with the logical statement indicated earlier.
Complex logic¶
We saw in recode
Example 4 how multiple conditions can be
combined using union
or intersection
. As demonstrated by that
example, recode mappers can be arbitrarily nested as long as they are
well-formed.
union
¶
union
takes a list of logical conditions that will be treated with
or logic.
Where any of logic_A, logic_B or logic_C are True
:
>>> union([logic_A, logic_B, logic_C])
intersection
¶
intersection
takes a list of conditions that will be
treated with and logic.
Where all of logic_A, logic_B and logic_C are True
:
>>> intersection([logic_A, logic_B, logic_C])
“list logic”¶
All of the value-conditions we’ve seen so far have used an implied or logic.
For example {"q1_1": [1, 2]}
is an example of list-logic, where [1, 2]
will be interpreted as has_any([1, 2])
, meaning if q1_1 has any of the
values 1 or 2.
q1_1
has any of the responses 1, 2 or 3:
>>> {"q1_1": [1, 2, 3]}
has_any
¶
q1_1
has any of the responses 1, 2 or 3:
>>> {"q1_1": has_any([1, 2, 3])}
q1_1
has any of the responses 1, 2 or 3 and no others:
>>> {"q1_1": has_any([1, 2, 3], exclusive=True)}
not_any
¶
q1_1
doesn’t have any of the responses 1, 2 or 3:
>>> {"q1_1": not_any([1, 2, 3])}
q1_1
doesn’t have any of the responses 1, 2 or 3 but has some others:
>>> {"q1_1": not_any([1, 2, 3], exclusive=True)}
has_all
¶
q1_1
has all of the responses 1, 2 and 3:
>>> {"q1_1": has_all([1, 2, 3])}
q1_1
has all of the responses 1, 2 and 3 and no others:
>>> {"q1_1": has_all([1, 2, 3], exclusive=True)}
not_all
¶
q1_1
doesn’t have all of the responses 1, 2 and 3:
>>> {"q1_1": not_all([1, 2, 3])}
q1_1
doesn’t have all of the responses 1, 2 and 3 but has some others:
>>> {"q1_1": not_all([1, 2, 3], exclusive=True)}
has_count
¶
q1_1
has exactly 2 responses:
>>> {"q1_1": has_count(2)}
q1_1
has 1, 2 or 3 responses:
>>> {"q1_1": has_count([1, 3])}
q1_1
has 1 or more responses:
>>> {"q1_1": has_count([is_ge(1)])}
q1_1
has 1, 2 or 3 responses from the response group 5, 6, 7, 8 or 9:
>>> {"q1_1": has_count([1, 3, [5, 6, 7, 8, 9]])}
q1_1
has 1 or more responses from the response group 5, 6, 7, 8 or 9:
>>> {"q1_1": has_count([is_ge(1), [5, 6, 7, 8, 9]])}
not_count
¶
q1_1
doesn’t have exactly 2 responses:
>>> {"q1_1": not_count(2)}
q1_1
doesn’t have 1, 2 or 3 responses:
>>> {"q1_1": not_count([1, 3])}
q1_1
doesn’t have 1 or more responses:
>>> {"q1_1": not_count([is_ge(1)])}
q1_1
doesn’t have 1, 2 or 3 responses from the response group 5, 6, 7, 8 or 9:
>>> {"q1_1": not_count([1, 3, [5, 6, 7, 8, 9]])}
q1_1
doesn’t have 1 or more responses from the response group 5, 6, 7, 8 or 9:
>>> {"q1_1": not_count([is_ge(1), [5, 6, 7, 8, 9]])}
Instant aggregations¶
crosstab
¶
This function uses the given meta and data to create a type-appropriate cross-tabulation (pivot table) of the named x and y variables. The result may be either counts or column percentages, weighted or unweighted.
Signature/Docstring¶
>>> def crosstab(meta, data, x, y, get='count', decimals=1):
... """
... Return a type-appropriate crosstab of x and y.
...
... This function uses the given meta and data to create a
... type-appropriate cross-tabulation (pivot table) of the named x and y
... variables. The result may be either counts or column percentages,
... weighted or unweighted.
...
... Parameters
... ----------
... meta : dict
... Quantipy meta document.
... data : pandas.DataFrame
... Data accompanying the given meta document.
... x : str
... The variable that should be placed into the x-position.
... y : str
... The variable that should be placed into the y-position.
... get : str, default='count'
... Control the type of data that is returned. 'count' will return
... absolute counts and 'normalize' will return column percentages.
... decimals : int, default=1
... Control the number of decimals in the returned dataframe.
... weight : str, default=None
... The name of the weight variable that should be used on the data,
... if any.
...
... Returns
... -------
... df : pandas.DataFrame
... The crosstab as a pandas DataFrame.
... """
Setup¶
Assuming the following recode:
>>> meta['columns']['qqincome_xb'] = copy.copy(meta['columns']['qincome'])
>>> meta['columns']['qincome_xb']['type'] = 'delimited set'
>>> meta['columns']['qincome_xb']['values'].extend([
... {"value": 901, "text": {"en-GB": "Under £20k (Income group 1)"}},
... {"value": 902, "text": {"en-GB": "£20,000 to £50,000 (Income group 2)"}},
... {"value": 903, "text": {"en-GB": "£50,001 + (Income group 3)"}}
... ])
>>> data['qincome_xb'] = np.NaN
>>> data['qincome_xb'] = recode(
... meta, data,
... target='qincome_xb',
... mapper={
... 901: [1],
... 902: frange('2-7'),
... 903: [8, 9, 10]
... },
... default='qincome',
... append=True
... )
Counts¶
You would normally generate a checking pivot between ‘qincome’ and your newly recoded ‘qincome_xb’.
>>> crosstab(
... meta, data,
... x='qincome',
... y='qincome_xb'
... )
Question qincome_xb
Values All 1 2 3 4 5 6 7 8 9 10 11 12 901 902 903
Question Values
qincome All 2111 427 206 189 146 122 104 92 69 60 232 111 353 427 859 361
1 427 427 0 0 0 0 0 0 0 0 0 0 0 427 0 0
2 206 0 206 0 0 0 0 0 0 0 0 0 0 0 206 0
3 189 0 0 189 0 0 0 0 0 0 0 0 0 0 189 0
4 146 0 0 0 146 0 0 0 0 0 0 0 0 0 146 0
5 122 0 0 0 0 122 0 0 0 0 0 0 0 0 122 0
6 104 0 0 0 0 0 104 0 0 0 0 0 0 0 104 0
7 92 0 0 0 0 0 0 92 0 0 0 0 0 0 92 0
8 69 0 0 0 0 0 0 0 69 0 0 0 0 0 0 69
9 60 0 0 0 0 0 0 0 0 60 0 0 0 0 0 60
10 232 0 0 0 0 0 0 0 0 0 232 0 0 0 0 232
11 111 0 0 0 0 0 0 0 0 0 0 111 0 0 0 0
12 353 0 0 0 0 0 0 0 0 0 0 0 353 0 0 0
Percentages¶
You can also request a normalized pivot (using column percentages) in the following way:
>>> crosstab(
... meta, data,
... x='qincome',
... y='qincome_xb',
... get='normalize'
... )
Question qincome_xb
Values All 1 2 3 4 5 6 7 8 9 10 11 12 901 902 903
Question Values
qincome All 100.0 100 100 100 100 100 100 100 100 100 100 100 100 100 100.0 100.0
1 20.2 100 0 0 0 0 0 0 0 0 0 0 0 100 0.0 0.0
2 9.8 0 100 0 0 0 0 0 0 0 0 0 0 0 24.0 0.0
3 9.0 0 0 100 0 0 0 0 0 0 0 0 0 0 22.0 0.0
4 6.9 0 0 0 100 0 0 0 0 0 0 0 0 0 17.0 0.0
5 5.8 0 0 0 0 100 0 0 0 0 0 0 0 0 14.2 0.0
6 4.9 0 0 0 0 0 100 0 0 0 0 0 0 0 12.1 0.0
7 4.4 0 0 0 0 0 0 100 0 0 0 0 0 0 10.7 0.0
8 3.3 0 0 0 0 0 0 0 100 0 0 0 0 0 0.0 19.1
9 2.8 0 0 0 0 0 0 0 0 100 0 0 0 0 0.0 16.6
10 11.0 0 0 0 0 0 0 0 0 0 100 0 0 0 0.0 64.3
11 5.3 0 0 0 0 0 0 0 0 0 0 100 0 0 0.0 0.0
12 16.7 0 0 0 0 0 0 0 0 0 0 0 100 0 0.0 0.0
Controlling decimals¶
And you can control the number of decimals that return to you (the default being one) using the decimals parameter:
>>> crosstab(
... meta, data,
... x='qincome',
... y='qincome_xb',
... get='normalize',
... decimals=3
... )
Question qincome_xb
Values All 1 2 3 4 5 6 7 8 9 10 11 12 901 902 903
Question Values
qincome All 100.000 100 100 100 100 100 100 100 100 100 100 100 100 100 100.000 100.000
1 20.227 100 0 0 0 0 0 0 0 0 0 0 0 100 0.000 0.000
2 9.758 0 100 0 0 0 0 0 0 0 0 0 0 0 23.981 0.000
3 8.953 0 0 100 0 0 0 0 0 0 0 0 0 0 22.002 0.000
4 6.916 0 0 0 100 0 0 0 0 0 0 0 0 0 16.997 0.000
5 5.779 0 0 0 0 100 0 0 0 0 0 0 0 0 14.203 0.000
6 4.927 0 0 0 0 0 100 0 0 0 0 0 0 0 12.107 0.000
7 4.358 0 0 0 0 0 0 100 0 0 0 0 0 0 10.710 0.000
8 3.269 0 0 0 0 0 0 0 100 0 0 0 0 0 0.000 19.114
9 2.842 0 0 0 0 0 0 0 0 100 0 0 0 0 0.000 16.620
10 10.990 0 0 0 0 0 0 0 0 0 100 0 0 0 0.000 64.266
11 5.258 0 0 0 0 0 0 0 0 0 0 100 0 0 0.000 0.000
12 16.722 0 0 0 0 0 0 0 0 0 0 0 100 0 0.000 0.000
Weighted results¶
You can also return any of these variations weighted by naming a weight variable with the weight parameter:
>>> crosstab(
... meta, data,
... x='qincome',
... y='qincome_xb',
... get='count',
... decimals=2,
... weight='weights_UK18'
... )
Question qincome_xb
Values All 1 2 3 4 5 6 7 8 9 10 11 12 901 902 903
Question Values
qincome All 2078.00 448.3 214.24 189 147.55 121.93 107.93 85.48 56.81 53.31 209.15 104.41 339.9 448.3 866.13 319.27
1 448.30 448.3 0.00 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0 448.3 0.00 0.00
2 214.24 0.0 214.24 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0.0 214.24 0.00
3 189.00 0.0 0.00 189 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0.0 189.00 0.00
4 147.55 0.0 0.00 0 147.55 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0.0 147.55 0.00
5 121.93 0.0 0.00 0 0.00 121.93 0.00 0.00 0.00 0.00 0.00 0.00 0.0 0.0 121.93 0.00
6 107.93 0.0 0.00 0 0.00 0.00 107.93 0.00 0.00 0.00 0.00 0.00 0.0 0.0 107.93 0.00
7 85.48 0.0 0.00 0 0.00 0.00 0.00 85.48 0.00 0.00 0.00 0.00 0.0 0.0 85.48 0.00
8 56.81 0.0 0.00 0 0.00 0.00 0.00 0.00 56.81 0.00 0.00 0.00 0.0 0.0 0.00 56.81
9 53.31 0.0 0.00 0 0.00 0.00 0.00 0.00 0.00 53.31 0.00 0.00 0.0 0.0 0.00 53.31
10 209.15 0.0 0.00 0 0.00 0.00 0.00 0.00 0.00 0.00 209.15 0.00 0.0 0.0 0.00 209.15
11 104.41 0.0 0.00 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 104.41 0.0 0.0 0.00 0.00
12 339.90 0.0 0.00 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 339.9 0.0 0.00 0.00
frequency
¶
This function uses the given meta and data to create a type-appropriate frequency table of the named x variable. The result may be either counts or column percentages, weighted or unweighted.
Signature/Docstring¶
>>> def frequency(meta, data, x, **kwargs):
... """
... Return a type-appropriate frequency of x.
...
... This function uses the given meta and data to create a
... type-appropriate frequency table of the named x variable.
... The result may be either counts or column percentages, weighted
... or unweighted.
...
... Parameters
... ----------
... meta : dict
... Quantipy meta document.
... data : pandas.DataFrame
... Data accompanying the given meta document.
... x : str
... The variable that should be placed into the x-position.
... kwargs : kwargs
... All remaining keyword arguments will be passed along to the
... crosstab function.
...
... Returns
... -------
... f : pandas.DataFrame
... The frequency as a pandas DataFrame.
... """
Setup¶
Internally the frequency function automates the crosstab function, so based on the same recode example given in the crosstab article.
Assuming the following recode:
>>> meta['columns']['qincome_xb'] = copy.copy(meta['columns']['qincome'])
>>> meta['columns']['qincome_xb']['type'] = 'delimited set'
>>> meta['columns']['qincome_xb']['values'].extend([
... {"value": 901, "text": {"en-GB": "Under £20k (Income group 1)"}},
... {"value": 902, "text": {"en-GB": "£20,000 to £50,000 (Income group 2)"}},
... {"value": 903, "text": {"en-GB": "£50,001 + (Income group 3)"}}
... ])
>>> data['qincome_xb'] = np.NaN
>>> data['qincome_xb'] = recode(
... meta, data,
... target='qincome_xb',
... mapper={
... 901: [1],
... 902: frange('2-7'),
... 903: [8, 9, 10]
... },
... default='qincome',
... append=True
... )
Counts¶
>>> frequency(meta, data, 'qincome_xb')
Question qincome_xb
Values @
Question Values
qincome_xb All 2111
1 427
2 206
3 189
4 146
5 122
6 104
7 92
8 69
9 60
10 232
11 111
12 353
901 427
902 859
903 361
Percentages¶
>>> frequency(meta, data, 'qincome_xb', get='normalize')
Question qincome_xb
Values @
Question Values
qincome_xb All 100.0
1 20.2
2 9.8
3 9.0
4 6.9
5 5.8
6 4.9
7 4.4
8 3.3
9 2.8
10 11.0
11 5.3
12 16.7
901 20.2
902 40.7
903 17.1
Controlling decimals¶
>>> frequency(meta, data, 'qincome_xb', get='normalize', decimals=3)
Question qincome_xb
Values @
Question Values
qincome_xb All 100.000
1 20.227
2 9.758
3 8.953
4 6.916
5 5.779
6 4.927
7 4.358
8 3.269
9 2.842
10 10.990
11 5.258
12 16.722
901 20.227
902 40.692
903 17.101
Weighted results¶
>>> frequency(meta, data, 'qincome_xb', decimals=2, weight='weights_UK18')
Question qincome_xb
Values @
Question Values
qincome_xb All 2078.00
1 448.30
2 214.24
3 189.00
4 147.55
5 121.93
6 107.93
7 85.48
8 56.81
9 53.31
10 209.15
11 104.41
12 339.90
901 448.30
902 866.13
903 319.27
Rules¶
Rules are ways by which you can control how an aggregation is returned to you. There are three ways in which this can be done:
- Selecting values to be retained and in what order
- Sorting values along one of their vectors
- Selecting values to be dropped
These rules can be applied to either the x
of a frequency
or the
x
and/or y
of a crosstab.
Structure¶
rules
is an optional object you can provide to any column object
in your meta. The rules
object is a dict with x
and y
keys
for axis-specific application.
Below the x
and y
keys in the rules
object can be
instructions under the following keys:
slicex
: Selecting values to be retained and in what ordersortx
: Sorting values along one of their vectorsdropx
: Selecting values to be dropped
Internally these three rule objects results in a call to functions of the same name. The contents of each becomes that function call’s kwargs.
Note
Despite the x
in slicex
, sortx
and dropx
, rules can
be applied to either the x
or y
axes of an aggregation. The
naming convention refers to the fact that these operations are only
performed on the x
axis of their receieved dataframe
. However,
internally, when a y
rule is being applied, the dataframe
is
simply transposed for the duration of the rule’s application.
slicex
¶
Assuming a Quantipy-style view result this function takes an index slice of df as indicated by values and returns the result.
Signature/Docstring¶
>>> def slicex(df, values, keep_margins=True):
... """
... Return an index-wise slice of df, keeping margins if desired.
...
... Assuming a Quantipy-style view result this function takes an index
... slice of df as indicated by values and returns the result.
...
... Parameters
... ----------
... df : pandas.DataFrame
... The dataframe that should be sliced along the index.
... values : list-like
... A list of index values that should be sliced from df.
... keep_margins : bool, default=True
... If True and the margins index row exists, it will be kept.
...
... Returns
... -------
... df : list
... The sliced dataframe.
... """
Given the following crosstab
:
>>> crosstab(meta, data, 'qincome', 'qincome_cb')
Question qincome_cb
Values All 1 2 3 4 5 6 7 8 9 10 11 12 901 902 903
Question Values
qincome All 2078 425 204 187 146 119 103 89 68 59 226 101 351 425 848 353
1 425 425 0 0 0 0 0 0 0 0 0 0 0 425 0 0
2 204 0 204 0 0 0 0 0 0 0 0 0 0 0 204 0
3 187 0 0 187 0 0 0 0 0 0 0 0 0 0 187 0
4 146 0 0 0 146 0 0 0 0 0 0 0 0 0 146 0
5 119 0 0 0 0 119 0 0 0 0 0 0 0 0 119 0
6 103 0 0 0 0 0 103 0 0 0 0 0 0 0 103 0
7 89 0 0 0 0 0 0 89 0 0 0 0 0 0 89 0
8 68 0 0 0 0 0 0 0 68 0 0 0 0 0 0 68
9 59 0 0 0 0 0 0 0 0 59 0 0 0 0 0 59
10 226 0 0 0 0 0 0 0 0 0 226 0 0 0 0 226
11 101 0 0 0 0 0 0 0 0 0 0 101 0 0 0 0
12 351 0 0 0 0 0 0 0 0 0 0 0 351 0 0 0
Set up the slicex
rules
:
>>> meta['columns']['qincome']['rules'] = {
... 'x': {'slicex': {'values': [1, 3, 5, 7, 9, 11]}}
... }
>>> meta['columns']['qincome_cb']['rules'] = {
... 'y': {'slicex': {'values': [12, 10, 4, 6, 2, 901, 902, 903]}}
... }
Apply the rules
using crosstab
:
>>> crosstab(meta, data, 'qincome', 'qincome_cb', rules=True)
Question qincome_cb
Values All 12 10 4 6 2 901 902 903
Question Values
qincome All 2078 351 226 146 103 204 425 848 353
1 425 0 0 0 0 0 425 0 0
3 187 0 0 0 0 0 0 187 0
5 119 0 0 0 0 0 0 119 0
7 89 0 0 0 0 0 0 89 0
9 59 0 0 0 0 0 0 0 59
11 101 0 0 0 0 0 0 0 0
>>> crosstab(meta, data, 'qincome', 'qincome_cb', rules=['x'])
Question qincome_cb
Values All 1 2 3 4 5 6 7 8 9 10 11 12 901 902 903
Question Values
qincome All 2078 425 204 187 146 119 103 89 68 59 226 101 351 425 848 353
1 425 425 0 0 0 0 0 0 0 0 0 0 0 425 0 0
3 187 0 0 187 0 0 0 0 0 0 0 0 0 0 187 0
5 119 0 0 0 0 119 0 0 0 0 0 0 0 0 119 0
7 89 0 0 0 0 0 0 89 0 0 0 0 0 0 89 0
9 59 0 0 0 0 0 0 0 0 59 0 0 0 0 0 59
11 101 0 0 0 0 0 0 0 0 0 0 101 0 0 0 0
>>> crosstab(meta, data, 'qincome', 'qincome_cb', rules=['y'])
Question qincome_cb
Values All 12 10 4 6 2 901 902 903
Question Values
qincome All 2078 351 226 146 103 204 425 848 353
1 425 0 0 0 0 0 425 0 0
2 204 0 0 0 0 204 0 204 0
3 187 0 0 0 0 0 0 187 0
4 146 0 0 146 0 0 0 146 0
5 119 0 0 0 0 0 0 119 0
6 103 0 0 0 103 0 0 103 0
7 89 0 0 0 0 0 0 89 0
8 68 0 0 0 0 0 0 0 68
9 59 0 0 0 0 0 0 0 59
10 226 0 226 0 0 0 0 0 226
11 101 0 0 0 0 0 0 0 0
12 351 351 0 0 0 0 0 0 0
sortx
¶
This function sorts df, which is assumed to be a Quantipy-style view result with appropriate index/column structure, using a given column, while maintaining the position of margins if they exist, and also optionally fixing certain values at the bottom of the result without sorting them. Note that nested variable view results are not yet supported.
Signature/Docstring¶
>>> def sortx(df, sort_on='@', ascending=False, fixed=None, with_weight='auto'):
... """
... Sort the index of df on a column, keeping margins and fixing values.
...
... This function sorts df, which is assumed to be a Quantipy-style
... view result with appropriate index/column structure, using
... a given column, while maintaining the position of margins if
... they exist, and also optionally fixing certain values at the
... bottom of the result without sorting them. Note that nested
... variable view results are not yet supported.
...
... Parameters
... ----------
... df : pandas.DataFrame
... The Quantipy-style view result to be sorted
... sort_on : str or int, default='@'
... The column (on the innermost level of the column's
... MultiIndex) on which to sort. By default sorting will be
... based on the unfiltered frequency of the x variable. No
... other sorting targets are currently supported.
... ascending : bool, default=False
... Sort ascending vs. descending. Default descending for
... easier application to MR use cases.
... fixed : list-like, default=None
... A list of index values that should appear underneath
... the sorted index values.
... with_weight : None or str, default='auto'
... If not 'auto' this is name of the weight that is being used for
... the sort. 'auto' means that the same weight used in the original
... computation is also used in the sort, but this argument provides
... the ability to sort a computation done with one weight (or None)
... on the results of another weight (or None).
...
... Returns
... -------
... df : pandas.DataFrame
... The sorted df.
... """
Given the following crosstab
:
>>> crosstab(meta, data, 'qincome', 'qincome_cb')
Question qincome_cb
Values All 1 2 3 4 5 6 7 8 9 10 11 12 901 902 903
Question Values
qincome All 2078 425 204 187 146 119 103 89 68 59 226 101 351 425 848 353
1 425 425 0 0 0 0 0 0 0 0 0 0 0 425 0 0
2 204 0 204 0 0 0 0 0 0 0 0 0 0 0 204 0
3 187 0 0 187 0 0 0 0 0 0 0 0 0 0 187 0
4 146 0 0 0 146 0 0 0 0 0 0 0 0 0 146 0
5 119 0 0 0 0 119 0 0 0 0 0 0 0 0 119 0
6 103 0 0 0 0 0 103 0 0 0 0 0 0 0 103 0
7 89 0 0 0 0 0 0 89 0 0 0 0 0 0 89 0
8 68 0 0 0 0 0 0 0 68 0 0 0 0 0 0 68
9 59 0 0 0 0 0 0 0 0 59 0 0 0 0 0 59
10 226 0 0 0 0 0 0 0 0 0 226 0 0 0 0 226
11 101 0 0 0 0 0 0 0 0 0 0 101 0 0 0 0
12 351 0 0 0 0 0 0 0 0 0 0 0 351 0 0 0
Set up the sortx
rules
:
>>> meta['columns']['AMA_qqincome']['rules'] = {
... 'x': {'sortx': {'fixed': [1, 12, 10, 11]}}
... }
>>> meta['columns']['AMA_qqincome_cb']['rules'] = {
... 'y': {'sortx': {'fixed': [901, 902, 903], 'ascending': True}}
... }
Apply the rules
using crosstab
:
>>> crosstab(meta, data, 'qincome', 'qincome_cb', rules=True)
Question qincome_cb
Values All 9 8 7 11 6 5 4 3 2 10 12 1 901 902 903
Question Values
qincome All 2078 59 68 89 101 103 119 146 187 204 226 351 425 425 848 353
2 204 0 0 0 0 0 0 0 0 204 0 0 0 0 204 0
3 187 0 0 0 0 0 0 0 187 0 0 0 0 0 187 0
4 146 0 0 0 0 0 0 146 0 0 0 0 0 0 146 0
5 119 0 0 0 0 0 119 0 0 0 0 0 0 0 119 0
6 103 0 0 0 0 103 0 0 0 0 0 0 0 0 103 0
7 89 0 0 89 0 0 0 0 0 0 0 0 0 0 89 0
8 68 0 68 0 0 0 0 0 0 0 0 0 0 0 0 68
9 59 59 0 0 0 0 0 0 0 0 0 0 0 0 0 59
1 425 0 0 0 0 0 0 0 0 0 0 0 425 425 0 0
12 351 0 0 0 0 0 0 0 0 0 0 351 0 0 0 0
10 226 0 0 0 0 0 0 0 0 0 226 0 0 0 0 226
11 101 0 0 0 101 0 0 0 0 0 0 0 0 0 0 0
>>> crosstab(meta, data, 'qincome', 'qincome_cb', rules=['x'])
Question qincome_cb
Values All 1 2 3 4 5 6 7 8 9 10 11 12 901 902 903
Question Values
qincome All 2078 425 204 187 146 119 103 89 68 59 226 101 351 425 848 353
2 204 0 204 0 0 0 0 0 0 0 0 0 0 0 204 0
3 187 0 0 187 0 0 0 0 0 0 0 0 0 0 187 0
4 146 0 0 0 146 0 0 0 0 0 0 0 0 0 146 0
5 119 0 0 0 0 119 0 0 0 0 0 0 0 0 119 0
6 103 0 0 0 0 0 103 0 0 0 0 0 0 0 103 0
7 89 0 0 0 0 0 0 89 0 0 0 0 0 0 89 0
8 68 0 0 0 0 0 0 0 68 0 0 0 0 0 0 68
9 59 0 0 0 0 0 0 0 0 59 0 0 0 0 0 59
1 425 425 0 0 0 0 0 0 0 0 0 0 0 425 0 0
12 351 0 0 0 0 0 0 0 0 0 0 0 351 0 0 0
10 226 0 0 0 0 0 0 0 0 0 226 0 0 0 0 226
11 101 0 0 0 0 0 0 0 0 0 0 101 0 0 0 0
>>> crosstab(meta, data, 'qincome', 'qincome_cb', rules=['y'])
Question qincome_cb
Values All 9 8 7 11 6 5 4 3 2 10 12 1 901 902 903
Question Values
qincome All 2078 59 68 89 101 103 119 146 187 204 226 351 425 425 848 353
1 425 0 0 0 0 0 0 0 0 0 0 0 425 425 0 0
2 204 0 0 0 0 0 0 0 0 204 0 0 0 0 204 0
3 187 0 0 0 0 0 0 0 187 0 0 0 0 0 187 0
4 146 0 0 0 0 0 0 146 0 0 0 0 0 0 146 0
5 119 0 0 0 0 0 119 0 0 0 0 0 0 0 119 0
6 103 0 0 0 0 103 0 0 0 0 0 0 0 0 103 0
7 89 0 0 89 0 0 0 0 0 0 0 0 0 0 89 0
8 68 0 68 0 0 0 0 0 0 0 0 0 0 0 0 68
9 59 59 0 0 0 0 0 0 0 0 0 0 0 0 0 59
10 226 0 0 0 0 0 0 0 0 0 226 0 0 0 0 226
11 101 0 0 0 101 0 0 0 0 0 0 0 0 0 0 0
12 351 0 0 0 0 0 0 0 0 0 0 351 0 0 0 0
Note
When generating chains it may be necessary to sometimes sort views computed
using one weight variable (or none at all) by the results of the same column
weighted with another weight variable (or none at all). An example of this
would be when you’re showing both weighted and unweighted column bases and
you need to apply column-wise sorting to your chains. In this case you will
need to make sure that you use the with_weight
parameter when sorting
to make sure that ALL sorted results will be sorted exactly the same way,
regardless of their individual results based on their weight.
dropx
¶
Assuming a Quantipy-style view result this function drops index rows indicated by values and returns the result.
Signature/Docstring¶
>>> def dropx(df, values):
... """
... Return df after dropping values from the index.
...
... Assuming a Quantipy-style view result this function drops index
... rows indicated by values and returns the result.
...
... Parameters
... ----------
... df : pandas.DataFrame
... The dataframe that should have some index rows dropped.
... values : list-like
... A list of index values that should be dropped from the index.
...
... Returns
... -------
... df : list
... The edited dataframe.
... """
Given the following crosstab
:
>>> crosstab(meta, data, 'qincome', 'qincome_cb')
Question qincome_cb
Values All 1 2 3 4 5 6 7 8 9 10 11 12 901 902 903
Question Values
qincome All 2078 425 204 187 146 119 103 89 68 59 226 101 351 425 848 353
1 425 425 0 0 0 0 0 0 0 0 0 0 0 425 0 0
2 204 0 204 0 0 0 0 0 0 0 0 0 0 0 204 0
3 187 0 0 187 0 0 0 0 0 0 0 0 0 0 187 0
4 146 0 0 0 146 0 0 0 0 0 0 0 0 0 146 0
5 119 0 0 0 0 119 0 0 0 0 0 0 0 0 119 0
6 103 0 0 0 0 0 103 0 0 0 0 0 0 0 103 0
7 89 0 0 0 0 0 0 89 0 0 0 0 0 0 89 0
8 68 0 0 0 0 0 0 0 68 0 0 0 0 0 0 68
9 59 0 0 0 0 0 0 0 0 59 0 0 0 0 0 59
10 226 0 0 0 0 0 0 0 0 0 226 0 0 0 0 226
11 101 0 0 0 0 0 0 0 0 0 0 101 0 0 0 0
12 351 0 0 0 0 0 0 0 0 0 0 0 351 0 0 0
Set up the dropx
rules
:
>>> meta['columns']['AMA_qqincome']['rules'] = {
... 'x': {'dropx': {'values': [1, 3, 5, 7, 9, 11]}}
... }
>>> meta['columns']['AMA_qqincome_cb']['rules'] = {
... 'y': {'dropx': {'values': [12, 10, 4, 6, 2, 901, 902, 903]}}
... }
Apply the rules
using crosstab
:
>>> crosstab(meta, data, 'qincome', 'qincome_cb', rules=True)
Question qincome_cb
Values All 1 3 5 7 8 9 11
Question Values
qincome All 2078 425 187 119 89 68 59 101
2 204 0 0 0 0 0 0 0
4 146 0 0 0 0 0 0 0
6 103 0 0 0 0 0 0 0
8 68 0 0 0 0 68 0 0
10 226 0 0 0 0 0 0 0
12 351 0 0 0 0 0 0 0
>>> crosstab(meta, data, 'qincome', 'qincome_cb', rules=['x'])
Question qincome_cb
Values All 1 2 3 4 5 6 7 8 9 10 11 12 901 902 903
Question Values
qincome All 2078 425 204 187 146 119 103 89 68 59 226 101 351 425 848 353
2 204 0 204 0 0 0 0 0 0 0 0 0 0 0 204 0
4 146 0 0 0 146 0 0 0 0 0 0 0 0 0 146 0
6 103 0 0 0 0 0 103 0 0 0 0 0 0 0 103 0
8 68 0 0 0 0 0 0 0 68 0 0 0 0 0 0 68
10 226 0 0 0 0 0 0 0 0 0 226 0 0 0 0 226
12 351 0 0 0 0 0 0 0 0 0 0 0 351 0 0 0
>>> crosstab(meta, data, 'qincome', 'qincome_cb', rules=['y'])
Question qincome_cb
Values All 1 3 5 7 8 9 11
Question Values
qincome All 2078 425 187 119 89 68 59 101
1 425 425 0 0 0 0 0 0
2 204 0 0 0 0 0 0 0
3 187 0 187 0 0 0 0 0
4 146 0 0 0 0 0 0 0
5 119 0 0 119 0 0 0 0
6 103 0 0 0 0 0 0 0
7 89 0 0 0 89 0 0 0
8 68 0 0 0 0 68 0 0
9 59 0 0 0 0 0 59 0
10 226 0 0 0 0 0 0 0
11 101 0 0 0 0 0 0 101
12 351 0 0 0 0 0 0 0
Combinations¶
Any or all of these rules can be used in combination with each other.
Given the following crosstab
:
>>> crosstab(meta, data, 'qincome', 'qincome_cb')
Question qincome_cb
Values All 1 2 3 4 5 6 7 8 9 10 11 12 901 902 903
Question Values
qincome All 2078 425 204 187 146 119 103 89 68 59 226 101 351 425 848 353
1 425 425 0 0 0 0 0 0 0 0 0 0 0 425 0 0
2 204 0 204 0 0 0 0 0 0 0 0 0 0 0 204 0
3 187 0 0 187 0 0 0 0 0 0 0 0 0 0 187 0
4 146 0 0 0 146 0 0 0 0 0 0 0 0 0 146 0
5 119 0 0 0 0 119 0 0 0 0 0 0 0 0 119 0
6 103 0 0 0 0 0 103 0 0 0 0 0 0 0 103 0
7 89 0 0 0 0 0 0 89 0 0 0 0 0 0 89 0
8 68 0 0 0 0 0 0 0 68 0 0 0 0 0 0 68
9 59 0 0 0 0 0 0 0 0 59 0 0 0 0 0 59
10 226 0 0 0 0 0 0 0 0 0 226 0 0 0 0 226
11 101 0 0 0 0 0 0 0 0 0 0 101 0 0 0 0
12 351 0 0 0 0 0 0 0 0 0 0 0 351 0 0 0
Set up the rules
:
>>> meta['columns']['AMA_qqincome']['rules'] = {
'x': {
'slicex': {'values': [1, 3, 5, 7, 9, 11]},
'sortx': {'fixed': [7]},
'dropx': {'values': [9, 11]}
}
}
>>> meta['columns']['AMA_qqincome_cb']['rules'] = {
'y': {
'slicex': {'values': [12, 10, 4, 6, 2, 901, 902, 903]},
'sortx': {'fixed': [901, 902, 903], 'ascending': True},
'dropx': {'values': [10]}
}
}
Apply the rules
using crosstab
:
>>> crosstab(meta, data, 'qincome', 'qincome_cb', rules=True)
Question qincome_cb
Values All 6 4 2 12 901 902 903
Question Values
qincome All 2078 103 146 204 351 425 848 353
1 425 0 0 0 0 425 0 0
3 187 0 0 0 0 0 187 0
5 119 0 0 0 0 0 119 0
7 89 0 0 0 0 0 89 0
>>> crosstab(meta, data, 'qincome', 'qincome_cb', rules=['x'])
Question qincome_cb
Values All 1 2 3 4 5 6 7 8 9 10 11 12 901 902 903
Question Values
qincome All 2078 425 204 187 146 119 103 89 68 59 226 101 351 425 848 353
1 425 425 0 0 0 0 0 0 0 0 0 0 0 425 0 0
3 187 0 0 187 0 0 0 0 0 0 0 0 0 0 187 0
5 119 0 0 0 0 119 0 0 0 0 0 0 0 0 119 0
7 89 0 0 0 0 0 0 89 0 0 0 0 0 0 89 0
>>> crosstab(meta, data, 'qincome', 'qincome_cb', rules=['y'])
Question qincome_cb
Values All 6 4 2 12 901 902 903
Question Values
qincome All 2078 103 146 204 351 425 848 353
1 425 0 0 0 0 425 0 0
2 204 0 0 204 0 0 204 0
3 187 0 0 0 0 0 187 0
4 146 0 146 0 0 0 146 0
5 119 0 0 0 0 0 119 0
6 103 103 0 0 0 0 103 0
7 89 0 0 0 0 0 89 0
8 68 0 0 0 0 0 0 68
9 59 0 0 0 0 0 0 59
10 226 0 0 0 0 0 0 226
11 101 0 0 0 0 0 0 0
12 351 0 0 0 351 0 0 0


HONEYMOON IN VEGAS A film review by Roger Snappy Rubio Copyright 1992 Roger Snappy Rubio
Starring Nicholas Cage, Sarah Jessica Parker, James Caan, Pat Morita Directed by Andrew Bergman
All in all, a pretty solid piece of comic celluloid. HONEYMOON IN VEGAS is the latest flick from the man who brought you THE FRESHMAN. In this movie, Bergman throws in one bride, two grooms, and the outrageous claim of "34 Flying Elvises." Bergman is known for putting his main characters into interesting predicaments that are not altogether implausible. He does not fail in this movie.
Nicholas Cage plays the part of a private detective who abruptly decides to get married to Sarah Jessica Parker, who plays a schoolteacher. They decide to get married and have their honeymoon in Las Vegas. While they are there, a professional gambler played by James Caan, spots her and immediately set his sights on her. Through a couple of clever swings, Caan gets Cage to owe him a large sum of money, of which cage doesn't have. So Caan conveniently suggests that he borrow his fiancee' for the weekend, and then the fun begins.
When I say this is a solid piece of celluloid, I mean it is solid. It is formulaic without really being formulaic. That's what makes it good. It's got a couple of classic lines and some pretty outrageous predicaments, but the best part about them is that they are all believable. Cage does wonderfully as a man who didn't know what he had until he lost it. I found both Parker and Caan to be ideally suited for their roles, because they are not the most high-key of all actors and/or actresses, and they do not have the most exciting roles in this movie. But that's not putting them down; they did a fine job.
If you want to see more of this kind of movie, check out THE FRESHMAN if you haven't already seen it. I believe HONEYMOON IN VEGAS should have come earlier in the year. It would have been more noticed and more appreciated. It a good flick, and worth at least a matinee price at the box office.
THE SNAPMAN<EMAIL_ADDRESS>(Roger Rubio)
.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


The first thing you need to do is register for an account. After registering you will be able to submit requests for pickup and have your food delivered to your door!
Place an order for food from a local restaurant and the system will automatically find the nearest driver at the best cost.
Before any request is submitted, you have the chance to review it and make any changes or cancellations..


WWII Vet Praises Trump: ‘First Real President In My 96 Years’
‘Everything he’s done I’ve been asking for for all these years,’ he says
A World War II veteran lauded Donald Trump as the “first real president” of his lifetime during a Louisiana MAGA rally last week.
Former reconnaissance paratrooper known as “Red” told the Trump campaign’s National Press Secretary Kayleigh McEnany that President Trump has “got it all” as America’s Commander-in-Chief.
“I have to say this openly. He is the first real president that we’ve had in my 96 years,” Red told McEnany. “He’s got it all. Everything he’s done I’ve been asking for for all these years.”
“We have a man with the guts, the structure, the stature, the knowledge, and everything that goes with it.”
“Mainly, he’s doing the right thing,” Red added. “Every move he makes is right, the way I think.”
When asked if he thought Trump also supports the veterans, Red laughed and said: “Oh yes! Yes. That’s right.”
Trump was the first sitting president in U.S. history to attend the Veteran’s Day parade in New York City last week.
“To each veteran of the war, the glory of your deeds will only grow greater with time,” Trump said in his speech. “This city is graced with your presence. This nation is forever in your debt and we thank you all.”
Ryan Cary joins the war room to discuss the struggles veterans face after leaving military duty and how Ryan is using his platform, warriorbreedmcohio.com, to reach out and support vets in creative ways!
“The Black Friday sales have arrived early! Get up to 70% off our hottest products as well as free-shipping and double Patriot Points while the sale lasts!”


Share
Tweet
{% set body = "I wanted to share the following article from USA Cycling titled \""~entry.title~"\" with you. You can access the article by using the following link. "~entry.url %}


GOVERNMENT OF THE DISTRICT OF COLUMBIA MAYOR’S OFFICE OF COMMUNITY AFFAIRS Open Government Report 2014 To institutionalize a culture of transparent and open government, accountability, and to expand opportunities for resident participation and collaboration, this Report describes how the Mayor’s Office of Community Affairs has and will continue to develop and enhance transparency, public participation, and collaboration. In accordance with Mayor’s Order 2014-170, this report addresses the following topics: Transparency The Mayor’s Office of Community Affairs has made it easier for constituents to access information. This year the office created a “Open Government and FIOA” section on its website (www.http://ocaf.dc.gov). The page includes user friendly access the following sections: Public Employee Salary Information, P Card Purchases, District-wide and agency, FOIA Reports, EOM's FY14 Budget, EOM Regulations and EOM Organizational Chart. OCAF has and will remain responsive to all requests brought to us by the public. The Mayor’s Office of Community Affairs is working closely with the Office of the City Administrator (OCA) and the Office of the Chief Technology Officer (OCTO) to identify a significant number of datasets that OCA and OCTO expect to publish online later this year. If no dataset from [Insert Agency Name] is selected to be included in this 2014 release, we will continue to work with OCA and OCTO to identify datasets appropriate to publish in 2015. In the future, requirements for open data reporting will be provided by the Chief Data Officer. Public Engagement and Participation The Mayor’s Office of Community Affairs is committed to bring the public’s participation in the decision-making process. Our office shares information with the public through a number of ways including list serves, newsletters, community meetings, websites, Twitter, Facebook and Instagram. OCAF maintains constant contact with stakeholders and invites the public to participate in their government. 1


|
Running
(No Doubt) |
|
Run,
running all the time
Running to the future With you right by my side Me, I'm the one you chose Out of all the people You wanted me the most And I'm so sorry that I've fallen Help me up, let's keep on running Don't let me fall out of love Running, running as fast as we can Do you think we'll make it? (Do you think we'll make it?) We're running, keep holding my hand So we don't get separated Be, be the one I need Be the one I trust most Don't stop inspiring me Sometimes it's hard to keep on running We work so much to keep it going Don't make me want to give up Running, running as fast as we can I really hope we make it (Do you think we'll make it?) We're running, keep holding my hand So we don't get separated Running as fast as we can I really hope we make it (Do you think we'll make it?) We're running, keep holding my hand So we don't get separated The future... Running, running as fast as we can Do you think we'll make it? (Do you think we'll make it?) We're running, keep holding my hand So we don't get separated Running as fast as we can I really hope we make it (Do you think we'll make it?) We're running, running, keep holding my hand So we don't get separated |


--- layout: post date: 2010-06-18 time: "11:00:00" authors: ["Greg Wilson"] title: Our First Few Exercises tags: ["Content"] ---
Jon Pipitone has posted a few self-assessment exercises for the lecture episode on selecting data from a database. Please have a look and let us know what you think: would having little self-tests like this at the end of each episode help solidify your understanding of the material?


ANGEL EYES ----------
Chicago PD officer Sharon Pogue (Jennifer Lopez, "The Wedding Planner") fights to keep an accident victim conscious with earnest care emanating from her every pore in one scene, then throws a hulking hood against a squad car in the next. JLo means business as an all purpose supercop, but when she finds herself at the mercy of a gun-wielding thug, it's the bravery of a passing stranger - or is he? - that saves her life in "Angel Eyes."
Director Luis Mandoki and screenwriter Gerald DiPego tone down the saccharine syrup they applied liberally to their last effort, "Message in the Bottle," but can't resist overdoing the melodrama in the home stretch of their new one.
"Angel Eyes" is being marketted as some kind of supernatural outing, but it's really a love story about two troubled people who find each other. Sharon is agonizing over a family that has a history of abuse, from her father's (Victor Argo, "Coyote Ugly") former treatment of her mother (Sonia Braga, "Kiss of the Spider Woman") to her brother's current spousal abuse. Her concerned partner Robby (Terrence Howard, "The Best Man"), whom she hasn't confided in, even suggests she may be battling her own violent impulses after witnessing her rough treatment of apprehended suspects. Her mother and sister-in-law's pleas for her to attend a ceremony celebrating the renewal of her parents' wedding vows are bringing the familial conflict to a head.
Sharon finds herself intrigued by the quiet young man (Jim Caviezel, "Pay It Forward") who tackled her assailant. Giving his name only as Catch, the man with the intense blue eyes proves to have an even higher wall around him that she does. As the couple can't seem to resist the urge to be together, Sharon begins to delve into Catch's past, finally discovering a shattering confluence.
It's here that "Angel Eyes" plunges earthward. Mandoki and editor Jerry Greenberg crosscut Catch's coming to terms with his tragedy as Sharon attends her parent's party and attempts to make peace with her father. The ludicrousness of such emotional trauma hitting a couple at the exact same time is cause for eye-rolling - surely not the intended audience response. (I also have a pet peeve with filmmakers who prominently feature a pet - in this case Catch's dog Bob - only to inexplicably forget the animal's existence.)
A second problem with "Angel Eyes" is the imbalance of the leads' performances. Jennifer Lopez has enough street cred to be entirely believable as a Chicago cop and the femininity to appear soft and vulnerable. Even while Mandoki overmanipulates the climax of his film, Lopez pulls off a highly emotional moment, recalling a good childhood scene with her dad for a camcorder when her real father can't bring himself to bridge the gap that's grown between them.
Caveziel, however, needs to stop playing Christlike characters. He became known with his sacrificial Private Witt in "The Thin Red Line" and turned the heroin addict of "Pay It Forward" into a fallen saint. Maybe Mandoki directed him to play Catch in an otherworldly manner to keep audiences guessing, but the routine is wearing thin for this actor, who coasts here with his penetrating eyes and cautiously dazzling smile. Making a stronger impression is NAACP Image Award winner Terrence Howard as Sharon's hopeful partner. Oscar nominated actress Shirley Knight ("As Good as it Gets") appears in a small role as a wheelchair bound woman whom Catch shops for.
The film alternates between a skewed, dreamy look and lushly colored reality provided by Academy Award nominated cinematographer Piotr Sobocinski ("Red") (who passed away earlier this year while working on Mandoki's next feature). The musicical focal point comes when Catch surprises Sharon by picking up a trumpet to perform a blues piece in a nightclub.
C+
For more Reeling reviews visit www.reelingreviews.com
<EMAIL_ADDRESS><EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


The daughter of an Imperial scientist joins the Rebel Alliance in a risky move to steal the Death Star plans.
A group of friends venture deep into the streets of New York on a rescue mission during a rampaging monster attack.
Interstellar chronicles the adventures of a group of explorers who make use of a newly discovered wormhole to surpass the limitations on human space travel and conquer the vast distances involved in an interstellar voyage.
The Avengers and their allies must be willing to sacrifice all in an attempt to defeat the powerful Thanos before his blitz of devastation and ruin puts an end to the universe.
Interstellar chronicles the adventures of a group of explorers who make use of a newly discovered wormhole to surpass the limitations on human space travel and conquer the vast distances involved in an interstellar voyage.


The Mount Vernon Preservation Commission was established as Certified Local Government under a program of the Federal government in 1985 to foster preservation efforts at the local government level. The purpose and intent of the commission as per the Chapter 24 of the Code of Ordinances of the City of Mount Vernon are to:
1) Promote the educational, cultural, economic and general welfare of the public through the recognition, enhancement, and perpetuation of sites and districts of historical and cultural significance;
2) Safeguard the City’s historic, aesthetic, and cultural heritage by preserving sites and districts of historical and cultural significance;
3) Stabilize and improve property values;
4) Foster pride in the legacy of beauty and achievements of the past;
5) Protect and enhance the City’s attractions to tourists and visitors and the support and stimulus to business thereby provided;
6) Strengthen the economy of the City; and,
7) Promote the use of sites and districts of historic and cultural significance as places for the education, pleasure, and welfare of the people of the City.
The goals of establishing Historic Districts are to stabilize and improve property values and to foster civic pride in well-maintained historic properties. The city of Mount Vernon has an ordinance covering property owners in its Historic District, which provides some assurance that neighboring properties will be kept compatible with the overall neighborhood. When major exterior changes are made, these changes will be in harmony with architectural aesthetic characteristics of the historic period.
Mt. Vernon currently has three districts listed in the National Register of Historic Places. These include the Commercial District, the Ash Park Residential District, and the Cornell College District. A fourth district, the Brick District, (consisting of non-contiguous brick structures throughout the city) was identified as a fourth potential National Historic District. Additionally, there are several other areas in the community that constitute areas or districts of historic significance.


Our Vision
We want to build a platform that provides tech entrepreneurs with limited resources access to business training, project capital raising and mentoring.
We want to build a platform that provides tech entrepreneurs with limited resources access to business training, project capital raising and mentoring.
We can use Virtual Reality to help people in a hard situation by letting them free themselves and giving them an opportunity to share their story with people who care about them.


INDIAN CARRYING CORPORATION
- Home
- Services
- Branch Offices
- Careers
- Contact Us
- CALL @ +91-9310032566
Indian carrying corporation is one of leading transport and warehousing companies in India.
it was established in 2006 and now working successfully by
fulfilling the requirement of clients using innovative technology and flexible approach .
we focus to work rapidly without harming integrity of requirement , As a successful 6 years we are now a leading tranport company in NCR .
ICC is one of India's finest transport company in Domestic Moving Service, we offer high quality transportation.
We are backed by a dedicated Team of customer oriented office staff, trained and experienced moving Team, offices across the country, self-owned warehouses and fleet of vehicles.
we basically work on three services :
1. Transportation
2. Warehousing
3. C&F agent
we focus to work rapidly without harming integrity of requirement , As a successful 6 years we are now a leading tranport company in NCR .
ICC is one of India's finest transport company in Domestic Moving Service, we offer high quality transportation.
We are backed by a dedicated Team of customer oriented office staff, trained and experienced moving Team, offices across the country, self-owned warehouses and fleet of vehicles.
we basically work on three services :
1. Transportation
2. Warehousing
3. C&F agent


Please be crisp and clear will asking. Avoid ambiguities. Take a moment to go through the terms and conditions to understand what kind of questions you can consult on.
Please verify your phone number
Lets verify your email


Places You've Been
Add a place:
Place
Activity
Season
Submit
Click on place name to show details.
Place:
Activity:
Season:


|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface KeyEventDispatcher
A KeyEventDispatcher cooperates with the current KeyboardFocusManager in the targeting and dispatching of all KeyEvents. KeyEventDispatchers registered with the current KeyboardFocusManager will receive KeyEvents before they are dispatched to their targets, allowing each KeyEventDispatcher to retarget the event, consume it, dispatch the event itself, or make other changes.
Note that KeyboardFocusManager itself implements KeyEventDispatcher. By default, the current KeyboardFocusManager will be the sink for all KeyEvents not dispatched by the registered KeyEventDispatchers. The current KeyboardFocusManager cannot be completely deregistered as a KeyEventDispatcher. However, if a KeyEventDispatcher reports that it dispatched the KeyEvent, regardless of whether it actually did so, the KeyboardFocusManager will take no further action with regard to the KeyEvent. (While it is possible for client code to register the current KeyboardFocusManager as a KeyEventDispatcher one or more times, this is usually unnecessary and not recommended.)
KeyboardFocusManager.addKeyEventDispatcher(java.awt.KeyEventDispatcher)
,
KeyboardFocusManager.removeKeyEventDispatcher(java.awt.KeyEventDispatcher)
| Method Summary | |
|---|---|
boolean |
dispatchKeyEvent(KeyEvent e)
This method is called by the current KeyboardFocusManager requesting that this KeyEventDispatcher dispatch the specified event on its behalf. |
| Method Detail |
|---|
boolean dispatchKeyEvent(KeyEvent e)
redispatchEvent
to prevent the current KeyboardFocusManager from recursively requesting
that this KeyEventDispatcher dispatch the event again.
If an implementation of this method returns false
, then
the KeyEvent is passed to the next KeyEventDispatcher in the chain,
ending with the current KeyboardFocusManager. If an implementation
returns true
, the KeyEvent is assumed to have been
dispatched (although this need not be the case), and the current
KeyboardFocusManager will take no further action with regard to the
KeyEvent. In such a case,
KeyboardFocusManager.dispatchEvent
should return
true
as well. If an implementation consumes the KeyEvent,
but returns false
, the consumed event will still be passed
to the next KeyEventDispatcher in the chain. It is important for
developers to check whether the KeyEvent has been consumed before
dispatching it to a target. By default, the current KeyboardFocusManager
will not dispatch a consumed KeyEvent.
e
- the KeyEvent to dispatch
true
if the KeyboardFocusManager should take no
further action with regard to the KeyEvent; false
otherwiseKeyboardFocusManager.redispatchEvent(java.awt.Component, java.awt.AWTEvent)
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright © 2004, 2010 Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.


|
PX4 Firmware
PX4 Autopilot Software http://px4.io
|
#include "BMI055.hpp"
#include <drivers/device/integrator.h>
#include <drivers/device/ringbuffer.h>
#include <drivers/device/spi.h>
#include <drivers/drv_gyro.h>
#include <drivers/drv_hrt.h>
#include <lib/conversion/rotation.h>
#include <lib/perf/perf_counter.h>
#include <mathlib/math/filter/LowPassFilter2p.hpp>
#include <px4_config.h>
#include <systemlib/conversions.h>
Go to the source code of this file.
Classes | |
| class | BMI055_gyro |
| struct | BMI055_gyro::BMI_GyroReport |
| Report conversation within the BMI055_gyro, including command byte and interrupt status. More... | |
| #define BMI055_ACC_TEMP 0x08 |
Definition at line 141 of file BMI055_gyro.hpp.
| #define BMI055_BGW_SPI3_WDT 0x34 |
Definition at line 90 of file BMI055_gyro.hpp.
| #define BMI055_DEVICE_PATH_GYRO "/dev/bmi055_gyro" |
Definition at line 49 of file BMI055_gyro.hpp.
Referenced by bmi055::reset(), bmi055::start(), and bmi055::test().
| #define BMI055_DEVICE_PATH_GYRO_EXT "/dev/bmi055_gyro_ext" |
Definition at line 50 of file BMI055_gyro.hpp.
Referenced by bmi055::reset(), bmi055::start(), and bmi055::test().
| #define BMI055_GYR_A_FOC 0x32 |
Definition at line 88 of file BMI055_gyro.hpp.
| #define BMI055_GYR_BW 0x10 |
Definition at line 66 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::gyro_set_sample_rate(), and BMI055_gyro::reset().
| #define BMI055_GYR_CHIP_ID 0x00 |
Definition at line 53 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::probe().
| #define BMI055_GYR_DRDY_INT1 (1<<0) |
Definition at line 128 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::reset().
| #define BMI055_GYR_DRDY_INT_EN (1<<7) |
Definition at line 125 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::reset().
| #define BMI055_GYR_FIFO_CONFIG_0 0x3D |
Definition at line 98 of file BMI055_gyro.hpp.
| #define BMI055_GYR_FIFO_CONFIG_1 0x3E |
Definition at line 99 of file BMI055_gyro.hpp.
| #define BMI055_GYR_FIFO_DATA 0x3F |
Definition at line 100 of file BMI055_gyro.hpp.
| #define BMI055_GYR_FIFO_STATUS 0x0E |
Definition at line 64 of file BMI055_gyro.hpp.
| #define BMI055_GYR_INT_EN_0 0x15 |
Definition at line 71 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::reset().
| #define BMI055_GYR_INT_EN_1 0x16 |
Definition at line 72 of file BMI055_gyro.hpp.
| #define BMI055_GYR_INT_LATCH 0x21 |
Definition at line 80 of file BMI055_gyro.hpp.
| #define BMI055_GYR_INT_LH_0 0x22 |
Definition at line 81 of file BMI055_gyro.hpp.
| #define BMI055_GYR_INT_LH_1 0x23 |
Definition at line 82 of file BMI055_gyro.hpp.
| #define BMI055_GYR_INT_LH_2 0x24 |
Definition at line 83 of file BMI055_gyro.hpp.
| #define BMI055_GYR_INT_LH_3 0x25 |
Definition at line 84 of file BMI055_gyro.hpp.
| #define BMI055_GYR_INT_LH_4 0x26 |
Definition at line 85 of file BMI055_gyro.hpp.
| #define BMI055_GYR_INT_LH_5 0x27 |
Definition at line 86 of file BMI055_gyro.hpp.
| #define BMI055_GYR_INT_MAP_0 0x17 |
Definition at line 73 of file BMI055_gyro.hpp.
| #define BMI055_GYR_INT_MAP_1 0x18 |
Definition at line 74 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::reset().
| #define BMI055_GYR_INT_MAP_2 0x19 |
Definition at line 75 of file BMI055_gyro.hpp.
| #define BMI055_GYR_INT_STATUS_0 0x09 |
Definition at line 60 of file BMI055_gyro.hpp.
| #define BMI055_GYR_INT_STATUS_1 0x0A |
Definition at line 61 of file BMI055_gyro.hpp.
| #define BMI055_GYR_INT_STATUS_2 0x0B |
Definition at line 62 of file BMI055_gyro.hpp.
| #define BMI055_GYR_INT_STATUS_3 0x0C |
Definition at line 63 of file BMI055_gyro.hpp.
| #define BMI055_GYR_LPM1 0x11 |
Definition at line 67 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::reset().
| #define BMI055_GYR_LPM2 0x12 |
Definition at line 68 of file BMI055_gyro.hpp.
| #define BMI055_GYR_OFFSET_COMP 0x36 |
Definition at line 91 of file BMI055_gyro.hpp.
| #define BMI055_GYR_OFFSET_COMP_X 0x37 |
Definition at line 92 of file BMI055_gyro.hpp.
| #define BMI055_GYR_OFFSET_COMP_Y 0x38 |
Definition at line 93 of file BMI055_gyro.hpp.
| #define BMI055_GYR_OFFSET_COMP_Z 0x39 |
Definition at line 94 of file BMI055_gyro.hpp.
| #define BMI055_GYR_RANGE 0x0F |
Definition at line 65 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::reset(), and BMI055_gyro::set_gyro_range().
| #define BMI055_GYR_RATE_HBW 0x13 |
Definition at line 69 of file BMI055_gyro.hpp.
| #define BMI055_GYR_SELF_TEST 0x3C |
Definition at line 97 of file BMI055_gyro.hpp.
| #define BMI055_GYR_SOC 0x31 |
Definition at line 87 of file BMI055_gyro.hpp.
| #define BMI055_GYR_SOFTRESET 0x14 |
Definition at line 70 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::check_registers(), BMI055_gyro::reset(), and BMI055_gyro::test_error().
| #define BMI055_GYR_TRIM_GP1 0x3B |
Definition at line 96 of file BMI055_gyro.hpp.
| #define BMI055_GYR_TRIM_GPO 0x3A |
Definition at line 95 of file BMI055_gyro.hpp.
| #define BMI055_GYR_TRIM_NVM_CTRL 0x33 |
Definition at line 89 of file BMI055_gyro.hpp.
| #define BMI055_GYR_WHO_AM_I 0x0F |
Definition at line 103 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::probe().
| #define BMI055_GYR_X_H 0x03 |
Definition at line 55 of file BMI055_gyro.hpp.
| #define BMI055_GYR_X_L 0x02 |
Definition at line 54 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::measure().
| #define BMI055_GYR_Y_H 0x05 |
Definition at line 57 of file BMI055_gyro.hpp.
| #define BMI055_GYR_Y_L 0x04 |
Definition at line 56 of file BMI055_gyro.hpp.
| #define BMI055_GYR_Z_H 0x07 |
Definition at line 59 of file BMI055_gyro.hpp.
| #define BMI055_GYR_Z_L 0x06 |
Definition at line 58 of file BMI055_gyro.hpp.
| #define BMI055_GYRO_0_REG 0x1A |
Definition at line 76 of file BMI055_gyro.hpp.
| #define BMI055_GYRO_1_REG 0x1B |
Definition at line 77 of file BMI055_gyro.hpp.
| #define BMI055_GYRO_2_REG 0x1C |
Definition at line 78 of file BMI055_gyro.hpp.
| #define BMI055_GYRO_3_REG 0x1E |
Definition at line 79 of file BMI055_gyro.hpp.
| #define BMI055_GYRO_BW_MASK 0x0F |
Definition at line 139 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::gyro_set_sample_rate().
| #define BMI055_GYRO_DEEP_SUSPEND (0<<7) | (1<<5) |
Definition at line 114 of file BMI055_gyro.hpp.
| #define BMI055_GYRO_DEFAULT_DRIVER_FILTER_FREQ 50 |
Definition at line 136 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::BMI055_gyro().
| #define BMI055_GYRO_DEFAULT_RANGE_DPS 2000 |
Definition at line 131 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::reset().
| #define BMI055_GYRO_DEFAULT_RATE 1000 |
Definition at line 132 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::BMI055_gyro(), BMI055_gyro::ioctl(), and BMI055_gyro::reset().
| #define BMI055_GYRO_MAX_PUBLISH_RATE 280 |
Definition at line 134 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::BMI055_gyro().
| #define BMI055_GYRO_MAX_RATE 1000 |
Definition at line 133 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::ioctl().
| #define BMI055_GYRO_NORMAL (0<<7) | (0<<5) |
Definition at line 113 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::reset().
| #define BMI055_GYRO_NUM_CHECKED_REGISTERS 7 |
Definition at line 196 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::check_registers(), BMI055_gyro::print_info(), BMI055_gyro::reset(), and BMI055_gyro::write_checked_reg().
| #define BMI055_GYRO_RANGE_1000_DPS (0<<2) | (0<<1) | (1<<0) |
Definition at line 119 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::set_gyro_range().
| #define BMI055_GYRO_RANGE_125_DPS (1<<2) | (0<<1) | (0<<0) |
Definition at line 122 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::set_gyro_range().
| #define BMI055_GYRO_RANGE_2000_DPS (0<<2) | (0<<1) | (0<<0) |
Definition at line 118 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::set_gyro_range().
| #define BMI055_GYRO_RANGE_250_DPS (0<<2) | (1<<1) | (1<<0) |
Definition at line 121 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::set_gyro_range().
| #define BMI055_GYRO_RANGE_500_DPS (0<<2) | (1<<1) | (0<<0) |
Definition at line 120 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::set_gyro_range().
| #define BMI055_GYRO_RATE_100 (0<<3) | (1<<2) | (1<<1) | (1<<0) |
Definition at line 106 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::gyro_set_sample_rate().
| #define BMI055_GYRO_RATE_1000 (0<<3) | (0<<2) | (1<<1) | (0<<0) |
Definition at line 109 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::gyro_set_sample_rate().
| #define BMI055_GYRO_RATE_200 (0<<3) | (1<<2) | (1<<1) | (0<<0) |
Definition at line 107 of file BMI055_gyro.hpp.
| #define BMI055_GYRO_RATE_2000 (0<<3) | (0<<2) | (0<<1) | (1<<0) |
Definition at line 110 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::gyro_set_sample_rate().
| #define BMI055_GYRO_RATE_400 (0<<3) | (0<<2) | (1<<1) | (1<<0) |
Definition at line 108 of file BMI055_gyro.hpp.
Referenced by BMI055_gyro::gyro_set_sample_rate().
| #define BMI055_GYRO_SUSPEND (1<<7) | (0<<5) |
Definition at line 115 of file BMI055_gyro.hpp.


It was a beginning
It was really happy to begin with html
amazon
Flipkart
Google
Chrome
This is a link to Amazon


INDEX
LAB
LAB 1(7/8/17)
LAB 2a(14/8/17)
LAB 2b(14/8/17)
LAB 3 FORMS
LAB 4 CSS
LAB 5 PROJECT
LAB 6 Magic Number
LAB 7 DATE
LAB 7 STRING
LAB 8 STATUS
LAB 9 rightClick
LAB 10 CALC
HTML5 CANVAS SINE WAVE
CLASS
CLASS 1
CLASS 2
CLASS 3 LIST
CLASS 3 TABLE
CLASS 4 TABLE
CLASS 5 FORMS
CLASS 6 CSS-1
CLASS 7 CSS-2
CLASS 8 BOX MODEL
CLASS 8 POSITIONING
CLASS 9 responsive
CLASS 10 JS-1
CLASS 11 JS-2
CLASS 12 JS-3
CLASS 13 JS-4 OOP
CLASS 14 JS-5 DOM
CLASS 15 JS-6 DOM
CBT-2 portions starts from HERE
CLASS 16 JS-7 DOM
CLASS 17 JS-8 DOM
CLASS 18 JS-9 DOM
CLASS 19 JS-10 DOM
CLASS 20 JS-11 DOM
CLASS 21 JS-12 DOM
CLASS 22 JS-13 DOM
CLASS 23 JS-14 DOM
CLASS 24 JS-15 DOM
Guys running php code is different so please follow the following steps and you will be able to run it
install XAMPP from
HERE
run the setup file and complete installition (recommended in C Drive)
now open the XAMPP app and start Apache
after step 3) go to XAMPP->htdocs->create your new folder->all your php and html files here
open Browser and type localhost/"folderName"
NOTE the main html file should be saved as index.html or index.php
after clicking on the link provided it will download a zip file
go to the dir where that zip file is existing copy it and now go to C:\xampp\htdocs\ paste it here and extract it here
now open browser and in url type "localhosts\class25\" for class25 or"localhosts\class26\" for class26 and so on
CLASS 25 PHP-1 INTRO
CLASS 26 PHP-2 ARRAY And Functions
CLASS 27 PHP-3 COOKIES and SESSIONS
CLASS 28 PHP-4 String function
CLASS 29 PHP-4 DBMS
CLASS 30 PHP-5 login
CLASS 31 HTML5 Canvas intro
CLASS 32 HTML5 Canvas 2 line rect
CLASS 33 HTML5 Canvas 3 acr colorGradient
CLASS 34 HTML5 CANVAS 4 image CROP and TEXT
CLASS 34b HTML5 localStorage
CLASS 35 HTML6 localStorage incomplete
CLASS 36 JQUERY


IN THE HIGH COURT OF GUJARAT AT AHMEDABAD CIVIL APPLICATION No 1625/97 in SCA No.6904/95 with MISC.CIVIL APPLN.NO.175/96 in SCA No.6904/95. -------------------------------------------------------------- VISHAL TEXTILE MILLS Versus NIRAV V MUNSHI -------------------------------------------------------------- Appearance: MR PARESH M DAVE for Petitioner GOVERNMENT PLEADER for Respondent No. 1 -------------------------------------------------------------- CORAM : MR.JUSTICE B.C.PATEL and MR.JUSTICE M.S.SHAH Date of Order: 10/02/97 ORAL ORDER
:
The applicant Vishal Textile MIlls by filing the Civil Application has prayed that the order of closure passed by this Court, on January 10, 1996 (Annex.II) may either be vacated or suitably modified.
It appears that the Court was pursuaded to pass the said order in view of the fact that in the petition alongwith the affidavit, it is stated that nine units situated at "Haraniavas" opposite Narol Village, Narol, Ahmedabad were operating without obtaining consent under section 9 of the Water Act and were operating without treatment facilities as required under the law. The order is in detail giving the names of the Unit and permission to move the Court after serving the copies to the other side. It appears that the Unit instead of order of closure, continued the activity.. It is stated by learned Counsel Mr.Nanavati that during this period the unit processed goods worth Rs.36,00,000/-.
Mr.Nanavati,learned Counsel pointed out from the record of the original Special Civil Application that the treatment facilities were provided. There is inspection Report of Vishal Textile Mills i.e. the applicant unit, dated 10-11-1995, indicating that the " Unit was not in operation due to power failure. Unit was (has) provided primary and secondary ETP". In Column no.13 of the Inspection Report the details are given. Mr.Nanavati,learned Counsel submitted that no doubt the Unit operated inspite of the order, but the order was obtained on a false statement placed on the record at the back of the Affidavit filed by D.K.Solanki, Asstt. Law Officer, GPCB, dated 15-11-1995, which is on the record of the Special Civil Application No.6904 of 1995. On the back of internal page 2 of the affidavit (on the back of Page no.9 of the paper Book) the names of eight units mentioned at Serial Nos. 1,2,3,4,5,6,9 and 13 in the Affidavit, are mentioned in handwriting and it is stated that all Units situated as "Haraniavas" Opposite Narole village, Narole, Ahmedabad and the said units are operating without obtaining consent under Section 25 of the Water Act, 1974 and are not having any treatment facilities as per the report submitted by GPCB.
Mr.Nanavati,learned Counsel appearing for the Unit submitted that so far as the contempt proceedings are concerned, the unit proceeded with manufacturing activities inspite of order of closure and therefore,without uttering a single word, unconditional unconditional apology for the same is tendered. He further submitted the unit will voluntarily pay Rs.3,61,000/- in this Court for remedial measures and betterment of environment and general monitoring. Mr.Nanavati. however, requested that some reasonable time may be given to the Unit to deposit the aforesaid amount in this Court.
Mr.Nanavati further submitted that over and above this, the Unit has paid Rs.1,60,881/- on 10.5.1996 to the Secretary, Forest and Environment Department being 1% contribution on the basis of the total turn over of Rs.1,60,88,110 for the year 1993-94; Rs.25,000/- for the pipeline project and Rs.10,000/- for monitoring charges and CETP contribution.
In view of the aforesaid facts and circumstances of the case and in view of the statement made by learned Counsel on behalf of the Unit, we accept the unconditional apology tendered on behalf of the Unit. The Unit is given time to pay the aforesaid amount of Rs.3,61,000/-in this Court and the Unit will pay the same on or before 31-3-1997. We accordingly discharge Notice issued in Misc. Civil Application No.175/96 in so far as it relates to Vishal Textile Mills only and none else for the present.
Mr.Nanavati learned Counsel for the applicant Unit further states that the applicant Unit is now not interested in running the unit as a textile unit and the Applicant Unit is willing to file an undertaking before this Court that the Unit will not carry on any manufacturing activity as textile unit. He further submitted that the applicant unit wants to carry on some other manufacturing activity for which the Unit will approach the GPCB for appropriate consent and will take appropriate action in accordance with law. Mr.Nanavati submitted that in view of the aforesaid facts, the AEC may be directed to connect single phase electric connection to the unit so that it may have electric supply for purposes other than manufacturing activity.
In the facts and circumstances of the case. on behalf of the Unit an undertaking shall be filed for the aforesaid purposes including payment of Rs.3,61,000/- on or before 14-2-1997. After the Undertaking is filed, the office will inform the AEC with the aforesaid undertaking, to reconnect the single phase electric connection.
The Civil Application is accordingly disposed of. It would be open to the Unit to approach this Court for three phase connection as and when necessary, with relevant materials.
The Unit shall pay costs of Rs.2000/- to the GPCB and the State Government each, within two weeks from today.
( B.C.Patel J. ) ( M.S.Shah J. )


|
| static int * | mxCallocInt (int n) |
| |
| static void | initialize_disjoint_sets (int n, int **pp) |
| |
| static int | make_set (int i, int *pp) |
| |
| static int | link (int s, int t, int *pp) |
| |
| static int | find (int i, int *pp) |
| |
| static void | finalize_disjoint_sets (int *pp) |
| |
| int | sp_coletree (int_t *acolst, int_t *acolend, int_t *arow, int nr, int nc, int *parent) |
| |
| static void | nr_etdfs (int n, int *parent, int *first_kid, int *next_kid, int *post, int postnum) |
| |
| int * | TreePostorder (int n, int *parent) |
| |
| int | sp_symetree (int *acolst, int *acolend, int *arow, int n, int *parent) |
| |
Copyright (c) 2003, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from U.S. Dept. of Energy)
All rights reserved.
The source code is distributed under BSD license, see the file License.txt at the top-level directory.
-- SuperLU routine (version 3.1) --
Univ. of California Berkeley, Xerox Palo Alto Research Center,
and Lawrence Berkeley National Lab.
August 1, 2008
Copyright (c) 1994 by Xerox Corporation. All rights reserved.
THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
EXPRESSED OR IMPLIED.
Permission is hereby granted to use or copy this program for any
purpose, provided the above notices are retained on all copies.
Permission to modify the code and to distribute modified code is
granted, provided the above notices are retained, and a notice that
the code was modified is included with the above copyright notice.


Welcome
competitor
👋
Waiting for other competitors to join.
(Wait for countdown! Then press start to begin. Good luck!)
Start
/
JS GUILD SUMMIT
Combo
0
Reference
Unnamed
Time:
15:00
POWER⚡MODE!
Finish
Instructions


Very Simple Text Classifier Applet, two classes
This applet tries to classify two different types of texts.
Click
here
for more information.
No Java Browser
Back to my
Weka page
Back to my
homepage
Created by Hakan Kjellerstrand (
hakank
)