|
Totsu PrimalDualIPM
|
This header file defines PrimalDualIPM class and other types/macros. More...
#include <Eigen/Dense>
#include <cfloat>
Go to the source code of this file.
Classes | |
| class | PrimalDualIPM |
| A basic Primal-Dual Interior-Point Method solver class. More... | |
Macros | |
| #define | IPM_SCALAR_EPS DBL_EPSILON |
| smallest value such that 1 + IPM_SCALAR_EPS != 0 | |
| #define | IPM_SCALAR_MIN DBL_MIN |
| minimum positive value | |
| #define | IPM_ERR_STR ( __FILE__ " @ " IPM_NUM(__LINE__) ) |
| generates error string | |
Typedefs | |
| typedef double | IPM_Scalar |
| scalar | |
| typedef Eigen::VectorXd | IPM_Vector |
| vector | |
| typedef Eigen::MatrixXd | IPM_Matrix |
| matrix | |
| typedef Eigen::Matrix< IPM_Scalar, 1, 1 > | IPM_Single |
| single element matrix | |
| typedef const Eigen::Ref< const IPM_Vector > | IPM_Vector_IN |
| vector input reference/argument | |
| typedef const Eigen::Ref< const IPM_Matrix > | IPM_Matrix_IN |
| matrix input reference/argument | |
| typedef const Eigen::Ref< const IPM_Single > | IPM_Single_IN |
| single element matrix input reference/argument | |
| typedef Eigen::Ref< IPM_Vector > | IPM_Vector_IO |
| vector in-out reference/argument | |
| typedef Eigen::Ref< IPM_Matrix > | IPM_Matrix_IO |
| matrix in-out reference/argument | |
| typedef Eigen::Ref< IPM_Single > | IPM_Single_IO |
| single element matrix in-out reference/argument | |
| typedef unsigned int | IPM_uint |
| unsigned integer | |
| typedef const char * | IPM_Error |
| error string | |
This header file defines PrimalDualIPM class and other types/macros.
There exist several build configuration macros:
IPM_DISABLE_LOG
disables logging function. This enables to cut dependency on std::ostream.IPM_USE_FLOAT
uses single floating point precision instead of double.IPM_ENABLE_ASSERT
enables assertion when generating error string. This is useful when using debugger because it breaks.IPM_DECOMP_TYPE
specifies which matrix decomposition is used for KKT matrix. FullPivLU
, HouseholderQR
, FullPivHouseholderQR
and ColPivHouseholderQR
are available. If not defined, JacobiSVD
is used.These are not defined by default.


YEAR OF THE DRAGON A Film Review Copyright Dragan Antulov 1998
Some people would hardly believe it, but in the early 1980s Oliver Stone was regarded as anything but left-wing. His scripts were often being accused of promoting ethnic stereotypes, sexism, and in the case of CONAN THE BARBARIAN, even the most questionable right-wing agenda. One of such examples is YEAR OF THE DRAGON, now almost forgotten 1985 gangster epic by Michael Cimino, the very first film that misfortunate director made after his HEAVEN'S GATE fiasco. That movie is now almost forgotten, but in its time it made a serious brouhaha with its alleged racism towards Chinese American community. Naturally, it was Oliver Stone with his screenplay who was named the biggest culprit. On the other hand, very few people then actually bothered to judge this film on its cinematic merit, instead of cheap daytime politics. As soon as THE YEAR OF THE DRAGON went out of the release, it was forgotten, despite being one of the more ambitious and interesting films of the previous decade.
The movie begins in New York, whose quiet and picturesque Chinatown gets shocked by the assassination of its top Triad boss. Following his death, the citizens of Chinatown and neighbouring quarters become targets of a whole series of violent incidents. On the surface, it looks like a escalation of youth gang activity; however, all those attacks are actually part of campaign, cleverly orchestrated by Joey Tai (John Lone), young Triad boss who wants to remove the old guard and become the undisputed leader himself. Unfortunately for Joey, he is not the only ambitious man who wants to break the well-established rules of his community. Captain Stanley White (Mickey Rourke), most decorated policeman in New York, is put in charge of Chinatown. His Vietnam traumas and hatred towards Asian people drives him to start relentless anti-crime crusade with total disregard towards the law and unofficial pact between the police and local community leaders. That brings him in an unavoidable conflict with Joey, which would result in even more bloodbath.
Critics who accuse Cimino and Stone of anti-Asian racism are missing the point, because the way Chinese community is portrayed in YEAR OF THE DRAGON isn't much different from the way some other ethnic or racial communities of America used to be portrayed in crime thrillers. For example, these days hardly any Italian American would be offended by the way Mafia is dealt by Hollywood. Cimino's sin was probably in the fact that he was one of the first directors who used to dig behind the surface and expose the problem. Even more, YEAR OF THE DRAGON didn't just try to show all the sinister reality of crime-ridden Chinese community and its share of the evil that lurks on American street. It actually tried to explain that the Chinese themselves are the greatest victims of their crime lords, and even went further. The root of the problem, according to the characters in the movie, doesn't lie within the community itself; the self-isolation which gave the crime organisations so much power is the direct result of the racism. When the Asian people get shunned and humiliated and denied their fair share of American dream, they have no other choices but to turn to themselves and the old ways, however bad it could be. So, YEAR OF THE DRAGON is basically the anti-racist film.
The anti-racist message was, however, blurred by the heavy use of some police film clich‚s. Like in the 1970s, the hero and chief villain are presented like a total visual opposites of their character alignment. The "good" cop is presented like a racist, wife- cheating redneck pig, who is ready to sacrifice not just himself, but also his friends, family and colleagues in his personal, and very questionable war; Mickey Rourke in one of the strongest performances of his career even gives him some traces of psychosis. The main villain, played by John Lone, on the other hand is handsome, cultivated, charismatic man, who actually cares both for his family and is shown as person capable of compassionate deeds; Stone's script even goes even further and gives Joey Tai opportunity to present himself as a leader whose business-like philosophy might even signal the break with the old tradition and bring his people from the isolation.
Unfortunately, if the movie concentrated on those two characters only, YEAR OF THE DRAGON would be remembered as thought-provoking epic worthy of GODFATHER. But it wasn't meant to be - in order to make Stanley White definitely likeable, out of blue comes the character of Tracy Tzu, Chinese American TV reporter whose father somehow managed to earn fortune in honest way and integrate her daughter into American way of life. For some undetermined reason, Stanley White gets attracted to her and begins questioning his own racist beliefs. Although that would make his character more sympathetic, his metamorphosys doesn't get properly explained, most probably due to the incredibly inept (and "Razzie" awarded) performance of Arianne as his love interest. Things get even more complicated, when the character of Stanley's long suffering wife Connie (Caroline Kava, one of the most underused actresses in today's Hollywood) gets overexposure, together with unnecessary and too direct allusions to Stanley's own immigrant background.
All those many subplots are, on the other hand, excellent opportunity for Cimino to make another film of epic proportions. High budget, today almost unimaginable for the movies that deal with simple "cops and robbers" stories, gave an excellent opportunities for many delicate mass scenes that Cimino likes so much. Some of them - like a meeting with drug-producing rebels in the hills of Burma, funerals, complicated shootouts in public places - are impressive and would remain long in the the viewer's memory. Unfortunately, Cimino didn't care much of the script, and some of those scenes, including many unnecessary subplots and scenes involving side characters, slow the pace of the movie significantly. The uninspiring musical score by David Mansfield is often used on the wrong places and because of it, YEAR OF THE DRAGON sometimes look like a incoherent combination of many different movies. However, despite all those faults, and also because such movies would be hard to make these days, YEAR OF THE DRAGON remains one of those rare Hollywood products - unusual and thought-provoking films.
RATING: 6/10 (++)
Review written on November 9th 1998
Dragan Antulov a.k.a. Drax Fido: 2:381/100 E-Mail<EMAIL_ADDRESS><EMAIL_ADDRESS>The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


THIS COURSE REQUIRES ADOBE FLASH PLAYER 8 OR HIGHER.
Click here
to download and install the latest version.


Try out our Premium Member services: Virtual Legal Assistant, Query Alert Service and an ad-free experience. Free for one month and pay only if you like it.
IN THE HIGH COURT OF JHARKHAND AT RANCHI A.B.A. No. 1656 of 2015 1. Tarun Kumar Ghosh 2. Ranjit Kumar Roy .... Petitioners Versus 1. The State of Jharkhand 2. Mr. S. S. Hoda, Regional Officer, Jharkhand Pollution Control Board, Dumka ... Opposite Parties --- CORAM: HON'BLE MR. JUSTICE RONGON MUKHOPADHYAY --- For the Petitioners : Mr. Rajeeva Sharma, Sr. Advocate For the State : Mr. Arun Kr. Pandey, APP For O.P. No. 2 : Mr. Rahul Saboo, Advocate --- Order No. 09 Dated 21st September , 2015 Heard Mr. Rajeeva Sharma, learned senior counsel, appearing for the petitioner, Mr. Arun Kr. Pandey, learned counsel for the State and Mr. Rahul Saboo, learned counsel for the opposite party No. 2. Petitioners have prayed for grant of anticipatory bail, as they are apprehending their arrest in connection with O.C.R. Case No. 274 of 2014 registered for the offences punishable u/s 15 of the Environment Protection Act, 44 of the Water (Prevention and Control of Pollution) Act, 1947 and Section 37 of the Air (Prevention and Control of Pollution) Act. It has been submitted by the learned senior counsel for the petitioners that initially F.I.R. was instituted and after investigation final form was submitted, but on protest-cum-complaint petition, cognizance has been taken. It has been submitted that the petitioner No. 1 is the Ex General Manager, whereas petitioner No. 2 is the Manager of PANEM Coal Company Ltd. It is further submitted that the production was within the prescribed limit fixed by the Jharkhand State Pollution Control Board (JSPCB) and no excess production was being made by the coal company. It has been submitted that in terms of the no objection certificate issued by the JSPCB dated 15.3.2003, the ultimate coal production can be up to 23 thousand M.T. per day which if calculated annually comes to 83 lakhs 95 thousands M.T. It has also been submitted by the learned senior counsel that in terms of the decision of the Ministry of Environment and Forest, Govt. of India dated 4.1.2005, the production capacity of Panem Coal Company was reduced to 70 Lakhs M.T. per year after obtaining the consent from the State Pollution Control Board. Learned senior counsel further adds that the JSPCB in terms of the letter issued by the Ministry of Environment, Govt. of India had subsequently issued a communication dated 12.3.2012 by which the production in no objection certificate was revised from 23 thousand M.T. per day to 70 Lakhs M.T. per year. It has also been submitted that the period of dispute is from 1.4.2011 to 31.3.2012 and there was no embargo upon the Panem Coal Company during the said period sans before 12.3.2012
to maintain the production capacity for not more than 70 Lakhs M.T.
2.annually. It is further submitted that during the period in dispute the production capacity of Panel Coal Company was within the limits as prescribed by the no objection certificate dated 15.3.2003 issued by the JSPCB and hence no offence can be alleged to have been committed by the petitioners. Learned senior counsel has also referred to the report dated 7.5.2013 of the JSPCB by which on analysis the level of pollution was found within the prescribed limit.
Mr. A. K. Pandey, learned counsel for the State has opposed the prayer for anticipatory bail of the petitioners and has submitted that the company was producing coal over and above the limit prescribed by the Pollution Control Board under its no objection certificate.
Mr. Rahul Saboo, learned counsel for the opposite party No. 2 has also opposed the prayer for anticipatory bail of the petitioners and referring to the letter of the Ministry of Environment, Govt. of India dated 4.1.2005 submitted that it was well within the knowledge of the company with respect to the production of coal within 70 Lakhs M.T. per year and at this stage they cannot take recourse to the no objection certificate granted by the Pollution Control Board, which subsequent to the issuance of the directives dated 4.1.2005 was revised and the Board has reduced the production capacity of the company from 23 thousand M.T. per day to 70 Lakhs M.T. annually.
From the discussions made above it appears that during the period in which it is alleged that the Panem Coal Company had violated the norms of the Central Govt. and has made excess production than what was permitted in view of the no objection certificate dated 15.3.2003 issued by the Pollution Control Board and subsequent letter dated 7.3.2012 issued on the direction of Ministry of Environment, Govt. of India dated 4.1.2005, the petitioners cannot be held responsible for excess production for the period during which the allegations have been levelled as the same was within the specifications as mentioned by the Pollution Control Board in its earlier no objection certificate dated 15.3.2003.
Regard being had to the aforesaid fact, I am inclined to allow this application. Accordingly, the petitioners, named above, are directed to surrender in the court below within three weeks from today and on such surrender, they shall be released on bail on furnishing bail bond of Rs. 10,000/- (Ten Thousand) each with two sureties of the like amount each to the satisfaction of learned Judicial Magistrate, Pakur in connection with O.C.R. Case No. 274 of 2014, subject to the conditions as laid down under Section 438(2) of the Code of Criminal Procedure (RONGON MUKHOPADHYAY, J.) MK


