| FEATURE ARTICLE | ||||||||||||||||||
|
by Michael Asimow
Now, for valuable prizes, who is the most surprising character in the funny, touching and altogether terrific film High Fidelity? Nope, it isn't Rob, the protagonist, who is working his way through the top five relationship breakups he's experienced.  Sorry again, it isn't the teenage shoplifting skateboard thugs who turn out to be terrific musicians. Thats it! The winner is Laura, Robs girlfriend, who leaves him for another guy at the beginning of the movie and moves back in when he finally seems to be taking control over his life. Right, she's really attractive, but what's so special or surprising about her? She's a lawyer, dummy! And not just any old lawyera terrific person. She's kind and generous to Rob while ditching him.  She's a good sport about the fact that he's harassing her and her new boyfriend. And she even takes him back after he shows signs of finding himself. She cleverly plans the publicity for his new record label. Shes a really nice person, with lots of character and good judgment. Youd definitely want her as your friend. And that is news. Its news for two reasons.  With the exception of the first important female movie lawyer--Amanda Bonner in Adams Rib (1947)--virtually every female lawyer has been either a repulsive person or an incompetent or unethical lawyer. The most recent contender was Theresa, the American Gothic lawyer in Erin Brockovich who patronized the hard-working Erin and was so uptight that she couldnt talk to the clients and or bring herself to walk through cow dung to meet one of them. Think back to Laura Fischer in The Verdict (1982), who serves as a sexual spy on the opposition. Or Teddy Barnes in Jagged Edge (1985), who unwisely hops into bed with her client during a murder trial. Or Belinda Conine in Philadelphia (1992), whose total lack of tactical sense destroys her clients case. Or Reggie Love in The Client (1994), whose personal life is a shambles; Reggie is good-hearted but has to take advice from her 11-year-old client. Or Kathleen Riley in Suspect (1987), who has an equally terrible personal life and uses a juror as her investigator.  The list goes on and on, and the conclusion is clear. Filmmakers consistently trash female lawyers. Whether this is because women lawyers are hated and feared by audiences even more than male lawyers, or because filmmakers believe that law should be a mans profession, isnt clear, but the results are pretty obvious. Oh, you get good female paralegals (Erin Brockovich) or good female law students (A Time to Kill or The Pelican Brief), but female lawyers? Yech. You wouldnt want them as your friend or as your lawyer, or probably neither of the above. All this has got to change, considering that the legal profession is rapidly becoming feminized (at UCLA Law School this year, the first year class was 59% female). Women lawyers are just the same as their male counterpartssome good people and good lawyers, some bad. Television reflects this well, with plenty of good female lawyer role models on Law and Order, The Practice, JAG, Family Law, L. A. Law, and Judging Amy, But feature films have a long way to go, and thats why Laura in High Fidelity was both admirable and surprising. And now for the second reason that Laura's character was news. Since the 1970s, about 2/3 of all the lawyers in the movies have been either bad people or bad lawyers. Prior to 1970, about 2/3 of the lawyers in movies were both good people and good lawyers. These assertions are based on a study of about 300 movie lawyer roles dating back to the 1930s. See my article Bad Lawyers in the Movies, 24 Nova L. Rev. 533 (2000), for the details. The abrupt shift in the portrayal of movie lawyers closely matched an equally abrupt shift in public opinion. In the 1970s and 1980s, lawyers went right over the cliff in public opinion polls. Suddenly the number of people who thought lawyers could be trusted fell sharply. Lawyers became more unpopular than at any point since pollsters started asking about it and they remain at abysmally low levels today. Given such popular attitudes toward lawyers, it isnt at all surprising that films of the last thirty years have trashed the legal profession. In 1998 and 1999, however, something odd happened. A number of films had lawyer characters who were decent human beings. These films were not courtroom stories or even law stories. The lawyer characters just happened to be lawyers; their profession wasnt at all essential to the narrative. Recall Stepmom (1998) , for example. In that film, Luke was caught between his new wife and his former wife who were fighting for the love of the children. Luke handles the situation very well. Hes kind to everyone, patient with his new wife's travails, great to his kids, compassionate toward his ex- (especially when she gets sick), and all around a pretty terrific guy. And Luke was a lawyer! And he didnt have to be! He could have been anything that provided an affluent life style. That filmmakers would gratuitously make this nice guy a lawyer was a big surprise. And Stepmom wasnt alone. Some very favorable lawyer characters who didn't need to be lawyers emerged in 1998 and 1999 movies, including The Thin Red Line, Enemy of the State, and The Siege. High Fidelity joins this list. Laura didnt have to be a lawyer. Granted, she was also a lawyer in Nick Hornby's smashing novel, but the filmmakers freely changed many aspects of the novel to make it resonate better with audiences (they moved the action from London to Chicago, for example), so they could easily have given Laura a new profession. We learn nothing about what kind of lawyer Laura is, whether her firm is big or small, what she specializes in. We know that she has a pretty good income and we catch a fleeting glimpse of her at work. Thats it. She didnt have to be a lawyer at all. Any good job would have served the story equally wellbusiness executive, fashion designer, architect, editoryou name it. Why was she a lawyer? Cant saybut it was a nice surprise. Could it be theres a trend starting here? Have filmmakers decided that lawyer trashing has been overdone? Will we see more women lawyers, who are nice people youd want as friends? Or lawyers of either gender who are decent human beings and competent, professional, ethical and loyal? Well, its a bit premature to declare a trend, but films like Stepmom and High Fidelity are getting us off to a good start. Posted October 16, 2000 Michael Asimow, of UCLA Law School, is co-author with Paul Bergman of Reel Justice: The Courtroom Goes to the Movies (1996), available at local bookstores or through amazon.com. Asimow's article Divorce in the Movies: From the Hays Code to Kramer vs. Kramer is available at 24 Legal Studies Forum 221 (2000). Michael Asimow's email address is<EMAIL_ADDRESS>|


{% if site.harmony.show_disclaimer %} Everything you find here under Creative Commons CC0. {% endif %} Powered by Jekyll, theme by @gayanvirajith


Performance demo:
Loading a ~10mo JSON descriding 10000 complex objects with more than 25 properties/subproperties. We will filter them all.
Filter:
Loading...
[[data.name]]
([[data.company]])
[[data.phone]]


Texas at Baylor: Game Time, Spread, Channel, Announcers
by Tzvi MachlinAfter getting beaten at home by Oklahoma last week, No. 14 Baylor hopes to make up for it with a big win over Texas.
At 9-1 on the season, the Bears need only one more win to clinch a spot in the Big 12 Championship Game. But unless they beat Oklahoma in that game and get a ton of outside help, their College Football Playoff dream will be over, if it isn’t already. Thanks to their top 30 offense and defense, there’s still reason to be optimistic, even after a brutal blown lead against the Sooners.
The Longhorns have lost three of their last five games, and are 2-3 outside of Darrell K Royal–Texas Memorial Stadium. Now unranked, the Longhorns will need to win out and see several teams lose out to get into the Big 12 title game. But in all likelihood, their conference title dreams will end this weekend – win or lose.
Baylor and Texas are both capable of putting up a ton of points, and have scored at least 30 points a combined 12 times. It should be a close game though, and the Bears have been named slight favorites in this one.
Here are the details for the Texas vs. Baylor game:
Game Time: 3:30 PM ET
Channel: FS1
Spread: Baylor -6
Over/Under: 58.5
Announcers: Brian Custer, Robert Smith
Texas heads into this game as winners of their last four against Baylor. But the Bears have been significantly better at McLane Stadium during this series, and are 2-2 there since 2011.
Can Baylor end their losing streak against Texas this weekend?


Start your day here, in the beating heart of Prague.
Prague's Old Town Square is a beautifully preserved part of the city, and a popular meeting place for tourists and locals. It's the gateway to Old Town, which snakes itself in all directions down the narrow streets off the square.
Make sure you stop past the Old Town Hall to see thePrague Orloj, a medieval astronomical clock that is the only one of its kind in the world still in operation.
The square is also a memorial to various martyrs – try to spot the 27 crosses set into the pavement, which were laid after WWII to commemorate the execution of 27 Czech Protestant leaders in 1621.
If you happen to be in town around Christmas, visit the Old Town Square to experience the impressive Prague Christmas Markets.
Built in 1410 by a local clockmaker, the Prague Orloj is the oldest working clock of its kind in the world.
The astronomical dial, shows the position of the Sun and Moon in the sky, while a calendar dial features a series of medallions representing the months of the year.
Either side of the clock is flanked by representations of various Catholic saints, which come to life in a moving show every hour.
Keep your eye out for Death, here depicted as a skeleton, who is given the task of striking the time.
There is a local legend that says Prague will suffer if the clock is neglected, hence the city's dedication to its care and upkeep.
You can't leave Prague without trying a trdelnik.
Wander through the stalls at Havelské Tržiště Market, selling everything from fruits and vegetables, to fresh flowers and handmade gifts and souvenirs.
Whatever you do, make sure you pick up a trdelnik for the walk ahead – delicious sweet dough cooked on a spit and dusted with sugar. Get yours stuffed with Nutella for a breakfast of champions.
Unveiled in 1991, the metronome replaced an imposing statue of Stalin that had been destroyed 30 years earlier.
Designed by international artist Vratislav Novák, the metronome is a steady reminder of the city's communist history.
The vantage point also offers spectacular views over the Vltava river, and the surrounding grounds offer a beer garden and prime picnic spots with a view.
It's time for a coffee, and where better than in the cobblestone backstreets behind Prague Castle?
This family run cafe serves up premium coffee, light bites and delicious homemade Czech baked goods. Try to nab a seat on the balcony, which is surrounded by greenery and the sounds of a nearby stream.
Within the walls of the Strahov monastery is one of the most stunning libraries you'll ever step into.
Gilded frames, frescoed ceilings and the intoxicating smell of well-worn books await in Czechia's largest monastic library.
Take a pause in the lobby at the Cabinet of Curiosities, a collection of 18th century natural artefacts from a whole manner of ocean creatures, collected by sailors who initially presented them as sea monsters to the public.
Wander through the largest ancient castle in the world.
Founded in the 9th century and covering over 70,000 square metres (750,000 square feet), the castle complex showcases a wide range of architectural styles, including Gothic and Romanesque.
Prague Castle has long been a seat for people of power, from the
kings of Bohemia, to Roman emperors, and today, as the official
office of the president of the Czech republic.
Explore the
grand churches, halls and gardens, and stop into the National
Gallery to delve into Bohemian art and history.
If you're visiting in August, try to get tickets for the Summer Shakespeare Festival, the biggest open-air festival in Europe presenting works by William Shakespeare.
A neighbourhood wall covered in Beatles lyrics and ideas of love and peace.
For over three decades, this wall down a side street in old Prague has been a moving monument to Britain's most famous quartet, but particularly to John Lennon.
A portrait of the musician once took centre stage on the wall, but is now covered up by many years of graffiti.
Despite this, the spirit of the Lennon Wall remains, with hopeful wishes and lyrics from the Beatles' collection of songs being continuously layered and constantly changing the meaning of the wall.
Built to connect Prague Castle to Old Town, the bridge is a destination in itself.
Flanking the walkway of the Charles Bridge is a collection of 30 statues, depicting numerous saints who were venerated at the time of their design.
The personalities depicted on the bridge include St. Ivo, patron saint of lawyers, a statue that was commissioned by the law faculty of Charles University, and the statue of St Wenceslaus, patron saint of the Czech state.
While the statues that stand today are all replicas (the originals from the 17th and 18th centuries are housed in the National Museum), it remains an intriguing look into the city's history.
A butcher's shop and restaurant in one.
The cooking team here at Kantyna are from another stand-out Prague restaurant Čestr. When the store was forced to closed due to renovations of the State Opera building, the owners decided to pop-up here, and add a butcher shop to their offering.
The partnership was a match made in heaven, as the menu at Čestr has always been about championing local Czech produced meat and a nose-to-tail cooking approach.
There are no bookings available, but be quick on your feet and nab a table as soon as one's free. Settle in and be rewarded with a delicious and authentic example of local cooking that celebrates the Czech love of meat and beer.
There's more to this bar than meets the eye.
When you enter Cash Only, walk past the long bar on your right and head downstairs – it's much cosier in the curved-ceiling bunker down here.
The bartenders will soon serve you a delicious menu of varying cocktails, including one that comes in a birdcage.
If you're still feeling a little peckish after dinner, don't worry, they've got that covered too.
When it's time to pay the bill, it's all in the name – make sure there are a few koruna in your wallet as cards aren't accepted.
Sister bar to Cash Only, here the order of the day is absinthe, and lots of it.
Inspired by author Ernest Hemingway, the bar has taken the writer's penchant for liquor and good times and turned it into a physical space.


