name: inverse layout: true class: center, middle, inverse --- #Publicity and the Delegitimation of Lynching Michael Weaver The University of British Columbia June 21, 2018 --- ##How does violence become publicly unacceptable? --- ##Lynching in the United States --- template:inverse ###Rebecca Felton, suffragette:
--- layout:false class: left, middle > "**I led the mob** which lynched Nelse Patton and **I'm proud of it**. ... I directed every movement of the mob. **I wanted him lynched**. I saw his body dangling from a tree this morning, and I am glad of it. **I aroused the mob and directed them to storm the jail**. I had my revolver but did not use it. I gave it to a deputy sheriff and **told him to shoot** Patton and shoot to kill." >> William V. Sullivan, former United States Senator, Mississippi --- template:inverse
--- template:inverse
--- template:inverse
*The Chillicothe Constitution-Tribune* 1/15/1931 --- template:inverse ##How did this transformation take place? -- ##How does violence move from acceptable to unacceptable? --- .left-column[ ##Outline ] .right-column[ ### Publicity ### Lynching ### Evidence (so far) ### New Extensions ] --- template:inverse ##The argument --- template:inverse ## Which violence is "legitimated" (locally)? --- .left-column[ ##Argument ### Violence ] .right-column[ ### When powerful actors are perpetrators: 1. Motive and means to justify violence 2. Difficult to challenge: reputational costs, coercion 3. May be self-reinforcing dynamic ### How can this dynamic be challenged? ] --- template:inverse ##Publicity --- .left-column[ ##Argument ### Violence ### Publicity ] .right-column[ ### Reach * Geographic scope of audience * May not share local norms on violence * Critics not silenced ### Inclusivity * Inclusion of different voices in public debate * Victims and allies no longer silent * 'Facts' and justifications around violence contested ] --- template:inverse ##Lynching and Publicity -- ### Local critics silenced, but... --- .left-column[ ##Argument ###Definitions ###Publicity ###Lynching] .right-column[ ###1. Increase in publicity * Technology + Economic/Political Integration `\(\rightarrow\)` greater reach * Reach + activists `\(\rightarrow\)` inclusion of black voices ] --- template:inverse
"The negroes must have detectives who can go and find out the facts about each lynching and publish them side by side with the versions printed in the Southern newspapers" --- .left-column[##Argument ###Definitions ###Publicity ###Lynching] .right-column[ ###1. Increase in publicity * Technology + Economic/Political Integration `\(\rightarrow\)` greater reach * Reach + activists `\(\rightarrow\)` inclusion of black voices ###2. Publicity breeds criticism and scandal ] --- class: left, middle > "The Chattanooga News does not lift its voice in behalf of Sheriff Shipp, his deputies or any member of the mob that lynched Johnson. Its voice is merely raised in behalf of this community. It submits that even so high and mighty a person as the Attorney General of the United States has **not just cause to hold this community up in contempt of the world** and in effect **publish it abroad as lawless** and firmly set against the enforcement of law." >> "An Official in Contempt of Chattanooga," *The Chattanooga News* --- .left-column[##Argument ###Definitions ###Publicity ###Lynching] .right-column[ ###1. Increase in publicity * Technology + Economic/Political Integration `\(\rightarrow\)` greater reach * Reach + activists `\(\rightarrow\)` inclusion of black voices ###2. Publicity breeds criticism and scandal ###3. Bad publicity turns Southern elites against lynching ] --- template:inverse
"our lynching reputation ... is holding the state back in its development." --- .left-column[##Argument ###Definitions ###Publicity ###Lynching] .right-column[ ###1. Increase in publicity * Technology + Economic/Political Integration `\(\rightarrow\)` greater reach * Reach + activists `\(\rightarrow\)` inclusion of black voices ###2. Publicity breeds criticism and scandal ###3. Bad publicity turns Southern elites against lynching ###4. With opposition of local elites, lynching declines ] --- template:inverse
Maryland Governor uses National Guard to hunt down the lynch mob --- template:inverse ## Evidence --- .left-column[ ## Tests ### Reach ] .right-column[ ### With existing data, can test four implications of the argument Access to communication technology determines publicity. **The probability that a lynching is reported:** (1) **increases** as travel times **decrease** between the lynching and the paper. (2) **increases** when the lynching occurred in an area more **central in communication and transportation networks**. ] --- .left-column[ ## Tests ### Reach ] .right-column[ ### With existing data, can test four implications of the argument Exposure to publicity yields criticism, fewer lynchings. **Coverage** of lynching is **more critical**: (3) as the **distance** from the lynching to the newspaper **increases**. Lynching **declines faster**: (4) in places with **more exposure** to national public sphere ] --- .left-column[ ## Tests ### Reach ### Data ] .right-column[ ###Railroad Networks * Yearly from 1880 to 1900: centrality and travel time ###Lynchings * National database on lynchings from numerous sources ###Press Coverage * Digitized Newspaper Archives (keywords) ] --- template:inverse # What can I show? --- .left-column[ ## Analysis ### Design ] .right-column[ ### Observations * Issues appearing within a week of a lynching * **Issue - lynching pairs** ### Design * **Panel analysis**, multi-way clustering * Year, publication, lynching county fixed effects * Publication-county, lynching-county covariates (population, agricultural and industrial output, local railroad network) ] --- .left-column[ ## Analysis ### Design ### Results ] .right-column[ ### Four implications of the argument Access to communication technology determines publicity. **The probability that a lynching is reported:** ![check][] (1) **increases** as travel times **decrease** between the lynching and the paper. (Closeness increases) (2) **increases** when the lynching occurred in an area more **central in communication and transportation networks**. ] [check]:./check-mark-3-24.png --- class: center, middle Probability of lynching mention by travel times
--- ###Halving rail travel time increases coverage by 1 ppt (vs. 0.4 ppt when halving distance) --- .left-column[ ## Analysis ### Design ### Results ] .right-column[ ### Four implications of the argument Access to communication technology determines publicity. **The probability that a lynching is reported:** ![check][] (1) **increases** as travel times **decrease** between the lynching and the paper. (Closesness increases) ![check][] (2) **increases** when the lynching occurred in an area more **central in communication and transportation networks**. ] [check]:./check-mark-3-24.png --- class: center, middle Probability of lynching mention betweenness centrality: Dyads
--- ###Moving into top deciles of betweenness centrality increases coverage same amount as being 2400 miles closer --- .left-column[ ## Analysis ### Design ### Results ] .right-column[ ### Four implications of the argument Exposure to publicity yields criticism, fewer lynchings. **Coverage** of lynching is **more critical**: ![check][] (3) as the **distance** from the lynching to the newspaper **increases**. Lynching **declines faster**: (4) in places with **more exposure** to national public sphere ] [check]:./check-mark-3-24.png --- class: center, middle Anti-Lynching - Pro-Lynching Discourse
--- ###Compared to local papers, discourse of lynching by white newspapers 1000 miles away was between a third and a half-way to the level of criticism in African American newspapers. --- .left-column[ ## Analysis ### Design ### Results ] .right-column[ ### Four implications of the argument Exposure to publicity yields criticism, fewer lynchings. **Coverage** of lynching is **more critical**: ![check][] (3) as the **distance** from the lynching to the newspaper **increases**. Lynching **declines faster**: ![check][] (4) in places with **more exposure** to national public sphere ] [check]:./check-mark-3-24.png --- class: center, middle [Access](#access) to higher circulation daily papers inhibits lynching
--- ###Median increase (~ twofold) in access to circulation yields between 1.8 and 5.1 ppt reduction in probability of lynching --- template:inverse ##What's next? --- .left-column[ ##Next steps ###Reputational Costs ] .right-column[ ###Does **criticism** stop lynching? After lynchings with major public backlash/anti-lynching campaigns: * Lynchings foiled * Local elites argue against lynching (newspapers) * Proposed anti-lynching legislation ] --- .left-column[ ##Next steps ###Reputational Costs ] .right-column[ ###Does **criticism** stop lynching? Level of criticism of lynching events is not random, how can we compare? ] --- .left-column[ ##Next steps ###Reputational Costs ] .right-column[ ###Does **criticism** stop lynching? With current data, can not show: - change in information flows - results in change in behavior ### How to isolate effect of information? ] --- .left-column[ ##Next steps ###Reputational Costs ] .right-column[ ### Need for exogenous change in media exposure - Following Garcia-Jimeno, Iglesias, and Yildirim - Disruptions in telegraph and rail connections reduce coverage (and criticism) - Need: - location of telegraph, railroad network at time of lynching - dates/locations of railroad/telegraph disruptions ] --- .left-column[ ##Next steps ###Reputational Costs ] .right-column[ ### Need for exogenous change in media exposure - Zooniverse project captures telegraph/rail locations ] --- .left-column[ ##Next steps ###Reputational Costs ] .right-column[ ### With... - New rail/telegraph data - Measures of service disruptions - Attempted/completed lynchings - Local press discussion of lynching ### Can find causal effect of "bad press" ] --- template:inverse #Thank you --- --- template:inverse ##The data --- .left-column[ ##Data ###Newspapers ] .right-column[ ###"Big data" meets history Cornerstone of the project * Digitized historical newspapers * More than 3,000 different papers * Nation-wide coverage * Big-city dailies, small town weeklies * 9 million+ unique issues between 1880 and 1940 * Searchable content * 1.2 million articles mention "lynching" * Words/phrases for lynching discourse ] --- Digitized Newspaper Issues by State
---
--- template:inverse
--- .left-column[ ##Data ###Newspapers ###Railroads ] .right-column[ ###Railroad networks Yearly data from 1880 and 1900 * Period of rapid growth (more than doubles) * 3109 counties in continental US * Network centrality of counties * Travel time between counties * Proxy for telegraph network ] --- class:center, middle
--- template:inverse #Extra slides --- title: extras #### Analysis - [model specification](#equations) - [coverage (not dyads)](#aggregate_result) - [effects over distance](#distance_result) - [limits](#limits) - [access](#access) #### Data - [railroad extensions](#railroad_extension) - [coverage validation (window)](#coverage_window) - [coverage validation (accuracy)](#coverage_accuracy) - [discourse measures](#keywords) - [discourse extensions](#text_extension) #### Background - [lynching discourses](#lynching_discourse) - [newspaper partisanship](#partisanship) --- name:limits .left-column[ ## Analysis ### Limits [extras](#extras) ] .right-column[ ###Railroads Endogenous? * but network attributes not locally determined * conditioned on local railroad construction ###Alternative interpretations * Importance, not information * Condition on population, economic output * Access to circulation, not to population * Reduced or hidden lynchings? * "Supply" or "demand"? ###Text * Broad but limited depth * Keywords are drastic simplification * Validation: manual coding, full text ] --- name:equations ##Equations ### Coverage Model `$$\begin{equation}\label{eq:coverage_dyads} \begin{split} Y_{ijt} =& \alpha_{year} + \alpha_{county-i} + \alpha_{j} + \boldsymbol{\delta}\mathbf{Centrality_{it}} + \\ &\boldsymbol{\beta}\mathbf{Distance_{ijt}} + \boldsymbol{\gamma}\mathbf{X_{it}} + \boldsymbol{\lambda}\mathbf{W_{jt}} + \\ &\varepsilon_{county_i} + \varepsilon_{county_j} \end{split} \end{equation}$$` ### Lynching model `$$\begin{equation}\label{eq:lynching} \begin{split} Lynchings_{it} = \alpha_i + \alpha_t + \beta_1 Access_{it} + \mathbf{X_{it}\beta} + \varepsilon_{county_i} \end{split} \end{equation}$$` [extras](#extras) --- name:access ### Media Access `$$MediaAccess_i = \sum\limits_{i \neq j}^{j} Circulation_j * \tau_{ij}^{-1}$$` [extras](#extras) [return](#75) --- name: aggregate_result Centrality Results (aggregated to the event, fraction of papers)
[extras](#extras) --- name: distance_result
[extras](#extras) --- name: partisanship Fraction of daily Republican papers Republican by region
[extras](#extras) --- Fraction of all papers Republican (south)
[extras](#extras) --- name:coverage_window Fraction of event-related articles from time of event
[extras](#extras) --- name:coverage_accuracy TPR of article-event matching over time from event
[extras](#extras) --- PPV of article-event matching over time from event
[extras](#extras) --- name:keywords
[extras](#extras) ---
[extras](#extras) --- ### Discourse scaling `$$\begin{equation}\label{eq:discourse_scale} scaledDiscourse_j = \left( \frac{1}{n_d} \sum_{i=1}^{n_d} discourseWord_i \right) - \left( \frac{1}{n} \sum_{i=1}^{n} Word_i \right) \end{equation}$$` [extras](#extras) --- name:railroad_extension .left-column[ ##Data ###Railroads [extras](#extras) ] .right-column[ ###Railroad networks * Railroad stations for each year between 1880 and 1910 * Scanned station lists for each year * Digitizing text, geocoding * Proximity to rail stations * Telegraph offices * Scanned lists * Digitizing text, geocoding ] --- class: center, middle
[extras](#extras) --- template:inverse
[extras](#extras) --- name:text_extension .left-column[ ##Data ###Newspapers [extras](#extras) ] .right-column[ ###Which argument against lynching were effective? - Messy full text from ~85 million pages of news - RAs classified discourses about ~2000 articles on lynching - Look for spread and use of anti-lynching discourses across time and space ] --- name:lynching_discourse .left-column[ ## Background ###Lynching discourse [extras](#extras) ] .right-column[ ###Arguments in favor * Inefficiency/corruption of justice system * Popular sovereignty * Law does not deter criminals * Threat of black criminality/sexuality * 'Natural' response to rape ] --- .left-column[ ## Background ###Lynching discourse [extras](#extras) ] .right-column[ ###Justificatory Narratives * Protagonists * Sober, rational, all/leading citizens of town * Passive voice: no individuals did the lynching * Lynching was natural/unavoidable response * Antagonists * Black men dehumanized: "savages", "brutes", "beasts" * Assumed to be guilty * By default shown as sexually aggressive, criminals * Lynched *because* guilty ] --- .left-column[ ## Background ###Lynching discourse ###Antilynching discourse [extras](#extras) ] .right-column[ ###Arguments Refuted pro-lynching claims * e.g. rape alleged in minority of cases * Lynching a threat to law and order * Lynching part of a system of racial violence * e.g. Du Bois: "The police is the mob. The courts are the lynchers." ###Narratives Black voices counter white narratives about lynching * NAACP investigations * Ida Wells publications * Scottsboro Trials ] ---


Class: TPLink::RGBLight
Overview
Control TP-Link LS130 / RGB lights
Instance Attribute Summary
Attributes inherited from Device
Instance Method Summary collapse
-
#off ⇒ Object
Turn light off.
-
#on(b = 100, h = 100, s = 100) ⇒ Object
Turn Light on.
-
#toggle ⇒ Object
Toggle device (turn off if on, on if off).
Methods inherited from Device
Instance Method Details
#off ⇒ Object
Turn light off
12 13 14 |
# File 'lib/tp_link/rgb_light.rb', line 12 def off transition_light_state(0, 100, 100, 100) end |
#on(b = 100, h = 100, s = 100) ⇒ Object
Turn Light on
7 8 9 |
# File 'lib/tp_link/rgb_light.rb', line 7 def on(b = 100, h = 100, s = 100) transition_light_state(1, b, h, s) end |
#toggle ⇒ Object
Toggle device (turn off if on, on if off)
17 18 19 20 21 22 23 |
# File 'lib/tp_link/rgb_light.rb', line 17 def toggle if on? off else on end end |


# extends 'base.html' # block header
Inspired by "How to meet 200 people in 200 days" by Slack.
We are not going to share your data with anyone. Promise.
This project is open source.


--- layout: post title: At Our Doorstep date: 2011-04-28 10:05:29.000000000 -04:00 categories: - Family Life - Seasons tags: - autumn - Nature walk status: publish type: post published: true meta: aktt_notify_twitter: 'no' _edit_last: '1' dsq_thread_id: '1188582794' author: login: cint email<EMAIL_ADDRESS>display_name: Jacinta first_name: Jacinta last_name: '' ---
We have definitely made the most of the glorious autumn weather. We ventured off to a near by park to take in the glory that Autumn has to show off at the moment.
We explored, discovered and were fascinated by all of mother nature's beauty.
We collected leaves, sticks and other autumn bounties and enjoyed the fact we didn't have to get into the car to see it all.
[caption id="attachment_796" align="aligncenter" width="600" caption="Of course I can't get a photo of all three looking in one direction, but the light streaming through was amazing"][/caption]
[caption id="attachment_797" align="aligncenter" width="600" caption="A typical photo when I try to get them to pose. Note to self: don't try to get them to pose!"][/caption]
We feel really blessed to have such beauty at our doorstep.
Hope you enjoyed our autumn stroll! Jacinta x


2021-2022(expected)
-
Computer Programming Diploma
Computer Programming Diploma
SENECA COLLEGE
-
Under the supervision of best professors.
Computer Programming Diploma
Under the supervision of best professors.
I declare that my assessment is wholly my own work in accordance with Seneca Academic Policy. No part of this assessment has been copied manually or electronically from any other source (including web sites) except for the information supplied by the WEB222 instructors and / or made available in this assessment for my use. I also declare that no part of this assignment has been distributed to other students.


refresh
Critical
Now click again
Touch anywhere
Geolocation:
Important for the future
Touchend event always returns coords [0,-20]
Viewport
Device pixel ratio
Nice to have
Page visibility API


| Package | Description |
|---|---|
| com.google.openbidder.api.bidding |
Bidding support.
|
| com.google.openbidder.api.click |
Click tracking support.
|
| com.google.openbidder.api.impression |
Impression tracking support.
|
| com.google.openbidder.api.interceptor |
Interceptors and controllers.
|
| com.google.openbidder.api.match |
Pixel-matching support.
|
| com.google.openbidder.bidding.interceptor |
Standard interceptors.
|
| com.google.openbidder.click.interceptor |
Standard interceptors.
|
| com.google.openbidder.deals |
Preferred Deals support for DoubleClick Ad Exchange.
|
| com.google.openbidder.exchange.doubleclick.interceptor |
Standard interceptors.
|
| com.google.openbidder.impression.interceptor |
Standard interceptors.
|
| com.google.openbidder.match.interceptor |
Standard interceptors.
|
| com.google.openbidder.remarketing.interceptor |
Match and Bid interceptors for remarketing.
|
| Modifier and Type | Interface and Description |
|---|---|
interface |
BidInterceptor
Interceptor for a
BidRequest . |
| Modifier and Type | Interface and Description |
|---|---|
interface |
ClickInterceptor
Interceptor for click tracking.
|
| Modifier and Type | Interface and Description |
|---|---|
interface |
ImpressionInterceptor
Interceptor for impression tracking.
|
| Modifier and Type | Class and Description |
|---|---|
class |
CompositeInterceptor<Req extends UserRequest,Resp extends UserResponse<Resp>>
Implements the Composite design pattern for
Interceptor s. |
| Modifier and Type | Method and Description |
|---|---|
protected <I extends Interceptor<Req,Resp>> |
InterceptorChain.call(I interceptor) |
| Modifier and Type | Method and Description |
|---|---|
com.google.common.collect.ImmutableList<? extends Interceptor<Req,Resp>> |
CompositeInterceptor.getComponentInterceptors() |
com.google.common.collect.ImmutableList<? extends Interceptor<Req,Resp>> |
StandardInterceptorController.getInterceptors() |
List<? extends Interceptor<Req,Resp>> |
InterceptorController.getInterceptors()
Returns the interceptor chain.
|
Iterator<? extends Interceptor<Req,Resp>> |
InterceptorChain.nextInterceptors()
Returns the iterator of the remaining interceptors for this chain.
|
| Modifier and Type | Method and Description |
|---|---|
<R> R |
StandardInterceptorController.getResource(Class<R> resourceType,
Interceptor<Req,Resp> interceptor) |
<R> R |
InterceptorController.getResource(Class<R> resourceType,
Interceptor<Req,Resp> interceptor)
Returns a controller-managed resource specific to one of its interceptors,
or
null if the desired resource is not available. |
| Constructor and Description |
|---|
CompositeInterceptor(List<? extends Interceptor<Req,Resp>> componentInterceptors,
com.codahale.metrics.MetricRegistry metricRegistry) |
StandardInterceptorController(List<? extends Interceptor<Req,Resp>> interceptors,
com.codahale.metrics.MetricRegistry metricRegistry) |
| Modifier and Type | Interface and Description |
|---|---|
interface |
MatchInterceptor
Pixel-matching interceptor.
|
| Modifier and Type | Class and Description |
|---|---|
class |
ConfigurableBidInterceptor
An interceptor that bids with values determined by configurable properties.
|
class |
LoadTestBidInterceptor
Useful interceptor for load tests.
|
class |
NoBidInterceptor
A
BidInterceptor that removes all bids. |
class |
OpenRtbValidationInterceptor
An interceptor that validates the response produced by bid interceptors.
|
class |
RawBidInterceptor
Bids by matching a "raw" request pattern, and sending a "raw" response.
|
| Modifier and Type | Class and Description |
|---|---|
class |
SimpleClickInterceptor
A simple click tracking interceptor.
|
| Modifier and Type | Class and Description |
|---|---|
class |
PreferredDealsInterceptor
An interceptor that bids on Ad Exchange Preferred Deals.
|
| Modifier and Type | Class and Description |
|---|---|
class |
BidRequestDumpInterceptor
Dumps requests to a file.
|
class |
FlashlessBidInterceptor
Automatically handles
Flashless ads.
|
class |
SSLBidInterceptor
Automatically handles
SSL-enabled ads.
|
class |
VideoBidInterceptor
Automatically handles
Video ads.
|
| Modifier and Type | Class and Description |
|---|---|
class |
SimpleImpressionInterceptor
(DoubleClick-specific) A simple impression tracking interceptor.
|
| Modifier and Type | Class and Description |
|---|---|
class |
SimpleMatchInterceptor
No-op interceptor that will simply cause the correct pixel match response to be sent back.
|
| Modifier and Type | Class and Description |
|---|---|
class |
RemarketingBidInterceptor
Remarketing Bid Interceptor.
|
class |
RemarketingMatchInterceptor
Remarketing Match Interceptor.
|
Copyright © 2015 Google, Inc.. All rights reserved.


OUR PROFILE
WHO WE ARE
Environmental Impactis a critical examination of the effects of a project on the environment. An EIA identifies both negative and positive impacts of any development activity or project, how it affects people, their property and the environment. EIA also identifies measures to mitigate the negative impacts, while maximizing on the positive ones. EIA is basically a preventive process. It seeks to minimize adverse impacts on the environment and reduces risks. If a proper EIA is carried out, then the safety of the environment can be properly managed at all stages of a project- planning, design, construction, operation, monitoring and evaluation as well as decommissioning. In a statement following North Korea's threat to fire missiles at Guam, Trump, on August 8, stated that should North Korea make any more threats to the United States, "They will be met with fire and firy like the world has never seen." It however remains to be seen if either North Korea or Trump will make good their threats. Tensions between the two countries have not been higher since the Korean war in 1950.
Environmental Impact Assessment (EIA) is a critical examination of the effects of a project on the environment. An EIA identifies both negative and positive impacts of any development activity or project, how it affects people, their property and the environment. EIA also identifies measures to mitigate the negative impacts, while maximizing on the positive ones. EIA is basically a preventive process. It seeks to minimize adverse impacts on the environment and reduces risks. If a proper EIA is carried out, then the safety of the environment can be properly managed at all stages of a project- planning, design, construction, operation, monitoring and evaluation as well as decommissioning. In a statement following North Korea's threat to fire missiles at Guam, Trump, on August 8, stated that should North Korea make any more threats to the United States, "They will be met with fire and firy like the world has never seen." It however remains to be seen if either North Korea or Trump will make good their threats. Tensions between the two countries have not been higher since the Korean war in 1950.
Click hesre to learn more about the enviroment.


Millom Computer Services will close during 2020.
I have been running Millom Computers in my spare time since 2018, helping people with computer problems in the local the community. Throughout this time, I have operated around other work commitments, which has enabled me to offer an out-of-hours service to help people when they’re also not at work or away.
As my other commitments have now increased, I have become less and less able to offer the rapid turnaround times that I used to, so at the start of 2020 I made the decision to wind up operations.
This begun with the closing of all social media services in February 2020, and now our website and email services will also close on 03/03/2020.
Whilst Millom Computers will cease to exist, I will still be happy to help out my regular customers, so if you do not have it already, please request from me my personal email address and phone number, as the help@millomcomputers email will also cease to operate around the third of March. Just so you're aware, any work outstanding on 03/03/2020 will still be completed without issues, so please do not worry about this.
Best Regards,
Millom Computer Services
18/02/2020


{% extends "home/base.html" %} {% block title %}Fly-box Dashboard{% endblock %} {% block selected2 %}mdc-list-item--selected{% endblock %} {% block content %} Disonnected the Fly-box Something went wrong ! Disconnect from fly-box {% csrf_token %} Pick a Fly-box {% for post in posts %} {{post.title}} {%endfor%} Disconnect Cancel Attention! × Do you really want to disconnect ? {% endblock %} {%block footer%} {% endblock %}


Sqac annotated go structs are used to supply the sqac runtime with the information required to create and alter tables in the database. The following examples illustrate the use of the “default:” ‘sqac:’ tag described in the Sqac Tag Overview section of this document.
Use the “default:” tag to explicitly declare default column values in the database table schema. The default values will be used only if no value has been provided for a defaulted column during record creation. A field with a “default:” tag will be defaulted at the database level if it contains a null value, or the go zero-value corresponding to the field's go data type.
The following example illustrates the use of ‘sqac:’ tag “default:<value>” to declare a column's default value in the database table schema. Care should be taken to supply default values that correspond to the go data type of the the field/column.
// Declare a struct to be used as the source for table creation.
// sample default value assignments are shown
type Depot struct {
...
Region string `db:"region" sqac:"default:AB"`
Efficiency float64 `db:"efficiency" sqac:"default:99.999"`
Active bool `db:"active" sqac:"default:true"`
...
...
}
Most database systems offer a selection of functions to provide default time and/or timestamp values. Sqac uses UTC timestamps as discussed in section X.Y.Z for fields declared as time.Time or *time.Time. “default:now()” will instruct the database to use its equivalent now() function to provide a default value for the field at time of record insertion. The defaulted value will be created as a UTC timestamp.
// Declare a struct to be used as the source for table creation.
// field will be defaulted to current timestamp at time of record insertion
type Depot struct {
...
CreateDate time.Time `db:"create_date" sqac:"default:now();"`
...
...
}
Most database systems offer a selection of functions to provide default date-time and/or timestamp values. Sqac uses UTC timestamps as discussed in section X.Y.Z for fields declared as time.Time or *time.Time. “default:eot()” will set a default value for the field based on the maximum UTC timestamp supported by the database. Typically this will be along the lines of ‘9999 12 31 235959.999 UTC’, but some databases (MySQL/MariaDB) have lower maximum timestamp values.
// Declare a struct to be used as the source for table creation.
// field will be defaulted to current timestamp at time of record insertion
type Depot struct {
...
ExpiryDate time.Time `db:"expiry_date" sqac:"default:eot();"`
...
...
}


HTML has CSS, Unix-like shells have ANSI/VT100 Control Sequences. SHML makes is easy to apply style to your shell scripts without trying to remember that yellow is \033[33m
instead it’s $(color yellow)
.
# Unix-like
$ sudo bash -c 'curl -L https://raw.githubusercontent.com/odb/shml/1.1.0/shml.sh -o /usr/local/bin/shml && chmod +x /usr/local/bin/shml'
# Homebrew
$ brew install shml
# npm
$ npm install -g shml


These are samples of projects and my own work.
Responsive Grid CSS Website Layout. This website is a responsive Grid CSS layout using grid template areas. We will also be using other modern CSS features and techniques like CSS variables, rem units and Flexbox. It also uses Font Awesome 5 SVG and images from Unsplash.
Grid CSS Responsive Website Layout - "Mobile First" Design. This is a "mobile first" single page website layout using the CSS Grid. It uses modern techniques including relative em units, media queries and even a little flex.
CSS Grid Layout sample. Test the new CSS Grid layout and how to create grid based layouts and alignments. This is different from Flexbox which is for one-dimensional layouts in either colomns or rows. CSS Grids allow for two-dimensional layouts of rows and columns simultaneously with more complexity. We will look at properties for containers and items.
Nested Grids
Justifying and aligning items. How to span cells.
Custom responsive landing page using HTML5/CSS/Javascript.No frameworks! Responsive for mobile and also for height resizing. Uses Flexbox, ES6 Template String and favicon for better branding.
This is an example of a HTML 5 website built using semantic tags and a responsive layout.
This is a look at Emmet as a web development tool for creating faster HTML and CSS using abbreviations. It covesr the basics and look at nesting, siblings, multiplication and more.
A basic Javascript sample page.
My fun CSS cheat sheet page
Basic html sample pages, listing out some simple elements. No CSS styling at all!


Learning Management System
What is a Learning Management System
A learning management system is a software application for the administration, documentation, tracking, reporting and delivery of educational courses or training programs
What is a Learning Management System
A learning management system is a software application for the administration, documentation, tracking, reporting and delivery of educational courses or training programs


by Tyler Fisher | @tylrfishr
Application Programming Interface
It's time to go back to how the Internet works!
Representational State Transfer
There are different types of APIs, but we're going to work with RESTful APIs.
APIs are a way for your applications to talk to servers.
RESTful APIs work on top of HTTP, just like your web browser.
With APIs, we can send and receive data from servers for our own use.
Every API request will utilize one of these verbs.
We'll use the NYTimes Congress API
http://api.nytimes.com/svc/politics/{version}/us/legislative/congress/members/{chamber}/{state}/{district*}/current[.response-format]?api-key={your-API-key}
jQuery is your friend.
$.getJSON('apiURL', function(data) {
// all your code in here
});
index.html
file to create an unordered list of all senators from Illinois.


Introduction
In this article, we will create an optical character recognition (OCR) application using Angular and the Azure Computer Vision Cognitive Service. Computer Vision is an AI service that analyzes content in images. We will use the OCR feature of Computer Vision to detect the printed text in an image. The application will extract the text from the image and detects the language of the text. Currently, the OCR API supports 25 languages.
Prerequisites
- Install the latest LTS version of Node.JS from https://nodejs.org/en/download/
- Install the Angular CLI from https://cli.angular.io/
- An Azure subscription account. You can create a free Azure account at https://azure.microsoft.com/en-in/free/
- Install the .NET Core 3.1 SDK from https://dotnet.microsoft.com/download/dotnet-core/3.1
- Install the latest version of Visual Studio 2019 from https://visualstudio.microsoft.com/downloads/
We will use an ASP.NET Core backend for this application. The ASP.NET Core backend provides a straight forward authentication process to access Azure cognitive services. This will also ensure that the end-user won’t have direct access to cognitive services.
Create the Azure Computer Vision Cognitive Service resource
Log in to the Azure portal and search for the cognitive services in the search bar and click on the result. Refer to the image shown below.
On the next screen, click on the Add button. It will open the cognitive services marketplace page. Search for the Computer Vision in the search bar and click on the search result. It will open the Computer Vision API page. Click on the Create button to create a new Computer Vision resource. Refer to the image shown below.
On the Create page, fill in the details as indicated below.
- Name: Give a unique name for your resource.
- Subscription: Select the subscription type from the dropdown.
- Pricing tier: Select the pricing tier as per your choice.
- Resource group: Select an existing resource group or create a new one.
Click on the Create button. Refer to the image shown below.
After your resource is successfully deployed, click on the “Go to resource” button. You can see the Key and the endpoint for the newly created Computer Vision resource. Refer to the image shown below.
Make a note of the key and the endpoint. We will be using these in the latter part of this article to invoke the Computer Vision OCR API from the .NET Code. The values are masked here for privacy.
Creating the ASP.NET Core application
Open Visual Studio 2019 and click on “Create a new Project”. A “Create a new Project” dialog will open. Select “ASP.NET Core Web Application” and click on Next. Now you will be at “Configure your new project” screen, provide the name for your application as ngComputerVision and click on create. Refer to the image shown below.
You will be navigated to “Create a new ASP.NET Core web application” screen. Select “.NET Core” and “ASP.NET Core 3.1” from the dropdowns on the top. Then, select the “Angular” project template and click on Create. Refer to the image shown below.
This will create our project. The folder structure of the application is shown below.
The ClientApp folder contains the Angular code for our application. The Controllers folders will contain our API controllers. The angular components are present inside the ClientApp\src\app folder. The default template contains few Angular components. These components won’t affect our application, but for the sake of simplicity, we will delete fetchdata and counter folders from ClientApp/app/components folder. Also, remove the reference for these two components from the app.module.ts file.
Installing Computer Vision API library
We will install the Azure Computer Vision API library which will provide us with the models out of the box to handle the Computer Vision REST API response. To install the package, navigate to Tools » NuGet Package Manager » Package Manager Console. It will open the Package Manager Console. Run the command as shown below.
Install-Package Microsoft.Azure.CognitiveServices.Vision.ComputerVision -Version 5.0.0
You can learn more about this package at the NuGet gallery.
Create the Models
Right-click on the ngComputerVision project and select Add » New Folder. Name the folder as Models. Again, right-click on the Models folder and select Add » Class to add a new class file. Put the name of your class as LanguageDetails.cs and click Add.
Open LanguageDetails.cs and put the following code inside it.
namespace ngComputerVision.Models
{
public class LanguageDetails
{
public string Name { get; set; }
public string NativeName { get; set; }
public string Dir { get; set; }
}
}
Similarly, add a new class file AvailableLanguage.cs and put the following code inside it.
using System.Collections.Generic;
namespace ngComputerVision.Models
{
public class AvailableLanguage
{
public Dictionary<string, LanguageDetails> Translation { get; set; }
}
}
We will also add two classes as DTO (Data Transfer Object) for sending data back to the client.
Create a new folder and name it DTOModels. Add the new class file AvailableLanguageDTO.cs in the DTOModels folder and put the following code inside it.
namespace ngComputerVision.DTOModels
{
public class AvailableLanguageDTO
{
public string LanguageID { get; set; }
public string LanguageName { get; set; }
}
}
Add the OcrResultDTO.cs file and put the following code inside it.
namespace ngComputerVision.DTOModels
{
public class OcrResultDTO
{
public string Language { get; set; }
public string DetectedText { get; set; }
}
}
Adding the OCR Controller
We will add a new controller to our application. Right-click on the Controllers folder and select Add » New Item. An “Add New Item” dialog box will open. Select “Visual C#” from the left panel, then select “API Controller Class” from templates panel and put the name as OCRController.cs. Click on Add. Refer to the image below.
The OCRController will handle the image recognition requests from the client app. This controller will also return the list of all the languages supported by OCR API.
Open the OCRController.cs file and put the following code inside it.
using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using System.Net.Http;
using System.Net.Http.Headers;
using Newtonsoft.Json.Linq;
using System.IO;
using Newtonsoft.Json;
using System.Text;
using ngComputerVision.Models;
using System.Collections.Generic;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
using ngComputerVision.DTOModels;
namespace ngComputerVision.Controllers
{
[Produces("application/json")]
[Route("api/[controller]")]
public class OCRController : Controller
{
static string subscriptionKey;
static string endpoint;
static string uriBase;
public OCRController()
{
subscriptionKey = "fc791774e60e455da79546c50e1ca504";
endpoint = "https://ngocrdemo.cognitiveservices.azure.com/";
uriBase = endpoint + "vision/v2.1/ocr";
}
[HttpPost, DisableRequestSizeLimit]
public async Task<OcrResultDTO> Post()
{
StringBuilder sb = new StringBuilder();
OcrResultDTO ocrResultDTO = new OcrResultDTO();
try
{
if (Request.Form.Files.Count > 0)
{
var file = Request.Form.Files[Request.Form.Files.Count - 1];
if (file.Length > 0)
{
var memoryStream = new MemoryStream();
file.CopyTo(memoryStream);
byte[] imageFileBytes = memoryStream.ToArray();
memoryStream.Flush();
string JSONResult = await ReadTextFromStream(imageFileBytes);
OcrResult ocrResult = JsonConvert.DeserializeObject<OcrResult>(JSONResult);
if (!ocrResult.Language.Equals("unk"))
{
foreach (OcrLine ocrLine in ocrResult.Regions[0].Lines)
{
foreach (OcrWord ocrWord in ocrLine.Words)
{
sb.Append(ocrWord.Text);
sb.Append(' ');
}
sb.AppendLine();
}
}
else
{
sb.Append("This language is not supported.");
}
ocrResultDTO.DetectedText = sb.ToString();
ocrResultDTO.Language = ocrResult.Language;
}
}
return ocrResultDTO;
}
catch
{
ocrResultDTO.DetectedText = "Error occurred. Try again";
ocrResultDTO.Language = "unk";
return ocrResultDTO;
}
}
static async Task<string> ReadTextFromStream(byte[] byteData)
{
try
{
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
string requestParameters = "language=unk&detectOrientation=true";
string uri = uriBase + "?" + requestParameters;
HttpResponseMessage response;
using (ByteArrayContent content = new ByteArrayContent(byteData))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
response = await client.PostAsync(uri, content);
}
string contentString = await response.Content.ReadAsStringAsync();
string result = JToken.Parse(contentString).ToString();
return result;
}
catch (Exception e)
{
return e.Message;
}
}
[HttpGet]
public async Task<List<AvailableLanguageDTO>> GetAvailableLanguages()
{
string endpoint = "https://api.cognitive.microsofttranslator.com/languages?api-version=3.0&scope=translation";
var client = new HttpClient();
using (var request = new HttpRequestMessage())
{
request.Method = HttpMethod.Get;
request.RequestUri = new Uri(endpoint);
var response = await client.SendAsync(request).ConfigureAwait(false);
string result = await response.Content.ReadAsStringAsync();
AvailableLanguage deserializedOutput = JsonConvert.DeserializeObject<AvailableLanguage>(result);
List<AvailableLanguageDTO> availableLanguage = new List<AvailableLanguageDTO>();
foreach (KeyValuePair<string, LanguageDetails> translation in deserializedOutput.Translation)
{
AvailableLanguageDTO language = new AvailableLanguageDTO();
language.LanguageID = translation.Key;
language.LanguageName = translation.Value.Name;
availableLanguage.Add(language);
}
return availableLanguage;
}
}
}
}
In the constructor of the class, we have initialized the key and the endpoint URL for the OCR API.
The Post method will receive the image data as a file collection in the request body and return an object of type OcrResultDTO. We will convert the image data to a byte array and invoke the ReadTextFromStream method. We will deserialize the response into an object of type OcrResult. We will then form the sentence by iterating over the OcrWord object.
Inside the ReadTextFromStream method, we will create a new HttpRequestMessage. This HTTP request is a Post request. We will pass the subscription key in the header of the request. The OCR API will return a JSON object having each word from the image as well as the detected language of the text.
The GetAvailableLanguages method will return the list of all the language supported by the Translate Text API. We will set the request URI and create a HttpRequestMessage which will be a Get request. This request URI will return a JSON object which will be deserialized to an object of type AvailableLanguage.
Why do we need to fetch the list of supported languages?
The OCR API returns the language code (e.g. en for English, de for German, etc.) of the detected language. But we cannot display the language code on the UI as it is not user-friendly. Therefore, we need a dictionary to look up the language name corresponding to the language code.
The Azure Computer Vision OCR API supports 25 languages. To know all the languages supported by OCR API see the list of supported languages.  Since there is no dedicated API endpoint to fetch the list of languages supported by OCR API, therefore, we are using the Translate Text API endpoint to fetch the list of languages. We will create the language lookup dictionary using the JSON response from this API call and filter the result based on the language code returned by the OCR API.
Working on the Client side of the application
The code for the client-side is available in the ClientApp folder. We will use Angular CLI to work with the client code.
Using Angular CLI is not mandatory. I am using Angular CLI here as it is user-friendly and easy to use. If you don’t want to use CLI then you can create the files for components and services manually.
Navigate to the ngComputerVision\ClientApp folder in your machine and open a command window. We will execute all our Angular CLI commands in this window.
Create the models
Create a folder called models inside the ClientApp\src\app folder. Now we will create a file availablelanguage.ts in the models folder. Put the following code in it.
export class AvailableLanguage {
languageID: string;
languageName: string;
}
Similarly, create another file inside the models folder called ocrresult.ts. Put the following code in it.
export class OcrResult {
language: string;
detectedText: string
}
You can observe that both these classes have the same definition as the DTO classes we created on the server-side. This will allow us to bind the data returned from the server directly to our models.
Create the Computer Vision Service
We will create an Angular service which will invoke the Web API endpoints, convert the Web API response to JSON and pass it to our component. Run the following command.
ng g s services\Computervision
This command will create a folder name as services and then create the following two files inside it.
- computervision.service.ts — the service class file.
- computervision.service.spec.ts — the unit test file for service.
Open computervision.service.ts file and put the following code inside it.
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class ComputervisionService {
baseURL: string;
constructor(private http: HttpClient) {
this.baseURL = '/api/OCR';
}
getAvailableLanguage() {
return this.http.get(this.baseURL)
.pipe(response => {
return response;
});
}
getTextFromImage(image: FormData) {
return this.http.post(this.baseURL, image)
.pipe(response => {
return response;
});
}
}
We have defined a variable baseURL which will hold the endpoint URL of our API. We will initialize the baseURL in the constructor and set it to the endpoint of the OCRController.
The getAvailableLanguage method will send a Get request to the GetAvailableLanguages method of the OCRController to fetch the list of supported languages for OCR.
The getTextFromImage method will send a Post request to the OCRController and supply the parameter of type FormData. It will fetch the detected text from the image and language code of the text.
Create the Ocr component
Run the following command in the command prompt to create the OcrComponent.
ng g c ocr --module app
The –module flag will ensure that this component will get registered at app.module.ts.
Open ocr.component.html and put the following code in it.

Optical Character Recognition (OCR) using Angular and Azure Computer Vision Cognitive Services

<textarea disabled class="form-control" rows="10" cols="15"></textarea>

 Detected Language :

<input disabled type="text" class="form-control" value= />

<input type="file" (change)="uploadImage($event)" />

<button [disabled]="loading" class="btn btn-primary btn-lg" (click)="GetText()">
Extract Text
</button>

We have defined a text area to display the detected text and a text box for displaying the detected language. We have defined a file upload control which will allow us to upload an image. After uploading the image, the preview of the image will be displayed using an img element.
Open ocr.component.ts and put the following code in it.
import { Component, OnInit } from '@angular/core';
import { ComputervisionService } from '../services/computervision.service';
import { AvailableLanguage } from '../models/availablelanguage';
import { OcrResult } from '../models/ocrresult';
@Component({
selector: 'app-ocr',
templateUrl: './ocr.component.html',
styleUrls: ['./ocr.component.css']
})
export class OcrComponent implements OnInit {
loading = false;
imageFile;
imagePreview;
imageData = new FormData();
availableLanguage: AvailableLanguage[];
DetectedTextLanguage: string;
ocrResult: OcrResult;
DefaultStatus: string;
status: string;
maxFileSize: number;
isValidFile = true;
constructor(private computervisionService: ComputervisionService) {
this.DefaultStatus = "Maximum size allowed for the image is 4 MB";
this.status = this.DefaultStatus;
this.maxFileSize = 4 * 1024 * 1024; // 4MB
}
ngOnInit() {
this.computervisionService.getAvailableLanguage().subscribe(
(result: AvailableLanguage[]) => this.availableLanguage = result
);
}
uploadImage(event) {
this.imageFile = event.target.files[0];
if (this.imageFile.size > this.maxFileSize) {
this.status = `The file size is ${this.imageFile.size} bytes, this is more than the allowed limit of ${this.maxFileSize} bytes.`;
this.isValidFile = false;
} else if (this.imageFile.type.indexOf('image') == -1) {
this.status = "Please upload a valid image file";
this.isValidFile = false;
} else {
const reader = new FileReader();
reader.readAsDataURL(event.target.files[0]);
reader.onload = () => {
this.imagePreview = reader.result;
};
this.status = this.DefaultStatus;
this.isValidFile = true;
}
}
GetText() {
if (this.isValidFile) {
this.loading = true;
this.imageData.append('imageFile', this.imageFile);
this.computervisionService.getTextFromImage(this.imageData).subscribe(
(result: OcrResult) => {
this.ocrResult = result;
if (this.availableLanguage.find(x => x.languageID === this.ocrResult.language)) {
this.DetectedTextLanguage = this.availableLanguage.find(x => x.languageID === this.ocrResult.language).languageName;
} else {
this.DetectedTextLanguage = "unknown";
}
this.loading = false;
});
}
}
}
We will inject the ComputervisionService in the constructor of the OcrComponent and set a message and the value for the max image size allowed inside the constructor.
We will invoke the getAvailableLanguage method of our service in the ngOnInit and store the result in an array of type AvailableLanguage.
The uploadImage method will be invoked upon uploading an image. We will check if the uploaded file is a valid image and within the allowed size limit. We will process the image data using a FileReader object. The readAsDataURL method will read the contents of the uploaded file. Upon successful completion of the read operation, the reader.onload event will be triggered. The value of imagePreview will be set to the result returned by the fileReader object, which is of type ArrayBuffer.
Inside the GetText method, we will append the image file to a variable for type FormData. We will invoke the getTextFromImage of the service and bind the result to an object of type OcrResult. We will search for the language name from the array availableLanguage, based on the language code returned from the service. If the language code is not found, we will set the language as unknown.
We will add the styling for the text area in ocr.component.css as shown below.
.preview-image {
max-height: 300px;
max-width: 300px;
}
.image-container{
display: flex;
padding: 15px;
align-content: center;
align-items: center;
justify-content: center;
border: 2px dashed skyblue;
}
Adding the links in Nav Menu
We will add the navigation links for our components in the nav menu. Open nav-menu.component.html and remove the links for Counter and Fetch data components. Add the following lines in the list of navigation links.

Computer Vision

Execution Demo
Press F5 to launch the application. Click on the Computer Vision button on the nav menu at the top. You can upload an image and extract the text from the image as shown in the image below.
Summary
We have created an optical character recognition (OCR) application using Angular and the Computer Vision Azure Cognitive Service. The application is able to extract the printed text from the uploaded image and recognizes the language of the text. The OCR API of the Computer Vision is used which can recognize text in 25 languages.
Get the Source code from GitHub and play around to get a better understanding.


The rules of origin table contains:
In some cases there may be 2 columns (columns 3 and 4) that describe how non-originating materials must be worked or processed.
For each row:
Unless preceded by ‘ex’, the rules in column 3 (or 4 if present) apply to all products that come under the headings and chapters in column 1.
If the heading in column 1 starts with ‘ex’, the rules in column 3 (and 4 if present) will only apply to the product as described in column 2.
If there are 2 columns that describe how non-originating materials must be worked or processed (if columns 3 and 4 are present), you can apply either rule.


Chrome Extension for Impulsive Philanthropy
Yang Zi, Yew Lee, and Yun Long
750 SGD per household
1.12 million households
(actually more like 750 million)
donated online (2013)
Chrome Extension for Impulsive Philanthropy
Yang Zi, Yew Lee, and Yun Long


If you wish to be alerted before DWR actually remotes a call you can set a pre-hook function. This will be called with no parameters. This hook is useful if you wish to grey out certain components to prevent them being used again until the call returns.
Post execute hooks will usually be set in conjunction with pre-execute hooks and will generally undo any changes made by the pre-hook.
To set a preHook or postHook function globally see dwr.engine.setPreHook(function)
and dwr.engine.setPostHook(function)
.
You can also set a preHook or postHook function on a per-call basis using the call options object:
Remote.method(params, { callback:function(data) { alert("it worked"); }, preHook:function() { alert("Calling remote method."); }, postHook:function() { alert("Remote call complete."); } });
For an example of pre and post hooks, see the dwr.util.useLoadingMessage()
function.


Select2 4.0.0
The 4.0 release of Select2 is the result of three years of working on the code base and watching where it needs to go. At the core, it is a full rewrite that addresses many of the extensibility and usability problems that could not be addressed in previous versions.
This release contains many breaking changes, but easy-upgrade paths have been created as well as helper modules that will allow for backwards compatibility to be maintained with past versions of Select2. Upgrading will require you to read the release notes carefully, but the migration path should be relatively straightforward. You can view a list of the most common changes that you will need to make in the release notes.
Below is an in-depth review of what is new in Select2, as well as some of the major changes that have been made.
New features
The notable features of this new release include:
- A more flexible plugin framework that allows you to override Select2 to behave exactly how you want it to.
- Consistency with standard
<select>
elements for all data adapters, removing the need for hidden<input>
elements. - A new build system that uses AMD to keep everything organized.
- Less specific selectors allowing for Select2 to be styled to fit the rest of your application.
Plugin system
Select2 now provides interfaces that allow for it to be easily extended, allowing for anyone to create a plugin that changes the way Select2 works. This is the result of Select2 being broken into four distinct sections, each of which can be extended and used together to create your unique Select2.
The adapters implement a consistent interface that is documented in the options section for adapters, allowing you to customize Select2 to do exactly what you are looking for. Select2 is designed such that you can mix and match plugins, with most of the core options being built as decorators that wrap the standard adapters.
AMD-based build system
Select2 now uses an AMD-based build system, allowing for builds that only require the parts of Select2 that you need. While a custom build system has not yet been created, Select2 is open source and will gladly accept a pull request for one.
Select2 includes the minimal almond AMD loader,
but a custom
select2.amd.js
build is available if you already use an AMD loader. The code base
(available in the
src
directory) also uses AMD, allowing you to include Select2 in your
own build system and generate your own builds alongside your
existing infrastructure.
The AMD methods used by Select2 are available as
jQuery.fn.select2.amd.define()/require()
, allowing you to use the included almond loader. These methods are
primarily used by the translations, but they are the recommended
way to access custom modules that Select2 provides.
Migrating from Select2 3.5
There are a few breaking changes that migrators should be aware of when they are coming from older versions of Select2.
If you use the full build of Select2 (
select2.full.js
), you will be automatically notified of the major breaking
changes, and compatibility modules will be used in some cases to
ensure that your code still behaves how you were expecting.
No more hidden input tags
In past versions of Select2, an
<input type="hidden" />
tag was recommended if you wanted to do anything advanced with
Select2, such as work with remote data sources or allow users to
add their own tags. This had the unfortunate side-effect of servers
not receiving the data from Select2 as an array, like a standard
<select>
element does, but instead sending a string containing the
comma-separated strings. The code base ended up being littered with
special cases for the hidden input, and libraries using Select2 had
to work around the differences it caused.
In Select2 4.0, the
<select>
element supports all core options, and support for the old
<input type="hidden" />
has been deprecated. This means that if you previously declared an
AJAX field with some pre-selected options that looked like…
It will need to be recreated as a
<select>
element with some
<option>
tags that have
value
attributes that match the old value.
The options that you create should have
selected="selected"
set so Select2 and the browser knows that they should be selected.
The
value
attribute of the option should also be set to the value that will
be returned from the server for the result, so Select2 can
highlight it as selected in the dropdown. The text within the
option should also reflect the value that should be displayed by
default for the option.
Advanced matching of searches
In past versions of Select2, when matching search terms to
individual options, which limited the control that you had when
displaying results, especially in cases where there was nested
data. The
matcher
function was only given the individual option, even if it was a
nested options, without any context.
With the new matcher function, only the root-level options are matched and matchers are expected to limit the results of any children options that they contain. This allows developers to customize how options within groups can be displayed, and modify how the results are returned.
A function has been created that allows old-style matcher functions
to be converted to the new style. You can retrieve the function
from the
select2/compat/matcher
module, which should just wrap the old matcher function.
So if your old code used a matcher that only displayed options if they started with the term that was entered, it would look something like…
{% highlight js linenos %} function matchStart (term, text) { if (text.toUpperCase().indexOf(term.toUpperCase()) == 0) { return true; } return false; } $("select").select2({ matcher: matchStart }) {% endhighlight %}
Then in Select2 4.0, you would need to wrap the
matchStart
method (or the name of the matcher you created) with a
oldMatcher
method that we have created.
This will work for any matchers that only took in the search term
and the text of the option as parameters. If your matcher relied on
the third parameter containing the jQuery element representing the
original
<option>
tag, then you may need to slightly change your matcher to expect
the full JavaScript data object being passed in instead. You can
still retrieve the jQuery element from the data object using the
data.element
property.
More flexible placeholders
In the most recent versions of Select2, placeholders could only be
applied to the first (typically the default) option in a
<select>
if it was blank. The
placeholderOption
option was added to Select2 to allow users using the
select
tag to select a different option, typically an automatically
generated option with a different value.
The
placeholder
option can now take an object as well as just a string. This
replaces the need for the old
placeholderOption
, as now the
id
of the object can be set to the
value
attribute of the
<option>
tag.
For a select that looks like the following, where the first option
(with a value of
-1
) is the placeholder option…
You would have previously had to get the placeholder option through
the
placeholderOption
, but now you can do it through the
placeholder
option by setting an
id
.
And Select2 will automatically display the placeholder when the
value of the select is
-1
, which it will be by default. This does not break the old
functionality of Select2 where the placeholder option was blank by
default.
Display reflects the actual order of the values
In past versions of Select2, choices were displayed in the order
that they were selected. In cases where Select2 was used on a
<select>
element, the order that the server received the selections did not
always match the order that the choices were displayed, resulting
in confusion in situations where the order is important.
Select2 will now order selected choices in the same order that will be sent to the server.
Changed method and option names
When designing the future option set for Select2 4.0, special care was taken to ensure that the most commonly used options were brought over. For the most part, the commonly used options of Select2 can still be referenced under their previous names, but there were some changes which have been noted.
Removed the requirement of
initSelection
In the past, whenever you wanted to use a custom data adapter, such
as AJAX or tagging, you needed to help Select2 out in determining
the initial values that were selected. This was typically done
through the
initSelection
option, which took the underlying data of the input and converted
it into data objects that Select2 could use.
This is now handled by the
data adapter in the
current
method, which allows Select2 to convert the currently selected
values into data objects that can be displayed. The default
implementation converts the text and value of
option
elements into data objects, and is probably suitable for most
cases. An example of the old
initSelection
option is included below, which converts the value of the selected
options into a data object with both the
id
and
text
matching the selected value.
When using the new
current
method of the custom data adapter, this method is
called any time Select2 needs a list of the currently selected
options. This is different from the old
initSelection
in that it was only called once, so it could suffer from being
relatively slow to process the data (such as from a remote data
source).
The new
current
method of the data adapter works in a similar way to the old
initSelection
method, with three notable differences. The first, and most
important, is that it is called whenever the
current selections are needed to ensure that Select2 is always
displaying the most accurate and up to date data. No matter what
type of element Select2 is attached to, whether it supports a
single or multiple selections, the data passed to the callback must
be an array, even if it contains one selection. The last is that
there is only one parameter, the callback to be executed with the
latest data, and the current element that Select2 is attached to is
available on the class itself as
this.$element
.
If you only need to load in the initial options once, and otherwise
will be letting Select2 handle the state of the selections, you
don't need to use a custom data adapter. You can just create the
<option>
tags on your own, and Select2 will pick up the changes.
Custom data adapters instead of
query
In the past,
any time you wanted to hook Select2 up to a different data source
you would be required to implement custom
query
and
initSelection
methods. This allowed Select2 to determine the initial selection
and the list of results to display, and it would handle everything
else internally, which was fine more most people.
The custom
query
and
initSelection
methods have been replaced by custom
data adapters that handle how Select2 stores and retrieves the
data that will be displayed to the user. An example of the old
query
option is provided below, which is the same as the
old example, and it generates results that contain the search term
repeated a certain number of times.
This has been replaced by custom data adapters which define a
similarly named
query
method. The comparable data adapter is provided below as an
example.
The new
query
method of the data adapter is very similar to the old
query
option that was passed into Select2 when initializing it. The old
query
argument is mostly the same as the new
params
that are passed in to query on, and the callback that should be
used to return the results is now passed in as the second
parameter.
Renamed templating options
Select2 previously provided multiple options for formatting the
results list and selected options, commonly referred to as
"formatters", using the
formatSelection
and
formatResult
options. As the "formatters" were also used for things such as
localization, which has also
changed, they have been renamed to
templateSelection
and
templateResult
and their signatures have changed as well.
You should refer to the updated documentation on templates when migrating from previous versions of Select2.
The
id
and
text
properties are strictly enforced
When working with array and AJAX data in the past, Select2 allowed
a custom
id
function or attribute to be set in various places, ranging from the
initialization of Select2 to when the remote data was being
returned. This allowed Select2 to better integrate with existing
data sources that did not necessarily use the
id
attribute to indicate the unique identifier for an object.
Select2 no longer supports a custom
id
or
text
to be used, but provides integration points for converting
incorrect data to the expected format.
When working with array data
Select2 previously supported defining array data as an object that
matched the signature of an AJAX response. A
text
property could be specified that would map the given property to
the
text
property on the individual objects. You can now do this when
initializing Select2 by using the following jQuery code to map the
old
text
and
id
properties to the new ones.
This will result in an array of data objects that have the
id
properties that match the existing
pk
properties and
text
properties that match the existing
word
properties.
When working with remote data
The same code that was given above can be used in the
processResults
method of an AJAX call to map properties there as well.
Renamed translation options
In previous versions of Select2, the default messages provided to
users could be localized to fit the language of the website that it
was being used on. Select2 only comes with the English language by
default, but provides community-contributed
translations for many common languages. Many of the formatters
have been moved to the
language
option and the signatures of the formatters have been changed to
handle future additions.
Declaring options using
data-*
attributes
In the past, Select2 has only supported declaring a subset of
options using
data-*
attributes. Select2 now supports declaring all options using the
attributes, using the
format specified in the documentation.
You could previously declare the URL that was used for AJAX
requests using the
data-ajax-url
attribute. While Select2 still allows for this, the new attribute
that should be used is the
data-ajax--url
attribute. Support for the old attribute will be removed in Select2
4.1.
Although it was not documented, a list of possible tags could also
be provided using the
data-select2-tags
attribute and passing in a JSON-formatted array of objects for
tags. As the method for specifying tags has changed in 4.0, you
should now provide the array of objects using the
data-data
attribute, which maps to the array
data option. You should also enable tags by setting
data-tags="true"
on the object, to maintain the ability for users to create their
own options as well.
If you previously declared the list of tags as…
{% highlight html linenos %} {% endhighlight %}…then you should now declare it as…
{% highlight html linenos %} {% endhighlight %}Deprecated and removed methods
As Select2 now uses a
<select>
element for all data sources, a few methods that were available by
calling
.select2()
are no longer required.
.select2("val")
The
"val"
method has been deprecated and will be removed in Select2 4.1. The
deprecated method no longer includes the
triggerChange
parameter.
You should directly call
.val
on the underlying
<select>
element instead. If you needed the second parameter (
triggerChange
), you should also call
.trigger("change")
on the element.
.select2("enable")
Select2 will respect the
disabled
property of the underlying select element. In order to enable or
disable Select2, you should call
.prop('disabled', true/false)
on the
<select>
element. Support for the old methods will be completely removed in
Select2 4.1.


It's possible to show the acceptance criteria from your issues in your PR. You need to place the following tag in your template:
### Acceptance criteria{{ACCEPTANCE}}


Motor Vehicle Collision Analysis
About
More Analysis
Analysing Vehicular collision trends in the state of New York
Based on the data provided by NYC OpenData
[LINK]
How to use the tool?
Select target variable from the dropdown
Click on "Plot" to see the barchart
Click on a particular bar to view further subdivisions
In order to reset, Click on "Plot" again
Plotter
Target variable :
NUMBER OF PERSONS KILLED
NUMBER OF PERSONS INJURED
NUMBER OF PEDESTRIANS KILLED
NUMBER OF PEDESTRIANS INJURED
NUMBER OF MOTORIST KILLED
NUMBER OF MOTORIST INJURED
NUMBER OF CYCLIST KILLED
NUMBER OF CYCLIST INJURED
Plot
×


Using housing data to develop an accurate model for quantifying gentrification across the US. Using this model, commuity leaders could be able to identify and act upon gentrification before and as it occurs rather than after the fact.
Checkout Our Results


fun get(id: Int): Person
Returns the Person with the specified id from the database.
DataNotFoundException - if the item with the id could not be found
DataNotFoundException


Instantiating State Machines
Both the dynamically created and the compiled state machines behave in the same way, have the same properties, states, data model, and so on. They only differ in the way they are instantiated. To dynamically create one in C++ from an SCXML file, you can use:
auto *stateMachine = QScxmlStateMachine::fromFile("MyStatemachine.scxml");
Or, in QML:
import QtScxml 5.8 Item { property StateMachine stateMachine: scxmlLoader.stateMachine StateMachineLoader { id: scxmlLoader source: "statemachine.scxml" } }
A compiled state machine can be instantiated the same way as any C++ object:
auto *stateMachine = new MyStatemachine;
Or:
MyStatemachine stateMachine;
To use a compiled state machine in QML, you can register it as a QML type:
qmlRegisterType<MyStateMachine>("MyStateMachine", 1, 0, "MyStateMachine");
Then you can instantiate it in QML, like this:
import MyStateMachine 1.0 MyStateMachine { id: stateMachine }
To compile a state machine, the following lines have to be added to a .pro file:
QT += scxml STATECHARTS = MyStatemachine.scxml
This will tell qmake to run qscxmlc which generates MyStatemachine.h and MyStatemachine.cpp, and adds them to HEADERS and SOURCES variables. By default, the generated files are saved in the build directory. The QSCXMLC_DIR variable can be set to specify another directory. The QSCXMLC_NAMESPACE variable can be set to put the state machine code into a C++ namespace.
After instantiating a state machine, you can connect to any state's active property as follows. For example, if the state machine for a traffic light has a state indicating that the light is red (which has the convenient id "red" in the scxml file), you can write:
stateMachine->connectToState("red", [](bool active) { qDebug() << (active ? "entered" : "exited") << "the red state";
And in QML:
Light { id: greenLight color: "green" visible: stateMachine.green }
If you want to be notified when a state machine sends out an event, you can connect to the corresponding signal. For example, for a media player state machine which indicates that playback has stopped by sending an event, you can write:
stateMachine->connectToEvent("playbackStopped", [](const QScxmlEvent &){ qDebug() << "Stopped!"; });
And in QML:
import QtScxml 5.8 EventConnection { stateMachine: stateMachine events: ["playbackStopped"] onOccurred: console.log("Stopped!") }
Sending events to a state machine is equally simple:
stateMachine->submitEvent("tap", QVariantMap({ std::make_pair("artist", "Fatboy Slim"), std::make_pair("title", "The Rockafeller Skank") });
This will generate a "tap" event with the map contents available in _event.data inside the state machine. In QML:
stateMachine.submitEvent("tap", { "artist": "Fatboy Slim" "title": "The Rockafeller Skank" })
Note: A state machine needs a QEventLoop
to work correctly. The event loop is used to implement the delay
attribute for events and to schedule the processing of a state machine when events are received from nested (or parent) state machines. A QML application or a widget application will always have an event loop running, so nothing extra is needed. For other applications, QApplication::run
will have to be called to start the event loop processing.


{% extends "base.html" %} {% block body %}
Are you sure you want to permanently delete this post? Neither you nor others will be able to see it; you cannot recover a post after it's deleted.
If you only want to hide it from the public, you can set its privacy to "Only me".
Here's the content of the message for reference:


RuBQ
Table of contents
RuBQ v1
RuBQ[1] (Russian Knowledge Base Questions), pronounced [`rubik], is a KBQA dataset that consists of 1,500 Russian questions of varying complexity along with their English machine translations, corresponding SPARQL queries, answers, as well as a subset of Wikidata covering entities with Russian labels. It is the first Russian KBQA and semantic parsing dataset. The dataset is thought to be used as a development and test sets in cross-lingual transfer, few-shot learning, or learning with synthetic data scenarios.
Leaderboard
RuBQ v2
RuBQ 2.0[2], the second version of RuBQ, was released in Decemeber 2020. The dataset extension is based on questions obtained through search engine query suggestion services. The dataset doubled in size: RuBQ 2.0 contains 2,910 questions along with the answers and SPARQL queries. The dataset was also expanded with machine reading comprehension capabilities: RuBQ 2.0 incorporates answer-bearing paragraphs from Wikipedia for the majority of questions. Thus, the dataset is now not only suitable for the evaluation of KBQA, but also can be used to evaluate machine reading comprehension, paragraph retrieval, and end-to-end open-domain question answering. The dataset can be also used for experiments in hybrid QA, where KBQA and text-based QA can enrich and complement each other.
Leaderboard
References
[1] Korablinov, Vladislav, and Pavel Braslavski. RuBQ: a Russian dataset for question answering over Wikidata. In International Semantic Web Conference, pp. 97-110. Springer, Cham, 2020.
[2] Rybin, Ivan, Vladislav Korablinov, Pavel Efimov, and Pavel Braslavski. RuBQ 2.0: An Innovated Russian Question Answering Dataset. In European Semantic Web Conference, pp. 532-547. Springer, Cham, 2021.


Ooopppsss!


EnlightenSpotlight
@objc
public protocol EnlightenSpotlight
Undocumented
-
Draws the contents of the receiver that should be masked for the
focused
profile spot.By default, the view’s layer is used to create the image mask; however, in certain situations where the view is transparent, this may not be wanted (e.g. radio buttons).
Because the method is not called until needed, it is executed on the same thread on which the image itself is drawn, which can be any thread of your app. Therefore, the method must be safe to call from any thread.
Declaration
Swift
@objc optional func enlightenDrawProfileSpotMask(drawingRect: NSRect, in cgContext: CGContext)
Parameters
drawingRect
The destination rectangle in which to draw. The rectangle passed in is the
bounds
ofview
. The coordinates of this rectangle are specified in points.cgContext
The graphics context to use to draw.
-
The group of animations to execute upon focusing on the receiver.
The method is called regardless of the controller’s configuration.
Declaration
Swift
@objc optional func enlightenSpotlightFocusAnimation(using animationContext: NSAnimationContext)
Parameters
animationContext
The thread’s current
NSAnimationContext
to configure properties of the animation. -
The group of animations to execute upon unfocusing the receiver.
The method is called regardless of the controller’s configuration.
Declaration
Swift
@objc optional func enlightenSpotlightUnfocusAnimation(using animationContext: NSAnimationContext)
Parameters
animationContext
The thread’s current
NSAnimationContext
to configure properties of the animation.


Tonga women get second World Cup chance after measles lockdown
WELLINGTON: Tonga's women's rugby team have been given another opportunity to qualify for the 2021 World Cup after the entire side was withdrawn from the Oceania Rugby Women's Championships in Fiji and quarantined this week following a measles outbreak.
The outbreak has killed at least six people in Samoa and spread across the Pacific islands, with Tonga's Health Ministry confirming last week there were more than 250 confirmed cases of the disease.
The decision to quarantine the Tonga team was made by Fijian health officials and the World Health Organisation.
The Nov. 18-30 Oceania championship doubled as a qualifying tournament for the World Cup in New Zealand, with the winners advancing directly to the global showpiece. The second-placed team would enter a repechage tournament.
World Rugby, however, said Tonga would now play the third-placed team from the Oceania tournament with the winners of the game advancing to a match against the side finishing second.
The winners of that game would advance to the repechage tournament.
The costs of the additional matches will be covered by World Rugby.
(Reporting by Greg Stutchbury; Editing by Ed Osmond)


Breaking News, News Coverage, Current Events & More
Install NewsTrackr to access the latest local, national and world news directly on your new tab aling with web search
Business News >>
Politics >>
Entertainment >>
Sports >>
Health >>
Watch
News Coverage
Want to catch up on world events? Stay updated stories from across the globe. By adding NewsTrackr to your New Tab, you can stream live news stories and watch news videos conveniently
Personalized News
Recommendations
Interested in political news but not entertainment news? NewsTrackr traitors a unique and personalized newsfeed, based on your interests and preferences. Discover quality content from around the web.
Add NewsTrackr To Your New Tab Now!
Free installation.
No settings or customizations required.


Fire Down Below - Let This One Burn by Homer Yen (c) 1997
There was probably a good reason that the Warner Bros. studio chose not to allow critics to view this Steven Seagal film when it first opened. And, after seeing this piece of toxic waste, I now know why. This movie is by far the worst offering that has hit the screen since possibly those Ernest movies years ago. Fire Down Below centers its story on a little mining town in God's country, somewhere in eastern Kentucky.  It turns out that he's filling the mines throughout Kentucky with toxic waste for a tidy profit. Seagal plays Jack Taggert, an aikido-versed, fighting machine, who is an agent with the EPA. No...not the CIA nor the FBI nor the NSA. It's the Environmental Protection Agency. I had no idea that EPA agents were trained to be killers! Taggert is sent to find the perpetrators and to bring them to justice.
Written by someone named Jeb, I could already envision the stereotypes of incestuous relationships, banjo-picking preachers, and dumb-as-nails rednecks. But the script puts Seagal right smack dab in the middle of all of these scenarios as he tries to discreetly fit in. Seagal's idea of a disguise is a long-length $1000 leather jacket. But to get closer to the kinfolk, he will fix people's porches for free. That's another great EPA asset - teaching agents how to fix porches.
Slow and plodding, this project is a total mess. The sometimes allure of watching Seagal is watching him outmaneuver enemies that outnumber and outgun him like in Under Seige. Here, his bravado basically turns into bullyness.  Fight scenes are quick and senseless and offers no enjoyment value whatsoever. And his soap box message wears thin within the first 15 minutes. The most annoying moment comes when he barges into the middle of a Sunday church ceremony, gets behind the pulpit, and beseeches the townsfolk to take control of their lives and to help clean up the environment. But the epitome of how moralistically mushy this film gets happens when the person responsible for the toxic dumping, Kristopherson, meets up with Seagal. Kristopherson asks Seagal how much it will take for him to go away. Seagal gallantly replies: "I'll leave when you take the poison from the streams and the earth." I was expecting patriotic music to start blasting and a show of fireworks in the background.
Seagal has been vanguard in trying to bring a new genre into the filmplace, that of the enviro-thriller (On Deadly Ground). However, the message will never come across through poorly developed vehicles like this. Still, I believe in preserving Mother Earth, so save your $5 and please donate it instead to some worthy environmentally conscious charity.
Grade: D
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


{# main.html #} {# This is the main file / big kahuna / dad for the map homepage #} {% load static %}


5. Working with Agents
agent types versus paths
One thing to notice is that in the data modules the type
doesn’t exactly match the path in the REST API.
- agent_corporate_entity becomes /agents/corporate_entities
- agent_family becomes /agents/families
- agent_person becomes /agents/people
- agent_software becomes /agents/software
The URL’s are memorable but you can’t replace the ‘/’ with a ‘_’ to
get the jsonmodel_type value.


- Convert short pieces of code or text into encrypted QR codes and send them over to your friends.
- Non-ASCII characters will be ignored and will result in a '�' character in the decoded message.
- Maximum length of messages is 256 characters, ideal for all your Code Golf needs.
- Looking for the decoder?
For better results use the following characters:
[a-z][A-Z][0-9][!@#$%'*+-/=?^_`{|}~.]
-
-
Download as image


Man appears in court charged with robbing Dundee newsagents at knife point
A man has appeared in court charged with robbing a newsagents at knife point in Dundee.
by Jake KeithRory Starkey, 24, is accused of robbing Keystore on Dunholm Road in Charleston on Friday November 22 at around midday.
It is alleged that, while with his face masked, Starkey did assault a female shopkeeper by brandishing a knife at her and demanding money before robbing her of £140.
He is also accused of acting in a threatening or abusive manner by brandishing a knuckleduster with a knife attachment at two police constables at Dunholm Terrace on the same day.
He is accused of committing the offences while on bail granted on October 24.
Starkey, of Belmont Arms Hotel, Meigle, appeared in private on petition at Dundee Sheriff Court before Sheriff John Rafferty.
He was remanded in custody pending a further court appearance and made no plea or declaration.


PLUMP FICTION (1997) Reviewed by Jerry Saravia July 21st, 2001
As with "Scary Movie" parodying "Scream," it is simply a real effort to sit through "Plump Fiction," a parody of "Pulp Fiction" and "Reservoir Dogs." Why? Well, the jokes are simply recycling dialogue bits and other gags from "Pulp Fiction" without the finesse or pungent wit Tarantino brought to his own work. The concept behind "Plump Fiction" just can't possibly work anyway.
The filmmakers of this film forget that satire and parody search for the sublime and the ridiculous in other notable films that may have unintentionally funny scenes or that have material ripe for parody. Keenan Ivory Wayans might have done better satirizing "Nightmare on Elm Street" and the "Friday the 13th" films more so than "Scream" when making "Scary Movie." The reason is because "Scream" was a postmodern slasher flick that actually winked at the audience already, providing the humorous ambition of actually satirizing and deconstructing the slasher genre. Say what you will about "Scream" but I never took it seriously as a modern horror film, at least not in the same breadth as "Halloween" or "The Exorcist."
The same problem plagues "Plump Fiction." There is a scene in the horrendous "Spy Hard" where Leslie Nielsen and a female lead dance at a club mimicking the expressions of John Travolta and Uma Thurman's famous dance sequence from "Pulp Fiction." The problem is that the sequence from "Pulp" was a riff on Travolta's dance numbers from "Saturday Night Fever" and a riff on the Batdance from the pulpy "Batman" TV series. It was already mocking and satirizing those pop-culture icons. So how can you possibly spoof or satirize something that is already a spoof? It goes without saying that "Plump Fiction" has a similar dance sequence that is actually funny but not at the same level as "Pulp" was.
"Plump" basically reiterates most scenes from "Pulp" and Reservoir." Scenes involving Sandra Bernhard and some Reservoir Nuns, not to mention Forrest Gump and Nell, hardly elicit much of a smile. Best bits involve Pamela Segall and Matthew Glave as the Coxes, riffing on "Natural Born Killers" which is certainly ripe for parody. Segall does an excellent impersonation of Juliette Lewis and her body language - the difference is that she is in on the joke and it is well-executed. Tommy Davidson is also terrific as Julius, the Samuel L. Jackson character, and at least he brings his own persona to the proceedings. I also enjoyed a clever scene that parodied "Clerks" and "Reality Bites." But many of these gags seem desperate at best.
The Zucker brothers have made spoofing a household name but consider the sources they were spoofing. "Airplane" spoofed all disaster films in general. "Top Secret" spoofed all spy films and Elvis pictures. And so on. Their targets were films that were not aiming to be funny at all. "Pulp Fiction" was a black comedy that was riffing and deconstructing all of film noir in general. That is what the filmmakers of "Plump Fiction" have forgotten.
For more reviews, check out JERRY AT THE MOVIES at http://moviething.com/members/movies/faust/JATMindex.shtml
E-mail me with any questions, comments or general complaints at<EMAIL_ADDRESS>or at<EMAIL_ADDRESS>========== X-RAMR-ID: 28927 X-Language: en X-RT-ReviewID: 237112 X-RT-TitleID: 1083611 X-RT-SourceID: 875 X-RT-AuthorID: 1314
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Hi all,
First of all, nice improvements in the new EmonCMS!
I installed the emonsd-20feb2016 image, everything works as expected till I tried to connect to another wifi. During the first start I could see all other networks, but after connecting only the known network is visible/connected.
It seems like it is frozen or something. Scan won't work, neither the other buttons on the wifi page.
Re: Wifi frozen
I'm having the same issue. Looking for a solution...
Re: Wifi frozen
Hope you're comfortable with the command line. I fixed it by ssh-ing into my Pi, switching it to read/write mode by typing "rpi-rw," and editing wifi settings through "sudo nano /etc/wpa_supplicant/wpa_supplicant.conf" (link)
It will list a bunch of networks. Try deleting a network and reloading the emoncms page, that network should disappear. Then, copying the format that's there already, add the name of the wifi network you want to use. That network should then appear when you refresh the emoncms wifi page... enter the password, connect, and refresh. That should do it.
Don't forget to switch the Pi back to read only mode like I did. Type "rpi-ro"
Re: Wifi frozen
Oh dear. Sorry to hear that. I have been unable to re-create the issue here. Please, could I ask a few questions to try and debug this:
Have you remembered to tick the checkbox to the left of the WiFi network before connecting?
Just to get things clear, the steps to re-create the issue are:
Re: Wifi frozen
@johlhausen and @Glyn,
My Pi is working but without internet, so I can't test it.
1. Yes 20 feb sd
2. Yes, the standard from OEM
3. I had a bunch while configuring, but now only the first chosen/working
4. Yes, I did the update via the browser when I had internet.
About the checkbox, I checked only the box of the now visible and working wifi connection. Where is it needed for?
1. Yes it worked fine, worked as good in emoncms8.5
2. Connecting by Ethernet works direct and only to the first connected wifi works
3. No connection information available. Scan, start, stop etc. don't give any reaction
4. Not tried yet, what Johlhausen mentioned.
Re: Wifi frozen
Embarrassingly, I'm not sure how to know what release I'm running. I put the stable 17Jun15 release on months ago and I clicked update emonPi yesterday before attempting to connect to my new WiFi.Figured out how to check: yes, it is 17Jun15I did remember to tick the checkbox.
Steps to re-create:
Re: Wifi frozen
Thanks a lot for your help. This is great. I'll do my best to debug this.
I have just tested with the Edimax dongle and RasPi3 with Broadcom adapter and have been unable to re-create. I am running the 20Feb16 image.
@Bart, the checkbox is to select which networks you want the emonPi to try and connect to, i.e if the first one fails it will try and connect to the next. Checkbox is also needed to select an open-access un-encrypted network.
Re: Wifi frozen
I can't recreate the issue on my home test emonPi, see screencast: https://drive.google.com/file/d/0B9yLIKTN3csqTVZpQThVOEZHTjA/view
Please could you watch my screencast and let me know if you notice anything different about my setup to your setup.
If you have SSH access could you post output of:
$ ifconfig wlan0
and
$ iwconfig wlan0
On my system I get :
pi@emonpi:~/emonpi $ ifconfig wlan0
wlan0 Link encap:Ethernet HWaddr 74:da:38:2e:1c:ac
inet addr:<IP_ADDRESS> Bcast:<IP_ADDRESS> Mask:<IP_ADDRESS>
inet6 addr: fe80::76da:38ff:fe2e:1cac/64 Scope:Link
inet6 addr: fdfa:fd37:1aa5:0:a6dd:34c6:9d25:d75c/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2475062 errors:0 dropped:2369 overruns:0 frame:0
TX packets:2404222 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:607583698 (579.4 MiB) TX bytes:982754601 (937.2 MiB)
pi@emonpi:~/emonpi $ iwconfig wlan0
wlan0 IEEE 802.11bgn ESSID:"Crumble" Nickname:"<WIFI@REALTEK>"
Mode:Managed Frequency:2.447 GHz Access Point: 7C:4C:A5:2E:7C:ED
Bit Rate:72.2 Mb/s Sensitivity:0/0
Retry:off RTS thr:off Fragment thr:off
Power Management:off
Link Quality=100/100 Signal level=79/100 Noise level=0/100
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Re: Wifi frozen
Also having trouble replicating this. Can anyone see any errors in the browser console window when viewing this page? The browser network tab is another good place to look. Do any of the request responses return errors? I'll see if I can add some more error checking to the module.
Re: Wifi frozen
I have watched the screencast and the first difference is, that I had only one network listed. The second is, that all the fields are empty, ip, mac, etc. My Pi is now running a measuring job, so I can't access it now unfortunately. (connected with a router without internet connection) But If I remember it well, the wifi page remains blank instead of changing in the green fields as your screencast.
So it looks that EmonCMS isn't able to read/communicate.
Probably I'm next Friday in the position to check the WiFi configuration and the errors in the browser console.
Re: Wifi frozen
We have pushed a couple of bug fixed to the Wifi module. Please pull in these fixes using emonpi update and let me know if the issue persists.
Bugs fixed include:
Please let us know the output of developer console when trying to connect to Wifi network. Be sure to un-check networks you don't wan to connect to.
Re: Wifi frozen
Today I was able to visit my setup and check some things. I have attached a screenshot of the wlan configurations, what looks fine to me.
I had also another issue for the second time (see screenshot). After a reboot the problem was solved, but probably not for the last time...Automatic reboot after dead main thread would be nice.
So I wasn't able to update and copy the printouts of the wifi debugging information. Tomorrow, I'll try to visit again to update and copy the output of the Wifi debugging.
Re: Wifi frozen
I have checked again my pi and unfortunately even more errors occurred, the main thread was dead and after a reboot it didn't save the feeds. Even after restarting the feedwriter.
Updating the Pi also didn't result in a working wifi. So I thought a clean install will be the best and fast solution. I did that and all the problems were solved.
Due to a lack of time I can't afford another week of missing data so I returned to 17juni2015 image...
Re: Wifi frozen
Hi Bart,
Good to hear Wifi has been fixed. I recommend starting a new thread to discuss the latest bug. All I can recommend without seeing specifics is make sure you run emonPi update to pull in any bug fixes. I would be interested to hear if you manage to obtain any further insight into the 'dead thread' issue. It's a new one for me.


thermal model data temperature prediction heat building Fig time air Fourier used {border-style Thermal insulation facade indoor px;} #ffffff;} TDNN layers materials network neural surface actual presented behaviour different energy model. theoretical Energy error layer predictions set training using walls MAE difference enclosure resistance construction dynamic learning mean networks obtained sensors test ./j.enbuild... Buildings. Sciences outdoor transfer .E– Available Learning MSE Neural Table conductivity deep differences facade. flow from: metrics readings able absolute make number px; respect shown standard {font-family Applied analysis capable characteristics connexionist font-size located modelling order real series specific study transmittance ventilated ./j.apenergy... Alicante, Celsius Energy. Machine Writing account applied based bridges carried comparison data. degrees. density design discontinuities double; effect environment graph humidity method model, models provided shows solar temperatures thickness type value way Building Echarri Heat In: International Monitoring Networks Science Temperature University addition, air, border-color border-width compared conditioning deviation enclosure. facades given inertia layers. measurement observed obtain optimum original parameters previous process reading relative residential results sensor solid; stationary systems, temporal types values years {font-style {font-weight ./journal.pone..t Benito Ce, Conceptualization Deep Density Galdós IEEE; ISO Information Investigation Physical Rizo Specific Test. Validation according affects approach architecture article artificial attached bold calculation case, comfort consists consumption courier; decay diffusivity em; evaluate external greater heating important internal interstitial layer, limited material means measurements memory network, neuronal output outside parameter passage permeability phase physical predicting pt;} quality rate represents research risk sequence simple substantially systems time-delay use valid various wall way, work


class CategoryPaths
Class CategoryPaths converts dot paths to real paths and also finds server paths and browser urls to the configured root media directory where all our media files are stored at.
Methods
|
__construct(null $config = null)
Create a new category path |
||
| string |
fromDot(string $path)
Convert dots to slashes in the path |
|
| string |
toDot(string $path)
Convert slashes into dots in the path |
|
| string |
serverPath($path $path)
Server path is the real path to the root media directory |
|
| string |
browserPath($path $path)
Browser path is the url path to this root media directory |
Details
at line 17
public
__construct(null $config = null)
Create a new category path
at line 28
public string
fromDot(string $path)
Convert dots to slashes in the path
at line 39
public string
toDot(string $path)
Convert slashes into dots in the path
at line 50
public string
serverPath($path $path)
Server path is the real path to the root media directory
at line 62
public string
browserPath($path $path)
Browser path is the url path to this root media directory