We are happy to serve you in any given point
Gala no: 1 next to Ganapati Mandir opp omkar tower santosh nagar, Market goregaon (east), Mumbai - 400 063
@sg_enterprise_
<EMAIL_ADDRESS>(91)<PHONE_NUMBER>


Constructor
new BoundingBox(x, y, width, height)
Creates a new bounding box
Parameters:
| Name | Type | Description |
|---|---|---|
x |
number | The x position of the top left corner |
y |
number | The y position of the top left corner |
width |
number | The width of the box |
height |
number | The height of the box |
Extends
Members
height
Get the height value
width
Get the width value
x
Gets the x coordinate of this point
y
Gets the x coordinate of this point
Methods
collides(box) → {boolean}
Performs a simple collision check on another boundingBox.
Parameters:
| Name | Type | Description |
|---|---|---|
box |
Object | The BoundingBox to check for intersection |
Returns:
true if colliding
- Type
- boolean
contains(box) → {boolean}
Checks the entire boundingBox passed is inside this one.
Parameters:
| Name | Type | Description |
|---|---|---|
box |
Object | The box to check |
Returns:
True/False whether the box passed is contained within this one
- Type
- boolean
copy(box)
Copies the values of another BoundingBox to this one
Parameters:
| Name | Type | Description |
|---|---|---|
box |
Object | the BoundingBox to copy |
- Overrides:
- Source:
distanceTo(point) → {number}
Calculates the distance between two points
Parameters:
| Name | Type | Description |
|---|---|---|
point |
Object | The point to measure distance to |
- Overrides:
- Source:
Returns:
The distance between this point and the one passed
- Type
- number
inBounds(x, y) → {boolean}
Checks whether the x,y coordinate passed is within the box boundary
Parameters:
| Name | Type | Description |
|---|---|---|
x |
number | The x coordinate |
y |
number | The y coordinate |
Returns:
true if the point is inside this box, otherwise false
- Type
- boolean
intersects(box) → {Object}
Performs a comprehensive collision test that checks where the two boxes are
overlapping and indicates the closest point to move them out of collision.
Parameters:
| Name | Type | Description |
|---|---|---|
box |
Object | The BoundingBox to check for intersection |
Returns:
a dictionary with side: axis of intersection and
pos: closest point of non-intersection
- Type
- Object
pointInBounds(point) → {boolean}
Checks whether the point is within the box boundary
Parameters:
| Name | Type | Description |
|---|---|---|
point |
Object | The Point2D cordinates to check |
Returns:
true if the point is inside this box, otherwise false
- Type
- boolean


There have been some Red Hot Chili Peppers songs playing around the house here and there as we shelter in place. I don't love the Chili Peppers, but I do find myself with a line like "Ding dang dong dong ding dang dong dong ding dang" stuck in my head for hours, with a mix of annoyance and pervers glee. Maybe I am losing my mind.
 And the answer is always the Red Hot Chili Peppers.”
I love Nick Cave, but I'm afraid that we can't let this insult stand.


Apache POI
Home
(current)
GitHub
Blog
Product List
Id
Description
Price
Image URL
List
Edit
Delete
View
Edit
Delete
New Product
Import Products
Export Products
Older
Read testRead.xls
Export book.xls
Export export2007.xls
Export template.xls
Export replaceTemplate.xls


I'd like to speak in: English French Italian Spanish and have it spoken back by:
Hold shift to start voice recognition.
Spoken:
Resulting Translation:


Interested in Contributing?
- Check out available resources.
- Create an account and start submitting your own systems.
Scored Systems
| System | Submitter | System Notes | Constraint | Run Notes | BLEU | BLEU (11b) | BLEU-cased | BLEU-cased (11b) | TER | z BLEU-cased-norm | zz BEER 2.0 | zzz CharactTER |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| QUAERO primary (Details) | stephan.peitz RWTH Aachen University |
no | gigaWord |
29.9 |
29.9 |
28.4 |
28.4 |
0.602 |
||||
| desrt (Details) | attardi UniversitÓ di Pisa |
We perform parsing of the source language and then perform a reordering of the dependency tree, before applying a traditional PBT. | yes | Baseline from Google online. |
29.1 |
29.1 |
27.9 |
27.9 |
0.611 |
|||
| RWTH-Jane-primary (Details) | mhuck RWTH Aachen University |
RWTH Aachen University German-to-English primary submission based on the Jane toolkit | yes | constrained, with LDC Gigaword |
28.4 |
28.4 |
27.1 |
27.1 |
0.615 |
|||
| uedin-wmt13-de-en (Details) | Nadir University of Edinburgh |
Phrase-based Moses | yes | [1289-4] |
28.1 |
28.1 |
26.8 |
26.8 |
0.625 |
|||
| uedin-wmt13-de-en (Details) | Edinburgh University of Edinburgh |
yes | [1262-10] Phrase-based Moses with sparse POS, domain, other features; kbmira; interpolated factored backoff |
27.9 |
27.9 |
26.6 |
26.6 |
0.628 |
||||
| RWTH-Jane-contrastive (Details) | mhuck RWTH Aachen University |
RWTH Aachen University German-to-English contrastive submission: Jane phrase-based | yes | constrained, with LDC Gigaword |
27.8 |
27.8 |
26.6 |
26.6 |
0.617 |
|||
| MES:de-en (Details) | Nadir Durrani University of Edinburgh |
MES: Munich-Edinburgh-Stuttgart | yes | OSM (Operation Sequence Model) |
27.6 |
27.6 |
26.2 |
26.2 |
0.633 |
|||
| RWTH-Jane-HPBT-Syntax (Details) | mhuck RWTH Aachen University |
RWTH Aachen University German-to-English syntax-augmented submission (soft syntactic labels + soft string-to-dependency): Jane hierarchical phrase-based | yes | constrained, with LDC Gigaword, TM without Common Crawl |
27.2 |
27.2 |
25.9 |
25.9 |
0.624 |
|||
| MES-Szeged-reorder-split-primary (Details) | fraser MES: Munich-Edinburgh-Stuttgart |
Reordering based on reranked constituent parses combined with linguistic compound splitting. Decoder is Moses phrase-based. | yes |
27.1 |
27.1 |
25.7 |
25.7 |
0.633 |
||||
| TUBITAK (Details) | idurgar TUBITAK-BILGEM |
Moses phrase-based system, Gigaword v4, compound splitting, tuned on combination of all development sets, average weights of 5 different tunes | yes |
26.8 |
26.8 |
25.6 |
25.6 |
0.637 |
||||
| umd-de-en (Details) | vlad umd |
yes |
26.4 |
26.4 |
24.3 |
24.3 |
0.642 |
|||||
| LIMSI-Ncode-SOUL-primary (Details) | LIMSI-CNRS LIMSI-CNRS |
An open source statistical machine translation system based on bilingual n-grams. The n-best list is rescored with bilingual neural-net ngram models using SOUL. | yes |
26.4 |
26.4 |
25.2 |
25.2 |
0.646 |
||||
| JHU De-En (Details) | jhushua Johns Hopkins University |
yes | Stock Joshua with no special tricks. |
26.4 |
26.4 |
23.7 |
23.7 |
0.641 |
||||
| CNGL DCU (Details) | xiaofengwu CNGL,DCU |
MOSES PHB,MOSES HIRO, CDEC 5best each, Confusionnet work | no |
26.2 |
26.2 |
24.8 |
24.8 |
0.640 |
||||
| CNGL DCU (Details) | xiaofengwu CNGL,DCU |
CDEC, Giga5, LM interpolation,SplitDe | yes |
25.8 |
25.8 |
24.4 |
24.4 |
0.637 |
||||
| LIMSI-Ncode-secondary (Details) | LIMSI-CNRS LIMSI-CNRS |
An open source statistical machine translation system based on bilingual n-grams. | yes | without SOUL |
25.7 |
25.7 |
24.5 |
24.5 |
0.651 |
|||
| umd-de-en (Details) | vlad umd |
yes | primary,sparse |
25.6 |
25.6 |
23.6 |
23.6 |
0.651 |
||||
| umd-de-en (Details) | vlad umd |
yes | contrastive |
25.6 |
25.6 |
23.5 |
23.5 |
0.649 |
||||
| FDA (Details) | bicici |
Instance selection with Feature Decay Algorithms (FDA) and phrase-based translation with Moses. | yes |
25.3 |
25.3 |
24.1 |
24.1 |
0.648 |
||||
| cu-zeman (Details) | zeman Charles University in Prague, ┌FAL |
yes | secondary; not for manual evaluation; normalized; constrained; s.evaluator.cd6b9a61.20130501-2153; A:de-lemma-en-lemma DEV:wmt2012 LM:news8all LM:news8euro LMA:en+stc LMO:6 S:de T:en TM:news8euro.de-en TST:wmt2013; 0.2389 [0.2333,0.2453] |
24.4 |
24.4 |
23.0 |
23.0 |
0.662 |
||||
| cu-zeman (Details) | zeman Charles University in Prague, ┌FAL |
yes | primary; unnormalized; constrained; s.evaluator.cd6b9a61.20130501-2153; A:de-lemma-en-lemma DEV:wmt2012 LM:news8all LM:news8euro LMA:en+stc LMO:6 S:de T:en TM:news8euro.de-en TST:wmt2013; 0.2389 [0.2333,0.2453] |
22.8 |
22.8 |
21.5 |
21.5 |
0.668 |
||||
| Shef-wproa (Details) |<EMAIL_ADDRESS>University of Sheffield |
moses and weighted train | yes |
21.0 |
21.0 |
19.9 |
19.9 |
0.689 |
||||
| desrt (Details) | attardi UniversitÓ di Pisa |
We perform parsing of the source language and then perform a reordering of the dependency tree, before applying a traditional PBT. | yes | Proper Moses baseline. |
18.8 |
18.8 |
17.8 |
17.8 |
0.722 |
|||
| desrt (Details) | attardi UniversitÓ di Pisa |
We perform parsing of the source language and then perform a reordering of the dependency tree, before applying a traditional PBT. | yes | Improved reordering rules plus truecase. |
18.5 |
18.5 |
17.5 |
17.5 |
0.732 |
|||
| desrt (Details) | attardi UniversitÓ di Pisa |
We perform parsing of the source language and then perform a reordering of the dependency tree, before applying a traditional PBT. | yes | Improved reordering rules. |
18.5 |
18.5 |
17.6 |
17.6 |
0.733 |
|||
| desrt (Details) | attardi UniversitÓ di Pisa |
We perform parsing of the source language and then perform a reordering of the dependency tree, before applying a traditional PBT. | yes | Version with reordering learned with ML from training set built aligning dependency trees with giza++. |
18.1 |
18.1 |
17.3 |
17.3 |
0.739 |
|||
| desrt (Details) | attardi UniversitÓ di Pisa |
We perform parsing of the source language and then perform a reordering of the dependency tree, before applying a traditional PBT. | yes | Properly cased version. |
18.1 |
18.1 |
17.1 |
17.1 |
0.739 |
|||
| desrt (Details) | attardi UniversitÓ di Pisa |
We perform parsing of the source language and then perform a reordering of the dependency tree, before applying a traditional PBT. | yes | Properly cased and normalized. |
18.1 |
18.1 |
17.2 |
17.2 |
0.739 |
|||
| desrt (Details) | attardi UniversitÓ di Pisa |
We perform parsing of the source language and then perform a reordering of the dependency tree, before applying a traditional PBT. | yes | Model trained with Moses on Europarl version 7. We use a dependency parser on the test set and a Python script to perform reordering, in particular of verbs. |
18.0 |
18.0 |
17.1 |
17.1 |
0.853 |