It all begins with the initialization...
namespace UnityStandardAssets.Utility
{
public class AutoMobileShaderSwitch : MonoBehaviour
{
[SerializeField] private ReplacementList m_ReplacementList;
// Use this for initialization
private void OnEnable()
{
#if UNITY_IPHONE || UNITY_ANDROID || UNITY_WP8 || UNITY_TIZEN || UNITY_STV
var renderers = FindObjectsOfType();
Debug.Log (renderers.Length+" renderers");
var oldMaterials = new List();
var newMaterials = new List();
int materialsReplaced = 0;
int materialInstancesReplaced = 0;
foreach(ReplacementDefinition replacementDef in m_ReplacementList.items)
{
foreach(var r in renderers)
{
Material[] modifiedMaterials = null;
for(int n=0; n{
var material = r.sharedMaterials[n];
if (material.shader == replacementDef.original)
{
if (modifiedMaterials == null)
{
modifiedMaterials = r.materials;
}
if (!oldMaterials.Contains(material))
{
oldMaterials.Add(material);
Material newMaterial =
(Material)Instantiate(material);
newMaterial.shader =
replacementDef.replacement;
newMaterials.Add(newMaterial);
++materialsReplaced;
}
Debug.Log ("replacing "+r.gameObject.name+" renderer "+n+" with "+newMaterials[oldMaterials.IndexOf(material)].name);
modifiedMaterials[n] = newMaterials[oldMaterials.IndexOf(material)];
++materialInstancesReplaced;
}
}
if (modifiedMaterials != null)
{
r.materials = modifiedMaterials;
}
}
}
Debug.Log (materialInstancesReplaced+" material instances replaced");
Debug.Log (materialsReplaced+" materials replaced");
for(int n=0; n{
Debug.Log (oldMaterials[n].name+"
("+oldMaterials[n].shader.name+")"+" replaced with "+newMaterials[n].name+" ("+newMaterials[n].shader.name+")");
}
#endif
}
[Serializable]
public class ReplacementDefinition
{
public Shader original = null;
public Shader replacement = null;
}
[Serializable]
public class ReplacementList
{
public ReplacementDefinition[] items = new ReplacementDefinition[0];
}
}
}
Try using this, in the beginning of your code and you'll have everything intialized
Virtual Reality is the actual reality of the future
private void Start()
{
m_WheelMeshLocalRotations = new Quaternion[4];
for (int i = 0; i < 4; i++)
{
m_WheelMeshLocalRotations[i] = m_WheelMeshes[i].transform.localRotation;
}
m_WheelColliders[0].attachedRigidbody.centerOfMass = m_CentreOfMassOffset;
m_MaxHandbrakeTorque = float.MaxValue;
m_Rigidbody = GetComponent();
m_CurrentTorque = m_FullTorqueOverAllWheels - (m_TractionControl*m_FullTorqueOverAllWheels);
}
We have tons of Fun! We create VR contents, play with it learn through it and scale the development of the Hooman Race, with angaar reality
Using Web Development as the main theme, our website will help the ones related to web development and wish to see more of VR!
The future scope of our project where we wish to have our tutorials, reach the fellow VR enthusiasts on the go.
Last but not the least, come all come together, Video Editors, for we have something special brewing only for you!


Home
Shop
About
Mission
Contact
Donate
Stitch by Stitch
Shop
Five Dart Face Mask
6.00 USD
Shop
Scrunchies
6.00 USD
Shop
Bag
6.00 USD
Shop
Bundle of Mask, Scrunchie, and Bag
6.00 USD
Shop


Release Notes
1.12.1
Issues Resolved
- Resolved an issue with unit testing feature not properly handling annonomous objects as data row values
Additional Notes
- bumped NuGet package dependancy versions
1.12.0
Features Depreciated/Removed
- Depreciated .NET Core specific nuget package. Separate Non SQL Client connections into separate packages
1.11.0
Features Added
- Added Access to raw C# 'DataSet' object
- Added support for defining a credential object for DbConnection types that support it
Features Depreciated/Removed
- Depreciated GetDbConnectionProvider and GetDbConnectionProviderAsync methods from TDbConnectionConfig classes. Replaced with CreateDbConnection method which in most use cases will already be built in.
Issues Resolved
- Resolved issiue with output parameter values being set to null when actual values exist
1.10.0
Features Added
- Added Ability to define Db Schema command builder factories
- Added ability to fetch multiple data sets from one db call
- Added new methods to toggle running connections in Mock mode for unit testing
- Added Error Details for responses to make it easier to debug issues
Features Depreciated/Removed
- Depreciated IDbCommandMethod Mock/MockAsync calls
- Depreciated DbCommandConfigFactory
method (moved to TDbConnectionConfig class)
Issues Resolved
- Resolved unhandled exceptions thrown in the DbDataModel Init() method.
- Resolved unhandled exceptions thrown when getting output value from response.
1.9.0
No Release Notes available at this time
1.8.0
No Release Notes available at this time
1.7.0
No Release Notes available at this time
1.6.0
No Release Notes available at this time
1.5.0
No Release Notes available at this time
1.4.0
No Release Notes available at this time
1.3.0
No Release Notes available at this time
1.2.0
No Release Notes available at this time
1.1.0
No Release Notes available at this time
1.0.0
No Release Notes available at this time


I think it is OK. I will use it to document my work into Fabo Acadamic class for the next 9 weeks thanks for visiting


The first demo shows a notification with a blue theme
The second demo shows a notification with a different close button
The third demo shows a picture advertisement in the notification
The fourth demo appears after 3 seconds from button click
The first demo shows a notification with a blue theme
The second demo shows a notification with a different close button
The third demo shows a picture advertisement in the notification
The fourth demo appears after 3 seconds from button click


Tfhese web pages are on the subject of "Random Effective Deafness", or,
R.E.D. (also known as being deaf on one side, or Unilateral Hearing Loss).
At the moment these pages are geared to my own personal experiences and
conclusions, and I write these notes with the hope that they may prove
useful to others with this condition. My own situation is that I
have been completely deaf in my left ear as a result of an accident some years ago but the hearing in my right ear was
unaffected. My notes and conclusions are based on my own experience, hence
they may not be entirely universally true. In particular, I gather that
some people who have lost their hearing have some hope of
returning to a binaural state through various sorts of hearing aids. In
my case, I am hopelessly monaural.
Much of the discussion here I have learned from observation over the years, and my motivation
in writing these webpages is that I think I would have been much better off in life if I had known
some of these facts earlier on. There is also a dearth of information about the condition,
insofar as I can find it. A google search on most medical conditions generally provides a host of
relevant, usually reliable, webpages, but not so RED/UHL. The two main goals of these pages are: (a)
by understanding the various issues, there may be less stress and mystery about the situation (e.g.,
if one runs screaming from a noisy room, it is normal, not because there is something flawed about
your personality) and (b) by understanding the various issues, one can then develop strategies for
dealing constructively with the various problems.
Please note that I am not medically qualified. I also do not claim 100% complete and thorough
accuracy on these pages; opinions, ignorance, and misinformation may sneak in, but I try to avoid that.


Home
Portfolio
Contact
Web Class
Responsive Design
Animation Lab
Long Scrolling
Previous Slide
◀
Next Slide
▶
Photo Edits & Manipulation
Felicity Clothing
WAVE Magazine
Borussia Dortmund Rebranding
First slide details.
Current Slide
Second slide details.
Third slide details.
Fourth slide details.


Welcome All, to Biz Combo Growth Agency,
this an Agency which aims in helping Business Owners & Online entrepreneurs
to grow their daily business or firms. It started in 2021,It is an digital firm.
CEO - Mr George Kalonde
Mr George Kalonde is the CEO of BICOGRO Agency
He runs the Management Team & works on the growth development
Our main Aim is to makesure Business people get full support on them.


Meiosis Documentation
Source code
Examples
Services and Effects
Services and Effects Pattern Setup and Example
James' Services
Example Using Streams
Using a Router
Hash Mode
History Mode
Pattern Setup
Pattern Setup
Query String
toUrl
toUrl
Mithril Router
Mithril Router
Static Tagged Union
Superouter
Meiosis-Routing
Navigation
Adding a Router
Using Mithril Router
Using TypeScript
Preventing Re-Renders
Using React
Using Mithril


Facettage.js
< 07
|
Examples list
|
09 >
08 - Dynamic facets
TOP 10 MOVIES BY TIME RANGE
Loading...
Select a time range...


--- layout: post title: 'Google Wave: Theory vs. Reality' categories: [] tags: - geek - google - wave status: publish type: post published: true meta: _original_post_id: '' _original_import_author: John Duprey author: ---
My friend Debanjan sent this to me. I still believe the theory will become reality over time.


Please note that on January 1, 2023 the California Privacy Rights Act (CPRA) will become effective. The CPRA will substantially extend the CCPA. You can find the text of the CPRA on the California Legislative Information website.
Section 1798.110
A consumer shall have the right to request that a business that collects personal information about the consumer disclose to the consumer the following:
The categories of personal information it has collected about that consumer.
The categories of sources from which the personal information is collected.
The business or commercial purpose for collecting or selling personal information.
The categories of third parties with whom the business shares personal information.
The specific pieces of personal information it has collected about that consumer.
A business that collects personal information about a consumer shall disclose to the consumer, pursuant to paragraph (3) of subdivision (a) of Section 1798.130, the information specified in subdivision (a) upon receipt of a verifiable request from the consumer.
A business that collects personal information about consumers shall disclose, pursuant to subparagraph (B) of paragraph (5) of subdivision (a) of Section 1798.130:
The categories of personal information it has collected about that consumer.
The categories of sources from which the personal information is collected.
The business or commercial purpose for collecting or selling personal information.
The categories of third parties with whom the business shares personal information.
That a consumer has the right to request the specific pieces of personal information the business has collected about that consumer.
This section does not require a business to do the following:
Retain any personal information about a consumer collected for a single one-time transaction if, in the ordinary course of business, that information about the consumer is not retained.
Reidentify or otherwise link any data that, in the ordinary course of business, is not maintained in a manner that would be considered personal information.
[Amended by Stats. 2019, Ch. 757, Sec. 2. (AB 1355) Effective January 1, 2020. Superseded on January 1, 2023; see amendment by Proposition 24.]
Section 1798.115
A consumer shall have the right to request that a business that sells the consumer's personal information, or that discloses it for a business purpose, disclose to that consumer:
The categories of personal information that the business collected about the consumer.
The categories of personal information that the business sold about the consumer and the categories of third parties to whom the personal information was sold, by category or categories of personal information for each category of third parties to whom the personal information was sold.
The categories of personal information that the business disclosed about the consumer for a business purpose.
A business that sells personal information about a consumer, or that discloses a consumer's personal information for a business purpose, shall disclose, pursuant to paragraph (4) of subdivision (a) of Section 1798.130, the information specified in subdivision (a) to the consumer upon receipt of a verifiable request from the consumer.
A business that sells consumers' personal information, or that discloses consumers' personal information for a business purpose, shall disclose, pursuant to subparagraph (C) of paragraph (5) of subdivision (a) of Section 1798.130:
The category or categories of consumers' personal information it has sold, or if the business has not sold consumers' personal information, it shall disclose that fact.
The category or categories of consumers' personal information it has disclosed for a business purpose, or if the business has not disclosed the consumers' personal information for a business purpose, it shall disclose that fact.
A third party shall not sell personal information about a consumer that has been sold to the third party by a business unless the consumer has received explicit notice and is provided an opportunity to exercise the right to opt out pursuant to 1798.120.
[Amended by Stats. 2019, Ch. 757, Sec. 3. (AB 1355) Effective January 1, 2020. Superseded on January 1, 2023; see amendment by Proposition 24.]
Section 1798.120(a) and (b)
A consumer shall have the right, at any time, to direct a business that sells personal information about the consumer to third parties not to sell the consumer's personal information. This right may be referred to as the right to opt-out.
A business that sells consumers' personal information to third parties shall provide notice to consumers, pursuant to subdivision (a) of Section 1798.135, that this information may be sold and that consumers have the "right to opt-out" of the sale of their personal information.
[Amended by Stats. 2019, Ch. 757, Sec. 4. (AB 1355) Effective January 1, 2020. Superseded on January 1, 2023; see amendment by Proposition 24.]
Section 1798.125
A business shall not discriminate against a consumer because the consumer exercised any of the consumer's rights under this title, including, but not limited to, by:
Denying goods or services to the consumer.
Charging different prices or rates for goods or services, including through the use of discounts or other benefits or imposing penalties.
Providing a different level or quality of goods or services to the consumer.
Suggesting that the consumer will receive a different price or rate for goods or services or a different level or quality of goods or services.
Nothing in this subdivision prohibits a business from charging a consumer a different price or rate, or from providing a different level or quality of goods or services to the consumer, if that difference is reasonably related to the value provided to the consumer by the consumer's data.
A business may offer financial incentives, including payments to consumers as compensation, for the collection of personal information, the sale of personal information, or the deletion of personal information. A business may also offer a different price, rate, level, or quality of goods or services to the consumer if that price or difference is directly related to the value provided to the consumer by the consumer's data.
A business that offers any financial incentives pursuant to subdivision (a), shall notify consumers of the financial incentives pursuant to Section 1798.130.
A business may enter a consumer into a financial incentive program only if the consumer gives the business prior opt-in consent pursuant to Section 1798.130 that clearly describes the material terms of the financial incentive program, and which may be revoked by the consumer at any time.
A business shall not use financial incentive practices that are unjust, unreasonable, coercive, or usurious in nature.
[Amended by Stats. 2019, Ch. 757, Sec. 5. (AB 1355) Effective January 1, 2020. Superseded on January 1, 2023; see amendment by Proposition 24.]
Section 1798.130(a)(5), (b), and (c)
In order to comply with Sections 1798.100, 1798.105, 1798.110, 1798.115, and 1798.125, a business shall, in a form that is reasonably accessible to consumers: [...]
Disclose the following information in its online privacy policy or policies if the business has an online privacy policy or policies and in any California-specific description of consumers' privacy rights, or if the business does not maintain those policies, on its internet website, and update that information at least once every 12 months:
A description of a consumer's rights pursuant to Sections 1798.100, 1798.105, 1798.110, 1798.115, and 1798.125 and one or more designated methods for submitting requests.
For purposes of subdivision (c) of Section 1798.110, a list of the categories of personal information it has collected about consumers in the preceding 12 months by reference to the enumerated category or categories in subdivision (c) that most closely describe the personal information collected.
For purposes of paragraphs (1) and (2) of subdivision (c) of Section 1798.115, two separate lists:
A list of the categories of personal information it has sold about consumers in the preceding 12 months by reference to the enumerated category or categories in subdivision (c) that most closely describe the personal information sold, or if the business has not sold consumers' personal information in the preceding 12 months, the business shall disclose that fact.
A list of the categories of personal information it has disclosed about consumers for a business purpose in the preceding 12 months by reference to the enumerated category in subdivision (c) that most closely describe the personal information disclosed, or if the business has not disclosed consumers' personal information for a business purpose in the preceding 12 months, the business shall disclose that fact. [...]
A business is not obligated to provide the information required by Sections 1798.110 and 1798.115 to the same consumer more than twice in a 12-month period.
The categories of personal information required to be disclosed pursuant to Sections 1798.110 and 1798.115 shall follow the definition of personal information in Section 1798.140.
[Amended by Stats. 2020, Ch. 172, Sec. 1. (AB 713) Effective September 25, 2020. Superseded on January 1, 2023; see amendment by Proposition 24.]
Section 1798.135(a)
A business that is required to comply with Section 1798.120 shall, in a form that is reasonably accessible to consumers:
Provide a clear and conspicuous link on the business' Internet homepage, titled "Do Not Sell My Personal Information," to an Internet Web page that enables a consumer, or a person authorized by the consumer, to opt-out of the sale of the consumer's personal information. A business shall not require a consumer to create an account in order to direct the business not to sell the consumer's personal information.
Include a description of a consumer's rights pursuant to Section 1798.120, along with a separate link to the "Do Not Sell My Personal Information" Internet Web page in:
Its online privacy policy or policies if the business has an online privacy policy or policies.
Any California-specific description of consumers' privacy rights.
Ensure that all individuals responsible for handling consumer inquiries about the business's privacy practices or the business's compliance with this title are informed of all requirements in Section 1798.120 and this section and how to direct consumers to exercise their rights under those sections.
For consumers who exercise their right to opt-out of the sale of their personal information, refrain from selling personal information collected by the business about the consumer.
For a consumer who has opted-out of the sale of the consumer's personal information, respect the consumer's decision to opt-out for at least 12 months before requesting that the consumer authorize the sale of the consumer's personal information.
Use any personal information collected from the consumer in connection with the submission of the consumer's opt-out request solely for the purposes of complying with the opt-out request.
[Amended (as added by Stats. 2018, Ch. 55, Sec. 3) by Stats. 2018, Ch. 735, Sec. 8. (SB 1121) Effective September 23, 2018. Section operative January 1, 2020, pursuant to Section 1798.198. Superseded on January 1, 2023; see amendment by Proposition 24]
Section 1798.140(o)
For purposes of this title:
"Personal information" means information that identifies, relates to, describes, is reasonably capable of being associated with, or could reasonably be linked, directly or indirectly, with a particular consumer or household. Personal information includes, but is not limited to, the following if it identifies, relates to, describes, is reasonably capable of being associated with, or could be reasonably linked, directly or indirectly, with a particular consumer or household:
Identifiers such as a real name, alias, postal address, unique personal identifier, online identifier, internet protocol address, email address, account name, social security number, driver's license number, passport number, or other similar identifiers.
Any categories of personal information described in subdivision (e) of Section 1798.80.
Characteristics of protected classifications under California or federal law.
Commercial information, including records of personal property, products or services purchased, obtained, or considered, or other purchasing or consuming histories or tendencies.
Biometric information.
Internet or other electronic network activity information, including, but not limited to, browsing history, search history, and information regarding a consumer's interaction with an internet website, application, or advertisement.
Geolocation data.
Audio, electronic, visual, thermal, olfactory, or similar information.
Professional or employment-related information.
Education information, defined as information that is not publicly available personally identifiable information as defined in the Family Educational Rights and Privacy Act (20 U.S.C. section 1232g, 34 C.F.R. Part 99).
Inferences drawn from any of the information identified in this subdivision to create a profile about a consumer reflecting the consumer's preferences, characteristics, psychological trends, preferences, predispositions, behavior, attitudes, intelligence, abilities, and aptitudes.
"Personal information" does not include publicly available information. For purposes of this paragraph, "publicly available" means information that is lawfully made available from federal, state, or local government records. "Publicly available" does not mean biometric information collected by a business about a consumer without the consumer’s knowledge.
"Personal information" does not include consumer information that is deidentified or aggregate consumer information.
[Amended by Stats. 2019, Ch. 757, Sec. 7.5. (AB 1355) Effective January 1, 2020. Superseded on January 1, 2023; see amendment by Proposition 24.]
California Consumer Privacy Act Regulations, Section 999.308 Privacy Policy
Purpose and General Principles
The purpose of the privacy policy is to provide consumers with a comprehensive description of a business's online and offline practices regarding the collection, use, disclosure, and sale of personal information and of the rights of consumers regarding
their personal information.
The privacy policy shall be designed and presented in a way that is easy to read and understandable to consumers. The policy shall:
Use plain, straightforward language and avoid technical or legal jargon.
Use a format that makes the policy readable, including on smaller screens, if applicable.
Be available in the languages in which the business in its ordinary course provides contracts, disclaimers, sale announcements, and other information to consumers in California.
Be reasonably accessible to consumers with disabilities. For notices provided online, the business shall follow generally recognized industry standards, such as the Web Content Accessibility Guidelines, version 2.1 of June 5, 2018, from the World Wide Web Consortium, incorporated herein by reference. In other contexts, the business shall provide information on how a consumer with a disability may access the policy in an alternative format.
Be available in a format that allows a consumer to print it out as a document.
The privacy policy shall be posted online through a conspicuous link using the word "privacy" on the business's website homepage or on the download or landing page of a mobile application. If the business has a California-specific description of consumers' privacy rights on its website, then the privacy policy shall be included in that description. A business that does not operate a website shall make the privacy policy conspicuously available to consumers. A mobile application may include a link to the privacy policy in the application's settings menu.
The privacy policy shall include the following information:
Right to Know About Personal Information Collected, Disclosed, or Sold.
Explanation that a consumer has the right to request that the business disclose what personal information it collects, uses, discloses, and sells.
Instructions for submitting a verifiable consumer request to know and links to an online request form or portal for making the request, if offered by the business.
General description of the process the business will use to verify the consumer request, including any information the consumer must provide.
Identification of the categories of personal information the business has collected about consumers in the preceding 12 months. The categories shall be described in a manner that provides consumers a meaningful understanding of the information being collected.
Identification of the categories of sources from which the personal information is collected.
Identification of the business or commercial purpose for collecting or selling personal information. The purpose shall be described in a manner that provides consumers a meaningful understanding of why the information is collected or sold.
Disclosure or Sale of Personal Information.
Identification of the categories of personal information, if any, that the business has disclosed for a business purpose or sold to third parties in the preceding 12 months.
For each category of personal information identified, the categories of third parties to whom the information was disclosed or sold.
Statement regarding whether the business has actual knowledge that it sells the personal information of consumers under 16 years of age.
Right to Request Deletion of Personal Information.
Explanation that the consumer has a right to request the deletion of their personal information collected by the business.
Instructions for submitting a verifiable consumer request to delete and links to an online request form or portal for making the request, if offered by the business.
General description of the process the business will use to verify the consumer request, including any information the consumer must provide.
Right to Opt-Out of the Sale of Personal Information.
Explanation that the consumer has a right to opt-out of the sale of their personal information by a business.
Statement regarding whether or not the business sells personal information. If the business sells personal information, include either the contents of the notice of right to opt-out or a link to it in accordance with section 999.306.
Right to Non-Discrimination for the Exercise of a Consumer's Privacy Rights.
Explanation that the consumer has a right not to receive discriminatory treatment by the business for the exercise of the privacy rights conferred by the CCPA.
Authorized Agent.
Instructions on how an authorized agent can make a request under the CCPA on the consumer's behalf.
Contact for More Information.
A contact for questions or concerns about the business's privacy policies and practices using a method reflecting the manner in which the business primarily interacts with the consumer.
Date the privacy policy was last updated.
If subject to the requirements set forth in section 999.317, subsection (g), the information compiled in section 999.317, subsection (g)(1), or a link to it.
If the business has actual knowledge that it sells the personal information of consumers under 16 years of age, a description of the processes required by sections 999.330 and 999.331.
California Online Privacy Protection Act (CalOPPA)
Section 22575
An operator of a commercial Web site or online service that collects personally identifiable information through the Internet about individual consumers residing in California who use or visit its commercial Web site or online service shall conspicuously post its privacy policy on its Web site, or in the case of an operator of an online service, make that policy available in accordance with paragraph (5) of subdivision (b) of Section 22577. An operator shall be in violation of this subdivision only if the operator fails to post its policy within 30 days after being notified of noncompliance.
The privacy policy required by subdivision (a) shall do all of the following:
Identify the categories of personally identifiable information that the operator collects through the Web site or online service about individual consumers who use or visit its commercial Web site or online service and the categories of third-party persons or entities with whom the operator may share that personally identifiable information.
If the operator maintains a process for an individual consumer who uses or visits its commercial Web site or online service to review and request changes to any of his or her personally identifiable information that is collected through the Web site or online service, provide a description of that process.
Describe the process by which the operator notifies consumers who use or visit its commercial Web site or online service of material changes to the operator's privacy policy for that Web site or online service.
Identify its effective date.
Disclose how the operator responds to Web browser "do not track" signals or other mechanisms that provide consumers the ability to exercise choice regarding the collection of personally identifiable information about an individual consumer's online activities over time and across third-party Web sites or online services, if the operator engages in that collection.
Disclose whether other parties may collect personally identifiable information about an individual consumer's online activities over time and across different Web sites when a consumer uses the operator's Web site or service.
An operator may satisfy the requirement of paragraph (5) by providing a clear and conspicuous hyperlink in the operator's privacy policy to an online location containing a description, including the effects, of any program or protocol the operator follows that offers the consumer that choice.
(Amended by Stats. 2013, Ch. 390, Sec. 1. (AB 370) Effective January 1, 2014.)
Section 22577
For the purposes of this chapter, the following definitions apply:
The term "personally identifiable information" means individually identifiable information about an individual consumer collected online by the operator from that individual and maintained by the operator in an accessible form, including any of the following:
A first and last name.
A home or other physical address, including street name and name of a city or town.
An e-mail address.
A telephone number.
A social security number.
Any other identifier that permits the physical or online contacting of a specific individual.
Information concerning a user that the Web site or online service collects online from the user and maintains in personally identifiable form in combination with an identifier described in this subdivision.
The term "conspicuously post" with respect to a privacy policy shall include posting the privacy policy through any of the following:
A Web page on which the actual privacy policy is posted if the Web page is the homepage or first significant page after entering the Web site.
An icon that hyperlinks to a Web page on which the actual privacy policy is posted, if the icon is located on the homepage or the first significant page after entering the Web site, and if the icon contains the word "privacy." The icon shall also use a color that contrasts with the background color of the Web page or is otherwise distinguishable.
A text link that hyperlinks to a Web page on which the actual privacy policy is posted, if the text link is located on the homepage or first significant page after entering the Web site, and if the text link does one of the following:
Includes the word "privacy."
Is written in capital letters equal to or greater in size than the surrounding text.
Is written in larger type than the surrounding text, or in contrasting type, font, or color to the surrounding text of the same size, or set off from the surrounding text of the same size by symbols or other marks that call attention to the language.
Any other functional hyperlink that is so displayed that a reasonable person would notice it.
In the case of an online service, any other reasonably accessible means of making the privacy policy available for consumers of the online service.
The term "operator" means any person or entity that owns a Web site located on the Internet or an online service that collects and maintains personally identifiable information from a consumer residing in California who uses or visits the Web site or online service if the Web site or online service is operated for commercial purposes. It does not include any third party that operates, hosts, or manages, but does not own, a Web site or online service on the owner's behalf or by processing information on behalf of the owner.
The term "consumer" means any individual who seeks or acquires, by purchase or lease, any goods, services, money, or credit for personal, family, or household purposes.
(Added by Stats. 2003, Ch. 829, Sec. 3. Effective January 1, 2004. Section operative July 1, 2004, pursuant to Section 22579.)
Children Online Privacy Protection Act (COPPA)
16 CFR Section 312.4(d) Notice on the Web site or online service.
In addition to the direct notice to the parent, an operator must post a prominent and clearly labeled link to an online notice of its information practices with regard to children on the home or landing page or screen of its Web site or online service, and, at each area of the Web site or online service where personal information is collected from children. The link must be in close proximity to the requests for information in each such area. An operator of a general audience Web site or online service that has a separate children's area must post a link to a notice of its information practices with regard to children on the home or landing page or screen of the children's area. To be complete, the online notice of the Web site or online service's information practices must state the following:
The name, address, telephone number, and email address of all operators collecting or maintaining personal information from children through the Web site or online service. Provided that: The operators of a Web site or online service may list the name, address, phone number, and email address of one operator who will respond to all inquiries from parents concerning the operators' privacy policies and use of children's information, as long as the names of all the operators collecting or maintaining personal information from children through the Web site or online service are also listed in the notice;
A description of what information the operator collects from children, including whether the Web site or online service enables a child to make personal information publicly available; how the operator uses such information; and, the operator's disclosure practices for such information; and
That the parent can review or have deleted the child's personal information, and refuse to permit further collection or use of the child's information, and state the procedures for doing so.
General Data Protection Regulation (GDPR)
Article 13: Information to be provided where personal data are collected from the data subject
Where personal data relating to a data subject are collected from the data subject, the controller shall, at the time when personal data are obtained, provide the data subject with all of the following information:
the identity and the contact details of the controller and, where applicable, of the controller's representative;
the contact details of the data protection officer, where applicable;
the purposes of the processing for which the personal data are intended as well as the legal basis for the processing;
where the processing is based on point (f) of Article 6(1), the legitimate interests pursued by the controller or by a third party;
the recipients or categories of recipients of the personal data, if any; [...]
In addition to the information referred to in paragraph 1, the controller shall, at the time when personal data are obtained, provide the data subject with the following further information necessary to ensure fair and transparent processing:
the period for which the personal data will be stored, or if that is not possible, the criteria used to determine that period;
the existence of the right to request from the controller access to and rectification or erasure of personal data or restriction of processing concerning the data subject or to object to processing as well as the right to data portability;
where the processing is based on point (a) of Article 6(1) or point (a) of Article 9(2), the existence of the right to withdraw consent at any time, without affecting the lawfulness of processing based on consent before its withdrawal;
the right to lodge a complaint with a supervisory authority; [...]
Article 14: Information to be provided where personal data have not been obtained from the data subject
Where personal data have not been obtained from the data subject, the controller shall provide the data subject with the following information:
the identity and the contact details of the controller and, where applicable, of the controller's representative;
the contact details of the data protection officer, where applicable;
the purposes of the processing for which the personal data are intended as well as the legal basis for the processing;
the categories of personal data concerned;
the recipients or categories of recipients of the personal data, if any; [...]
In addition to the information referred to in paragraph 1, the controller shall provide the data subject with the following information necessary to ensure fair and transparent processing in respect of the data subject:
the period for which the personal data will be stored, or if that is not possible, the criteria used to determine that period;
where the processing is based on point (f) of Article 6(1), the legitimate interests pursued by the controller or by a third party;
the existence of the right to request from the controller access to and rectification or erasure of personal data or restriction of processing concerning the data subject and to object to processing as well as the right to data portability;
where processing is based on point (a) of Article 6(1) or point (a) of Article 9(2), the existence of the right to withdraw consent at any time, without affecting the lawfulness of processing based on consent before its withdrawal;
the right to lodge a complaint with a supervisory authority;
from which source the personal data originate, and if applicable, whether it came from publicly accessible sources; [...]


{% extends "pretixcontrol/events/create_base.html" %} {% load i18n %} {% load bootstrap3 %} {% block form %} {% bootstrap_field form.organizer layout="horizontal" %}
{% trans "Please note that you will only be able to delete your event until the first order has been created." %}
{% endblock %}


|
/* ****************************************************************************
*
* Copyright (c) Microsoft Corporation.
*
* This source code is subject to terms and conditions of the Apache License, Version 2.0. A
* copy of the license can be found in the License.html file at the root of this distribution. If
* you cannot locate the Apache License, Version 2.0, please send an email to
*<EMAIL_ADDRESS>By using this source code in any fashion, you are agreeing to be bound
* by the terms of the Apache License, Version 2.0.
*
* You must not remove this notice, or any other, from this software.
*
*
* ***************************************************************************/
#if !CLR2
using System.Globalization;
using System.Linq;
using System.Linq.Expressions;
#else
using Microsoft.Scripting.Ast;
#endif
using System.Collections.Generic;
using System.Diagnostics;
namespace System.Management.Automation.Interpreter
{
/// <summary>
/// Contains compiler state corresponding to a LabelTarget
/// See also LabelScopeInfo.
/// </summary>
internal sealed class LabelInfo
{
// The tree node representing this label
private readonly LabelTarget _node;
// The BranchLabel label, will be mutated if Node is redefined
private BranchLabel _label;
// The blocks where this label is defined. If it has more than one item,
// the blocks can't be jumped to except from a child block
// If there's only 1 block (the common case) it's stored here, if there's multiple blocks it's stored
// as a HashSet<LabelScopeInfo>
private object _definitions;
// Blocks that jump to this block
private readonly List<LabelScopeInfo> _references = new List<LabelScopeInfo>();
// True if at least one jump is across blocks
// If we have any jump across blocks to this label, then the
// LabelTarget can only be defined in one place
private bool _acrossBlockJump;
internal LabelInfo(LabelTarget node)
{
_node = node;
}
internal BranchLabel GetLabel(LightCompiler compiler)
{
EnsureLabel(compiler);
return _label;
}
internal void Reference(LabelScopeInfo block)
{
_references.Add(block);
if (HasDefinitions)
{
ValidateJump(block);
}
}
internal void Define(LabelScopeInfo block)
{
// Prevent the label from being shadowed, which enforces cleaner
// trees. Also we depend on this for simplicity (keeping only one
// active IL Label per LabelInfo)
for (LabelScopeInfo j = block; j != null; j = j.Parent)
{
if (j.ContainsTarget(_node))
{
throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, "Label target already defined: {0}", _node.Name));
}
}
AddDefinition(block);
block.AddLabelInfo(_node, this);
// Once defined, validate all jumps
if (HasDefinitions && !HasMultipleDefinitions)
{
foreach (var r in _references)
{
ValidateJump(r);
}
}
else
{
// Was just redefined, if we had any across block jumps, they're
// now invalid
if (_acrossBlockJump)
{
throw new InvalidOperationException("Ambiguous jump");
}
// For local jumps, we need a new IL label
// This is okay because:
// 1. no across block jumps have been made or will be made
// 2. we don't allow the label to be shadowed
_label = null;
}
}
private void ValidateJump(LabelScopeInfo reference)
{
// look for a simple jump out
for (LabelScopeInfo j = reference; j != null; j = j.Parent)
{
if (DefinedIn(j))
{
// found it, jump is valid!
return;
}
if (j.Kind == LabelScopeKind.Filter)
{
break;
}
}
_acrossBlockJump = true;
if (HasMultipleDefinitions)
{
throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, "Ambiguous jump {0}", _node.Name));
}
// We didn't find an outward jump. Look for a jump across blocks
LabelScopeInfo def = FirstDefinition();
LabelScopeInfo common = CommonNode(def, reference, static b => b.Parent);
// Validate that we aren't jumping across a finally
for (LabelScopeInfo j = reference; j != common; j = j.Parent)
{
if (j.Kind == LabelScopeKind.Filter)
{
throw new InvalidOperationException("Control cannot leave filter test");
}
}
// Validate that we aren't jumping into a catch or an expression
for (LabelScopeInfo j = def; j != common; j = j.Parent)
{
if (!j.CanJumpInto)
{
if (j.Kind == LabelScopeKind.Expression)
{
throw new InvalidOperationException("Control cannot enter an expression");
}
else
{
throw new InvalidOperationException("Control cannot enter try");
}
}
}
}
internal void ValidateFinish()
{
// Make sure that if this label was jumped to, it is also defined
if (_references.Count > 0 && !HasDefinitions)
{
throw new InvalidOperationException("label target undefined");
}
}
private void EnsureLabel(LightCompiler compiler)
{
if (_label == null)
{
_label = compiler.Instructions.MakeLabel();
}
}
private bool DefinedIn(LabelScopeInfo scope)
{
if (_definitions == scope)
{
return true;
}
HashSet<LabelScopeInfo> definitions = _definitions as HashSet<LabelScopeInfo>;
if (definitions != null)
{
return definitions.Contains(scope);
}
return false;
}
private bool HasDefinitions
{
get
{
return _definitions != null;
}
}
private LabelScopeInfo FirstDefinition()
{
LabelScopeInfo scope = _definitions as LabelScopeInfo;
if (scope != null)
{
return scope;
}
return ((HashSet<LabelScopeInfo>)_definitions).First();
}
private void AddDefinition(LabelScopeInfo scope)
{
if (_definitions == null)
{
_definitions = scope;
}
else
{
HashSet<LabelScopeInfo> set = _definitions as HashSet<LabelScopeInfo>;
if (set == null)
{
_definitions = set = new HashSet<LabelScopeInfo>() { (LabelScopeInfo)_definitions };
}
set.Add(scope);
}
}
private bool HasMultipleDefinitions
{
get
{
return _definitions is HashSet<LabelScopeInfo>;
}
}
internal static T CommonNode<T>(T first, T second, Func<T, T> parent) where T : class
{
var cmp = EqualityComparer<T>.Default;
if (cmp.Equals(first, second))
{
return first;
}
var set = new HashSet<T>(cmp);
for (T t = first; t != null; t = parent(t))
{
set.Add(t);
}
for (T t = second; t != null; t = parent(t))
{
if (set.Contains(t))
{
return t;
}
}
return null;
}
}
internal enum LabelScopeKind
{
// any "statement like" node that can be jumped into
Statement,
// these correspond to the node of the same name
Block,
Switch,
Lambda,
Try,
// these correspond to the part of the try block we're in
Catch,
Finally,
Filter,
// the catch-all value for any other expression type
// (means we can't jump into it)
Expression,
}
//
// Tracks scoping information for LabelTargets. Logically corresponds to a
// "label scope". Even though we have arbitrary goto support, we still need
// to track what kinds of nodes that gotos are jumping through, both to
// emit property IL ("leave" out of a try block), and for validation, and
// to allow labels to be duplicated in the tree, as long as the jumps are
// considered "up only" jumps.
//
// We create one of these for every Expression that can be jumped into, as
// well as creating them for the first expression we can't jump into. The
// "Kind" property indicates what kind of scope this is.
//
internal sealed class LabelScopeInfo
{
private HybridReferenceDictionary<LabelTarget, LabelInfo> _labels; // lazily allocated, we typically use this only once every 6th-7th block
internal readonly LabelScopeKind Kind;
internal readonly LabelScopeInfo Parent;
internal LabelScopeInfo(LabelScopeInfo parent, LabelScopeKind kind)
{
Parent = parent;
Kind = kind;
}
/// <summary>
/// Returns true if we can jump into this node.
/// </summary>
internal bool CanJumpInto
{
get
{
switch (Kind)
{
case LabelScopeKind.Block:
case LabelScopeKind.Statement:
case LabelScopeKind.Switch:
case LabelScopeKind.Lambda:
return true;
}
return false;
}
}
internal bool ContainsTarget(LabelTarget target)
{
if (_labels == null)
{
return false;
}
return _labels.ContainsKey(target);
}
internal bool TryGetLabelInfo(LabelTarget target, out LabelInfo info)
{
if (_labels == null)
{
info = null;
return false;
}
return _labels.TryGetValue(target, out info);
}
internal void AddLabelInfo(LabelTarget target, LabelInfo info)
{
Debug.Assert(CanJumpInto);
if (_labels == null)
{
_labels = new HybridReferenceDictionary<LabelTarget, LabelInfo>();
}
_labels[target] = info;
}
}
}
|


