Before Change
def test_setup_does_discovery(self, mock_setup):
Test setup for discovery.
component = EntityComponent(
_LOGGER, DOMAIN, self.hass, discovery_platforms={
"discovery.test": "platform_test",
})
component.setup({})
self.hass.bus.fire(discovery.EVENT_PLATFORM_DISCOVERED, {
discovery.ATTR_SERVICE: "discovery.test",
discovery.ATTR_DISCOVERED: "discovery_info",
})
self.hass.pool.block_till_done()
assert mock_setup.called
After Change
component.setup({})
discovery.load_platform(self.hass, DOMAIN, "platform_test",
{"msg": "discovery_info"})
self.hass.pool.block_till_done()
assert mock_setup.called


Measuring Stellar FWHM¶
There are a number of steps in odi-tools
that require having a measurement
of the stellar fwhm of sources on individual OTAs or on a fully stacked image.
In order to get these measurements we use the pyraf
task rimexam
on
a list of known x and y positions for SDSS sources on a given field.
Here is how the parameters are set for rimexam
:
iraf.tv.rimexam.setParam('radius',radius)
iraf.tv.rimexam.setParam('buffer',buff)
iraf.tv.rimexam.setParam('width',width)
iraf.tv.rimexam.setParam('rplot',20.)
iraf.tv.rimexam.setParam('center','yes')
iraf.tv.rimexam.setParam('fittype','gaussian')
iraf.tv.rimexam.setParam('iterati',1)
-
odi_helpers.
getfwhm_ota
(img, ota, gaia=False, radius=4.0, buff=7.0, width=5.0)[source]¶ Get a fwhm estimate for a single OTA using the SDSS catalog stars and IRAF imexam (SLOW, but works). Adapted from Kathy Rohde’s getfwhm script (this implementation is simpler in practice). The radius, buff, and width parameters are for the pyraf task rimexam. This fwhm measure comes from a gaussian fittype.
The positions of the SDSS starts are pulled from a
coords
file. This module automatically fetches thecoords
file for theimg
andota
being processed from the appropriate directory.In addition to a median fwhm measurement this module will also produce an ouputfile where the positions and fwhm of each source are stored. This
output
file is used in other modules in theodi-tools
software. The name of thisoutput
file is generated based on theimg
andota
.Parameters: - img (str) – String containing name of the image currently in use
- ota (str) – Name of ota extension to be used (e.g. OTA33.SCI)
Returns: gfwhm – Median fwhm measure of sources found in the ota field.
Return type: float
Examples
>>> img = 'img1.fits' >>> ota = 'OTA33.SCI' >>> gfwhm = getfwhm_ota(img,ota)
-
odi_helpers.
getfwhm_full
(img, radius=4.0, buff=7.0, width=5.0)[source]¶ Get a fwhm estimate for a stacked image using the SDSS catalog stars and IRAF imexam (SLOW, but works). Adapted from Kathy Rohde’s getfwhm script (this implementation is simpler in practice). The radius, buff, and width parameters are for the pyraf task rimexam. This fwhm measure comes from a gaussian fittype.
The positions of the SDSS starts are pulled from a
coords
file. This module automatically fetches thecoords
file for theimg
andota
being processed from the appropriate directory.In addition to a median fwhm measurement this module will also produce an ouputfile where the positions and fwhm of each source are stored. This
output
file is used in other modules in theodi-tools
software. The name of thisoutput
file is generated based on theimg
.Parameters: img (str) – String containing name of the image currently in use Returns: gfwhm – Median fwhm measure of sources found in the ota field. Return type: float Examples
>>> img = 'stack1.fits' >>> gfwhm = getfwhm_full(img)


Looks like we are having issue loading the app, try to refresh.
loading settings...
This is the temp page
Make your first order
The word can only be conquered on a full stomach
Uploading...
We use it to make sure our deliveries reach you
Get your first order, sign up now!
Make your first order
The word can only be conquered on a full stomach
Looks like you supplied an invalid merchant keys in your config.js
No internet connection


<EMAIL_ADDRESS>So the Software that my team has been making before I even started work (which I joined in developing at its latter development stages) finally got released for testing by actual users.
As a result, a drop-in session was organised where, after the users had tested the application, they can drop-in and make complaints or even ask how somethings can be done on the new system.
It was an interesting experience seeing how people (users) that has always been using a certain system before responds to the usage of a new system.
It was interesting how although a lot of users admitted that the older system was simply out-of-date (Microsoft Access Application..I think it was), but at the same time, some were reluctant to have to learn the use of a web-based new application
Recording Testing Results and Bugs - The week was mostly making records of testing results and creating TRAC tickets for every bugs reports, feature requests, etc in regards to the new software. Users mostly got in touch via email
Talk on Intellectual Property (IP)
I attended a talk on Managing Intellectual Property which was very useful.
HomePage MakeOver (Dynamic Menu)
I had the task of giving the Homepage that points to our other application pages a complete changeover. The task involved having a screen-wide carousel scrolling banner with high resolution images.
The task also involved having menu displayed based on the user's detail and permissions. (Dynamic menu).
I developed a prototype of this mainly using HTML5, Javascript and JQuery (the functionalities of the site required heavy usage of JQuery -- so that was the week I learnt how amazing Jquery can be and how one can quite easily write 400 lines of Jqeury to do something, and someone that knows more about it can tell you how to write the same thing in 10 lines - YES, that actually happened!)
After he prototype, I then went on to start converting the prototype in order for it to fit into the previously written homepage which, like our other web apps has ASP.NET and C# has its front-end.
I used list-view future of ASP.NET for displaying the dynamic menu.
The site as a whle had to be responsive, so, say HELLO to Twitter Bootstrap!
Python Training
I was opportune to attend a 3 hours training on "Introducion to Python". Which I found to be quite an interesting language with huge library.
STEM Ambassador
I attended training and officially became a STEM (Science technology Engineering and Maths) Ambassador - Main aim is to be able to go out on events in a bid to expose younger people to STEM subjects and show/tell them how amazing it can be to be, in my case, a Software Engineer.
Software Feedback Sessions
Myself and the team had series of sessions where the users of the new software that is being trial would come in with their complaints, bugs, feature requests, etc. It was quite interesting seeing this and noting how a users make this request - how some showed frustrations while others showed their excitement and especially how my manager (who anchored each of these meetings) dealt with each situations amazingly well.
The highlight of these must be when a user said a certain feature that's been added wasn't really necessary - This got me thinking of lectures after lectures where someone like Chris Price would keep saying to be careful in regards to "over-featuring" a software for a user... every extra feature is more code which is essentially more money.
First Football League Match
My facility has a football league going on. So I joined a team (named "Spaced Out Tigers") and I had my first league match during this week (which was fun!).
Geronimo (STFC Early Career Forum)
This was a one day away event where graduates and students at the facility (about 70 of us.. I think) went to a venue in another town (venue owned by STFC - "Cosener's House" in Abingdon).
The day included talks from speaker in different fields of STEM (Science technology Engineering and Maths). Lots of fun group challenges which facilitated team work, communication and yeah, other stuff.
Truth be told, it was a good day! It was great getting to meet other people that we work in the same facility but not the same office or department.


@*
* Copyright 2021 HM Revenue & Customs
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*@
@import implicits.ImplicitDateFormatter
@import views.html.helpers.accordionHelper
@import models.reportDeadlines.ReportDeadlineModelWithIncomeType
@(obligations: models.reportDeadlines.ObligationsModel, implicitDateFormatter: ImplicitDateFormatter)(implicit messages: Messages, user: auth.MtdItUser[_])
@import implicitDateFormatter.longDate
@deadlineRow(deadline: ReportDeadlineModelWithIncomeType) = {
| @{deadline.obligation.obligationType} |
@{deadline.incomeType} |
}
@for(collectedObligations <- obligations.obligationsByDate.zipWithIndex) {
| @messages("nextUpdates.table.header.type") |
@messages("nextUpdates.table.header.source") |
@for(obligation <- collectedObligations._1._2) {
@deadlineRow(obligation)
}
}