Business Hub
Home
Sign Up
Sign In
SIGN UP
First Name:
Last Name:
Email address:
Phone Number:
Content:
Submit


Welcome to my website! You can find all of my blog posts and class notes below, or click the links below to find out more about me.
Posted by {{post.author}} on {{post.date}}


Disney+ vs Amazon Prime Video: Which service is the right one for you?
Up-and-Coming Contender
Disney+
More than just streaming
Amazon Prime
Disney+ offers most of the highest grossing movies and popular shows in the world. Where it lacks in sheer quantity it more than makes up in both classics from everyone's childhood and the latest box office hits.
Pros
- Costs less
- Higher rated titles
- Can stream to four devices at once
Cons
- Limited content
- Supported by fewer devices
Amazon Prime Video brings a huge variety of content and comes with Prime membership that offers a lot beyond video streaming. It works on most devices but limits customers both in the number and types of simultaneous streams.
Pros
- Included in Amazon Prime membership
- Allows add-ons for many TV channels
- Way more content
- Supported on more devices
Cons
- Add on channels each come with a fee
- Can only stream to three devices at a time
- Can only stream the same movie or show to two devices at a time
With so many video streaming services to choose from and more joining the market each year, subscribing to all of them is no longer an option for the average consumer. Backed by one of the biggest entertainment companies on the planet, Disney+ will be available beginning Nov. 12 and already poses a threat to other streaming services like Amazon Prime. With most of the biggest box office hits in its library, Disney+ is not held back by it's significantly smaller collection of movies and shows.
Why pick one streaming service over another?
Source: Android Central
While a cable or satellite package is still the primary way most people watch TV and movies, streaming is steadily taking up more and more of that market. You can watch any available content any time of day or night, pause and pick back up hours or even days later, and often have access to entire seasons of content instead of one episode a week — it's easy to see why more people are opting to subscribe to streaming services.
There are certainly plenty to choose from, but how do you choose, especially when you're on a budget? Amazon Prime Video and Disney+ are both relatively inexpensive for the year, but for many, it might not be worth getting both.
| Disney+ | Amazon Prime Video | |
|---|---|---|
| Price | $70/year | $99/year |
| Quantity | 7,500+ episodes, 500+ movies | ~2,000 shows, 18,000+ movies |
| Simultaneous Streams | Up to four devices at once | Up to three devices at once Two devices with the same show or movie |
| Quality | more popular movies and shows | fewer box office hits |
| Variety | more family focused | both adult and family focused |
At first glance, Disney+ beats out Amazon Prime Video in price, number of simultaneous streams, and quality. Amazon Prime Video beats Disney+ in quantity, variety, and supported devices but do either make up for the price difference alone?
Price
Source: Android Central
Disney+ is cheaper than Amazon Prime Video and allows more simultaneous streams for that price. However, Amazon Prime Video is part of an Amazon Prime membership, which includes far more than just its video streaming service. For customers who shop on Amazon often, the free two-day shipping alone could cover the cost of the annual membership. Prime memberships also include a music streaming service, an e-book service, access to a number of specialized shopping experiences and more.
While Disney+ is cheaper, it is unlikely that customers who use all the other features of a Prime membership will see the $15-29 in annual savings as enough reason to switch.
Ways to watch
| Platform | Disney+ | Amazon Prime Video |
|---|---|---|
| Android TV | ✔ | Only on Shield TV |
| Fire TV | ❌ | ✔ |
| Xbox One | ✔ | ✔ |
| PS4 | ✔ | ✔ |
| Apple Devices | ✔ | ✔ |
| Roku | ✔ | ✔ |
| Nintendo Switch | ❌ | ✔ |
Disney+ is at a disadvantage in this category if only because it is new. Amazon has had more time to develop apps for various streaming devices, smart TVs, and gaming consoles. As a result, you can watch Amazon Prime Video in more places than you will be able to watch Disney+ at launch.
Both services work on desktops, and both Android and Apple phones but Disney+ won't stream to Roku devices or the Nintendo Switch at launch. Likewise, many smart TVs and cable boxes won't have support for Disney+ just yet.
Content
When it comes to content, both Disney+ and Amazon Prime Video have some incredible options.
| Platform | Disney+ | Amazon Prime Video |
|---|---|---|
| Films available | 500+ | 18,000+ |
| TV series available | 7,500+ episodes | 2,000+ shows |
| Notable Original Series | The Mandalorian The Falcon and the Winter Soldier |
The Marvelous Mrs. Maisel Fleabag Good Omens The Man in the High Castle |
| Notable Films | Captain Marvel Star Wars Episode I-VIII Every Disney theatrical animated film |
The Big Sick Manchester by the Sea I Am Not Your Negro |
At launch, Disney+ will have about 7,500 episodes of television shows and about 500 movies, a small fraction of what is available on Amazon Prime Video. If having the most choices is your priority, Disney+ just can't compete. That having been said, no one person, not even a large family, could possibly watch even a fraction of that. Which brings us to the next and, in my opinion, the most important category: variety.
Source: Android Central
Disney+ is going to have access to its decades-old library of family-friendly movies and TV, along with the catalogs form Lucasfilm, Marvel, and now 20th Century Fox. While not every option from those backlogs will be available, there will be a lot of recognizable, big-budget content.
Amazon Prime, on the other hand, is more scattered. It offers movies and shows rated higher than PG-13 and allows members to add on additional channels in much the same way a customer adds HBO or a sports package to their cable. While most of these additional channels cost between $6 and $15 a month, that can add up fast. If you're completely cord cutting, you may already be picking up some of these channels but for someone who is still subscribing to cable, it is likely cheaper to go through your cable provider than to add on the channels to your Prime membership.
Quality
Source: Disney+
As both Amazon Prime Video and Disney+ have more shows and movies than anyone could ever watch, it's more important to assess the quality of the shows and movies. Unless you were living under a rock last April, you probably heard about the box office hit Avengers: Endgame. When Endgame hit theaters, one of the biggest questions being asked (besides which Avengers survived to the end) was if Endgame would beat out the number one grossing movie of all time: Avatar. It did unseat the former champion but the real irony there is that both movies are owned by Disney. In fact, if you look back at the highest grossing films of all time, only three of the top ten are owned by a company other than Disney.
Still, Disney+ may have most of the top grossing films in the world but Amazon Prime has invested more into developing its original content and the world is certainly taking notice. Nearly 100 Amazon Prime Original series have been nominated for or won awards.
So, Disney+ or Amazon Prime Video?
Both of these streaming services will provide countless hours of entertainment and both will offer programming the other cannot. As a result, many will choose to pay for both. If I were only comparing the movie streaming services, Disney+ would win out hands down but because Amazon Prime Video is part of a Prime membership, although people might not cancel that just to get Disney+.
Ways to save on both
Fortunately, there are ways you can get Disney+ included with another service, so you may not have to choose at all. If Verizon is your current cable, internet, or wireless provider, you can get Disney+ for free. For current subscribers of Hulu and ESPN+, Disney offers a bundle of the three services for $13 a month. And if you're already ordering frequently on Amazon, the savings you get with free shipping can easily pay for your Prime Membership.
Even if you don't get Disney+ free or discounted and you don't use enough of the other Amazon Prime membership benefits to justify the cost, both together are still cheaper than most cable packages. For some, a choice will have to be made between Disney+ and Amazon Prime Video but for many, the real choice will be which show or movie out of the tens of thousands they offer will you be watching tonight.
Up-and-coming Contender
Disney+
The newest streaming service is changing the game
Disney+ offers most of the highest grossing movies and popular shows in the world. Where it lacks in sheer quantity it more than makes up in both classics from everyone's childhood and the latest box office hits.
More than just streaming
Amazon Prime
Part of your Amazon Prime membership
Amazon Prime Video is included with Prime membership, something that many households already rely on. It has a bigger library than almost any other streaming service and an incredible selection of original content.
We may earn a commission for purchases using our links. Learn more.


We have content!
- innovate dynamic initiatives
- strategize value-added methodologies
- whiteboard B2B schemas
- morph e-business infrastructures
- harness integrated convergence
- drive seamless systems
- whiteboard impactful metrics
- integrate sexy systems
- e-enable best-of-breed e-tailers
- unleash dot-com paradigms
- unleash impactful ROI
- iterate global experiences
- redefine back-end partnerships
- leverage sticky e-business
- enable visionary niches


BRIDAL
Are you the bride? or just part of the bridal train. We have you covered!
Are you the bride? or just part of the bridal train. We have you covered!
Do you have an upcoming formal or casual event, dinner, symposium or seminar? We are your plug!
Whether it is a party, club event, wedding event, church event etcetera. We got you!