Volumetrics
Provider systems SHALL NOT use this volumetric model as a ‘gold standard’ but MAY use it as the basis of developing their own volumetric models.
Scalability
Provider systems SHALL through V&P profiling and solution assurance activities demonstrate how the system can scale as demand increases.
Performance
Command APIs
A command API is any API which performs a user-initiated operation with a side-effect (for example, booking an appointment, registering a patient).
Provider systems SHALL process command API calls in <250ms.
Provider systems SHOULD process command API calls in <100ms, as this is the limit beyond which a user no longer feels that the system is reacting instantaneously.
Query APIs
A query API is any API which performs a user-initiated retrieval of data without any side-effects (for example, searching for a patient’s medication history).
Provider systems SHOULD process query API calls in <1000ms, as this is the limit beyond which a user feels their workflow has been interrupted.
Provider systems SHALL process query API calls in <3000ms.
Volume and performance testing
Suppliers of provider solutions are expected to undertake provider-led V&P testing of their solutions.
V&P testing model
Suppliers SHALL submit for review a high-level V&P testing model document that covers the stages of testing, details of the environment and how they intend to test.
Suppliers’ test approaches SHOULD include a LOAD and a RAMP test and ideally a SOAK test. Suppliers SHALL supply comprehensive results of the test including timings for round-trip API call/response against the message sizes used and the TPS at the time of the request was made.
V&P testing infrastructure scaling
Predictive models of load are provided to give an indication of the likely volume and profile of full production roll-out.
If suppliers are scaling their infrastructure solution over time (such as during First of Type) then the V&P testing must be performed and submitted for review.
Suppliers of provider solutions are expected to scale their infrastructure solutions in line with delivering services within the service level agreement (SLA) and using the V&P testing to proactively monitor and add infrastructure before it is saturated/overloaded.
A plan outlining the points at which infrastructure will be scaled up should be provided after V&P testing is performed.
V&P test environment
Test environments SHALL simulate consumer applications making API calls against simulated test data (such as, patient records, diaries.)
Test data SHALL be populated with realistic complexity, depth and volume - for example, in the case of patients the data should be representative of clinical records of a mix of healthy patients and patients with multiple long-term conditions.
If a small set of test data is repeatedly used as part of the V&P tests then test setup SHOULD seek to minimise the effects of caching - for example, within API middleware (the data from a small number of patients repeatedly queried in quick succession could be served from cache which would invalidate test results).
Volumetric model
Suppliers SHOULD test API call volumes against a refined volumetric model1.
During the LOAD test, the timings for end-to-end API calls SHALL NOT exceed the maximum stated (250ms for command APIs, 3000ms for query APIs) and SHOULD NOT exceed the lower limits (100ms and 1000ms respectively).
Results for the RAMP test SHALL include the TPS and message size profile at the threshold where the above limits were exceeded, if applicable.
If a SOAK test is performed, results SHALL be provided.
1Note: V&P test profiles will differ according to the supplier based on the proportion of patient population whose GP records are held with that supplier.