I prefer using pathogen to manage my plug-ins all you have to do is clone the repo in the ~/.vim/bundle
directory and you are good to go.
git clone https://github.com/tpope/vim-surround.git
There are different types of surrounding tags
Place the cursor within that word and type ysiw
followed by the desired container eg ysiw
Yank(copy) surround to inner word
Using opening brackets adds spacing before and after word, while the closing ones don’t.
Try ysiw{
vs ysiw}
To remove them ds
+ surround depending on which type of quotes you used. e.g ds"
or ds{
You can change ‘hello’ to “hello” by placing the cursor inside the word and typing cs'"
Which read change surround single-quotes to double-quotes you can interchange them.
That works for all other surrounds except tags e.g.
For those you have to change them to another surround then back to your desired tag. So cst'
Change surround to single-quote then cs'

Highlight the text you want to surround and type S
plus the desired end. e.g. S<em
on Hello world
will result in Hello world
The closing end will be placed on the next line.


| OpenShift Developer Sandbox |
Error:Something went wrong, please try again.
I agree to the Terms and Conditions
© 2020, Red Hat Inc.
You need to confirm your account using a mobile phone. Please enter you phone number including country code:
Country Code and Phone Number: -
Cost may apply for receiving texts outside of the United States. Please consult with your service provider for details.
Alternatively you may confirm your account using an activation code:
Activation Code:
A text was sent to your mobile phone. Please enter the received code below:
Received Code:
No text received? Code was resent.. Use a different phone number? Code was resent..


Hecke algebras#
In Sage a “Hecke algebra” always refers to an algebra of endomorphisms of some explicit module, rather than the abstract Hecke algebra of double cosets attached to a subgroup of the modular group.
We distinguish between “anemic Hecke algebras”, which are algebras of Hecke operators whose indices do not divide some integer N (the level), and “full Hecke algebras”, which include Hecke operators coprime to the level. Morphisms in the category of Hecke modules are not required to commute with the action of the full Hecke algebra, only with the anemic algebra.
- sage.modular.hecke.algebra.AnemicHeckeAlgebra#
alias of
HeckeAlgebra_anemic
- sage.modular.hecke.algebra.HeckeAlgebra#
alias of
HeckeAlgebra_full
- class sage.modular.hecke.algebra.HeckeAlgebra_anemic(M)#
Bases:
HeckeAlgebra_base
An anemic Hecke algebra, generated by Hecke operators with index coprime to the level.
- gens()#
Return a generator over all Hecke operator \(T_n\) for \(n = 1, 2, 3, \ldots\), with \(n\) coprime to the level. This is an infinite sequence.
EXAMPLES:
sage: T = ModularSymbols(12,2).anemic_hecke_algebra() sage: g = T.gens() sage: next(g) Hecke operator T_1 on Modular Symbols space of dimension 5 for Gamma_0(12) of weight 2 with sign 0 over Rational Field sage: next(g) Hecke operator T_5 on Modular Symbols space of dimension 5 for Gamma_0(12) of weight 2 with sign 0 over Rational Field
- hecke_operator(n)#
Return the \(n\)-th Hecke operator, for \(n\) any positive integer coprime to the level.
EXAMPLES:
sage: T = ModularSymbols(Gamma1(5),3).anemic_hecke_algebra() sage: T.hecke_operator(2) Hecke operator T_2 on Modular Symbols space of dimension 4 for Gamma_1(5) of weight 3 with sign 0 over Rational Field sage: T.hecke_operator(5) Traceback (most recent call last): ... IndexError: Hecke operator T_5 not defined in the anemic Hecke algebra
- is_anemic()#
Return True, since this is the anemic Hecke algebra.
EXAMPLES:
sage: H = CuspForms(3, 12).anemic_hecke_algebra() sage: H.is_anemic() True
- class sage.modular.hecke.algebra.HeckeAlgebra_base(M)#
Bases:
CachedRepresentation
,CommutativeAlgebra
Base class for algebras of Hecke operators on a fixed Hecke module.
INPUT:
M
- a Hecke module
EXAMPLES:
sage: CuspForms(1, 12).hecke_algebra() # indirect doctest Full Hecke algebra acting on Cuspidal subspace of dimension 1 of Modular Forms space of dimension 2 for Modular Group SL(2,Z) of weight 12 over Rational Field
- basis()#
Return a basis for this Hecke algebra as a free module over its base ring.
EXAMPLES:
sage: ModularSymbols(Gamma1(3), 3).hecke_algebra().basis() (Hecke operator on Modular Symbols space of dimension 2 for Gamma_1(3) of weight 3 with sign 0 over Rational Field defined by: [1 0] [0 1], Hecke operator on Modular Symbols space of dimension 2 for Gamma_1(3) of weight 3 with sign 0 over Rational Field defined by: [0 0] [0 2]) sage: M = ModularSymbols(Gamma0(22), sign=1) sage: H = M.hecke_algebra() sage: B = H.basis() sage: len(B) 5 sage: all(b in H for b in B) True sage: [B[0, 0] for B in M.anemic_hecke_algebra().basis()] Traceback (most recent call last): ... NotImplementedError: basis not implemented for anemic Hecke algebra
- diamond_bracket_matrix(d)#
Return the matrix of the diamond bracket operator \(\langle d \rangle\).
EXAMPLES:
sage: T = ModularSymbols(Gamma1(7), 4).hecke_algebra() sage: d3 = T.diamond_bracket_matrix(3) sage: x = d3.charpoly().variables()[0] sage: d3.charpoly() == (x^3-1)^4 True
- diamond_bracket_operator(d)#
Return the diamond bracket operator \(\langle d \rangle\).
EXAMPLES:
sage: T = ModularSymbols(Gamma1(7), 4).hecke_algebra() sage: T.diamond_bracket_operator(3) Diamond bracket operator <3> on Modular Symbols space of dimension 12 for Gamma_1(7) of weight 4 with sign 0 over Rational Field
- discriminant()#
Return the discriminant of this Hecke algebra.
This is the determinant of the matrix \({\rm Tr}(x_i x_j)\) where \(x_1, \dots,x_d\) is a basis for self, and \({\rm Tr}(x)\) signifies the trace (in the sense of linear algebra) of left multiplication by \(x\) on the algebra (not the trace of the operator \(x\) acting on the underlying Hecke module!). For further discussion and conjectures see Calegari + Stein, Conjectures about discriminants of Hecke algebras of prime level, Springer LNCS 3076.
EXAMPLES:
sage: BrandtModule(3, 4).hecke_algebra().discriminant() 1 sage: ModularSymbols(65, sign=1).cuspidal_submodule().hecke_algebra().discriminant() 6144 sage: ModularSymbols(1,4,sign=1).cuspidal_submodule().hecke_algebra().discriminant() 1 sage: H = CuspForms(1, 24).hecke_algebra() sage: H.discriminant() 83041344
- gen(n)#
Return the \(n\)-th Hecke operator.
EXAMPLES:
sage: T = ModularSymbols(11).hecke_algebra() sage: T.gen(2) Hecke operator T_2 on Modular Symbols space of dimension 3 for Gamma_0(11) of weight 2 with sign 0 over Rational Field
- gens()#
Return a generator over all Hecke operator \(T_n\) for \(n = 1, 2, 3, \ldots\). This is infinite.
EXAMPLES:
sage: T = ModularSymbols(1,12).hecke_algebra() sage: g = T.gens() sage: next(g) Hecke operator T_1 on Modular Symbols space of dimension 3 for Gamma_0(1) of weight 12 with sign 0 over Rational Field sage: next(g) Hecke operator T_2 on Modular Symbols space of dimension 3 for Gamma_0(1) of weight 12 with sign 0 over Rational Field
- hecke_matrix(n, *args, **kwds)#
Return the matrix of the n-th Hecke operator \(T_n\).
EXAMPLES:
sage: T = ModularSymbols(1,12).hecke_algebra() sage: T.hecke_matrix(2) [ -24 0 0] [ 0 -24 0] [4860 0 2049]
- hecke_operator(n)#
Return the \(n\)-th Hecke operator \(T_n\).
EXAMPLES:
sage: T = ModularSymbols(1,12).hecke_algebra() sage: T.hecke_operator(2) Hecke operator T_2 on Modular Symbols space of dimension 3 for Gamma_0(1) of weight 12 with sign 0 over Rational Field
- is_noetherian()#
Return True if this Hecke algebra is Noetherian as a ring. This is true if and only if the base ring is Noetherian.
EXAMPLES:
sage: CuspForms(1, 12).anemic_hecke_algebra().is_noetherian() True
- level()#
Return the level of this Hecke algebra, which is (by definition) the level of the Hecke module on which it acts.
EXAMPLES:
sage: ModularSymbols(37).hecke_algebra().level() 37
- matrix_space()#
Return the underlying matrix space of this module.
EXAMPLES:
sage: CuspForms(3, 24, base_ring=Qp(5)).anemic_hecke_algebra().matrix_space() Full MatrixSpace of 7 by 7 dense matrices over 5-adic Field with capped relative precision 20
- module()#
The Hecke module on which this algebra is acting.
EXAMPLES:
sage: T = ModularSymbols(1,12).hecke_algebra() sage: T.module() Modular Symbols space of dimension 3 for Gamma_0(1) of weight 12 with sign 0 over Rational Field
- ngens()#
The size of the set of generators returned by gens(), which is clearly infinity. (This is not necessarily a minimal set of generators.)
EXAMPLES:
sage: CuspForms(1, 12).anemic_hecke_algebra().ngens() +Infinity
- rank()#
The rank of this Hecke algebra as a module over its base ring. Not implemented at present.
EXAMPLES:
sage: ModularSymbols(Gamma1(3), 3).hecke_algebra().rank() Traceback (most recent call last): ... NotImplementedError
- class sage.modular.hecke.algebra.HeckeAlgebra_full(M)#
Bases:
HeckeAlgebra_base
A full Hecke algebra (including the operators \(T_n\) where \(n\) is not assumed to be coprime to the level).
- anemic_subalgebra()#
The subalgebra of self generated by the Hecke operators of index coprime to the level.
EXAMPLES:
sage: H = CuspForms(3, 12).hecke_algebra() sage: H.anemic_subalgebra() Anemic Hecke algebra acting on Cuspidal subspace of dimension 3 of Modular Forms space of dimension 5 for Congruence Subgroup Gamma0(3) of weight 12 over Rational Field
- is_anemic()#
Return False, since this the full Hecke algebra.
EXAMPLES:
sage: H = CuspForms(3, 12).hecke_algebra() sage: H.is_anemic() False
- sage.modular.hecke.algebra.is_HeckeAlgebra(x)#
Return True if x is of type HeckeAlgebra.
EXAMPLES:
sage: from sage.modular.hecke.algebra import is_HeckeAlgebra sage: is_HeckeAlgebra(CuspForms(1, 12).anemic_hecke_algebra()) True sage: is_HeckeAlgebra(ZZ) False


This is a standalone component that just displays tables. (See editable-table demo for more information.)
The editable-table-display component also allows you to style numeric columns and negative numbers.


?Igpl
gegH
Ç
HERBARIUM
OF
THE
NEW
YORK
BDTANICAL
GARDEN
plants
df
Hispaniola
no.
181*19
Santo
Domingo.
Panicum
pilosum
Sw,
Det.
A.H.Liogier,
197UÈ
Procumbent,
herbaceous,
15-20
cm
long;
glumes
green,
woods
along
Yabacoa
river
near
Guerra.
Alt,
100
m.
In
Collected
by
Dr.
Alain
H.
Liogier,
16
Jan.,
1972,-
New
York
Botanical
Garden
ltOMA7D
1604870
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


-
"I think it's really important to think outside of the box when you're coding"
words by marc newson -
When you’re busy leading a team, coding and maintaining standards, how do you find the time to stay ahead of new technologies and develop yourself as a technical lead? Software continues to transform the world in remarkable ways and developers are at the center of it. At CodeMesh 2017 we invite you to join us in Sofia to learn about latest new technologies and exciting plans on the horizon. As always, CodeMesh is filled with strong technical sessions as well as opportunities to meet and learn from others in the industry. We’ll make sure the schedule is filled with solid content, and will strive to deliver some fun surprises along the way.
You can code and create, and build the most wonderful place in the world.
Schedule: Grab some coffee & donuts and take a seat
- 09:00 - 10:00 AM registration
- 11:00 - 12:00 AM the future of creative computing
- 12:00 - 13:00 PM lunch break
- 13:00 - 14:00 AM linux for developers
- 14:00 - 15:00 AM the wonderful world of IOT
- 15:00 - 16:00 AM do we need to read coding books?
Speakers: get to know all the awesome people that will be speaking at CodeMesh!
Our speakers are not only top quality professionals, but they are also really awesome facilitators!
-
sean beamon
front-end developer
-
rodolfo faison
linux developer
-
nydia gaunt
qa
-
kum wathen
ruby on rails
-
morton hirt
ASP.NET
-
john simsons
cloud services
special events
Apart from the CodeMesh conference, we organize biweekly coding meetings and a lot of socials! If you are interested, please leave your email down below to be subscribed to out mailing list! subscribe


Sort notes by
Date
Title
Order notes by
Descending
Ascending
A
A
Default text size
Cursor position
start
end
Spellcheck


PIZZA PAP INN.
MAKE AN ORDER OF YOUR BEST VARIETY OF PIZZA!!!!!!!!
SIZE
Select
Small @Ksh300
Medium @Ksh600
Large @Ksh1000
CRUST
Select
Crispy @Ksh400
Stuffed @Ksh450
Gluten-free @Ksh500
TOPPINGS
Select
sausage @Ksh500
Pepperoni @Ksh580
Tomato @Ksh570
Mashroom @Ksh520
Onion @Ksh500
Bell-pepper @Ksh450
Scallion @Ksh500
Cheese @Ksh510
Becon @Ksh300
Pastron @Ksh550
Berbecue sauce @Ksh400
ADDRESS
Checkout
Submit
CONTACTS
Reach us on;
© 2020 Copyright Samwel Rangili:


CLASSES
This is where you can view information on the classes that you teach.
SI Chemistry
AD Chemistry
ORG Chemistry


I recently was tasked with leading the SNR Analytics team to build a Shallow Neural Network(SNN) to help predict if a patient should receive Immunotherapy treatment using a 3 gene signature we discovered using the JAMMIT Algorithm. To make sure I had a good understanding of how a shallow NN functions and to fully grasp the mathematics behind one I decided to build one from the ground up.
Check it outLearn all about how to split your data for training and testing purposes. Get your feet wet with Cross Validation. Learn how the Scikit Learn Library can help you!
Check it outMonte Carlo method is a mathematical technique that generates random variables for modelling risk or uncertainty of a certain system. In this code we attempt to solve for Pi using the Monte Carlo Method.
Check it outFollow along as I take you through the Pandas Intro that was created by Dataquest.io.
Check it out


{% extends '_includes/nav/nav_base.html' %} {% load i18n %} {% block nav-content %} {% url 'page' path='about/pycontw' as about_pycontw_url %} {% url 'page' path='about/code-of-conduct' as about_coc_url %} {% url 'page' path='about/staff' as about_staff_url %} {% url 'page' path='events/overview' as events_overview_url %} {% url 'events_schedule' as events_schedule_url %} {% url 'page' path='events/keynotes' as events_keynote_url %} {% url 'events_talk_list' as events_talk_list_url %} {% url 'page' path='events/sprints' as events_sprint_url %} {% url 'page' path='events/bof' as events_bof_url %} {% url 'page' path='events/pyday' as events_pyday_url %} {% url 'page' path='events/tutorials' as events_tutorial_url %} {% url 'page' path='speaking/cfp' as speaking_cfp_url %} {% url 'page' path='speaking/talk' as speaking_talk_url %} {% url 'page' path='speaking/tutorial' as speaking_tutorial_url %} {% url 'sponsor_list' as sponsor_url %} {% url 'page' path='registration/financial-aid' as reg_financial_aid_url%} {% url 'page' path='registration/ticket-info' as reg_ticket_info_url%} {% url 'page' path='venue' as venue_url %} {% url 'page' path='venue/accommodation' as venue_accommodation_url %}
{% endblock nav-content %}


Here’s how much Pagalpanti is expected to earn on its opening day
by FilmfareThe Anees Bazmee directed Pagalpanti has hit the theatres today. Starring Anil Kapoor, John Abraham, Arshad Warsi, Illeana D’Croz, Kriti Kharbanda, Urvashi Rautela and Pulkit Samrat the film is a leave-your-brains behind ensemble comedy. Receiving mixed reactions from the critics, the film is expected to have a decent opening collection.
With a reported occupancy rate of 20-25 per cent spread over 2000 screen for its first show, the film had a below-average opening in multiplexes. It needs strong evening shows to make up for the day. The trade analysts predict the first-day opening to be anywhere between Rs. 7 to 10 crores. The film does not have any tough competition at the theatres with Bala in its final leg and Marjaavaan fading at the ticket counters.


In this note we consider an invaluable programming tool, the parser generator. The problem that we want to solve is: how do we parse strings, that is, convert (unstructured) strings, the lowest-level representation of a program text, into (highly structured) representations like expressions, statements, functions etc which can then be compiled or interpreted.
Of course, the problem is much more general and arises in pretty much every large scale system, how do you convert raw data strings, into structured objects that can be manipulated by the rest of the system.
Of course, one can imagine various convoluted algorithms for extracting structure from strings. Indeed, you may well think that the conversion routine depends heavily on the target of the conversion! However, it turns out that we can design a small domain-specific language that describes a large number of the kinds of target structures, and we will use a parser generator that will automatically convert the structure description into a parsing function!
An Arithmetic Interpreter
As a running example, let us build a small interpreter for a language of arithmetic expressions, described by the type
type aexpr =
| Const of int
| Var of string
| Plus of aexpr * aexpr
| Minus of aexpr * aexpr
| Times of aexpr * aexpr
| Divide of aexpr * aexpr
shown in file (arithInterpreter.ml)0. This expression language is quite similar to what you saw for the random-art assignment, and we can write a simple recursive evaluator for it
let foo x = match x with
| C1 ... -> e1
| C2 ... -> e2
let foo = function
| C1 ... -> e1
| C2 ... -> e2
let rec eval env e = match e with
| Const i -> i
| Var s -> List.assoc s env
| Plus (e1, e2) -> eval env e1 + eval env e2
| Minus (e1, e2) -> eval env e1 - eval env e2
| Times (e1, e2) -> eval env e1 * eval env e2
| Divide (e1, e2) -> eval env e1 / eval env e2
Here the env
is a (string * int) list
corresponding to a list of variables and their corresponding values. Thus, if you run the above, you would see something like
# eval [] (Plus (Const 2, Const 6)) ;;
- : int = 4
# eval [("x",16); ("y", 10)] (Minus (Var "x", Var "y")) ;;
- : int = 6
# eval [("x",16); ("y", 10)] (Minus (Var "x", Var "z")) ;;
Exception: NotFound.
Now it is rather tedious to write ML expressions like Plus (Const 2, Const 6)
, and Minus (Var "x", Var "z")
. We would like to obtain a simple parsing function
val parseAexpr : string -> aexpr
that converts a string to the corresponding aexpr
if possible. For example, it would be sweet if we could get
# parseAexpr "2 + 6" ;;
- : aexpr = Plus (Const 2, Const 6)
# parseAexpr "(x - y) / 2" ;;
- : aexpr = Divide (Minus (Var "x", Var "y"), Const 2)
and so on. Lets see how to get there.
Strategy
We will use a two-step strategy to convert raw strings into structured data.
Step 1 (Lexing) : From String to Tokens
Strings are really just a list of very low-level characters. In the first step, we will aggregate the characters into more meaningful tokens that contain more high-level information. For example, we will can aggregate a sequence of numeric characters into an integer, and a sequence of alphanumerics (starting with a lower-case alphabet) into say a variable name.
Thus, as a result of the lexing phase, we can convert a list of individual characters
into a list of tokens
Step 2 (Parsing) : From Tokens to Tree
Next, we will use a special description of the structures we are trying to generate called a grammar to convert the list of tokens into a tree-like representation of our final structure:
- : aexpr = Plus (Const 229, Times (Const 98, Var "x2"))
The actual algorithms for converting from lists of tokens to trees are very subtle and sophisticated. We will omit a detailed description and instead just look at how the structures can themselves be represented by grammars.
Next, we get into the details of our the above strategy, by describing exactly what the lexer and parser (generators) do in terms of their input and output.
Lexers
We will use the tool called ocamllex
to automatically obtain a lexer from a high-level description of what the tokens are and what what sequences of characters should get mapped to tokens.
Tokens
The file (arithParser0.mly)1 describes the set of tokens needed to represent our simple language
%token <int> CONST
%token <string> VAR
%token PLUS MINUS TIMES DIVIDE
%token LPAREN RPAREN
%token EOF
Note that the first two tokens, CONST
and VAR
also carry values with them, respectively int
and string
.
Regular Expressions
Next, we must describe the sequences of characters that get aggregated into a particular token. This is done using (regular expressions)7 defined in the file (arithLexer.mll)2.
{ open ArithParser }
rule token = parse
| eof { EOF }
| [' ' '\t' '\r' '\n'] { token lexbuf }
| ['0'-'9']+ as l { CONST (int_of_string l) }
| ['a'-'z']['A'-'z']* as l { VAR l }
| '+' { PLUS }
| '-' { MINUS }
| '*' { TIMES }
| '/' { DIVIDE }
| '(' { LPAREN }
| ')' { RPAREN }
the first line at top simply imports the token definitions from arithParser.mly
. Next, there is a sequence of rules of the form | <regexp> {ml-expr}
.
Intuitively, each regular expression describes a sequence of characters, and when that sequence is matched in the input string, the corresponding ML expression is evaluated to obtain the token that is to be returned on the match. Let’s see some examples,
| eof { EOF }
| '+' { PLUS }
| '-' { MINUS }
| '*' { TIMES }
| '/' { DIVIDE }
| '(' { LPAREN }
| ')' { RPAREN }
- when the
eof
is reached (i.e. we hit the end of the string), a token calledEOF
is generated, similarly, when a character+
,-
,/
etc. are encountered, the lexer generates the tokensPLUS
,MINUS
,DIVIDE
etc. respectively,
| [' ' '\t' '\r' '\n'] { token lexbuf }
[c1 c2 ... cn]
where eachci
is a character denotes a regular expression that matches any of the characters in the sequence. Thus, the regexp[' ' '\n' '\t']
indicates that if either a blank or tab or newline is hit, the lexer should simply ignore it and recursively generate the token corresponding to the rest of the buffer,
| ['0'-'9']+ as l { CONST (int_of_string l) }
['0' - '9']
denotes a regexp that matches any digit-character. When you take a regexp and put a+
in front of it, i.e.e+
corresponds to one-or-more repetitions ofe
. Thus, the regexp['0'-'9']+
matches a non-empty sequence of digit characters! Here, the variablel
holds the exact substring that was matched, and we simply writeCONST (int_of_string l)
to return theCONST
token carrying theint
value corresponding to the matched substring.
| ['a'-'z']['A'-'z' '0'-'9']* as l { VAR l }
e1 e2
denotes a regexp that matches any strings
that can be split into two partss1
ands2
(s.t.s == s1 ^ s2
) wheres1
matchese1
ands2
matchese2
. That is,e1 e2
is a sequencing regexp that first matchese1
and then matchese2
.e*
corresponds to zero-or-more repetitions ofe
. Thus,['a'-'z']['A'-'z' '0'-'9']*
is a regexp that matches all strings that begin with a lower-case alphabet, and then have a (possibly empty) sequence of alpha-numeric characters. As before, the entire matching string is bound to the variablel
and in this case theVAR l
token is returned indicating that an identifier appeared in the input stream.
Running the Lexer
We can run the lexer directly to look at the sequences of tokens found. The function Lexing.from_string
simply converts an input string into a buffer on which the actual lexer operates.
# ArithLexer.token (Lexing.from_string "+");;
- : ArithParser.token = ArithParser.PLUS
# ArithLexer.token (Lexing.from_string "294");;
- : ArithParser.token = ArithParser.CONST 294
Next, we can write a function that recursively keeps grinding away to get all the possible tokens from a string (until it hits eof
). When we call that function it behaves thus:
# token_list_of_string "23 + + 92 zz /" ;;
- : ArithParser.token list =
[ArithParser.CONST 23; ArithParser.PLUS; ArithParser.PLUS;
ArithParser.CONST 92; ArithParser.VAR "zz"; ArithParser.DIVIDE]
# token_list_of_string "23++92zz/" ;;
- : ArithParser.token list =
[ArithParser.CONST 23; ArithParser.PLUS; ArithParser.PLUS;
ArithParser.CONST 92; ArithParser.VAR "zz"; ArithParser.DIVIDE]
Note that the above two calls produce exactly the same result, because the lexer finds maximal matches.
# token_list_of_string "92z" ;;
- : ArithParser.token list = [ArithParser.CONST 92; ArithParser.VAR "z"]
Here, when it hits the z
it knows that the number pattern has ended and a new variable pattern has begun. Of course, if you give it something that doesn’t match anything, you get an exception
# parse_string "%" ;;
Exception: Failure "lexing: empty token".
Parsers
Next, will use the tool called ocamlyacc
to automatically obtain a parser from a high-level description of the target structure called a grammar. (Note: grammars are very deep area of study, we’re going to take a very superficial look here, guided by the pragmatics of how to convert strings to aexpr
values.)
Grammars
A grammar is a recursive definition of a set of trees, comprising
Non-terminals and Terminals, which describe the internal and leaf nodes of the tree, respectively. Here, the leaf nodes will be tokens.
Rules of the form
nonterm :
| term-or-nonterm-1 ... term-or-non-term-n { Ocaml-Expr }
that describe the possible configuration of children of each internal node, together with an Ocaml expression that generates a value that is used to decorate the node. This value is computed from the values decorating the respective children.
We can define the following simple grammar for arith expressions:
aexpr:
| aexpr PLUS aexpr { Plus ($1, $3) }
| aexpr MINUS aexpr { Minus ($1, $3) }
| aexpr TIMES aexpr { Times ($1, $3) }
| aexpr DIVIDE aexpr { Divide ($1, $3) }
| CONST { Const $1 }
| VAR { Var $1 }
| LPAREN aexpr RPAREN { $2 }
Note that the above grammar (almost) directly mimics the recursive type definition of the expressions. In the above grammar, the only non-terminal is aexpr
(we could call it whatever we like, we just picked the same name for convenience.) The terminals are the tokens we defined earlier, and each rule corresponds to how you would take the sub-trees (i.e. sub-expressions) and stitch them together to get bigger trees.
The line %type <ArithInterpreter.aexpr> aexpr
at the top stipulates that each aexpr
node will be decorated with a value of type ArithInterpreter.aexpr
– that is, by a structured arithmetic expression.
Next, let us consider each of the rules in turn.
| CONST { Const $1 }
| VAR { Var $1 }
- The base-case rules for
CONST
andVAR
state that those (individual) tokens can be viewed as corresponding toaexpr
nodes. Consider the target expression in the curly braces.
Here$1
denotes the value decorating the 1st (and only!) element of the corresponding non/terminal- sequence. That is, for the former (respectively latter) case$1
theint
(respectivelystring
value) associated with the token, which we use to obtain the base arithmetic expressions via the appropriate constructors.
| aexpr PLUS aexpr { Plus ($1, $3) }
| aexpr MINUS aexpr { Minus ($1, $3) }
| aexpr TIMES aexpr { Times ($1, $3) }
| aexpr DIVIDE aexpr { Divide ($1, $3) }
- The inductive case rules, e.g. for the
PLUS
case says that if there is a token-sequence that is parsed into anaexpr
node, followed by aPLUS
token, followed by a sequence that is parsed into anaexpr
node, then the entire sequence can be parsed into anaexpr
node. Here$1
and$3
refer to the first and third elements of the sequence, that is, the left and right subexpressions. The decorated value is simply the super-expression obtained by applying thePlus
constructor to the left and right subexpressions. The same applies to
| LPAREN aexpr RPAREN { $2 }
- The last rule allows us to parse parenthesized expressions; if there is a left-paren token followed by an expresssion followed by a matching right-paren token, then the whole sequence is an
aexpr
node. Notice how the decorated expression is simply$2
which decorates the second element of the sequence, i.e. the (sub) expression being wrapped in parentheses.
Running the Parser
Great, lets take our parser out for a spin! First, lets build the different elements
$ cp arithParser0.mly arithParser.mly
$ make clean
rm -f *.cm[io] arithLexer.ml arithParser.ml arithParser.mli
$ make
ocamllex arithLexer.mll
11 states, 332 transitions, table size 1394 bytes
ocamlyacc arithParser.mly
16 shift/reduce conflicts.
ocamlc -c arithInterpreter.ml
ocamlc -c arithParser.mli
ocamlc -c arithLexer.ml
ocamlc -c arithParser.ml
ocamlc -c arith.ml
ocamlmktop arithLexer.cmo arithParser.cmo arithInterpreter.cmo arith.cmo -o arith.top
Now, we have a specialize top-level with the relevant libraries baked in. So we can do:
$ rlwrap ./arith.top
Objective Caml version 3.11.2
# open Arith;;
# eval_string [] "1 + 3 + 6" ;;
- : int = 10
# eval_string [("x", 100); ("y", 20)] "x - y" ;;
- : int = 80
And lo! we have a simple calculator that also supports variables.
Precedence and Associativity
Ok, looks like our calculator works fine, but lets try this
# eval_string [] "2 * 5 + 5" ;;
- : int = 20
Huh?! you would think that the above should yield 15
as *
has higher precedence than +
, and so the above expression is really (2 * 5) + 5
. Indeed, if we took the trouble to put the parentheses in, the right thing happens
# eval_string [] "(2 * 5) + 5" ;;
- : int = 15
Indeed, the same issue arises with a single operator
# eval_string [] "2 - 1 - 1" ;;
- : int = 2
What happens here is that the grammar we gave is ambiguous as there are multiple ways of parsing the string 2 * 5 + 5
, namely
Plus (Times (Const 2, Const 5), Const 5)
, orTimes (Const 2, Plus (Const 5, Const 5))
We want the former, but ocamlyacc gives us the latter! Similarly, there are multiple ways of parsing 2 - 1 - 1
, namely
Minus (Minus (Const 2, Const 1), Const 1)
, orMinus (Const 2, Minus (Const 1, Const 1))
Again, since -
is left-associative, we want the former, but we get the latter! (Incidentally, this is why we got those wierd grumbles about shift/reduce conflicts
when we ran ocamlyacc
above, but lets not go too deep into that…)
There are various ways of adding precedence, one is to hack the grammar by adding various extra non-terminals, as done here (arithParser2.mly)[5]. Note how there are no conflicts if you use that grammar instead.
However, since this is such a common problem, there is a much simpler solution, which is to add precedence and associativity annotations to the .mly file. In particular, let us use the modified grammar (arithParser1.mly)3.
$ cp arithParser1.mly arithParser.mly
$ make
ocamllex arithLexer.mll
11 states, 332 transitions, table size 1394 bytes
ocamlyacc arithParser.mly
ocamlc -c arithInterpreter.ml
ocamlc -c arithParser.mli
ocamlc -c arithLexer.ml
ocamlc -c arithParser.ml
ocamlc -c arith.ml
ocamlmktop arithLexer.cmo arithParser.cmo arithInterpreter.cmo arith.cmo -o arith.top
check it out, no conflicts this time! The only difference between this grammar and the previous one are the lines
%left PLUS MINUS
%left TIMES DIVIDE
This means that all the operators are left-associative
so e1 - e2 - e3
is parsed as if it were (e1 - e2) - e3
. As a result we get
# eval_string [] "2 - 1 - 1" ;;
- : int = 0
Furthermore, we get that addition and subtraction have lower precedence than multiplication and division (the order of the annotations matters!)
# eval_string [] "2 * 5 + 5" ;;
- : int = 15
# eval_string [] "2 + 5 * 5" ;;
- : int = 27
Hence, the multiplication operator has higher precedence than the addition, as we have grown to expect, and all is well in the world.
This concludes our brief tutorial, which should suffice for your NanoML programming assignment. However, if you are curious, I encourage you to look at (this)6 for more details.


Media face forwards bicycle artisanal camera modem warehouse. Garage industrial grade singularity bicycle sentient face forwards hotdog camera sensory sign knife tanto weathered. Motion marketing Legba assassin dolphin construct engine city sentient human range-rover uplink. Nano-rifle tiger-team rain into monofilament dead. Shrine uplink hotdog denim voodoo god long-chain hydrocarbons tiger-team network.


| Obsessed with teaching his victims the value of life, a deranged, sadistic serial killer abducts the morally wayward. Once captured, they must face impossible choices in a horrific game of survival. The victims must fight to win their lives back, or die trying... | |
| Genres: | Horror, Mystery, Thriller |
| Director: | James Wan |
| Writer: | Leigh Whannell, James Wan |
Cast: | Adam Faulkner-Stanheight - Leigh Whannell Dr. Lawrence Gordon - Cary Elwes Detective David Tapp - Danny Glover Detective Steven Sing - Ken Leung Kerry - Dina Meyer Paul - Mike Butters Mark - Paul Gutrecht Zep Hindle - Michael Emerson Brett - Benito Martinez Amanda - Shawnee Smith Diana Gordon - Makenzie Vega Alison Gordon - Monica Potter Jeff - Ned Bellamy Carla - Alexandra Bokyun Chun Father - Avner Garbi Jigsaw - Tobin Bell Dead Cellmate - Oren Koules Detective - Hans Raith |


{{include '../element/main-menu' main_menu}}
{{include './element/admin-menu' admin_menu}}
Modify password
{{if error}}
{{error}}
{{/if}}
Email
Password


AJ Jones, welcome home. Thanks. Where have you been? St. Louis.
And what have you been doing in St. Louis? I was doing a women's event in St. Louis for
Southgate Church. You have been there many, many times.
Behind years in a row. They just love you, I guess. They do. I love them too though.
Well, that works because that would be awkward if you didn't. Yes. If it's not too weird a statement,
I've fallen in love with that group of ladies.
They're so amazing.
Oh, good.
And I love seeing all the stuff that God's doing from year to year to year.
And you took a team of women with you to minister as well.
I did.
And do you have fun?
It was so fun.
They're they're crazy.
Like the women you took with you or the women you went to visit?
Well, the women went to visit and then I brought some crazies with me.
So I had a lot of extra votes on the team this year.
And that worked out real well.
So really even car rides with extraverts.
Well, it was a little loud when we first all got in the van to head to St.
Louis and then a couple of the extroverts fell asleep and it got like about, you know, normal.
So that's amazing.
So yeah, it was good.
So you had a great time.
You've literally just walked in the door from driving home from St.
Louis. Yeah.
And you're looking amazing.
Really?
Ah, absence makes a heart grefonder.
So I don't actually look amazing, but because I've been away for three days, I look OK.
But what's the right answer that still lets me jump here tonight?
Oh dear.
Um, I don't know.
I have to see.
OK.
You realize all the children are still alive.
That must count for something.
It does.
It I mean, alive and they even looked happy.
Very happy and like you might have bath them this weekend.
I did.
I bath them.
I remember how to do that.
And I fed them, I think mostly.
Yeah.
And it's kind of easy now because I let them
and pick their own clothes.
- Okay, okay, including MJ.
- And you're not there to correct me.
Sure, he went in Superman,
but Jama's the church today was fine, no one cared.
- Oh, okay, well he'd look cute.
- Tell me about this week, recap.
- Taught on the father heart at the school this week.
- Yes, you did, you did an incredible job.
- Thank you.
- There was lots of tears.
- Lots of tears, that's what you're looking for
in a father heart week.
(laughing)
- And then I taught at M&A on Monday night.
And then we had a, we said this every week,
we had a week of meetings.
because we have weekly meetings, but they were very productive and very encouraging
meetings. They were. It was a good week.
The most important thing of this week was new iPhones came up. Yes. Did we get new iPhones?
We did. Does that surprise anybody? Probably not.
Now this is the advantage of the iPhone upgrade cycle. You can sell your current phones to
couple the cost of new phones. And it, yeah. Which is what we did. There you go. We actually,
in America, they have the iPhone upgrade programs right from Apple, which seems like
a lot less work. So we signed up for that, which just gives us a new iPhone every year,
which is basically what we're doing.
So now going forward, we don't have to find somebody to sell it to. We just hand it back
and get a new one.
Correct.
I'm liking this idea. But we've never really had a hard time selling our phones.
Nope. No, we have not.
So, yeah, I'm super excited. We didn't have great internet while we were away this weekend.
So some of my things instantly downloaded when I walked in the house.
What do you mean your things?
My apps and stuff that had it.
from your backup. Yeah, that hadn't downloaded from backup. So I'm with you.
I'm excited. I haven't played my game all weekend. So strong. I know, right?
I haven't played lots of my game this week. It's amazing how much gaming you can get done when
your wife isn't there to kind of moderate your progress through Super Mario Brothers U.
When we were driving in the car as we were leaving, they were saying, so you know, what's
all I'm going to do with the kids this weekend? And I'm like, you know, I don't know, but I
imagine he's going to play more video games than normal.
And I said, but he will have to feed the kids.
And so Shannon said, well, if you come home and MJ knows how to make his own
omelets, you'll know that he didn't feed the kids.
I made sure the kids were turned towards the light periodically.
Great.
They just ate M&Ms and Skittles out of a dog bowl and they were fine.
I just put down some newspaper in the corner and they were great.
All we can.
A little bit of water, maybe.
Talk to him about jingles because this Thursday,
October 1st is the cut off for a jingle.
Yeah, come on.
And I've had lots of people come up to me at church and just say, I've got some jingles
for you, but no tweets yet.
Oh, guys, you have to get your jingles in.
We need your jingles by the first.
Not strictly speaking true that we had no tweets.
We did get one tweet.
Yes.
But I'm too excited about it to talk about it.
Yes.
Do you know what?
I was thinking about a topic for this week.
Yeah.
And I was thinking about what you were teaching this week at school.
Yeah.
Surely we've talked about the topic we're going to talk about tonight.
But we haven't had that.
And I look back through 69 episodes and we haven't talked about the power of forgiveness.
At all.
It's hard to believe.
Shocking.
Right.
It's like not talking about donuts, the kindness of God, the father, the prophetic.
Fish tacos.
Right.
We hadn't covered forgiveness.
And for people who are connected with you, who know, you who've heard you speak,
Obviously, the father heart message is a key message of yours.
But right at the first message you probably ever share on the father heart message is your forgiveness message.
And thousands of people around the world have been impacted by your life story.
Yeah.
Which you don't have to tell now because it takes a long time.
Yeah.
But forgiveness has been key to your life.
And if I made the radiance of your life, like when I met you in 2000,
in three, I couldn't equate the person standing before me with the person in the story when
you tell your life story. Does that make sense? Yeah. When you're telling the class about
your life, it's very, very hard for me to correlate the little girl in that story who
grew up to be the radiant woman in front of me. Cool.
And I think obviously the key to that is not only receiving forgiveness, but extending
forgiveness. So talk to me a little bit about misconceptions about forgiveness.
Okay. You have to remember when you met me though, you're talking 12 years into a journey of learning
how to forgive at that point. And so... Yeah, you hadn't met me in one of the new chapter of
forgiveness. I forgive Mario, Luigi, Donkey Kong, and Alan.
And what's that guy's name?
Bowser.
Yes, we have a Bowser in our little studio here.
That's that sad.
Anyway, I...
That glorious.
Glorious.
I'm sorry, I meant glorious.
I just said sad.
I think there's a lot of misconceptions about forgiveness.
I think sometimes people's reticence to forgive,
and certainly my reticence to forgive to begin with,
was that I thought if I forgave someone for what they had done,
or, you know, whether it's my dad or whoever it was, that that meant what they had done
was okay.
Right.
So I couldn't get to the point or I wouldn't allow myself to get to the point where I
forgave them because I thought, well, what they did wasn't okay and I won't say that.
Right.
But forgiveness doesn't say what they did was okay.
It just says you don't owe me for it anymore.
But those two seem neighbors.
You don't owe me anything for what you did.
I mean, that's a hard mountain to climb.
People who've been betrayed, beaten up, stolen from, abused, right?
To turn to the person who perpetrate those horrible things, and you say, actually,
I don't need to get even with you.
You don't owe me anything.
I actually release you from everything you did to me.
That's an enormously Everest like.
That's to to ascend.
What is the reward for doing that?
Because surely there is merit found in the vitriol of unforgiveness.
Well, nothing that's going to give you life.
I think the reward in the short answer is freedom.
But I think maybe looking at it a little bit differently, like here's the thing.
You and I, when we're, when we've been forgiven by Jesus for all the things that
we've done, we owe nothing now.
Right.
That's not fair either.
But the kingdom of God isn't about fairness.
So I'm thankful that I don't know what I should owe for the way that I've lived my life because actually what I owe is my life.
But Jesus made an exchange for me.
And so you're doing the same thing.

When you release somebody from the debt that they owe you, then actually God can move and bring healing.
the longer you sort of sit there with your little hands around their little neck waiting for justice,
you're never going to see healing in that situation. And you're the one that's suffering as much as
anybody else. Yeah, unforgiveness is kind of like drinking poison and hoping the other person gets
sick. Right. It's funny because even in the church circles and the Christian world that some people
move in, their viewpoint of God is through a justice mentality. Yeah. Where they want justice
for the person who sinned against them, but they want mercy for themselves and their sins against God.
Right. And it doesn't work that way. Why doesn't it work that way?
 And if I want mercy for you, I get mercy
for me, but I can't. It doesn't work that I could sow wanting justice and reap mercy.
Right. There's that amazing verse that says, "Do not be deceived. God cannot be mocked. A man
and reap for His souls.
And it's impossible to sow oranges and reap bananas.
So you can't sow, get them, God, get them.
See what they've done to me?

And the thing is you don't just reap from that one situation.
You reap from all over the place.
So whatever you're sowing, even if you might even
be sowing something small and with just one situation
where you're unwilling to release forgiveness,
going to reap unforgiveness from all over the place. So it's never going to be a good decision.
I heard a Christian minister once say that it's immoral to forgive somebody who hasn't first
repented and said sorry for the thing that you need to forgive them for.
I'm not sure where they get that from. I mean, I remember the Lord saying to me,
You know, when he was asking me to forgive my first husband for, you know, everything that had
gone down in that situation. And there was a lot. And he woke me up one morning, gave me this dream,
and he said, "I want you to forgive him and let him go." And I was like, "Okay." You know,
I was bawling because of the stream that he'd given me. And he said, "I want you to forgive him."
And he made, he's never going to say that he's sorry. And so it's one of the questions that I
ask people, you know, when we talk about forgiveness, can you forgive them, even if
they're never going to say that they're sorry? Because us extending forgiveness is
actually something that Jesus asks us to do. And it never says anywhere that I can
remember that they have to say they're sorry first. Right. You know, so what was
that like forgiving your husband for running off of somebody else and cheating
on you? And then ultimately filing for divorce against you. What was that like
having to forgive when the Lord said, he's never going to say he's sorry.
horribly difficult.
I mean, you know, there was, there were moments where it felt easy
ish and then there was days where it was just horribly difficult.
Cause it kind of comes in stages and layers, you know, right.
Um, but freedom lies on the other side of doing it.
I remember you teaching something that took me a while to get my
head around. But I've since meditated on it, I think it's amazing. Tell me your insight
on forgiveness about Stephen being stoned to death in the book of Acts.
So if you read Acts, where Stephen is, he's anointed for lack of a better word, he's chosen
and he's set apart. And then a couple chapters later, he's stoned to death. And certainly
present at that stoning, possibly orchestrating it, is a man named Saul.
And we know that he's there because the Bible says that he's there.
And Stephen, as he's being killed, releases forgiveness to those that are killing him.
Just as Jesus did on the cross.
Just as Jesus did on the cross.
And I think it was pretty impressive.
I've never been killed before, but I think it would be difficult, you know, while people are, you know, throwing large rocks at me to be like, no, I forgive them.
But he did.
He forgave them.
And I really think that that forgiveness is what releases God to move in Saul's life.
So all of that takes place in Acts 7.
And then in Acts 9, Saul has his encounter on the road to Damascus and is blinded,
encounters Jesus and becomes Paul.
So it makes me wonder if Stephen's forgiveness released a grace upon Saul for God to move
and do what he did and make him fall.
- Here's something I'm wondering.
It's quite aside from the spiritual dynamics
of forgiveness and/or unforgiveness.
Like when I met you,
even though, as I was saying, I'd listened to your life story
and we're gonna put a link in the show notes
so you can hear AJ's test when if you haven't heard it before,
I just even think about what kind of person
you would have been if you had an extended forgiveness.
Certainly you wouldn't have been as cute
and as shiny as you were.
You probably would have looked like a prune.
I'd look like one of those, did you ever make one of those apple people?
No.

We had TV in Scotland,
ten or ten.
Oh, wow, that's great.
But not good TV.
Now you're going to get emails.
Yeah, you know, when you meet people who are struggling with unforgiveness,
it's not a pretty site, especially when it's been a 30, 40, 50 year journey.
And the trouble is it's like, I know you probably don't have a better tool to deal with the pain that you're carrying,
but ironically, the way to get rid of the pain is to extend forgiveness to the person who inflicted the pain in the first place.
But I think when you're right in the midst of a whole bunch of pain, it seems like the hardest thing in the world to do.
Absolutely.
But it's the smartest thing.
And it's the thing that will get you the healing that you'd so desperately want the fastest.
Yeah, like I said, if you want to hear ages story of growing up in a very broken and abusive household and her struggles with suicide and death in the family and alcoholism and how do you even describe your life?
It's like all the episodes of every major theme in a soap opera happening in your life,
but it was all real.
And then the trail and I mean, it's amazing.
I just love that you're happy.
And I remember, I remember one time we were coming home from church and you'd been on
prayer team and you were praying with somebody who was going through a horrible divorce.
And in the car home, you know, you were really quiet.
I said, are you okay?
And you're like, yeah, I just praying for somebody who's, you know, whose husband's just
left her and it just really broke my heart.
I just can't even imagine what it would be like to go through that.
And I was like, babe, you went through that and you were like, oh, yeah, I did.
I forgot about that.
But that's what forgiveness does, because it totally removes the power behind the things
that you've been through.
So yeah, I've been through a lot of stuff, but I don't have to walk like the wounded and
it's forgiveness that releases that.
Forgiveness is the door that ushers in the restoration, the whole experience.
Yeah.
just unlock that bad boy and the grace and the mercy
and the love of Jesus just becomes pouring in.
It's incredible.
- Yeah.
- If you would like to hear AJ's testimony
and her teaching on forgiveness, go to lmaj.com/70
and it will be in the show notes
so you can find a link there.
All right, do you wanna say anything else about forgiveness?
- I'd encourage you to give it a shot
and realize that sometimes you forgive the same person
for the same thing more than once
maybe 50 or 100 times depending on what it is and you just keep going until that thing
doesn't have any power behind it when it comes to mind.
I mean, the two key verses in Scripture, Matthew 18 with the power of the unmerciful servant
and then the Lord's Prayer that actually it's a mandate to forgive. That's not very helpful to
know when you're in the midst of forgiveness. But I guess one thing that's very handy to know
is that forgiveness is actually a choice it's not feeling. You're probably never going to feel
like forgiving. It's always going to be a choice of something you choose.
Yeah, you just get your will behind it and go for it.
And I think people get stuck because it feels fraudulent, like the pain feels real,
but the forgiveness feels fake. What do you say to people in that situation?
Well, I think there's power in your words. So you start with getting your will behind it and
releasing forgiveness. And sometimes your emotions come online and sometimes they don't,
but either way you're being obedient to Scripture and God's going to honor that.
Very good. I've got a listening question for you.
Okay.
Last week we talked about connection. This week we got an
a listening question from Charlene and she says this, she said, "I love your podcast.
As a single woman, I sometimes struggle with the who to maintain connection with.
I have lots of friends in that there are many people who I enjoy and can talk to
at a party or event. But my question is, how does someone who is single and loved by others
get on the minds of other people to invite them places.
It seems like others may be assuming that I don't want to spend time with them and their kids or husbands,
but I actually would love to.
My other question is, what does community or connection look like for someone single like me,
as it seems like all of it is centered around spouses and children, which I don't have yet?
Thanks again, love you guys have done. Well, you can answer the second part to that question,
because you were single for quite some time after being divorced until you met the sons of Scotsman.
It's true. It's true. I was single for quite a while.
So my question to you then on behalf of this listener is what did community or connection look
like for you when a lot of your friends had spouses? I suppose community and connection
for me looked a lot like doing different church events like... Because that was your orbit.
Because that was my orbit. And so yeah, I mean, there was young adult things, there was, you know,
youth things and I kind of helped out with the youth. And then if there was, you know,
if there was a service going on, I'd go show up and most of my friends all were in that
same sort of orbit. So we just mostly groups, I mean, just huge groups of people hanging
out. And we kind of all went out for lunch every Sunday and all did this and all that,
you know what I mean? Like we just moved around together as a big kind of horde of people.
Right. So I had friends within that group that were definitely tighter
Friendships, you know where I was definitely closer with them and they were the kind of people that I go
I'm really hurting about this or you know
Hey, could you pray with me about that or you know if you because I'm not exactly an extrovert?
I'd need smaller group time as well. Um and some of those people were married in some of them weren't but um
They tended to be all people that were evenly invested in relationship
Hopefully that's a helpful second question. First question is, how do you get in the minds of other people, especially people who got kids or spouses?
I think the funny thing is I remember being single and trying to connect with people who were married and had kids and
really had no clue
how different their life was from mine. Like I remember saying, hey, you know, why don't you come over at seven o'clock and they were like, uh,
I put my kids to bed at seven and it hadn't, you know, until you're married or until you have kids,
It's very difficult to imagine just how consuming getting through the day is.
Forget spending time with your spouse or having a date night.
I just mean making sure none of the children are bleeding or broken and are
well fed and have done their homework and are in bed.
Right.
You know, by the time you get to the end of the night, you're just like, uh...
I mean, I don't even arrive at thinking about even possibly being social until
after they've gone to bed and I've had half an hour of nobody saying, "Mommy," so you're now talking
seven thirty before I've considered if I even have energy to see somebody.
Right.
And usually by then I'm like, it's too late.
And so tomorrow begins.
Right.
So it's probably not the single person's fault.
If you know, so because the question is how to get on other people's minds.
The truth is other people's minds are probably wasted by about eight p.m.
They're just like, oh my gosh, I believe it got for that day.
So it's not like they're in this constant stream of socializing and you're
somehow missing out on it. It's they're probably just collapsed.
And I was saying, I was especially when there's kids involved, right?
I think there's the stage of you get married and you're learning how to do life
with a spouse, but really even at that stage, you could still go, Hey, babe,
I'm going to go out with so and so. And it's no inconvenience to the other person
because you're not asking them to pick up the slack. But it's, it's different
when there's kids involved because now you're, you know, in order for me to go out
and hang out for a day with whoever, that means you have to be okay with having three
kids and everything that comes with that. And you're just as tired as I am. So it's a lot easier
if you're sharing the load. So obviously we frequently just say, hey, come over and hang out.
Right. And hang out means be a part of what's going on.
Be a part of the circus that's going on. Be prepared to get catch up flung at you.
be prepared to persuade children that don't eat to be content to have door the explorer on the background and then once all the kids are the way be prepared to set a sofa and say nothing.
Well if we personalize it and we think about the friends that we have in our orbit of our life at this at this point if they were to come over and just fit in with what's going on.
and be happy to just kind of hang out and then take the energy level as it comes which means that seven o'clock there may be energy for conversation and there may not.
You know and you're free to hang out watch movies with us if that's what we're doing or you know sometimes we're chatting or whatever.
But it sort of go with the ebbs and flow of the amount of energy that's available then that's really cool but.
It's i think some it depends on the person because if you're looking for more of a connection in a heartfelt something that's going to be really hard for me to do specifically or.
I'm without having you know face time without any kids involved without any for me that takes planning energy for that event because i'm spending everything i've got on the kids and right and then you're planning energy on that means.
I'm spending my energy on a completely different event which is juggling three kids or vice versa.
So you're available spots as a married person with three children to go and connect with other people is drastically limited which is why might look insular from the outside i wonder.
Because you're just you're just maintaining keeping your head above the water and i think as kids get older it looks a little different i was just in a stage where ours are really little right there.
you know we still have one in diapers and they're just very hands-on right and that needs to be the
priority so i guess the answer to the first part of the question is unfortunately you have to work
very very hard at probably getting very very little yeah i'm not sure it's gonna feel like a good
return on investment necessarily probably the great return on investment is finding other people
from the similar sort of season of life and connecting with them.
Yeah.
Okay, here's another lesson question for you.
Yeah.
This is from Kayla.
This is a great question.
Okay.
She says, "I'm a believer and I've been to many charismatic house churches and I still
have a lot of questions, one, for example, being on the gift of prophecy.
I'm confused as to how that is specifically a lesson to be taught to another believer.
If this is the gift of the Holy Spirit, shouldn't he be the one to give it to us?
How does a person give this to another person?
I'm going to stop there.
There's another part of the question.
Kayla, have you ever met somebody who is gifted at music?
Like they can just, for whatever reason, play piano by ear, right?
And so they've got this amazing gift where they can just play.
That person would still benefit from being taught how to play the piano.
That still receive incredible benefit from learning how to play with other people, from
learning how to read music to actually kind of broaden the gift that's already there.
Yeah, refine the gift.
Yeah. So you may have a gift, but until you know how to use your gift, your gift is kind
of useless. John Paul Jackson, who was a very famous prophet, who is now with the Lord,
said that for most of his early parts of his life, he was a gifted nothing. He was somebody who had
a gift, but wasn't trained in how to use it, how to connect with the rest of the body,
etc, etc, etc. How does a person give this gift to another person? What Paul said,
I long to be with you that I may impart some spiritual gift to you.
So there is a sense that gifts can be imparted to people.
Yes.
But a lot of the training that we do in the prophetic is not training you how to get a gift,
it's training you how to use the gift that you may have already been given,
or activating you in a gift, so to speak.
So I hope that helps.
The second part is that also every time a person with a gift of prophecy calls themselves a prophet,
my spirit becomes very uneasy.
And I was just wondering if that term is just a blank statement for someone with a gift or it actually means a profit with equal authority as Jesus.
What do you specifically mean when you call yourself a prophet?
If you think about it, Kayla, I mean, I get what you're saying.
I'm usually quite uneasy around people who call themselves prophets.
I know lots of prophets and people who I would call a prophet.
But are you uneasy when people call themselves a pastor?
Are you uneasy when Billy Graham is referred to as an evangelist?
You're probably not uncomfortable with people calling themselves a teacher or a pastor,
because we're kind of used to those terms and we've built up an understanding of what those ministry offices look like.
We understand what a pastor does, we understand what a teacher does, we understand what an evangelist does.
But I don't think everybody who has the gift of prophecy is a prophet.
That's not something I subscribe to at all.
I think there's been a lot of misuse with people calling themselves profit.
Yeah, for sure.
The couple of episodes that we've done when we've talked about our journey into understanding
the prophetic call in our life is really our unease with the term profit, our unease with
referring to ourselves as prophets, and our journey in understanding, "Oh, okay, we've
got varying degrees of calling into prophetic ministry."
And in age a, especially I forget which episode it was that you talked about your difficulty,
because a lot of the prophets that were coming to our church that are calling you out as a prophet,
and it was a big deal for you to agree with what God had said about you.
So I'm not sure if that helps, but certainly we don't believe that people who are prophets are on the same equal authority as Jesus.
- Yeah. - Because Jesus himself gave prophets to the church.
- Right. - So in Ephesians 4 verse 11, it says,
So Christ himself gave apostles the prophets, the evangelists, the pastors and the teachers
to equip his people for works of service so that the body of Christ may be built up until we reach unity in the faith
and in the knowledge of the Son of God and become mature.
So part of the role of a prophet along with an apostle and a pastor and evangelist and a teacher
is to equip the church.
- And bring maturity. - And bring maturity.
So are there a lot of people who are wondering around calling themselves pastors and teachers and prophets who aren't really passes teachers and prophets? Of course there are.
But at the same time, there are legitimate people who are prophets and I love being in relationship with lots of those people.
Yeah.
All right. I hope that was helpful.
If you would like to show notes for this episode, go to<EMAIL_ADDRESS>If you would like us to answer one of your questions, go to<EMAIL_ADDRESS>And oh, I forgot our finding father books are back in stock.
Yes, they are.
We got a shipment this week.
And if you've been looking for a copy, go to allanaj.com and we'll put a link in the show
notes and you can purchase a life-changing book there.
And also we have our Heaven Declares conference coming up at Grace Center.
At the end of October, we'd love to see you there.
Go to heavendeclares.info for information about that.
And don't forget to get your jingles in my Thursday.
Bye-bye.


| S.No. |
Name |
Price |
Area |
Home Delivery |
Contact number |
Status |
| 1 |
Jeevan Sarthak Foundation |
--- |
All Over Bhopal |
--- |
8878629324 |
|
| 2 |
Kala Kunj Foundation |
--- |
All Over Bhopal |
--- |
6264914927,<PHONE_NUMBER> |
|
| 3 |
The Happiness Project |
--- |
All Over Bhopal |
--- |
9630044445 |
|
| 4 |
TGI Insignia |
--- |
All Over Bhopal |
--- |
0755-4007251,<PHONE_NUMBER> |
|
| 5 |
Fit and Healthy Rasoi |
--- |
All Over Bhopal |
--- |
9584984909 |
|
| 6 |
Hideout |
--- |
Lalghati, bairagarh, Kahefija, Airport |
--- |
07554920313 |
|
| 7 |
Vijay Mehra |
--- |
Lalghati, bairagarh, Kahefija, Airport |
--- |
9713014426 |
|
| 8 |
Maharani Restaurant |
--- |
Lalghati, bairagarh, Kahefija, Airport |
--- |
7000870018 |
|
| 9 |
Anwar Pathan |
--- |
Lalghati, bairagarh, Kahefija, Airport |
--- |
7974005907 |
|
| 10 |
Suyesh |
--- |
Lalghati, bairagarh, Kahefija, Airport |
--- |
6266099548 |
|
| 11 |
Madatghar |
--- |
Lalghati, bairagarh, Kahefija, Airport |
--- |
9806156865 |
|
| 12 |
Pushpendra |
--- |
Lalghati, bairagarh, Kahefija, Airport |
--- |
7999615351 |
|
| 13 |
Ashish |
--- |
Arera Colony, Shahpura, Gulmohar |
--- |
9893202121 |
|
| 14 |
Shiv |
--- |
Arera Colony, Shahpura, Gulmohar |
--- |
8770576264 |
|
| 15 |
Mridula |
--- |
Arera Colony, Shahpura, Gulmohar |
--- |
8770738318,<PHONE_NUMBER> |
|
| 16 |
Ready Mealz |
--- |
Arera Colony, Shahpura, Gulmohar |
--- |
917424444,<PHONE_NUMBER> |
|
| 17 |
Om Palace |
--- |
Arera Colony, Shahpura, Gulmohar |
--- |
8770123019 |
|
| 18 |
Mukesh |
--- |
Arera Colony, Shahpura, Gulmohar |
--- |
9754560347 |
|
| 19 |
Trishul Jain |
--- |
Arera Colony, Shahpura, Gulmohar |
--- |
8989660277 |
|
| 20 |
Ruchi Ki Rasoi |
--- |
Arera Colony, Shahpura, Gulmohar |
--- |
9926544929 |
|
| 21 |
Bindu |
--- |
Arera Colony, Shahpura, Kolar |
--- |
9826225255 |
|
| 22 |
Ramakant |
--- |
Arera Colony, Shahpura, Kolar |
--- |
9665052952 |
|
| 23 |
Neha |
--- |
Arera Colony, Shahpura, Kolar |
--- |
9584902221 |
|
| 24 |
Sparsh |
--- |
Arera Colony, Shahpura, Kolar |
--- |
8458833007 |
|
| 25 |
Jyoti Verma |
--- |
Arera Colony, Shahpura, Kolar |
--- |
9752255314 |
|
| 26 |
Deepti |
--- |
Arera Colony, Shahpura, Kolar |
--- |
9406542673 |
|
| 27 |
Jyoti Choube |
--- |
Arera Colony, Shahpura, Kolar |
--- |
6260927911 |
|
| 28 |
Poonam |
--- |
Arera Colony, Shahpura, Kolar |
--- |
9425602919 |
|
| 29 |
Rajendra |
--- |
Kolar, Trilanga, Shahpura, Gulmohar |
--- |
7898594333 |
|
| 30 |
Vinita Gupta |
--- |
Kolar, Trilanga, Shahpura, Gulmohar |
--- |
7000532661 |
|
| 31 |
Rohit Mittal |
--- |
Kolar, Trilanga, Shahpura, Gulmohar |
--- |
9770010018 |
|
| 32 |
Anand Kumar |
--- |
Kolar, Trilanga, Shahpura, Gulmohar |
--- |
07554225050 |
|
| 33 |
Jain Family |
--- |
Bag Mugalia, Saket, Shakti Nagar |
--- |
9009606455 |
|
| 34 |
Mrudula |
--- |
Bag Mugalia, Saket, Shakti Nagar |
--- |
9926266643 |
|
| 35 |
Chandan Yadav |
--- |
Indrapuri, Minal and nearby areas |
--- |
9893312891 |
|
| 36 |
Mule |
--- |
Indrapuri, Minal and nearby areas |
--- |
8827270957 |
|
| 37 |
Sai Bhog Kitchen |
--- |
Indrapuri, Minal and nearby areas |
--- |
9565899827 |
|
| 38 |
Satyam Mishra |
--- |
Hoshangabad Road |
--- |
9806156865 |
|
| 39 |
Abhishek Nigam |
--- |
Hoshangabad Road |
--- |
9713644466 |
|
| 40 |
Meera Mohan Dhaba |
--- |
Old Bhopal, Lalghati, irport, Hamidiya |
--- |
07554294111,<PHONE_NUMBER> |
|
| 41 |
Jain's Raja Bhoj |
--- |
MP Nagar, Rachna Nagar, Kasturba |
--- |
9827004898 |
|
| 42 |
Majeet Kaur |
--- |
Punjabi Bag, Ashoka Garden |
--- |
9893012444 |
|


Financial Advice, Financial Planning, Financial Freedom.
Everyone has a financial dream – buying a cabin, retiring early, travel, financially independent, your dream is unique to you.
Financial Insider advisors can help you realize those dreams.
Having access to instant personalized advice from a Certified Financial Planner (CFP) to answer your questions through online consultation or a second opinion can provide you with solutions that are all about you.
Imagine the feeling of knowing that your financial future is secure
Financial Insider provides you with Financial advice you can trust because since there are no strings attached, no products to buy or contracts to sign! And it is all done anonymously from the comfort of your home or office.
Imagine your financial dream coming true with Financial Insiders! Your on-line financial advice and planning service.
Copyright 2016 Financial insiders


This is a two-person game. Each player take turns until a player gets enough points to hit or exceed the goal.
Players take turn rolling a dice until either a 1 is rolled or the player decides to hold:
Player 1: Score 1
Player 2: Score 2
Player 1 , you're up! What do you want to do?
Your turn total: Turn total
Winning Player is the winner!


#=include 'includes/_simple-header.html' #=include 'includes/_content-page.html' #=include 'includes/_footer.html'


I started working with MongoDB a few days ago. To oversimplify, think of Mongo as a really big and fast hash that gets saved to disk. It lets you query, retrieve, and manipulate data in Javascript and JSON. I had a ton of work to do, so I didn't get a chance to explore the technology as much as I would've liked. Today, after getting a solid night's sleep, I got a chance to experiment more. Read on to get some quick tips about writing Mongo queries and generating reports from the Mongo shell.
When I first started interacting with Mongo, I used the Ruby Mongoid adapter. It gave me a familiar ActiveRecord interface so I could accomplish things like:
Beer.all(:conditions => { :style => "stout" })
But it also gave me a sneak peak at Mongo's 'criteria' API for querying
Beer.criteria.where(:style => "stout")
It's worthwhile to note that criterias are lazily loaded, meaning that the query isn't performed until you actually need to access the data.
Beer.criteria.where(:style => "stout") # doesn't hit mongo
Beer.criteria.where(:style => "stout").first.drink! # executes actual query
This was all fine and dandy, but just like learning SQL and ActiveRecord, having an understanding of the underlying system gives you a better idea of what you can do. So I busted out the mongo shell and started running queries. The tutorial was a good starting point for familiarizing myself with how to connect to mongo, executing some queries, and printing out results. My favorite feature was that the mongo shell doubled as a Javascript interpreter. I was able to write JS to manipulate the query results:
function map(arr, func) {
var collection = [];
if(arr && arr.length) {
for(var i = 0; i < arr.length; i++) {
collection.push(func(arr[i]));
}
}
return collection;
}
db.beers.find().forEach(function(beer) {
print(beer.name);
print('--------------');
map(beer.ingredients, function(ingredient) {
print(beer.ingredient.quantity + ' - ' + beer.ingredient.name);
});
});
I got pretty tired of copying and pasting this script every time I edited it. Thankfully, mongo shell lets you pass in script files to execute:
> mongo --help
MongoDB shell version: 1.4.0
usage: mongo [options] [db address] [file names (ending in .js)
This little feature enabled me to write more complex scripts and tweak to my heart's content. Something was still missing though. I love Javascript as a language, but nowadays, I've grown so accustomed to jQuery that I'll start typing jQuery assuming it's available even when it's not.
db.beers.find().forEach(function(beer) {
// CURSES! JQuery isn't available :(
$(beer.ingredients).each(function() {
// ... do something
});
})
My next genius idea: load jQuery as the first script:
> mongo beerdb jquery-1.4.2.min.js reporting.js
JS Error: ReferenceError: window is not defined jquery-1.4.2.min.js:153
failed to load: jquery-1.4.2.min.js
Noooooo! It makes a lot of sense that jQuery would assume a browser environment, but I was hoping that it wouldn't require it for the nice utility functions.
To get the job done, I wrote myself a small utility library:
$ = {
// > $.map([1,2,3,4], function(x) { return x*x; }
// [1,4,9,16]
map: function(arr, func) {
var collection = [];
if(arr && arr.length) {
for(var i=0; i<arr.length; i++) {
collection.push(func(arr[i]));
}
}
return collection;
},
// > $.max([1,2,3,4])
// 4
// > $.max([1,2,3,4], function(x) { return x*2; })
// 8
max: function(arr, func) {
if(arr == undefined) { return arr; }
var max = null;
for(var i=0; i<arr.length; i++) {
var current = (func ? func(arr[i]) : arr[i]);
max = (current > max ? current : max);
}
return max;
},
}
This didn't buy me the full power of JQuery, but at the same time, I was pretty happy I was able to quickly whip together some JS and get the reports I needed.
Does anyone know of a JS library that buys you a lot of core library features and fixes, but doesn't assume a browser? I looked at John Resig's Env.js, but even that assumes that you're running JS in Rhino. What other Mongo tricks do people find useful?
Here's the order I recommend reading the Mongo documentation. The Advanced Queries link was especially useful.
All databases are fictional. No beers were harmed in the making of this blog post.


Reports a nested style rule whose syntax doesn't comply with the
PostCSS Nested
or the
PostCSS Nesting
specification.
Example:
.phone { &_title {} }


On 29 August 2019, 7 new articles were published in 6 journals.
Misrecognising the Victim of State Violence: Denial, ‘deep’ Imperialism and Defending ‘our Boys’
Measurement Bias in Self-Reports of Offending: A Systematic Review of Experiments
Hot Spots Policing and Crime Reduction: An Update of An Ongoing Systematic Review and Meta-Analysis
Prevent Policing in Practice—the Need For Evidenced-Based Research
Domestic Violence Legislation in Greece: Analysis of Penal Mediation


The tab controls are keyboard accessible.
Set focus on the tab control. Press the Arrow keys to move focus between tabs. Press Home or End to move to the first or last tab. Press any letter or number to jump to a tab starting with that character or digit. Press the Spacebar to open (or optionally toggle if configured) the selected tab. Mouse users can click the desired tab as usual.


The team approach is very warm in the Department of E&CE. A palpable excitement surrounds the Department of E&CE, an enthusiasm pervades every classroom and lab, invigorating our students and spurring on our faculty to fresh innovations. In an age when electronics play a major role in daily life and the promise of nanotechnology is coming to fruition, it truly is a great time to be a part of E&C engineering. The pollution free aura of the state surrounded by snow-clad Dauladhar ranges, technological strength and increasing national prominence has presented us with unmatched opportunities for research, education, and service to society


{% extends "base.html" %} {% block body %}
The game will start at {{ game.start_time }} {% include "game_waiting.html" %} {% endif %} {% if state == 'game finished' %}
Your answer is accepted. Next query will appear soon. {% include "game_waiting.html" %} {% endif %} {% if state == 'ask_to_start_game' %}
{% endif %} {% if state == 'playing' %}You are logged-in as {{ player.name }}
{% endblock %}


Appendix C. phpMyAdmin
There are a number of third-party user interfaces to MySQL that make
it easier to access and alter the data stored in your MySQL
databases. The most popular of these, by far, is
phpMyAdmin, a
web-based application written in PHP.
To install phpMyAdmin, you need first make sure
you have a web server running PHP 4.x or later that either includes
or has been configured to include MySQL database support. You will
also need network connectivity to a MySQL server, even if that MySQL
server happens to be on the same host as the web server running
phpMyAdmin. The
phpMyAdmin package can be downloaded from
http://www.phpmyadmin.net/, or
your Unix/Linux distribution might make a binary package available
through its native package management system. Debian Linux users, for
example, can simply run apt-get
install phpmyadmin.
|


Speaker Profile
Massimo Banzi is the co-founder of the Arduino project. He is an Interaction Designer, Educator and Open Source Hardware advocate. He currently teaches Interaction Design at SUPSI Lugano in the south of Switzerland and is a visiting professor at CIID in Copenhagen.
Speaker Profile
Tim Brown is CEO and president of IDEO. He frequently speaks about the value of design thinking and innovation to business people and designers around the world. He participates in the World Economic Forum in Davos, Switzerland, and his talks Serious Play and Change by Design appear on TED.com.
Speaker Profile
François Chambard founded UM Project in 2004, a hybrid enterprise of strategic design, creative studio, and old-world atelier. François earned a degree from the Marseille Business School and studied at the Rhode Island School of Design.
Speaker Profile
Dana Chisnell is an experienced practitioner of civic design. She teaches design in government at the Harvard Kennedy School of Government, and recently came off a 2-year stint as “generalist problem solver” for the United States Digital Service.
Speaker Profile
Cindy Cohn is the Executive Director of the Electronic Frontier Foundation. Ms. Cohn first became involved with EFF in 1993, when EFF asked her to serve as the outside lead attorney in Bernstein v. Dept. of Justice, the successful First Amendment challenge to the U.S. export restrictions on cryptography.
Speaker Profile
Joe Gebbia is the co-founder and CPO of Airbnb, serving on the Board of Directors and Executive staff, while leading Samara, Airbnb’s in-house design and innovation studio. An entrepreneur from an early age, Airbnb’s groundbreaking service spread to 3 million+ listings in over 191 countries, creating a new economy for thousands of people around the world.
Speaker Profile
A 16-year HP alum, Mario Queiroz is Google's vice president of product management, overseeing the development of TV products and platforms, including Chromecast and Google TV. Prior, he worked with Andy Rubin leading product management, including Android Market and Google's first Nexus phone.
Speaker Profile
Whitney Quesenbery’s work in civic design began with her appointment to the EAC Federal advisory committee for the Voluntary Voting System Guidelines. She brings her expertise in research methods, accessibility and plain language, and a passion for understanding the story behind the data to her work.
Speaker Profile
John Maeda is an American executive, designer, technologist. His work explores the area where business, design, and technology merge. He is Global Head, Computational Design and Inclusion at Automattic where he seeks to address the diversity gap in tech by exploring how inclusion can be a key ingredient for success in the technology industry.
Speaker Profile
Sigi co-founded Antenna design in 1997. Sigi was born in Vienna, Austria. After studying industrial design in Austria, Switzerland and the US, she joined Ideo Product Development in San Francisco in 1991. Sigi has received numerous design awards including IDEA Gold & Silver Awards, ID Magazine Awards and a German IF Award.
Speaker Profile
One of the leading voices on urban transportation policy, Janette Sadik-Khan is internationally respected for her transformative redesigns of New York City streets and rapid-implementation strategies that are being replicated in cities around the world. She was Commissioner of the New York City Department of Transportation from 2007–2013.
Speaker Profile
Masamichi Udagawa co-founded Antenna design in 1997. Masamichi is the recipient of numerous design awards including IDEA Gold Awards, ID Magazine's Best-of-Category and First Prize of Japan's Good Design Award.


All About Ben
Click my face to play!
Note: will be enabled when we're allowed to use functions
Fav things about Seattle
Seafood
Live Music
Da Needle, Yo
Some favorite foods
Salmon
Sweet Potatoes
Spinach


This diagram was generated by
<SCRIPT Language="JavaScript">
document.open();
var D=new Diagram();
D.SetFrame(80, 160, 520, 360);
D.SetBorder(-1, 13, 0, 1000);
D.SetText("","", "Website Hits 2001");
D.XScale=0;
D.Draw("#FFFF80", "#004080", false);
var i, j, y;
Month=new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
for (i=0; i<12; i++)
{ y=500+Math.random()*400;
j=D.ScreenX(i+0.5);
if (i%2==0) new Bar(j-15, D.ScreenY(y), j+15, D.ScreenY(0), "#0000FF", Month[i], "#FFFFFF", "Hits per month");
else new Bar(j-15, D.ScreenY(y), j+15, D.ScreenY(0), "#FF0000", Month[i], "#000000", "Hits per month");
}
document.close();
</SCRIPT>
You can use the following methods:
- var B = new Bar(theLeft, theTop, theRight, theBottom, theDrawColor, theText, theTextColor
[, theTooltipText[, theOnClickAction[, theOnMouseoverAction[, theOnMouseoutAction]]]])
//Constructor and Display, if theText="" then min_height=1 else min_height=12
//if you want to use B.SetText() later, then you must initialize with a Text<>""
- B.SetColor(theColor) //Color
- B.SetVisibility(isVisible) //Show or Hide
- B.SetText(theText) //Text or Image
- B.SetTitle(theTitle) //TooltipText
- B.MoveTo(theLeft, theTop) //Move
- B.ResizeTo(theLeft, theTop, theWidth, theHeight) //Resize
- B.Delete() //Delete DIV object of B from the document
- delete B //Destructor
Before drawing, you can change the text style:
_BFont=theFont;
_BFont is a global variable, which is valid for all Bar and Box objects.
The default setting is
_BFont="font-family:Verdana;font-weight:bold;font-size:10pt;line-height:13pt;".


Toya Wright Has The Best Time With Reign Rushing In The Playroom – See The Sweet Video
by Alexis StoneToya Wright is living her best life since she had her baby girl, Reign Rushing. She and Robert Rushing are the proudest parents, and they are gushing over Reigny with each occasion they get.
The baby girl is getting smarter and more beautiful with each passing day, and Toya’s lady fans especially adore Reigny’s full eyebrows.
Recently Toya celebrated the fact that the family released a book for kids called ‘Learning Colors with Reignbeaux.’
Toya also organized a book release party that is set to take place tomorrow, November 22.
The proud mom shared the cutest video in which she is learning colors with Reigny on social media. Check out the cute clip below.
‘Learning colors with Reignbeaux has been so much fun! Her new book will be available this Friday for your little ones! 🤗 #letslearntogether #primarymatters 🌈 11/22
Toyawrightpublishing.com,’ Toya captioned her post.
A fan praised the mom and said: ‘Toya, you have an amazing intelligent bright the daughter. 💖🙌😍’
Someone else wrote this: ‘I’m going to order the books for my niece, and is somebody losing that N.O accent from being in Atlanta so long? Lol.’
An Instagrammer said, ‘I support black business. I can’t wait to buy this for my son!’ and another one also gushed over Reign and Toya: ‘I really enjoy watching her. You’re an outstanding mom❤’
Congrats to Toya for the book release! Make sure to get to the party if you can.


You can display all material style button types (normal, raised, icon). You can specify an on click on all cells, even if they have no button. With no button type specified, the cell will turn into a clickable cell. You can add an icon derived from the cells data to a column. You can also combine buttons and icons as you wish.
Typescript - Data
Typescript - Columns
HTML
Instead of making table cells clickable, you can also make whole rows clickable. It is recommended not to have other clickable items in your table cells if you use this.
Typescript - Data
Typescript - Columns
HTML


Quick Info
| Uttarakhand |
literally Northern Portion |
| Capital |
Dehradun |
| Population |
10,086,292(2011 Census) |
| Official Language(s) |
Hindi (43% of pop), Sanskrit |
| Other Languages |
Garhwali, Kumaoni |
| Currency |
INR |
| Tourism |
12 National Parks |
| Char Dham |
| Haridwar |
| Hill Stations |
| Trekking |
Getting There:
Air
Rail
Road
|
|
Jolly Grant Airport,Dehradun
|
| Dehradun, Nainital Railway stations |
|
NH 7
|
About Uttarakhand
Uttarakhand (literally "Northern Portion") is a North Indian state which is the birthplace of the twin holy rivers, Ganga and Yamuna. It is oft referred to as the gateway to the Himalayas as it is a hilly state located at the foothills of the Himalayan mountains.From the holiest of temples to pristine mountainsides, bustling urban centres, swanky ski stations and rushing rivers... Uttarakhand has it all. The wide variety of tourist spots caters to pilgrims, nature lovers and adrenaline-filled adventure enthusiasts too.
Corbett National Park
India's oldest national park, 520 sq km in area, home to the Royal Bengal Tiger, contains 500 odd plant species and 800+ bird and animal species.
It is one of the most popular eco-tourism spots in Uttarakhand.
Best Time to Vist:
- Summer: Get a good view of all the species and enjoy rafting as well
- Winter: Best time to see exotic migratory birds and the Royal Bengal Tiger
Rishikesh
Rishikesh, known as the birthplace of Yoga, is a wonderful place to relax and unwind in the lap of nature.
Things to do
• River rafting on the Ganges
• Base for trans-Himalayan treks
• Yoga and meditation
Best Time to visit
Dehradun
•Capital of Uttarakhand that is nestled in the lush green Doon valley
•Known as India's school capital as it is home to some highly reputed private boarding schools (Doon School) and the Indian Military Academy
Mussoorie
Mussoorie offers a spectacular view of the Himalayas. It is a popular weekend destination for millenials, courtesy the well-developed tourist facilities.
Best Time to visit
Things to do
• Take a cable car to Gun hill
• Enjoy a picturesque nature walk along Camel's Back Road.
• Undertake an excursion to the Kempty Falls
Char Dham
Yamunotri, Gangotri, Kedarnath and Badrinath are holy Hindu pilgrimage sites located at the source of the 4 holy rivers Yamuna, Ganga, Mandakini and Alakananda respectively.
When to Visit
- Summer: April to June are the best months to visit
- Pre-Winter: October and November are also good times to visit if you want to beat the heat.
• Avoid visiting during the Monsoon months(July-September) at all costs lest some unfortunate event like the 2013 floods befalls you.
• Snowfall makes a visit during Winter hazardous and inconvenient.
Nanda Devi Biosphere Reserve
• This entire reserve lies at an altitude greater than 3500m.
• Numerous 6000+ metre peaks are located here, with the most well-known of them being Nanda Devi(7816m)
• Inhabited by 300+ species of flaura and fauna with a large proportion of endemic species.
Valley of Flowers
• High altitude valley inside the reserve that boasts of myriad vibrant hues set against mountainous snow-clad Himalayan peaks.
• Home to endless Alpine flora and a variety of exotic, endangered animals like the snow leopard, musk deer etc.
Best Time to Visit
Other Notable Locations
- Haridwar
- Nainital
- Uttarkashi
- Almora
- Pithorgarh
Disclaimer: All images belong to their respective copyright holders. They have been utilised for non-commercial educational purposes. Those desirous of seeing original copyright holders might do so.
This site is not mobile-friendly.


---
layout: slides
title: "On categories and relations"
category: hidden
type: course
semester: Fall 2018
college: Wellesley College
permalink: /cognition/categories/
---
# On categories and relations.
???
---
class: center, middle, statement, dark
< recap >
---
class: center, middle, statement, dark
The mind faces many maddeningly hard engineering problems, and we have an arsenal of mental faculties for solving each of them approximately.
---
class: center, middle, statement, dark
We have representations of space, quantity, value, the future, and the past.
---
class: center, middle, statement, dark
We also have representations of objects, time, cause and effect, and other people and their thoughts about other people, &c.
---
class: center, middle, statement, dark
Language comprehension must go beyond learning statistics of transitions between words, given that "Colorless green ideas sleep furiously" is absurd but syntactically unobjectionable.
---
class: center, middle, statement, dark
The organizational framework that linguists and cognitive psychologists use to think about language begins at phonology, and proceeds through morphology, syntax, semantics, and pragmatics.
---
class: center, middle, statement, dark
At each level of the organizational framework are phenomena characteristic of it, including the McGurk effect, cross-culutral differences phonemic repertoire, generativity (infinite use of finite means), polysemy, indeterminacy of reference, semantic ambiguity, and the four Gricean maxims of conversational cooperation.
---
class: center, middle, statement, dark
Language is also central to several of cognition's great debates, including nativism vs. empiricism, linguistic relativity, and prescriptivism vs. descriptivism.
---
class: center, middle, statement, dark
recap >
---
# Administrivia
- Attendance sheet
- Assignment 9 this Friday
- Gibberish!
---
# Defining words, redux.
- "Bird"
- "Mother"
---
# Why the need for categories?
- Features are correlated
---
# The definitional theory of concepts.
- Defines a concept by its component features
- Definition should be without exceptions
- Intension and extension
???
Intension == necessary features
Extension == list of everything that meets definition
---
# The definitional theory of concepts (problems)
- Can all concepts be precisely defined?
- Some members are "better" than others
???
German shepard vs. pekinese dog, armchair is better furniture than reading lamp
---
# The prototype theory of concepts.
- Features are neither necessary or sufficient
- Instead, there is a "family resemblance structure" (Wittgenstein, 1953)
- Prototypes + deviations
---
# Hierarchical organization of categories
- Basic-level categories
- Superordinate-level categories
- Subordinate-level categories
Practice drawing out a semantic network of categories.
---
# Basic-level categories
- Kids learn them first
- Shortest names
- Broadest categories whose members have many features in common
- Similar motor programs (affordances)
- Similar shapes
- Can be identified by an average shape of members in the class
- Broadest category for which a concrete image of whole can be formed
- First categorizations made during perception
- Most common across languages
- Most used within languages
---
# The shape bias.
Barbara Landau, Linda Smith, and Susan Jones (1988)
---
class: center, middle
---
class: center, middle
# Fin.