TABLE OF INTERACTIONS WITH
SODIUM BICARBONATE
See also: urinary alkalizers
From the French ANSM drug interactions document of September 2016, p. 201
SODIUM BICARBONATE RxNorm: 36676 ATC: A02AH B05CB04 B05XA02 |
LITHIUM RxNorm: 6448 ATC: D11AX04 |
Risk of reduction of the effectiveness of the lithium due to increase of its renal elimination by the sodium salts. |
Precaution for use Avoid excess amounts of sodium and take into account the presence of sodium in certain medications such as antacids. |


{% extends "base.html" %}
{% import "bootstrap/wtf.html" as wtf %}
{% block title %}Puget Sound Programming Python (PuPPy){% endblock %}
{% block page_content %}
{{ welcome_text }}{{ welcome_title }}
We meet in Downtown Seattle on the second Wednesday each month.
Two programming nights are hosted weekly. Tuesdays in Bellevue and Thursdays in Seattle.
PuPPy also has other events, such as group outings. Check the calendar for more details.


The software you are about to use is free, open source, and unsupported beta software. It is important to understand that beta software refers to software that is undergoing testing and has not officially been released, could have bugs, and may not act in a reliable fashion. Because the software is currently in beta, it is possible but not certain that you may lose bitcoin or the value of your bitcoin. It is recommended that you store only nominal amounts of bitcoins. You acknowledge that your use of this software is at your own discretion and in compliance with all applicable laws. You are responsible for safekeeping your login IDs, passwords, private key pairs, PINs and any other codes you use to access the software.  All transaction requests are irreversible. The authors of the software, employees and affiliates of Bitpay, copyright holders, and BitPay, Inc. cannot retrieve your private keys or passwords if you lose or forget them and cannot guarantee transaction confirmation as they do not have control over the Bitcoin network. You agree to provide accurate and complete information in connection with your use of the account. You assume any and all risk associated with the use of the software. To the fullest extent permitted by law, this software is provided “as is” and no representations or warranties can be made of any kind, express or implied, including but not limited to the warranties of merchantability, fitness or a particular purpose and noninfringement. In no event shall the authors of the software, employees and affiliates of Bitpay, copyright holders, or BitPay, Inc. be held liable for any claim, damages or other liability, whether in an action of contract, tort, or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software. We reserve the right to modify this disclaimer from time to time.


Before Change
def test_csv_import_schema_case():
with bayesdb_csv_stream(csv_data) as (bdb, f):
bayeslite.bayesdb_import_csv(bdb, "employees", f,
column_types={
"age": "numerical",
"GENDER": "categorical",
"salary": "cyclic",
"HEIght": "ignore",
"division": "categorical",
"RANK": "categorical",
})
def test_csv_import_badschema0():
with bayesdb_csv_stream(csv_data) as (bdb, f):
with pytest.raises(IOError):
After Change
def test_csv_import_schema_case():
with bayesdb_csv_stream(csv_data) as (bdb, f):
bdb.sql_execute("""
CREATE TABLE emPloyEES(
AGE INTeger,
geNder Text,
saLAry REal,
heighT inteGER,
DIVision TEXt,
rank INTEGER
)
""")
bayeslite.bayesdb_read_csv(bdb, "employees", f, header=True,
create=False)
bayeslite.guess.bayesdb_guess_generator(bdb, "employees_cc",
"employees", "crosscat")
def test_csv_import_badschema0():


Sign up
Already have an account? Login
here
.
First name
Last name
Username
E-mail
Password
Retype your password


Choose one creature or nonmagical object that you can see within range. You transform the creature into a different creature, the creature into an object, or the object into a creature (the object must be neither worn nor carried by another creature). The transformation lasts for the duration, or until the target drops to 0 hit points or dies. If you concentrate on this spell for the full duration, the transformation becomes permanent.
Shapechangers aren't affected by this spell. An unwilling creature can make a Wisdom saving throw, and if it succeeds, it isn't affected by this spell.
Creature into Creature. If you turn a creature into another kind of creature, the new form can be any kind you choose whose challenge rating is equal to or less than the target's (or its level, if the target doesn't have a challenge rating). The target's game statistics, including mental ability scores, are replaced by the statistics of the new form. It retains its alignment and personality.
The target assumes the hit points of its new form, and when it reverts to its normal form, the creature returns to the number of hit points it had before it transformed. If it reverts as a result of dropping to 0 hit points, any excess damage carries over to its normal form. As long as the excess damage doesn't reduce the creature's normal form to 0 hit points, it isn't knocked unconscious.
The creature is limited in the actions it can perform by the nature of its new form, and it can't speak, cast spells, or take any other action that requires hands or speech unless its new form is capable of such actions.
The target's gear melds into the new form. The creature can't activate, use, wield, or otherwise benefit from any of its equipment.
Object into Creature. You can turn an object into any kind of creature, as long as the creature's size is no larger than the object's size and the creature's challenge rating is 9 or lower. The creature is friendly to you and your companions. It acts on each of your turns.
You decide what action it takes and how it moves. The DM has the creature's statistics and resolves all of its actions and movement.
If the spell becomes permanent, you no longer control the creature. It might remain friendly to you, depending on how you have treated it.
Creature into Object. If you turn a creature into an object, it transforms along with whatever it is wearing and carrying into that form. The creature's statistics become those of the object, and the creature has no memory of time spent in this form, after the spell ends and it returns to its normal form.


Hear the Thunder
A super clean and very to... yeah mhm...
<
>
POWERFUL
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam nec
dolor vitae neque semper aliquet sed et nibh. Cras quis libero
quis urna commodo vulputate.
CREATIVE
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam nec
dolor vitae neque semper aliquet sed et nibh. Cras quis libero
quis urna commodo vulputate.
LOCALIZED
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam nec
dolor vitae neque semper aliquet sed et nibh. Cras quis libero
quis urna commodo vulputate.

Let me introduce you to a clean(XD), simple, yet powerful
PREMIUM WORDPRESS THEME, created
specifically for you.
 Nam nec
dolor vitae neque semper aliquet sed et nibh. Cras quis...
 Nam nec
dolor vitae neque semper aliquet sed et nibh. Cras quis...
 Nam nec
dolor vitae neque semper aliquet sed et nibh. Cras quis...
 Nam nec
dolor vitae neque semper aliquet sed et nibh. Cras quis...
Testimonials From Our Clients
See what people are saying about our work
This theme is amazing, I’ve used many themes in the past but nothing
compares to Thunder - 5 stars all the way!
OUR CLIENTS
Woo Album #1
$3
Woo Album #2
$3
Woo Album #3
$3


Stochastic Local Search Tutorial
Todd W. Neller
Starter Code (download and open in Eclipse IDE before watching videos):
Videos:
- Part 1: Stochastic Local Search, Hill Descent, Hill Descent with Probabilistic Uphill Steps, Simulated Annealing
- Part 2: Worked example: Manhattan Distribution; Challenge problem: Preferred Group Formation (group-input.txt)
Links to demo applets:
If your browser does not allow these applets to run, then use the appletviewer command from the Linux/Unix shell:
- appletviewer http://cs.gettysburg.edu/~tneller/resources/sls/tsp/index.html
- appletviewer http://cs.gettysburg.edu/~tneller/resources/sls/scheduling/index.html


ParserRule
public indirect enum ParserRule : Rule, CustomStringConvertible
A standard set of Rule
s for parsing, including a .custom
case where a CustomRuleClosure
can be supplied and you only need to provide
the logic for the actual matching (and any error messages).
-
true
if a failure to match this rule can be ignoredDeclaration
Swift
public var failureIgnorable : Bool
-
Returns
true
if this rule is a negation ruleDeclaration
Swift
public var isNot : Bool
-
Performs the actual match check during parsing based on the specific case of
ParserRule
that this instance is.Declaration
Swift
public func match(with lexer : LexicalAnalyzer, `for` ir:IntermediateRepresentation) throws -> MatchResult
Parameters
with
The
LexicalAnalyzer
providing the scanning functionsfor
The
IntermediateRepresentation
that wil be building any data structures required for subsequent interpretation of the parsing results -
Declaration
Swift
public var produces: Token
-
Declaration
Swift
public func instance(with token: Token?, andAnnotations annotations: RuleAnnotations?) -> Rule
-
The annotations associated with the
Rule
Declaration
Swift
public var annotations: RuleAnnotations
-
A human readable description of the
Rule
almost in STLRDeclaration
Swift
public var description: String
-
Matches a terminal input sequence
Declaration
Swift
case terminal(produces: Token, String, RuleAnnotations?)
-
Captures terminals until it hits the supplied string
Declaration
Swift
case terminalUntil(produces: Token, String, RuleAnnotations?)
-
Captures terminals until it hits a character of the supplied set
Declaration
Swift
case terminalUntilOneOf(produces: Token, CharacterSet, RuleAnnotations?)
-
Matches one of a character set
Declaration
Swift
case terminalFrom(produces:Token, CharacterSet, RuleAnnotations?)
-
Matches a sequence of rules
Declaration
Swift
case sequence(produces:Token, [Rule] , RuleAnnotations?)
-
Matches one of a series of alternatives
Declaration
Swift
case oneOf(produces:Token, [Rule], RuleAnnotations?)
-
Matches another rule with the specified bounds
Declaration
Swift
case repeated(produces:Token, Rule,min:Int?,limit:Int?, RuleAnnotations?)
-
Matches 0 or 1 of the given rule
Declaration
Swift
case optional(produces:Token, Rule, RuleAnnotations?)
-
Requires that the rule is matched, but the generated token will be consumed and not passed to the IntermediateRepresentation
Declaration
Swift
case consume(Rule, RuleAnnotations?)
-
Determines if the rule would match, but produces no tokens
Declaration
Swift
case lookahead(Rule, RuleAnnotations?)
-
Matches if the associated
Rule
does NOT matchDeclaration
Swift
case not(produces: Token, Rule, RuleAnnotations?)
-
Matches using the supplied
CustomRuleClosure
. This is the recommended way of implementing custom rules as it means you do not need to manage the lexer and irDeclaration
Swift
case custom(produces: Token, CustomRuleClosure,String, RuleAnnotations?)


Path: Elements
Base styles for HTML elements
Generated with Iris Docs v 0.1.0 Styled with Iris CSS Syntax highlight by prism.js