Ripple (XRP) Price Climbs Above $0.30, BTC & ETH Gaining Traction
- Ripple price is gaining momentum and it recently climbed above $0.3000 against the US dollar.
- The price traded towards the $0.3050 resistance area and it is currently correcting lower.
- Yesterday’s highlighted key bearish trend line was breached with resistance near $0.2940 on the hourly chart of the XRP/USD pair (data source from Kraken).
- There was a decent rise in Ethereum price above the $185 resistance area.
Ripple price is back in a positive zone with bullish moves against the US Dollar and bitcoin. XRP price is likely to continue higher towards the $0.3120 level.
Ripple Price Analysis
Yesterday, we discussed the importance of the $0.2880 support for ripple against the US Dollar. XRP price remained stable above the $0.2880 support and recently started a strong upward move.
There was a break above the $0.2940 and $0.2950 resistance levels. Moreover, the price settled above the $0.2950 resistance area and the 100 hourly simple moving average.
More importantly, yesterday’s highlighted key bearish trend line was breached with resistance near $0.2940 on the hourly chart of the XRP/USD pair. It opened the doors for more gains above the $0.2980 and $0.3000 resistance levels.
Finally, the price tested the $0.3060 resistance area and a high was formed near $0.3056. At the outset, ripple price is correcting lower below $0.3020. It traded below the 23.6% Fib retracement level of the recent wave from the $0.2890 low to $0.3056 high.
However, there are many key supports on the downside near the $0.2980 and $0.2975 levels. Besides, the 50% Fib retracement level of the recent wave from the $0.2890 low to $0.3056 high is likely to provide support near the $0.2975 level.
If there is a downside break below the $0.2975 support area, ripple could extend its decline towards the $0.2950 support. The stated $0.2950 area was a resistance earlier and now it is likely to provide support.
On the upside, an initial hurdle for the bulls is near the $0.3060 area. If there is an upside break above the $0.3060 level, the price is likely to climb higher towards the $0.3120 and $0.3150 resistance levels.
Looking at the chart, ripple price is showing a lot of positive signs above the $0.2950 and $0.2980 support levels. As long it does not decline below $0.2950, there are high chances of more gains above the $0.3060 resistance in the near term.
Technical Indicators
Hourly MACD – The MACD for XRP/USD is currently gaining pace in the bullish zone.
Hourly RSI (Relative Strength Index) – The RSI for XRP/USD is now well above the 60 level, with bullish signs.
Major Support Levels – $0.2980, $0.2950 and $0.2940.
Major Resistance Levels – $0.3060, $0.3120 and $0.3150.


C/C++ Project Properties, Paths and Symbols, Project References
Project references are a powerful way of expressing dependencies between Build configurations in different projects. Specifically they perform 2 roles:
- Automatic propagation of Exported Settings from one project to another which depends on it
- Build, if necessary, referenced projects before dependent project
Unlike the Eclipse Common References page, this page allows setting references to specific configurations.
Since CDT 7 this functionality has been improved:
-
Referenced projects are ordered
and this order can be changed using the buttons provided. Referenced projects are built in the order listed in the dialog, and the order is used in the build for setting up the Include paths and Library link lines.
-
Can reference another configuration in the same project
It's allowed to reference another configuration in the same project.
- Referenced projects which don't exist in the workspace are shown in gray.
- Projects list (main pane)
- Displays all other CDT projects which current project can refer to.
All configurations are displayed for each project. A check mark indicates the configuration is referenced.
Note that only one configuration can be checked in any given project.
[Active] configuration presents in each configs list and represents current active configuration.
Configurations can reference another configuration in the same project.
Referenced projects, which don't exist in the workspace, are shown in gray. - Expand all
- Expands all configuration lists
- Collapse all
- Collapses all configuration lists
- Move up
- Move the project up in the references list
- Move down
- Move the project down in the references list
Available for :- CDT projects
Configuring Project References
- Project Properties, Resource page
- Project Properties, Builders page
- Project Properties, common C/C++ Configurations handling
- Project Properties, C/C++ Build category
- Project Properties, C/C++ General category
- C/C++ Project Properties, Project References page
- C/C++ Project Properties, Run/Debug Settings page