Gold rate today: Here is how the yellow metal will trade today
Bullion counter may remain positive, said brokerage house SMC Global.
by ETMarkets.comPrecious metals were trading flat with a negative bias amid increasing tensions between the US and China and a weaker rupee.
The prospect for progress on trade seemed to dim when China condemned a US Senate measure on Hong Kong, vowing to take the steps necessary to safeguard its sovereignty and security. The Senate unanimously passed legislation aimed at protecting human rights in Hong Kong.
MCX Gold (Dec) futures were 0.05 per cent to Rs 38,187 while MCX Silver (Dec) futures shed 0.03 per cent to Rs 44,848.
Bullion counter may remain positive, said brokerage house SMC Global. Gold can move higher towards Rs 38,300 while taking support near Rs 38,000 and silver can test Rs 45,000 while taking support near Rs 44,600, it added.
Gold Rates - Spot & Futures (.995 purity) (MCX)
| Date | Gold Spot Price Rs/10 grms (AHMEDABAD) |
Gold Future Price Rs/10 grms Expiry: 05-Dec-2019 |
|---|---|---|
| 20-11-2019 | 38069.0 | 38195.0 |
| 15-11-2019 | 38096.0 | 37988.0 |
| 14-11-2019 | 38217.0 | 38285.0 |
| 12-11-2019 | 0.0 | 37729.0 |
| 08-11-2019 | 37919.0 | 37692.0 |
| 05-11-2019 | 38565.0 | 37859.0 |
| 01-11-2019 | 38703.0 | 38320.0 |
| 31-10-2019 | 38650.0 | 38580.0 |
| 29-10-2019 | 38630.0 | 37910.0 |
| 27-10-2019 | 38630.0 | 38289.0 |
In the US markets, gold prices rose on Wednesday on heightened worries that a Sino-US trade deal could hit a snag after President Donald Trump threatened fresh tariffs on Beijing as the US Senate passed a bill supporting Hong Kong anti-government protesters.
Spot gold rose 0.2 per cent to $1,474.42 per ounce at 0144 GMT, reported Reuters. US gold futures were little changed at $1,474.80 per ounce.
According to technical charts, spot gold may rise into a range of $1,480-$1,485 per ounce, driven by a wave c, said a Reuters technical analyst.
Indeed, the metal has more or less broken $1,474. The next resistance will be at $1,480, the 50 per cent retracement of the downtrend from $1,515.41 to $1,445.18.
A break below $1,462 could confirm the completion of the bounce and the resumption of the downtrend. On the daily chart, gold seems to be edging up towards $1,500, the channel line resistance.


Multiple Cowboys Players Call Out Refs By Starting #Trippin Hashtag Following Loss To Patriots (TWEET)
by Darrelle LincolnIn the fourth quarter of Sunday’s New England Patriots-Dallas Cowboys game, the Cowboys were flagged for a tripping penalty.
Trailing 13-9 and facing a third-and-1 from their own 35, the team picked up a crucial first down on a pass to Ezekiel Elliott, but it would soon be called back as Offensive lineman Travis Frederick was flagged for tripping New England linebacker Donta’ Hightower as he rushed Prescott.
It was a terrible call.
The 10-yard penalty pushed Dallas back to third-and-11 instead of having the first down. Following the game, several members of the Dallas Cowboys took to Twitter and called out the refs by starting a #trippin hashtag to show how upset they were by that crucial call.
Nose tackle Antwaun Woods:
Linebacker jaylon Smith:
Defensive end DeMarcus Lawrence:
Defensive end Dorance Armstrong Jr.:


Static web site built from Markdown documents using shell,
make and some other command line tools.
Running make
in the repository root should update all HTML from Markdown
documents.
The typical workflow is to store everything in Git and push it to a web server when documents has been updated. Since everything is static HTML it’s very easy to review locally.
The blog has support for posts which are supposed to be authored once and
articles which can be revised at any time; the difference is by convention only
really. One Markdown document and (small) meta file is maintained per post or
article. See posts/2019-06-30/...
in the
software repository for an
example.
Install the following tools first.


One can build the GWT source by running the gwt:compile ant target, e.g.
./build.sh -f src/resources/policymanager/build.xml gwt:compilewhereas please make sure that the resource type build file imports the GWT-RT.build.xml file instead the regular file resource-type.build.xml
The gwt:compile target compiles the GWT Java code to cross-browser Javascript code and saves it within the htdocs directory of the corresponding resource type, e.g.
src/resources/policymanager/htdocs/org.wyona.security.gwt.accesspolicyeditor.AccessPolicyEditor
The GWT version can be configured per resource type within src/build/GWT.build.properties, e.g.
src/resources/policymanager/src/build/GWT.build.propertiesBy default the GWT source is compiled for all GWT-supported browsers. While developing this can be overridden per resource type within the module configuration (property user.agent), e.g.
src-gwt/java/org/wyona/security/gwt/accesspolicyeditor/AccessPolicyEditor.gwt.xmlThere are also some more flags within src/build/resource-types/GWT-RT.build.xml which can be set and help speeding up development, such as for example the -draftCompile fiag, but please be aware that these flags depend on the GWT version you are using (see above: Configuration of GWT version).
Each src-gwt directory can contain an optional build properties file, e.g.
src/resources/policymanager/src-gwt/build.propertiescontaining the module names, e.g.
module.name=org.wyona.security.gwt.accesspolicyeditor.AccessPolicyEditorwhich helps to speed up development, because only this specific module will be compiled. But one can have several modules per src-gwt (*.gwt.xml) directory and if one wants to compile all at once, then one should remove such build.properties files.


--- layout: post title: Detecting IE browser in Rails app date: 2014-02-25 19:32:51.000000000 -06:00 type: post published: true status: publish categories: [] tags: - IE 8 - Ruby on Rails meta: _publicize_pending: '1' _rest_api_published: '1' _rest_api_client_id: "-1" _oembed_d68912cbc87a957a40ddeeaf870950fd: "{{unknown}}" _oembed_38cb566520d63582b285e19835d0897c: "{{unknown}}" author: login: broberts65 email<EMAIL_ADDRESS>display_name: Bob Roberts first_name: '' last_name: '' ---
I have been working an app that is used by many users that are still on MS XP and using IE8. It is a javascript heavy app and I have many issues in dealing with the cross-browser compatibility (IE) but today I found a great gem.
I was trying everything using CSS to hide a div in IE 8 to no avail. And then Browser Gem to the rescue.
I added a simple check for IE 8 in my view:
= if browser.ie8?
Thank you browser gem!!!


Bulk Open
URLs:
Open List
Clear current links
Your saved lists
Open list
New list
Edit list
Delete list


{% extends 'base.html'%} {% import 'macros.html' as macro%} {% block content %}
Welcome to the news-highlight web app. This app will display all the news sources first. And after clicking on a particular source the latest news will be displayed
Learn more »


If you use this website, you agree to the following Terms of Use If you do not agree with these Terms of Use, you must leave this website immediately.
We grant you a limited license to display on your computer, print, download and use all content on this website only if you agree to the following Terms of Use.
Carefully read the following Terms and Conditions of Use ("Terms of Use") before using this website ("Site")
By using this Site, you agree to follow and be bound by these Terms of Use, which govern your use of the Site. Nothing contained in these Terms of Use is intended to modify or amend any other written agreement, if any, that may currently be in effect between you and the City of Vancouver("the City") with regard to matters other than your use of the Site. The City may periodically modify these Terms of Use, and any such modifications will be effective immediately upon posting. If the City does make modifications, visitors will be notified on the Site. However, we suggest that you periodically check these Terms of Use for modifications. If you do not agree to these Terms of Use, do not use this Site.
This Site is owned and operated by the City of Vancouver, and the City may modify, suspend, discontinue, or restrict the use and availability of any portion of this Site at any time, without notice or liability to you. Your use of this Site may be monitored by the City and used for internal City purposes (subject to our Privacy policy) without liability to you, as provided for by law.
The material posted on the City of Vancouverâ€™s website is not an official statement of City policy, practice, services or procedure, and should not be construed as such. It is intended only to provide immediate and convenient access to information and so while efforts are made to provide accuracy and currency, the City cannot and does not guarantee that the information posted is always accurate or current. The City does not warrant or make any representations as to the quality, content, accuracy or completeness of the information, text, maps, graphics, links and other items contained on its web pages.
The City makes no warranties, express or implied, as to the fitness of the information for any purpose or to results obtained by individuals using the information, and is not responsible for any action taken in reliance on the information obtained by you or used by you from the Site.
The Cityâ€™s bylaws, Council meeting records, and policies on the Site are electronic copies made for uploading to the Site and so are not official versions. The official format may be different and may also have plans, pictures, other graphics, or text that may be missing or altered.
These electronic copies are the copyright of the City of Vancouver and cannot be distributed or used for commercial purposes. The electronic copies may be reproduced or distributed for non-commercial purposes only if you include with them these Terms of Use or a copyright notice and the URL for these Terms of Use.
Due to copyright protections, the entire Vancouver Building Bylaw is not available electronically on our website. However, you can view some Council-mandated building bylaw policies and a list of "Unique to Vancouver" building requirements on the Site.
To get official versions of these electronic copies, contact 3-1-1.
Except where and then only to the extent expressly permitted, the City grants you a limited, revocable, nonexclusive, non-transferable licence to view, store, bookmark, download, and print the pages within this Site solely for your personal, informational, and non-commercial use, or as separately expressly authorized by the City in writing. You are responsible for obtaining and maintaining all equipment, services, and other materials that you need to access this Site. The City reserves all rights not expressly granted in these Terms of Use.
Except as otherwise stated in these Terms of Use or as expressly authorized by the City in writing, you may not (or enable others to):
Links to external websites posted on the Cityâ€™s website contain information created, published, maintained, or otherwise posted by institutions or organizations independent of the City. The City does not endorse, approve, certify, or control external websites and does not guarantee the accuracy, completeness, efficiency, timeliness or correctness of the information located at the sites. Reference to any specific commercial product, process or service by trade name,trademark, service mark, manufacturer or otherwise does not constitute or imply endorsement, recommendation or favouring by the City.
Communications made through this Site's email and messaging system is for convenience only and shall not be deemed to constitute legal notice to the City or any of its affiliates or their respective councillors, commissioners, officials, officers, agents, agencies, employees or representatives with respect to any existing or potential claim or cause of action or for any other purpose.
You may not link to this Site unless you comply with these linking conditions ("Linking Conditions"). The City now grants you a limited, revocable, nonexclusive right to create a hyperlink to this Site ("Link"), provided you comply at all times with the following conditions:
If you have created a Link that conforms to these Linking Conditions, then you also may include one or more Links to any internal or subsidiary page of this Site that is located one or several levels down from the homepages (known as "deep links"), provided, however, that all such deep links must be in close physical proximity to the Link that conforms to the Linking Conditions. You may not maintain numerous or pervasive Links to this Site.
The City now grants you a limited, revocable, nonexclusive right to view, store, bookmark, access, download, display, create hyperlinks to and use the Really Simple Syndication, video, and podcast feeds (collectively, the "Feeds") offered by the City solely for your personal, informational, and non-commercial use or as otherwise authorized by the City in writing, provided you comply at all times with the following conditions:
Any uses of the Feeds not granted are strictly prohibited. The City retains ownership of and all other rights in and to the Feeds, and any reports, data, information, content, software, files, products, services, links, trademarks, logos, or other materials used in connection with them. The City reserves the right, in its sole discretion, with or without cause, and without liability, to suspend, discontinue or modify any or all of its Feeds at any time and to immediately require you to cease accessing, displaying, or otherwise using any or all of the Feeds or the content of the Feeds. The City will not be liable for any loss or damage arising from your use of or in connection with the Feeds.
You agree that you are solely responsible for all information, data, content, text, photographs, graphics, images, videos, messages, comments, quotations, files, documents, and any other materials that you submit, upload, post, email, transmit, or otherwise make available via the Site ("Content"). By submitting, uploading, posting, e-mailing, or transmitting ("post") content to the Site, you represent and warrant that either you own all right, title, and interest in and to the Content or have express permission from the owner to copy and use such content for all purposes related to the Site. The City does not control and is not responsible for the content uploaded via the Site, and the City neither guarantees the accuracy, quality, or appropriateness of nor endorses any Content submitted to the Site.
You agree not to use the Site to:
You grant the City and its affiliates, and their respective councillors, commissioners, officials, officers, employees, agents, licensors, and vendors a perpetual, worldwide, irrevocable, nonexclusive, fully-paid up, royalty-free, sub-licensable, and transferable right and licence to use, store, modify, adapt, translate, publish, display, broadcast, perform, disclose, distribute, sell, reproduce, and create derivative works from any Content, in whole or in part, in any medium or technology throughout the world, including any inventions, concepts, techniques, know-how, ideas, or expressions of ideas arising out of or based on the Content, for any purpose in City of Vancouver's sole discretion, without the requirement of any permission from or compensation or notice, and without liability, to you or any third party. The City will exclusively own all right, title, and interest in and to any derivative works or inventions created by or on behalf of the City that incorporate or otherwise make use of any Content, without the requirement of any permission from or compensation or notice, and without liability, to you or any third party.
The Content that you post on the Site will be subject to the Privacy Policy, as set out by the City. The City will not be liable in any way for any Content or for the use or disclosure of any Content. You acknowledge that the City and/or its agents may or may not (but are not obligated to) monitor Content, but that the City will have the right in its sole discretion to monitor, post, move, refuse, or remove any Content, in whole or in part, for any reason whatsoever, without notice and without liability.
If you have any questions or comments about your Content or other customer service issues, you can contact the City through the online feedback form or by calling 3-1-1.
Certain parts of this Site or third-party sites that provide a service to the City may be protected by passwords or require a login. Further, for authentication purposes, certain features on this Site may require you to answer a designated security question. You agree to provide the City with current, complete, and accurate information about you as prompted by the applicable registration process and agree to regularly update this information to maintain its completeness and accuracy. You agree to use this Site to access only those accounts on which you are authorized to act, and you agree to use your own user names, logins, passwords, and security questions and answers when accessing accounts on which you are authorized to act. You agree not to obtain or attempt to obtain unauthorized access to such parts of, or features on, this Site, or to any other protected Materials or information, through any means not intentionally made available to you by the City.
You are responsible for maintaining the confidentiality of any account information, user names, logins, passwords, and security questions and answers that you use to access any page or feature on this Site, and for logging off of your account and any protected areas of the Site. Further, you are fully responsible for all activities occurring under your accounts, user names, logins, passwords, and security questions and answers that result from your negligence, carelessness, misconduct, or failure to use or maintain appropriate security measures. If you become aware of any suspicious or unauthorized conduct concerning your accounts, user names, logins, passwords, or security questions and answers, you agree to contact the City. The City will not be liable for any loss or damage arising from your failure to comply with this paragraph.
Services provided to you through this Site may involve the electronic transmission, including via any email address you provide to us, of information that you may consider to be personal financial information or promotional and informational materials, and you consent to such transmission and assume all risks associated with this method of transmission.
Except where expressly and then only to the extent otherwise stated, the materials on this Site are for information, education, and non-commercial purposes only. Although the City may provide data, information, and content relating to the operations of the City, you should not construe any such information or other content available through this Site as legal or tax advice. You alone will bear the sole responsibility of evaluating the merits and risks associated with the use of any Materials on this Site before making any decisions based on such Materials. In exchange for using such Materials, you agree not to hold the City or its third-party information providers liable for any possible claim for damages arising from any decision you make based on the Materials made available to you through this Site. By providing access to other websites, neither the City nor any of its affiliates is recommending the purchase or sale of the stock issued by any company, nor are they endorsing services provided by any website's sponsoring organization.
By accessing the Open Data datasets, you agree to these Terms of Use, which are intended to protect and promote the City's commitments to open data and ensure that the recipients of these datasets give back to the community the benefits they derive from these datasets. If you have any questions or comments about these Terms of Use, please contact 3-1-1. For further certainty, this Open Data section of these Terms of Use apply only to the Open Data datasets portions of this Site and apply to the exclusion of the other sections of these Terms of Use which limit your rights of use to the information on this Site. However, all other sections of this Terms of Use which protect the City from legal proceedings and limit the Cityâ€™s liability apply equally to your use of the Open Data datasets.
The City now grants you a world-wide, royalty-free, non-exclusive licence to use, modify, and distribute the datasets in all current and future media and formats for any lawful purpose. You now acknowledge that this licence does not give you a copyright or other proprietary interest in the datasets. If you distribute or provide access to these datasets to any other person, whether in original or modified form, you agree to include a copy of, or this Uniform Resource Locator (URL) for, this Open Data section of these Terms of Use and to ensure they agree to and are bound by them but without introducing any further restrictions of any kind.
Although you are not required to credit the City for each use or reproduction of the Open Data datasets, you are entitled to do so and encouraged to conspicuously announce that these datasets are publicly available from the City under these Terms of Use. Upon the request of the City, you may be required to remove a credit from future uses or reproductions should the City decide that such credit is not in the public interest.
You may not publicly represent or imply that the City is participating in, or has sponsored, approved, or endorsed the manner or purpose of, your use or reproduction of the Open Data datasets.
By accessing the VanMap and VanMapLite ("VanMap") information on this Site, you agree to these Terms of Use. For further certainty, this VanMap section of these Terms of Use apply only to the VanMap portions of this Site and apply to the exclusion of the other sections of these Terms of Use which limit your rights of use to the information on this Site. However, all other sections of this Terms of Use which protect the City from legal proceedings and limit the Cityâ€™s liability apply equally to your use of the VanMap information.
VanMap represents a one-time capture of information as its exists at the time the information is transferred to VanMap. VanMap may not include ongoing updates or corrections to the source information maintained by the City or other agencies and included for the City's internal purposes.
You can use VanMap only for your own internal business and personal purposes. You cannot re-sell, sub-licence, or operate a service bureau using VanMap, or otherwise reproduce, publish or disseminate VanMap for commercial purposes without the prior written consent of the City.
All right, title, and interest (including all copyright, patent, and other intellectual property rights) in VanMap remain vested in the City at all times. The City's original copyright and other proprietary notices included with VanMap must remain intact at all times.
On completion of each transaction for which the VanMap data is acquired, you will erase the VanMap data from your computer system, including any cache copies, or such other storage device where such data may reside and will, upon the City's written request, provide written confirmation of compliance to the City's Director of Information Technology.
You may make a request through this Site to speak to Council. Information provided in relation to your request becomes part of the public record and your name is included in the minutes of the meeting.
The City makes every effort to ensure that the zoning, development, and building information given out via your use of this Site is accurate and complete. However, such information cannot be guaranteed to be complete, even when combined with in person meetings, in the absence of a full and complete technical evaluation of an application, and a full determination by City staff of compliance or non-compliance with zoning and development bylaws or the Vancouver Building Bylaw. Pre-application information can only be a treated by you as a speculative opinion of the probable outcome of each application. All applicants must conduct their own research, and are solely responsible to submit applications that comply with all applicable bylaws, regardless of any pre-application consultations communications, or meetings with City staff and all applicants are responsible to comply with such bylaw requirements regardless of the basis on which any permit has been issued.
All official marks, trademarks, service marks, and logos appearing on this Site are the exclusive property of their respective owners.
All City graphics, logos, page headers, and service names are official marks, emblems, or trademarks of the City. The City's official marks, emblems and trademarks may not be used in connection with any product or service that is not the City's, in any manner that is likely to cause confusion among members of the public, or in any manner that disparages or discredits the City. Nothing contained on this Site should be construed as granting any licence or right in or to any of the Cityâ€™s official marks, emblems or trademarks.
Because of the global nature of the Internet, you agree to comply with all local rules with respect to your account and your online conduct, including all laws, rules, codes, and regulations of any jurisdiction to which you are subject and from which you access this Site, including without limitation, all laws, rules, codes, regulations, decrees, acts, orders, directives, legislation, bills, and statutes pertaining to tax, contracts, intellectual property, securities, e-commerce, banking, technology, computers, fraud, and privacy. In addition, you agree to comply with all applicable laws, rules, codes, and regulations regarding the transmission of technical data exported from Canada.
Data and other materials appearing on this Site that are provided by third parties are believed by the City to be obtained from reliable sources, but the City cannot guarantee and is not responsible for their accuracy, timeliness, completeness, or suitability for use. The City is not responsible for, and does not prepare, edit, or endorse, the content, advertising, products, or other content on or available from any website owned or operated by a third party that is linked to this Site via hyperlink. The fact that the City has provided a link to a third party's website does not constitute an implicit or explicit endorsement, authorization, sponsorship, or affiliation by the City with respect to such website, its owners, providers, or services. You will use any such third-party content at your own risk and you agree that the City is not liable for any loss or damage that you may suffer by using third-party websites or their content.
All content on this Site is presented only as of the date published or indicated, and may be superseded by subsequent events or for other reasons. In addition, you are responsible for setting the cache settings on your browser to ensure you are receiving the most recent data.
The rights granted to you here terminate immediately on any violation by you of these Terms of Use. The City, in its sole discretion, reserves the right to temporarily or permanently terminate your access to and use of this Site at any time and for any reason whatsoever, without notice or liability. The City will not be liable to you or any third party for any termination of your access to or use of this Site.

EXCEPT AS PROVIDED BY LAW, THE CITY GROUP HAS NO RESPONSIBILITY TO MAINTAIN THE MATERIALS, PRODUCTS, OR SERVICES OFFERED ON THE SITE OR TO SUPPLY CORRECTIONS, UPDATES, OR RELEASES FOR THE SAME.

UNDER NO CIRCUMSTANCES WILL THE CITY GROUP BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, PUNITIVE, OR EXEMPLARY DAMAGES, INCLUDING BUT NOT LIMITED TO, DAMAGES FOR LOSS OF PROFITS, REVENUE, INCOME, GOODWILL, USE, DATA, OR OTHER INTANGIBLE LOSSES, OR DAMAGES CAUSED BY THEFT, UNAUTHORIZED ACCESS, SYSTEMS FAILURE, OR COMMUNICATIONS LINE FAILURE, OR THE COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, CAUSED BY THE USE OF OR INABILITY TO USE THE SITE, MATERIALS OR ANY PRODUCTS OR SERVICES PROVIDED ON THIS SITE, OR ANY OTHER MATTER RELATING TO THIS SITE, EVEN IF THE CITY GROUP HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

If any provision of these Terms of Use is deemed unlawful, void, or unenforceable, then that provision will be deemed severable from these Terms of Use and will not affect the validity and enforceability of the remaining provisions. These Terms of Use represent the entire agreement between you and the City of Vancouver relating to this Site.
The laws of British Columbia, Canada, without regard to principles of conflict of laws, govern these Terms of Use and any dispute that might arise between you and the City. If you take legal action relating to these Terms of Use, you irrevocably agree to only take such action within British Columbia and only to a court of competent jurisdiction within British Columbia and in no other jurisdiction or venue, and you now irrevocably consent and submit to the jurisdiction of the courts of British Columbia for this purpose.