Create well designed websites using HTML5 and CSS3. Join the large community to get access to templates, community forums to interact and get industry feedback on websites you design.
HTML5 and CSS3 has improved on HTML4 and CSS2 by introducing many new and cool features. Developers can now create well designed responsive and interactive sites without the need of plug-ins.
To better understand and have a great appreciation for HTML and CSS, read through Get Started to get a good and deep understanding of the interaction between HTML and CSS.
Once you are ready, you can start the beginner's tutorial on how to create a simple HTML page with CSS. This will guide you on how to create a profile page for yourself.


Toggle navigation
MKA Data
Home
Analytics
My Risk
About
Patient Information
Hey there! We want to know some information about you. This will help us calcuate your personalized risk, but don't worry, this data is kept anonymous and will never be shared with third parties. To get started, please select from the options below.
What's your gender?
How old are you?
0-24
25-34
35-44
45-54
55-64
65 and over
What's your ethnicity?
White
Black
Hispanic
American Indian
Asian/PI
Other/Unknown
Calculate my risk


public class TCPSenderBean extends java.lang.Object implements Sender
The commands are sent inside packets through the network using Transmission Control Protocol (TCP). To achieve this, it is necessary to know the IP address and the port of the board that will receive the package.
| Modifier and Type | Field and Description |
|---|---|
private java.lang.String |
ipAddress
IP address of the remote board.
|
private LEDCommandBean |
ledCommandBean
Bean for rgb leds commands.
|
private MSGCommandBean |
msgCommandBean
Bean for msg commands.
|
private int |
port
TCP port of the remote board.
|
private PWMCommandBean |
pwmCommandBean
Bean for pwm leds commands.
|
| Constructor and Description |
|---|
TCPSenderBean(java.lang.String ipAddress,
int port)
Create a new TCPCommandSender with the data provided.
|
| Modifier and Type | Method and Description |
|---|---|
void |
adjustGreen(byte percentage)
Send the command to adjust the duty cycle of the green led device.
|
void |
adjustRed(byte percentage)
Send the command to adjust the duty cycle of the red led device.
|
void |
adjustWhite(byte percentage)
Send the command to adjust the duty cycle of the white led device.
|
void |
adjustYellow(byte percentage)
Send the command to adjust the duty cycle of the yellow led device.
|
java.lang.String |
getIPAddress()
Return the address of the board to which commands are being sent.
|
int |
getPort()
Return the port of the board to which commands are being sent.
|
void |
sendCommand(java.lang.String command)
Send any command to the remote board over the network.
|
void |
sendMessageRow1(java.lang.String message)
Send the command with the message that the user wants to show
in the first line of the display.
|
void |
sendMessageRow2(java.lang.String message)
Send the command with the message that the user wants to show
in the second line of the display.
|
void |
turnOffLEDs()
Send the command that turns off all colors.
|
void |
turnOnBlue()
Send the command that turns on the blue color.
|
void |
turnOnCyan()
Send the command that turns on the cyan color.
|
void |
turnOnGreen()
Send the command that turns on the green color.
|
void |
turnOnMagenta()
Send the command that turns on the magenta color.
|
void |
turnOnRed()
Send the command that turns on the red color.
|
void |
turnOnWhite()
Send the command that turns on the white color.
|
void |
turnOnYellow()
Send the command that turns on the yellow color.
|
private java.lang.String ipAddress
private int port
private LEDCommandBean ledCommandBean
private MSGCommandBean msgCommandBean
private PWMCommandBean pwmCommandBean
public TCPSenderBean(java.lang.String ipAddress, int port)
ipAddress
- the address of the remote board.port
- the opened TCP port of the remote board.public void sendCommand(java.lang.String command)
Sender
sendCommand
in interface Sender
command
- string to be sent.public void turnOnRed()
Sender
public void turnOnGreen()
Sender
turnOnGreen
in interface Sender
public void turnOnBlue()
Sender
turnOnBlue
in interface Sender
public void turnOnYellow()
Sender
turnOnYellow
in interface Sender
public void turnOnMagenta()
Sender
turnOnMagenta
in interface Sender
public void turnOnCyan()
Sender
turnOnCyan
in interface Sender
public void turnOnWhite()
Sender
turnOnWhite
in interface Sender
public void turnOffLEDs()
Sender
turnOffLEDs
in interface Sender
public void sendMessageRow1(java.lang.String message)
Sender
sendMessageRow1
in interface Sender
message
- the text string to show.public void sendMessageRow2(java.lang.String message)
Sender
sendMessageRow2
in interface Sender
message
- the text string to show.public void adjustWhite(byte percentage)
Sender
adjustWhite
in interface Sender
percentage
- the new duty cycle.public void adjustGreen(byte percentage)
Sender
adjustGreen
in interface Sender
percentage
- the new duty cycle.public void adjustYellow(byte percentage)
Sender
adjustYellow
in interface Sender
percentage
- the new duty cycle.public void adjustRed(byte percentage)
Sender
public java.lang.String getIPAddress()
public int getPort()


Routing.js uses a very straightforward method of testing. We manually construct a series of method calls that the library should execute under normal working conditions. We then use JavaScript to simulate the URL changes, and compare the final result with what the result should actually be. If the end result is anything but perfect, the test is a failure, and this version of Routing.JS is not suitable for use. The expected test results are as follows:
| Token | Reason |
| F[before] | Enter method of F, as it is root |
| F[action] | True action of F, as it is root |
| A[before] | Enter method of A, as it is looped |
| A[action] | True action of A, as it is looped |
| A[leaving] | Exit method of A, as we move to next route |
| B[before] | Enter method of B, as it is looped |
| B[action] | True action of B, as it is looped |
| C[action] | True action of C |
| C[leaving] | Exit method of C, as we move to next route |
| FALLBACK | Rescue a route that wasn't found (D1) |
| FALLBACK | Rescue a route that wasn't found (D2) |
| E[before](parse id=1) | Enter method of a param parsed route |
| E[action](parse id=1) | True action of the route, with param of id=1 |
| E[before](parse id=2) | Enter method of the same route again |
| E[action](parse id=2) | True action of the route, with param of id=2 |
| E[action](check id=3) | True action of the next route, with param id=3 |
| E[leaving](check id=3) | Exit method of parameterized route |
| F[before] | Enter method of F again, our final route |
| F[action] | True action of F, our final route |
| I(one=10, two=20, cached=false) | Setting up a route for verifying caching |
| G[before 1] | First enter method of G |
| G[before 2] | Second enter method of G |
| G[before 3] | Third enter method of G |
| G[before 4] | Last enter method of G - Returns false, stops execution |
| I(one=10, two=20, cached=true) | Verifying caching |
| J | Attach a global .before() function |
| K | Verify the global .before() function |
| L | Attach a global .leaving() function |
| M | Verify the global .leaving() function |
| H(one=N/A, two=N/A) | Optional parameters with only the require part submitted |
| H(one=10, two=N/A) | Optional parameters with one optional part submitted |
| H(one=10, two=20) | Optional parameters two levels deep |
| H(one=10, two=N/A) | Testing "back" functionality |
| #!/param-1/2 | Build path with two mandatory parameters |
| #!/static/param-1/2 | Build path with a static two mandatory parameters |
| #!/param-1/undefined | Build path with two mandatory parameters, one undefined |
| #!/param-1/opt | Build path with one mandatory and one optional parameter |
| #!/param-1/2 | Build path with two mandatory parameters and one optional but undefined parameter |
| #!/param-1/2/ | Build path with two mandatory parameters with trailing slash |
| #!/param-1/undefined/ | Build path with two mandatory parameters, one undefined, with trailing slash |
| #!/param-1/opt/ | Build path with one mandatory and one optional parameter, with trailing slash |
| #!/param-1/2/ | Build path with two mandatory parameters and one optional but undefined parameter, with trailing slash |
| #!/param-1/2 | Build path with two mandatory parameters with hashbang ommitted |
| #!/param-1/undefined | Build path with two mandatory parameters, one undefined, with hashbang ommitted |
| #!/param-1/opt | Build path with one mandatory and one optional parameter, with hashbang ommitted |
| #!/param-1/2 | Build path with two mandatory parameters and one optional but undefined parameter, with hashbang ommitted |
| #!/param-1/2 | Build path with two mandatory parameters and no hasbang requested |
| #!/param-1/2 | Build path with two mandatory parameters where the supplied params are objects with "value" properties |
| Expected | Actual |
|---|---|
|
F[before]
F[action] A[before] A[action] A[leaving] B[before] B[action] C[action] C[leaving] FALLBACK FALLBACK E[before](parse id=1, hasChanged=true) E[action](parse id=1, hasChanged=true) E[before](parse id=2, hasChanged=true) E[action](parse id=2, hasChanged=true) E[action](check id=3, hasChanged=true) E[leaving](check id=3, hasChanged=true) F[before] F[action] I(one=10, two=20, hasChanged=true, true, cached=false) G[before 1] G[before 2] G[before 3] G[before 4] I(one=10, two=20, hasChanged=true, true, cached=true) Global .before() function (param=xyz) Global .leaving() function H(one=N/A, two=N/A, hasChanged=true, true) H(one=10, two=N/A, hasChanged=true, false) H(one=10, two=20, hasChanged=false, true) H(one=10, two=N/A, hasChanged=false, true) #!/param-1/2 #!/static/param-1/2 #!/param-1/undefined #!/param-1/opt #!/param-1/2 - trailing slash tests #!/param-1/2/ #!/param-1/undefined/ #!/param-1/opt/ #!/param-1/2/ - ommitted hashbang tests #!/param-1/2 #!/param-1/undefined #!/param-1/opt #!/param-1/2 param-1/2 #!/param-1/2 |