This post is a continuation of a series of posts about WebGL. The first started with fundamentals and the previous was about 3D Basics. If you haven't read those please view them first.
In the last post we went over how to do 3D but that 3D didn't have any perspective. It was using what's called an "orthographic" view which has its uses but it's generally not what people want when they say "3D".
Instead we need to add perspective. Just what is perspective? It's basically the feature that things that are further away appear smaller.
Looking at the example above we see that things further away are drawn smaller. Given our current sample one easy way to make it so that things that are further away appear smaller would be to divide the clipspace X and Y by Z.
Think of it this way: If you have a line from (10, 15) to (20,15) it's 10 units long. In our current sample it would be drawn 10 pixels long. But if we divide by Z then for example if Z is 1
10 / 1 = 10 20 / 1 = 20 abs(10-20) = 10
it would be 10 pixels long, If Z is 2 it would be
10 / 2 = 5 20 / 2 = 10 abs(5 - 10) = 5
5 pixels long. At Z = 3 it would be
10 / 3 = 3.333 20 / 3 = 6.666 abs(3.333 - 6.666) = 3.333
You can see that as Z increases, as it gets further away, we'll end up drawing it smaller. If we divide in clipspace we might get better results because Z will be a smaller number (-1 to +1). If we add a fudgeFactor to multiply Z before we divide we can adjust how much smaller things get for a given distance.
Let's try it. First let's change the vertex shader to divide by Z after we've multiplied it by our "fudgeFactor".
<script id="2d-vertex-shader" type="x-shader/x-vertex"> ... uniform float u_fudgeFactor; ... void main() { // Multiply the position by the matrix. vec4 position = u_matrix * a_position; // Adjust the z to divide by float zToDivideBy = 1.0 + position.z * u_fudgeFactor; // Divide x and y by z. gl_Position = vec4(position.xy / zToDivideBy, position.zw); } </script>
Note, because Z in clipspace goes from -1 to +1 I added 1 to get zToDivideBy
to go from 0 to +2 * fudgeFactor
We also need to update the code to let us set the fudgeFactor.
... var fudgeLocation = gl.getUniformLocation(program, "u_fudgeFactor"); ... var fudgeFactor = 1; ... function drawScene() { ... // Set the fudgeFactor gl.uniform1f(fudgeLocation, fudgeFactor); // Draw the geometry. gl.drawArrays(gl.TRIANGLES, 0, 16 * 6);
And here's the result.
If it's not clear drag the "fudgeFactor" slider from 1.0 to 0.0 to see what things used to look like before we added our divide by Z code.
It turns out WebGL takes the x,y,z,w value we assign to gl_Position
in our vertex
shader and divides it by w automatically.
We can prove this very easily by changing the shader and instead of doing the
division ourselves, put zToDivideBy
in gl_Position.w
.
<script id="2d-vertex-shader" type="x-shader/x-vertex"> ... uniform float u_fudgeFactor; ... void main() { // Multiply the position by the matrix. vec4 position = u_matrix * a_position; // Adjust the z to divide by float zToDivideBy = 1.0 + position.z * u_fudgeFactor; // Divide x, y and z by zToDivideBy gl_Position = vec4(position.xyz, zToDivideBy); } </script>
and see how it's exactly the same.
Why is the fact that WebGL automatically divides by W useful? Because now, using more matrix magic, we can just use yet another matrix to copy z to w.
A Matrix like this
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
will copy z to w. You can look at each of those columns as
x_out = x_in * 1 + y_in * 0 + z_in * 0 + w_in * 0 ; y_out = x_in * 0 + y_in * 1 + z_in * 0 + w_in * 0 ; z_out = x_in * 0 + y_in * 0 + z_in * 1 + w_in * 0 ; w_out = x_in * 0 + y_in * 0 + z_in * 1 + w_in * 0 ;
which when simplified is
x_out = x_in; y_out = y_in; z_out = z_in; w_out = z_in;
We can add the plus 1 we had before with this matrix since we know w_in
is always 1.0.
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1,
that will change the W calculation to
w_out = x_in * 0 + y_in * 0 + z_in * 1 + w_in * 1 ;
and since we know w_in
= 1.0 then that's really
w_out = z_in + 1;
Finally we can work our fudgeFactor back in if the matrix is this
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, fudgeFactor, 0, 0, 0, 1,
which means
w_out = x_in * 0 + y_in * 0 + z_in * fudgeFactor + w_in * 1 ;
and simplified that's
w_out = z_in * fudgeFactor + 1;
So, let's modify the program again to just use matrices.
First let's put the vertex shader back. It's simple again
<script id="2d-vertex-shader" type="x-shader/x-vertex"> uniform mat4 u_matrix; void main() { // Multiply the position by the matrix. gl_Position = u_matrix * a_position; ... } </script>
Next let's make a function to make our Z -> W matrix.
function makeZToWMatrix(fudgeFactor) { return [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, fudgeFactor, 0, 0, 0, 1, ]; }
and we'll change the code to use it.
... // Compute the matrices var zToWMatrix = makeZToWMatrix(fudgeFactor); ... // Multiply the matrices. var matrix = matrixMultiply(scaleMatrix, rotationZMatrix); matrix = matrixMultiply(matrix, rotationYMatrix); matrix = matrixMultiply(matrix, rotationXMatrix); matrix = matrixMultiply(matrix, translationMatrix); matrix = matrixMultiply(matrix, projectionMatrix); matrix = matrixMultiply(matrix, zToWMatrix); ...
and note, again, it's exactly the same.
All that was basically to show you that dividing by Z gives us perspective and that WebGL conveniently does this divide by Z for us.
But there's still some problems. For example if you set Z to around -100 you'll see something like the animation below
What's going on? Why is the F disappearing early? Just like WebGL clips X and Y or +1 to -1 it also clips Z. What were's seeing here is where Z < -1.
I could go into detail about how the math to fix it but you can derive it the same way we did 2D projection. We need to take Z, add some amount and scale some amount and we can make any range we want get remapped to the -1 to +1.
The cool thing is all of these steps can be done in 1 matrix. Even better, rather than a fudgeFactor
we'll decide on a fieldOfView
and compute the right values to make that happen.
Here's a function to build the matrix.
function makePerspective(fieldOfViewInRadians, aspect, near, far) { var f = Math.tan(Math.PI * 0.5 - 0.5 * fieldOfViewInRadians); var rangeInv = 1.0 / (near - far); return [ f / aspect, 0, 0, 0, 0, f, 0, 0, 0, 0, (near + far) * rangeInv, -1, 0, 0, near * far * rangeInv * 2, 0 ]; };
This matrix will do all our conversions for us. It will adjust the units so they are
in clipspace, it will do the math so that we can choose a field of view by angle
and it will let us choose our z-clipping space. It assumes there's an eye
or camera
at the
origin (0, 0, 0) and given a zNear
and a fieldOfView
it computes what it would take so that
stuff at zNear
ends up at z=-1 and stuff at zNear
that is half of fieldOfView
above or below the center
ends up with y=-1 and y=1 respectively. It computes what to use for X by just multipling by the aspect
passed in.
We'd normally set this to the width / height
of the display area.
Finally, it figures out how much to scale things in Z so that stuff at zFar ends up at Z = 1.
Here's a diagram of the matrix in action.
That shape that looks like 4 sided cone the cubes are spinning in is called a frustum".
The matrix takes the space inside the frustum and converts that to clipspace. zNear
defines where
things will get clipped in front and zFar defines where things get clipped in back. Set zNear
to 23 and
you'll see the front of the spinning cubes get clipped. Set zFar
to 24 and you'll see the back of the cubes
get clipped.
There's just one problem left. This matrix assumes there's a viewer at 0,0,0 and it assumes it's looking in the negative Z direction and that positive Y is up. Our matrices up to this point have done things in a different way. To make this work we need to put our objects in front of the view.
We could do that by moving our F. We were drawing at (45, 150, 0). Let's move it to (-150, 0, -360)
Now, to use it we just need to replace our old call to make2DProjection with a call to makePerspective
var aspect = canvas.clientWidth / canvas.clientHeight; var projectionMatrix = makePerspective(fieldOfViewRadians, aspect, 1, 2000); var translationMatrix = makeTranslation(translation[0], translation[1], translation[2]); var rotationXMatrix = makeXRotation(rotation[0]); var rotationYMatrix = makeYRotation(rotation[1]); var rotationZMatrix = makeZRotation(rotation[2]); var scaleMatrix = makeScale(scale[0], scale[1], scale[2]);
And here it is.
We're back to just a matrix multiply and we're getting both a field of view and we're able to choose our z space. We're not done but this article is getting too long. Next up, cameras.


WATCH: Malaysia’s Safawi Rasid scores brilliant free-kick against Indonesia in 2022 FIFA World Cup qualifier
by HarigovindOn Tuesday, the Bukit Jalil National Stadium in Kuala Lumpur played host to the 2022 FIFA World Cup qualifier game between Malaysia and Indonesia. Johor Darul Ta’zim star Safawi Rasid opened the scoring for the hosts, with a brilliant free-kick in the 30th minute.
Take a look at the video of the goal, right here:
It was a foul from Indonesia that paved the way for Rasid’s goal, as he won the free-kick in a good position before stepping up on his own to take the kick.
Rasid’s shot found the right corner of Indonesia’s goal perfectly, and the outstretched hands of their goalkeeper Muhammad Ridho could not do anything to save the ball before it got into the net.
Earlier, the match started evenly before the hosts Malaysia started applying pressure on Indonesia. However, despite their best efforts, Malaysia almost conceded a goal in the 20th minute.
Indonesia’s Febri Hariyadi was one-on-one with goalkeeper Khairul Azhan, and although Azhan saved the shot well, he was injured in the process and had to be replaced by Farizal Marlias.
Malaysia currently have nine points from five matches in Group G of the second round in 2022 FIFA World Cup Asian Qualifiers, and a win against Indonesia could help them overtake Vietnam to the top of the table.


André Lumertz
Quimica
FHDGDJGHBDJGBDJGDJGDJGDJKGDKGDKGKGBDKGBDKGDBGKDBGDKBBDKVBKBKBDKG
fdgdgeegeteteyyyeyeyeyeye
FHDGDJGHBDJGBDJGDJGDJGDJKGDKGDKGKGBDKGBDKGDBGKDBGDKBBDKVBKBKBDKG
fdgdgeegeteteyyyeyeyeyeye
FHDGDJGHBDJGBDJGDJGDJGDJKGDKGDKGKGBDKGBDKGDBGKDBGDKBBDKVBKBKBDKG
fdgdgeegeteteyyyeyeyeyeye
Nenhum professor encontrado com a sua pesquisa.


Nunjucks templating with Eleventy is a powerful combination for content creation but I've noticed an oddity with whitespace control.
It doesn't work like I expected it to. I'd like to complain that it's poorly documented but if I were given the task of documenting how this works, I'd struggle to get it right. Here are some examples based on the simple example in the documentation...
No dashes:

{% for i in [1,2,3,4,5] %}
{{ i }}
{% endfor %}

Result:

1
2
3
4
5

Even the blank lines have a 2-space indent.
Dashes at the end of the opening tag and the beginning of the closing tag. This is the documented example:

{% for i in [1,2,3,4,5] -%}
{{ i }}
{%- endfor %}

Result:

12345

I expected it to remove the 2-space indent from the output, but this is arguably the way it's documented. The 2-digit indent produced is the same two spaces before the {% for
tag.
Dashes at the beginnings of the opening and closing tags:

{%- for i in [1,2,3,4,5] %}
{{ i }}
{%- endfor %}

Result:

1
2
3
4
5

My first impression of this is that it didin't do anything. There are four spaces before the variable tag in the input and four spaces before the number in the output. However, I'm starting to understand how this works. It removed the whitespace before the first bracket of the for
tag and between the last bracket of the variable tag and the first bracket of the endfor
tag.
Dashes at the ends of the loop tags:

{% for i in [1,2,3,4,5] -%}
{{ i }}
{% endfor -%}

Result:

1
2
3
4
5

Huh!? Those spaces don't make any sense at first glance. There aren't two spaces anywhere but in the output! Where did the spaces before the closing

come from?!... Do you see what mistake I was making yet? I do. This removed the whitespace between the closing bracket of the for
tag and the opening bracket of the variable tag as well as after the closing bracket of the endfor
tag (there wasn't any there anyway). The spaces rendered in the output are from before the {% endfor
tag.
Dashes everywhere:

{%- for i in [1,2,3,4,5] -%}
{{ i }}
{%- endfor -%}

Result:

12345

Finally! That's what I thought I was going to get in the first place. It removed all the leading and trailing whitespace.
I thought the for
/endfor
lines didn't count. I thought that, like a JavaScript for
loop, all that mattered was what was inside the block. In a Nunjucks template everything that's outside of the {% %}
is rendered. And the documentation says that. So, a dash at the beginning of the tag eliminates the whitespace before the tag and a dash at the end of the tag eliminates the whitespace after the tag. Now that I understand it, I think the only thing I could do to improve the documentation is add some more examples.


You have a new message!
Document Uploaded:
Your Current Visa Status:
Upload Successfully!
Thank you for your patience.


U.S. primary energy consumption by source and sector, 2015
Total = 97.7 quadrillion British thermal units (Btu)


Burkina Faso
Teg-wende Idriss TINTO is a software engineer who spend his free time to fight for freedom. He is deeply engaged in free software and "open everything" movements. He is a Mozilla rep, and a Open Knowledge Ambassador for Burkina Faso.
Burkina Faso ranked #58 in the 2014 Open Data Index / Other stories from Africa
[Translated from the original French here]
This year, Open Knowledge initiated the Global Open Data Index 2014. This Index aims to measure the state of open data around the world through 10 key datasets:
- Transport timetables
- Government budget
- Government spending
- Election results
- Company register
- National map
- National statistics
- Postcodes/Zipcodes
- Emissions of pollutants
Open Knowledge and the Burkina Faso Burkina Open Data Initiative (BODI) have made submissions in the Global Open Data Index survey for Burkina Faso.
Given the government's effort to modernise the administration, we note that most of the data sets are published by default. Each institution has a website and strives to publish its data on its website. However, the publication does not include ‘reuse’. Data are published in most cases in PDF or HTML, the target being the human user rather than being machine readable.
In addition to the question around format, most of the published data has no associated license. In this case, the user downloads the data and is not explicitly allowed to reuse nor prohibited from reuse. The statistical law does not specify what the "public" has the right to do with the data that is published. Similarly, the law regulating services and electronic transactions in Burkina Faso, “Title V” (making available public information electronically) states that government must make available electronically to the public, without allowing for rights to reuse. All indications are that there is a tacit approval for any type of reuse but it is important that this right is enforceable, hence the need to explicitly specify that what the user has the right to do or not with the data it downloads.
This identification of the state of open data around the world gives a common basis on which to compare countries. It also allows each country to see where it is important to take action. In Burkina’s case, we will see that there needs to be more focus on the format of the data and licenses on data in the publication of Global Open Data Index 2014.


Adorable moment great-gran meets penguins at care home after making wish to meet one during lifetime
Great-gran Joyce Gardner couldn't believe her eyes when the little two-foot-tall birds waddled in three months after she made the unusual request
by James Rodger, https://www.facebook.com/jamesrodgerjournalistThese adorable pictures show three PENGUINS being paraded around a care home - after a 99-year-old resident made a wish to "meet one" in her lifetime.
Great-gran Joyce Gardner couldn't believe her eyes when the little two-foot-tall birds waddled in three months after she made the unusual request.
Heartwarming images show the inquisitive animals, which were famously in an episode of The Crown, shuffling around as excitable OAPs watch on in amazement.
The cheerful little birds, which hail from Chile but live at a British zoo, have incredibly sociable natures, meaning they can be picked up and petted by humans.
The visit was organised by the care homeowner, Elizabeth Stephens, who spent weeks working out how she could possibly get penguins inside her home.
Eventually, she got in touch with officials at Heythrop Zoological Gardens, Oxon, which has 20 Humboldt penguins that often work on camera or at live events.
On Tuesday (29/10) three of the pint-sized animals called Pringle, Groot and Charlie, travelled to the care home in Lincoln with two experienced handlers.
Elizabeth said: "I'm always looking for something different to entertain the residents so when Joyce requested to meet a penguin I thought it was a great idea.
"I'm so glad we were able to get it organised because everyone had an absolutely wonderful time, including the penguins.
"They're such incredible and inquisitive little animals so they interacted amazingly with the residents, who couldn't believe their eyes."
Speaking after the visit, Joyce said: "I've always loved animals, especially penguins. To meet one in real life was one of the best experiences I've ever had."
Elizabeth said carers at Bernadette House ask new residents to make a wish when they first move into the house to see if it can be granted.
"Some people ask for a certain type of cake or a specific film to watch but Joyce asked to meet a penguin, which was a first for us," Elizabeth said.
"I did some research to see if it was possible and eventually managed to make it happen."
The care home owner added that the penguins were "incredibly friendly" and "very happy" to be surrounded by so many happy faces.
"They were clearly very used to being around people because their behaviour was wonderful," she said.
"I'm not sure who enjoyed the day more, the residents or the penguins."
Research shows contact and companionship with animals can reduce the stress hormone cortisol and provide an overall boost to well-being.
The unorthodox form of therapy is said to help with a range of issues including anxiety, autism, poor behaviour, low self-confidence, stress and trauma.
In recent months Elizabeth has arranged for llamas, dogs and even chicks to visit her home.
"Elderly people and particularly those with dementia seem to have a really special and unique connection to animals," she said.
"I think it's because they are very non-threatening and calming."
The Humbolts that visited last week have been dubbed 'showbiz penguins' because they're often used on camera or at live events.
Their most famous screen appearance was in a 2017 episode of Netflix series The Crown when they're pictured being fed by Matt Smith playing Prince Phillip.
The three which visited Bernadette House were Pringle, a six-year-old male, Charlie, a 12-year-old male, and Grotto, a seven-month-old female.


Lawyers
Ethiopian Law Group
- Address: Liberia Street, St. Lideta, Electric World Bldg, Postal Code 40599 ADDIS ABABA, ETHIOPIA, Addis Ababa
- Hours: Opens 7AM
- Phone:<PHONE_NUMBER>
- Appointments: ethiopianlawgroup.com
Liku Worku Law Office
- Address: Gulf Aziz Building, Addis Ababa
- Hours: Opens 8:30AM
- Phone:<PHONE_NUMBER>
FJA Law Office
- Address: Africa Avenue/ Bole Road, P.O.Box 956, Addis Ababa, Ethiopia, Addis Ababa
- Hours: Opens 8:30AM
- Phone:<PHONE_NUMBER>
- Appointments: fjalawoffice.com
Ethiopian Women Lawyers Association (EWLA)
- Address: Addis Ababa
- Hours: Opens 8:30AM


|
xpcc
|
Double ended queue. More...
#include <xpcc/container/deque.hpp>
Classes | |
| class | const_iterator |
| Bidirectional const iterator. More... | |
Public Types | |
| typedef xpcc::tmp::Select<(N >=255), uint_fast16_t, uint_fast8_t >::Result | Index |
| typedef Index | Size |
Public Member Functions | |
| bool | isEmpty () const |
| bool | isNotEmpty () const |
| bool | isFull () const |
| bool | isNotFull () const |
| Size | getSize () const |
| Size | getMaxSize () const |
| void | clear () |
| Clear the container. More... | |
| T & | getFront () |
| const T & | getFront () const |
| T & | get (Index n) |
| Get item at specified index. More... | |
| const T & | get (Index n) const |
| T & | operator[] (Index n) |
| Get item at specified index. More... | |
| const T & | operator[] (Index n) const |
| T & | rget (Index n) |
| Get item at specified index. More... | |
| const T & | rget (Index n) const |
| T & | getBack () |
| const T & | getBack () const |
| bool | append (const T &value) |
| void | appendOverwrite (const T &value) |
| Append an item to the back of the deque overwriting existing items. More... | |
| bool | prepend (const T &value) |
| void | prependOverwrite (const T &value) |
| Prepend an item to the front of the deque overwriting existing items. More... | |
| void | removeBack () |
| void | removeFront () |
| const_iterator | begin () const |
| const_iterator | end () const |
Internally organized as a ring buffer.
* tail --\ /-- head * | | * +------+------+---- ----+------+------+ * 0 | | data | ... | data | | N-1 * +------+------+---- ----+------+------+ * | | | | * prepend --/ | | \-- append * | | * getFront --/ \-- getBack *
| T | Type of the elements |
| N | Size of the queue |
Up to a size of 254 small index variables with 8-bits are used, after this they are switched to 16-bit.
| void xpcc::BoundedDeque< T, N >::clear | ( | ) |
|
inline |
Returns a reference to the item at index n
, counting 0-indexed from Front to Back, which is the same order in that the items were appended and the iterator addresses them.
n
is a valid index: 0 <= n < size. Other indexes will cause undefined behaviour.
|
inline |
Returns a reference to the item at index n
, counting 0-indexed from Front to Back.
n
is a valid index: 0 <= n < size. Other indexes will cause undefined behaviour.
|
inline |
Returns a reference to the item at index n
. The items are indexed in reverse (Back to Front), which is their order when they have been prepended.
n
is a valid index: 0 <= n < size. Other indexes will cause undefined behaviour. | void xpcc::BoundedDeque< T, N >::appendOverwrite | ( | const T & | value | ) |
This method, in contrast to append()
, overwrites existing items in the deque if it is full. When an item is appended to the already full deque, the front item is removed to use its space for the new item, which is inserted after back.
| void xpcc::BoundedDeque< T, N >::prependOverwrite | ( | const T & | value | ) |
This method, in contrast to prepend()
, overwrites existing items in the deque if it is full. When an item is prepended to the already full deque, the back item is removed to use its space for the new item, which is inserted at front.