Linq2Sql
Links
Limitations
SqlServer + SqlServerCe3.5 only. Generally simple single-table mapping, but you can do use an InheritanceMappingAttribute.
It's simple, and Microsoft steers you to Entity Framework, but as a simple ORM it's good enough as long as you Sql-Profile what you're doing. I used it in integration tests when I want to check what the "real" data access layer did to the database.
Mapping
The dbml designer/SqlMetal uses DataAnnotations by default- but you can also use XML.
Entities (and the datacontext) can use a BaseClass. Individual properties (eg binary blobs) can be "DelayLoaded" (i.e. lazy loaded).
Selecting
Selecting with Linq is easy (where, groupby, select projections, paging with skip/take)
Joins
- You can use "join" when there is no explicit assocation
//eager fetching
var dlo = new DataLoadOptions();
dlo.LoadWith<Products>(p => p.Categories);
context.LoadOptions = dlo;
(there's also a DataLoadOptions.AssociateWith to filter subsets of associations)
Updates
Generated entities implement INotifyPropertyChanging/Changed for tracking.
var transport = new Category {CategoryName = "Transport"};
context.Categories.InsertOnSubmit(transport);
context.SubmitChanges();
�
transport.Description = "All about transport";
context.SubmitChanges();
�
context.Categories.DeleteOnSubmit(transport);
context.SubmitChanges();
Concurrency
It uses optimistic concurrency by default (unless the table has a timestamp column - mark it as IsVersion). In designer, set the ColumnAttribute UpdateCheck enum to Always (default), Never or WhenChanged.
try
{
//ConflictMode.FailOnFirstConflict or
context.SubmitChanges(ConflictMode.ContinueOnConflict);
}
catch (ChangeConflictException)
{
foreach (var conflict in context.ChangeConflicts)
{
//RefreshMode.KeepChanges || RefreshMode.KeepCurrentValues
conflict.Resolve(RefreshMode.OverwriteCurrentValues);
}
}
Disconnected entities
Beware of optimistic concurrency (generally best to use timestamp or set each column to [Column(UpdateCheck.Never)])
var original = context.Categories.Where(x => x.CategoryID == 1).Single();
Category clone;
//pretend this is going over a webservice
using (var ms = new MemoryStream())
{
//ensure SerializationMode=Unidirectional
var dcs = new DataContractSerializer(typeof(Category));
dcs.WriteObject(ms, original);
ms.Seek(0, SeekOrigin.Begin);
clone = (Category)dcs.ReadObject(ms);
}
clone.Description = "Chocolate products";
�
//Optimistic concurrency with timestamps
//context.Categories.Attach(clone, true /* mark modified */);
//otherwise
using (var context2 = new NorthwindDataContext())
{
//we need another context or DuplicateKeyException
context2.Categories.Attach(clone, original);
context2.SubmitChanges();
}
Logging
var sw = new StringWriter();
context.Log = sw;
�
context.SubmitChanges();
�
Debug.WriteLine(sw.GetStringBuilder().ToString());
Serialization
Default none, or "unidirectional" (only parent primary key side for foreign keys -uses DataContract serialization)
Mixing in ADO
- ADO: The XDataContext class has a (DbConnection) ctor to use an open connection.


Just In: APC Reveals Fresh PDP Plot In Bayelsa
by George OgboluThe All Progressives Congress (APC) has accused leaders of the Peoples Democratic Party (PDP) of plotting to frustrate collation of results in Bayelsa State.
The APC made the accusation in a statement on Saturday by the Vice-Chairman, Media, APC Campaign Council, Julius Bokoru.
Bokoru, in his statement, alerted security agencies especially the military and the police of an alleged plot by the PDP to unleash violence to subvert the will of the people in Bayelsa.
He said the PDP plan to attack APC strongholds and attack collation officers to stop the results from getting to the collation centres.
According to Bokoru, “We are monitoring what they are doing and we will continue to expose the evil plot of the PDP against the electoral process.
“We have most of the unit results and the people of Bayelsa have spoken and their wish must be respected.
“We are calling on security agencies to be vigilant and stay at alert so as not to be ambushed by unscrupulous and criminal elements hired by the PDP.
“We specifically called on them to pay attention to areas Governor Seriake Dickson has been complaining about.
“We can’t help the governor’s frustration because he is aware before now that the people of Bayelsa are willing and ever determined to end the misgovernance of this state.”


Installation
This is the installation guide for the Apache Module auth_openaidc
.
Apache Web Server
It is assumed that all the hostnames will be dns resolvable; if not, then add the entries in /etc/hosts
file. Run the following commands to install Apache2, enable SSL and restart the server:
sudo apt-get install apache2
service apache2 restart
SSL Configuration
The SSL Module is necessary for the Apache OpenID Connect Module. Please use the following commands to activate the ssl module
.
sudo a2enmod ssl
service apache2 restart
The next step is to create a self-signed SSL Certificate.
-
Create a directory to put the ssl certificates
sudo mkdir /etc/apache2/ssl
-
Generate the certificate
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
-
Answer the questions that are asked. A template is given below
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:Texas
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Gluu Inc
Organizational Unit Name (eg, section) []:Gluu Test
Common Name (e.g. server FQDN or YOUR name) []:gluu.org
Email Address<EMAIL_ADDRESS>Configure Apache to use SSL
This section will guide you through the steps to configure apache to use the SSL module
-
Open the
default-ssl.conf
filesudo vim /etc/apache2/sites-available/default-ssl.conf
-
Update the certificate locations with the newly created certificates
/etc/apache2/ssl/apache.key
and/etc/apache2/ssl/apache.crt
-
Activate the SSl Virtual Host, if you are running
auth_oidc
andGluu Server
in the same machine, and restart Apache Server
sudo a2ensite default-ssl.conf
sudo service apache2 restart
Restart Apache Manually
If Apache Web Server fails and the following error is shown, then Apache Server needs to be stopped manually.
Restarting web server apache2 [fail]
Run the following commands to stop the Apache Server manually:
sudo /etc/init.d/apache2 stop
sudo killall apache2
sudo netstat -l|grep www
sudo /etc/init.d/apache2 restart
Authentication Module (auth_openidc)
Run the following command to download and install the auth_openidc
module:
# wget http://ftp.us.debian.org/debian/pool/main/liba/libapache2-mod-auth-openidc/libapache2-mod-auth-openidc_1.6.0-1_amd64.deb
# dpkg -i libapache2-mod-auth-openidc_1.6.0-1_amd64.deb
If the package is not available, please check this Github Page.
Note: This module depends on libhiredis0.10, libpcre3, & libjansson4
package. If the dependencies are not met, please install them manually using the apt-get
command.
Configuration
This is the configuration guide for the Apache Module mod_auth_aidc
.
Apache Web Server
The default ports for http
and https
are not used for auth_openidc
module, therefore it is necessary to update three files. The changes are done to avoid a conflict with the Gluu Server's Apache ports.
But, if the Gluu Server and the Apache server are different, there is no need to change the ports.
Change port numbers to 44443 (for SSL) and 8000 (for non-SSL) in these three files.
-
/etc/apache2/ports.conf
-
/etc/apache2/sites-available/000-default.conf
-
/etc/apache2/sites-available/default-ssl.conf
Client Registration
There are two methods for client registration:
- Dynamic Client Registration
- Manual Client Registration
The example configuration uses dynamic.gluu.org
as the server name and ce.gluu.org
as the Gluu Server name.
Dynamic Client Registration
The following example shows the configuration for dynamic client registration.
Preparing auth_openidc Module
The OpenID Connect module requires a folder to store the metadata, therefore create a metadata folder and change permission using the following commands.
# mkdir /var/cache/apache2/metadata
# chown -R www-data:www-data /var/cache/apache2/metadata
Please add the following lines in the auth_openidc.conf
configuration file under /etc/apache2/mods-available/
folder.
OIDCMetadataDir /var/cache/apache2/mod_auth_openidc/metadata
OIDCClientSecret secret
OIDCRedirectURI https://dynamic.gluu.org:44443/dynamic/fake_redirect_uri
OIDCCryptoPassphrase secret
OIDCSSLValidateServer Off
Load auth_openidc Module
The module can be enabled using the follwing command:
sudo a2enmod auth_openidc
The Apache Web Server must be restarted to load this module. Pleae run the following command to restart the Apache Server:
sudo service apache2 restart
Note: Restart the server after configuring the module, else the server will not restart and it will throw errors. To check for errors, please chek the errors.log
file in /var/log/apache/
folder.
Preparing Protected Resource
Create a directory named dynamic
inside the /var/www/html
directory using the following command:
sudo mkdir /var/www/html/dynamic
Create a file named index.html
in the dynamic
folder and add the following content:
<html>
<title>
Protected URL
</title>
<body>
Nice to see the protected url via Dynamic Registration
</body>
</html>
Change the ownership of the html
directory using the following command:
sudo chown -R www-data:www-data /var/www/html
Create the apache configuration file named dynamic.conf
in the /etc/apache2/sites-available/
folder and add the following lines in the file:
<VirtualHost *:44443>
ServerName dynamic.gluu.org
DocumentRoot /var/www/html
<Location /dynamic/>
AuthType openid-connect
Require valid-user
</Location>
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>
Note: The example uses a custom port, but if the Apache server is stand-alone in the server, the default 443
port can be used.
Enable Site
The dynamic
site is enabled using the a2ensite
command. Run the commands below to enable the site and restart Apache Server:
sudo a2ensite dynamic.conf
sudo service apache2 restart
Access Site
The dynamic
site can be accessed from the following URL:
https://dynamic.gluu.org:44443/dynamic
Accessing the link will land you in the discovery page.
The usual choice as per present used uris is<EMAIL_ADDRESS>. Note
that you have to use an existing user at the gluuCE along with an
existing uri. An example is<EMAIL_ADDRESS>.
After this the oxAuth page from gluuCE is displayed where you enter the credentials for authentication.
Manual Client Registration
The following example shows the configuration for manual client registration.
Preparing auth_openidc Module
Please add the following lines in the auth_openidc
configuration file.
Add the following lines in /etc/apache2/mods-available/auth_openidc.conf
OIDCRedirectURI https://static.gluu.org:44443/static/fake_redirect_uri
OIDCCryptoPassphrase newsecret
OIDCProviderMetadataURL https://ce.gluu.org/.well-known/openid-configuration
OIDCClientID @!C648.9803.5565.E5CB!0001!0DB0.EEDB!0008!7728.5650
OIDCClientSecret newsecret
OIDCResponseType id_token
OIDCProviderTokenEndpointAuth client_secret_basic
OIDCProviderIssuer https://ce.gluu.org
OIDCSSLValidateServer Off
Run the following command to enable the module:
sudo a2enmod auth_openidc
Preparing Protected Resource
Create a directory named static
inside the /var/www/html
directory using the following command:
sudo mkdir /var/www/html/static
Create a file named index.html
in the static
folder and add the following content:
<html>
<title>
Protected URL
</title>
<body>
Nice to see the protected url via Dynamic Registration
</body>
</html>
Change the ownership of the html directory using the following command:
sudo chown -R www-data:www-data /var/www/html
Create the apache configuration file named static.conf in the /etc/apache2/sites-available/
folder and add the following lines in the file:
<VirtualHost *:44443>
ServerName static.gluu.org
DocumentRoot /var/www/html
<Location /static/>
AuthType openid-connect
Require valid-user
</Location>
SSLEngine On
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
</VirtualHost>
Enable Site
The dynamic site is enabled using the a2ensite
command. Run the commands below to enable the site and restart Apache Server:
sudo a2ensite static.conf
sudo service apache2 restart
Access Site
The static
site can be accessed from the following URL:
https://static.gluu.org:44443/static
This link will lead to the oxAuth page from gluuCE where you enter the credentials for authentication.
There is a possibility that you will see the following error upon login:
Error:
The OpenID Connect Provider returned an error: Error in handling response type.
The apache log will contain the following:
[Fri Jun 05 14:48:28 2015] [error] [client <IP_ADDRESS>] oidc_proto_validate_idtoken: id_token JSON payload did not contain the required-by-spec "sub" string value, referer: https://static.gluu.org:44443/static/fake_redirect_uri
[Fri Jun 05 14:48:28 2015] [error] [client <IP_ADDRESS>] oidc_proto_parse_idtoken: id_token payload could not be validated, aborting, referer: https://static.gluu.org:44443/static/fake_redirect_uri
Getting DN from Client ID
Log into the gluuCE server by running the following command:
sudo service gluu-server login
We get the client id from the search performed in Gluu Server's Web UI. So, to get the DN part we perform the below command. The LDAP password can be stored in /root/.pw or at any other location that is convenient for you. In our case the command is:
/opt/opendj/bin/ldapsearch -T -X -Z -p 1636 -D "cn=Directory Manager" -j /root/.pw -s sub -b "o=gluu" 'inum=@!C648.9803.5565.E5CB!0001!0DB0.EEDB!0008!7728.5650'
Create a file named mod.ldif
with the contents given below. The DN part to be used in mod.ldif is obtained from output of the command above:
dn: inum=@!C648.9803.5565.E5CB!0001!0DB0.EEDB!0008!7728.5650,ou=clients,o=@!C648.9803.5565.E5CB!0001!0DB0.EEDB,o=gluu
changetype: modify
add: oxAuthSubjectIdentifier
oxAuthSubjectIdentifier: @!C648.9803.5565.E5CB!0001!0DB0.EEDB!0008!7728.5650
Then, run the ldapmodify
command to insert the oxAuthSubjectIdentifier as below:
sudo /opt/opendj/bin/ldapmodify -Z -X -h localhost -p 1636 -D "cn=Directory Manager" -j /root/.pw -f /root/mod.ldif
The command may vary depending upon your installation. Next, access this page, and the success message should be visible or <hostname>:44443/static
.


Ever had to work out how my each flatmate should pay for rent? Need a transparent system that is just plain fair? Look no further! Model your flat below and we'll tell you how much each flatmate should pay and why.
Drag and drop rooms onto your flat, and flatmates onto the rooms they will use.
I started flatting over 10 years ago. I quickly realised that while it was easy to guess how much one should be paying to flat, I would resort to complex spreadsheets to justify my gut beliefs. In 2011, I quantified it on my blog.
 People seemed interested and I felt that turning it into a website would be a fun pet project so here we are. I hope it makes your flatting experience just a tad easier.
Controls
Share
Contact Us


Toggle navigation
URL Shortener
Home
API
(current)
URL Shortener
Use
Create new shortened URL
JSON response with shortened link and original link
Use the shortened url
Example
Create
Response
Shortened URL


Is your digital shelf in chaos?
Gain total control of your global, multi-platform digital shelf with Certified Brand Content from ITEMMASTER®. It’s the only content purpose-built to power the digital shelf, open web search, mobile appscape and beyond…
Shoppers trust quality product information and imagery – that’s what ITEMMASTER provides.
ITEMMASTER Brand Activation
Create
Complete, high-quality product images and informative data increase sales – it’s that simple.
Manage
Verified and certified content – your global digital identity, on the latest devices – managed exactly the way you want.
Distribute
Activate your brands across all channels with OnDemand delivery and take complete control of where and how they’re viewed.
Optimize
Future-proof your brand content by supporting SmartLabel™, Mobile, CGI and AR/VR. Make sure to be where your shopper is going.
Products that use large, clear mobile images can improve path to purchase by 46%*. Contact us for ITEMMASTER's latest case summary on proven conversion lifts due to better mobile content.
*comScore UPS Consultation Paper 2015SmartLabel™ Ready
When product content is purpose-built for the digital shelf, it’s easy to be SmartLabel-ready. We make it simple to create, manage, distribute and report your customers’ SmartLabel interaction. Come see us at FMI this June for a Smart Label demo.
Sign UpFuture-Proof Your Content
The future of digital shopping is now, and tomorrow, and the day after. The digital shelf is making leaps and bounds daily, forever increasing in size and form factor. Whether it’s 3D imaging, the latest search and sort trends or whatever comes at you next – let ITEMMASTER deal with it so you can continue to do what you’re passionate about… building your brand.
product impressions powered this year
products in the iM Brand Activation platform
retailers & agencies using our digital shelf-ready products
mobile app customers currently served