The accompanying chart presents graduation rates for the three most recent entering FTFY classes that have had the opportunity to complete baccalaureate degree requirements within the conventional four-year time frame. For the class entering in Fall 2011, four-, five-, and six-year completion rates are displayed; for those entering in Fall 2012, four- and five-year rates; and for Fall 2013 entering students, degree recipients within four years after admission. These data were collected for all three entering cohorts at one point in time, as of Fall 2017. For additional information, contact the Office of Institutional Research Planning and Assessment at (716) 673-4806.
Federal legislation relating to student consumer rights requires all institutions participating in federal student assistance programs to compile and publish completion and graduation rates. The information-gathering requirements are contained in legislation known as the Student Right-To-Know and Campus Security Act as amended by the Higher Education Technical Amendments of 1991.
Title I of the Act has required institutions to disclose completion and graduation rates of full-time certificate or degree-seeking undergraduate students to current and prospective students since July 1. Students are considered to have completed or graduated if they fulfill the program's requirements within 150 % of the normal time allotted for the program, that is six years for baccalaureate programs. Institutions may also augment these completion rates with information concerning students who left the institution prior to completion, and enrolled, within 150 % of the normal time allotted for completion, in a program at an eligible institution for which the prior program provided substantial preparation.
It is important to recognize that students withdraw from college for various reasons, among which are academic, medical, personal, social and financial problems. Completion of degree requirements in more than four years -- the normal time allotted for the baccalaureate degree -- does not necessarily mean continuous enrollment during this interval but rather reflects the time span measured from the student's initial enrollment through degree completion, and where appropriate, includes interruptions in attendance.
Fredonia has undertaken retention studies to determine returning and graduation rates for each new entering FTFY class. These cohort statistics are updated annually by tracking entering classes through the institution over time to arrive at retention figures and ultimately, graduation or completion rates.
Of the 1,114 full-time FTFY students entering Fredonia in Fall 2011, 703 (63%) completed program requirements and were awarded baccalaureate degrees within six years. Of these FTFY students, 48% received their degrees within four years and 61% were awarded their degrees within five years after admission.
In addition to these graduates, the legislation considers students transferring to other institutions as successful outcomes. Statistics provided by the Integrated Postsecondary Education Data System indicates within the six-year time frame, an additional 341 students (31%) of the original entering class transferred to another SUNY institution.
Of those students who had not received a degree from Fredonia or had not transferred in six years, a number were still enrolled/persisted at the institution. As of Fall 2017, four students remained enrolled at Fredonia in pursuit of their baccalaureate degrees.
The six-year attrition (or status-unknown) rate therefore is calculated to be 6% (66 students) of the entering class. This figure reflects those students who left the institution without a degree and were not known to have transferred to another institution.


Register Now for The School of Email Marketing!
Join the School of Email Marketing to learn the basics and beyond. You will learn how to create a successful email marketing system that will help you Attract, Capture and Retain more clients through powerful prospecting sales copy, compelling offers, and professional-looking graphic design. In just 10 online lessons, The School of Email Marketing will show you how to leverage email marketing to Attract, Capture, and Retain more loyal clients, and integrate it with your social media seamlessly.


The best 5 diet and fitness tips for anyone started out who is trying to lose weight and tone up! Also some tips on bloating and water weight as well as motivation! Have a great day!
Weight Loss for Beginners "The Diet Plan"
Copyright © Diet Video Blog. All right reserved.


You've probably searched for that very kissable lipstick and liner tip. You see all kinds of different beauty tips all the time but one of the most often asked questions is "What is the right application of lip liner as well as the lipstick". Let's face it your lips are the first thing people notice next to your eyes. Even if you're having a bad hair day the right lip look will bright up your day. These beauty tips will help you with the right application of lip liner as well as lipstick.
Before you apply lipstick or lip liner choose the right type for instance for the look you what to do. For instance there's glossy, or matte, or even natural. Use what you think will look good on your lips. Consider your skin's complexion and tone.
After you choose your lipstick, find a lip liner that is the same shade as your lipstick. Using a darker lip liner was once a fashion statement but that look is now very much out-of-place with the most fashionistas.
Your lip liner will act as a great barrier that will prevent your lipstick from spilling out into the creases around your mouth, which ruins the look you are going for. Your lipstick application is the lasting touch added to complete your look.
Before you apply your lipstick, dab a small amount of petroleum jelly or lip balm on your lips for moisture.
Draw a thin line with a lip liner around the edges of your lips. Always start on the top lip. Work your lip liner pencil from the center of your upper lip and move in a brushing outward motion. If your lips are thin, then you can create a fuller look by extending the placement of the liner on the outer edges of your lips.
After the lip liner, add lipstick using a brush, the preferred method, or use the tube. Make sure that you have coated your lips evenly.
Use short strokes to help with this.
Blot any excess color with a tissue and reapply a second layer. Use your tissue and blot this once more.
Take a loose translucent powder and lightly brush a layer over your lips. This will help set your makeup in place.
With these simple and easy to follow beauty tips on applying lipstick and lip liner, your lips will look perfect and feel perfect, and definitely kissable all day long.
As a beauty consultant for Mary Kay, Jeneen these are some of the very techniques she helps women learn. If you are searching for the right shade, or want to learn more make up application tips, contact us or browse the Mary Kay shop.
P.S. Don't forget to sign up for our emails list to get more fashion and beauty tips.


Does neuromodulator electrical stimulation work for peripheral pain relief? What is the mechanism of action?
—Jorge Guzman Ortiz, MD, Jayuya, P.R.
Transcutaneous electrical nerve stimulation (TENS) therapy has been commonly employed in the treatment of peripheral pain, but its mechanism of action is unknown and its efficacy is questionable. One proposed mechanism of action is that electrical stimulation reduces pain through nociceptive inhibition at the presynaptic level in the dorsal horn, thereby limiting its central transmission. Another hypothesis suggests endogenous pain control via release of endorphins, enkephalins, and dynorphins. Unfortunately, a recent Cochrane review analyzing 19 randomized controlled trials failed to find sufficient data to perform a meta-analysis and reported that there was inadequate evidence to draw any conclusions about efficacy of TENS (Cochrane Database Syst Rev. 2001;:CD003222). In contrast, percutaneous electrical nerve stimulation (PENS) may be more effective than TENS or exercise therapy, at least in patients with chronic low back pain (J Am Geriatr Soc. 2003;51:599-608). This technique uses acupuncturelike needle probes to stimulate peripheral sensory nerves while bypassing local skin resistance.
Close more info about Electrical stimulation for easing pain?


Today's hot topics: Double Trump, double special counsel, backdoor ObamaCare repeal, Moore meltdown, USCCB message to Vatican, and more!
Today's hot topics: Double Trump, double special counsel, backdoor ObamaCare repeal, Moore meltdown, USCCB message to Vatican, and more!
Andrew Malcolm joins us for Tuesdays with Andrew! The Prince of Twitter and I will discuss all of the hot political stories of the day. Did we get two Trumps for the price of one? And where do Republicans stand on Roy Moore?
Is it time for a special counsel to investigate the Clintons? Don't rush to that conclusion, warns NRO's Andrew McCarthy. He reminds us that we have a Department of Justice for a reason, and that it's far too early for it to abdicate … again. Plus, I'll try to get Andy to speak some Irish on the show. Tá fáilte romhat!
Did Catholic bishops send a message to the Vatican with a key USCCB election? We'll talk with veteran Vaticanista Francis X. Rocca today about whether the USCCB has snubbed the "seamless garment" approach to pro-life issues.


Phantom Retractable Screens, low-maintenance Fiberon Decking, Infratech Infrared Heaters & more!
The front of the home was revamped with a flagstone pathway with a brick border that matches the home's façade and an accentuating Trex outdoor lighting package. Key-Link aluminum rails sit atop the new, custom-designed round portico, which shades/covers the elevated flagstone front porch, and features a hand-sanded cedar tongue-and-groove ceiling and Azek PVC trim. A stone pathway leads to both the main and alternative front entrances of the home.
Stonework/stonemasonry: The curved Pennsylvania flagstone walkway continues to the back of the home. Two stone columns (mated to the fence & gate) form a gateway to the sweeping/curved rear path that meets w/ a curved retaining wall that spans the length of the backyard patio. Eldorado stone was installed on the exterior of the ground floor of the home (including the under-deck space) as well as in the outdoor kitchen area, custom fireplace, & retaining wall.
An elevated sun deck has room for distinct a dining and sitting area, while the large patio features its own cooking space (an outdoor kitchen with a Blaze Grill & fridge) and a covered sitting area with a Samsung television, outdoor audio speakers, Infratech infrared heaters and a timed outdoor lighting package shielded by retractable porch screens.
High-end technology is used to leverage comfort, safety, security, lasting beauty & design, entertaining, and more in a unique design, with the comforts of a recessed hot tub, desgigner ceiling fans, motorized patio screens, and outdoor heaters.
An existing fountain was preserved and integrated into the updated design, while the original deck and stairs footprint was slightly modified to account for an improved design and better low-maintenance materials. Improvements accounted for in the design of this Virginia back patio and entertaining area including a drainage system integrated into the deck floor and the inclusion of an underdeck dry storage area.
The high quality and low-maintenance materials like Fiberon decking, stainless steel accessories, PVC trim, and flagstone require minimum annual upkeep while promising longevity and beauty.
The elevated deck and natural hill block protect the privacy of the recessed hot tub from neighbors on one side of the home, while the retaining wall, outdoor kitchen, and roofed fireplace area strategically shield the recessed hot tub from view from the other side of the home.
This is a practical design with multiple entrances/exits to the home in the front and backyards. Drainage is accounted for and prevents pooling on the deck or patio space, and the new pavilion or covered porch area accounts for hot and cold seasons with fans, heaters, a fireplace, and motorized retractable screens to protect occupants from summer bugs, autumn leaves, and other nuisances that impede outdoor living, with seasonal flexibility in mind.


The Power of Sales vs. Leads | Outsell Inc.
Many moons ago, as we tracked how marketers' spending moved away from advertising and into direct-to-consumer or direct-to-professional activity, we remarked that with everyone having a website anyone could go direct to their market. People looked at us askance until our metrics proved that marketers were moving over $60 billion of spend away from traditional spend categories and into their own websites, their own events, and their own social activities. At the time, we said that advertising would give way to commerce and wrote a report on two main mechanisms for publishers to claw back that spend — by providing marketing services to help marketers reach their own audiences and to move from advertising to lead generation but more so into commerce. We highlighted some publishers doing exciting things — Dwell Media, Bazaar, Hanley Wood, and F+W Media. Good stuff, following our famous line that marketers don't want leads, they want sales. It's one of the reasons we continue to place Amazon high when it comes to their platform brethren: Facebook, Apple, Facebook, Google, and even Netflix. Amazon delivers sales. Netflix and Apple do, of certain media, but not most of what the world sells. Did you hear this week that Amazon is taking on poor Victoria's Secret by selling bras at a fraction of the price? Two weeks ago it was auto parts. A year ago, disposable diapers, undercutting the P&Gs of the world that had used Amazon as a channel for years. While Amazon is gobbling up the world, the other platforms are hanging out in the land of digital advertising. It'll last, but it'll never ever be as powerful as delivering sales, and this week Pinterest did an end around and made it easy for consumers to buy the stuff they see with a click.
Brilliant! Nothing bugs me more than seeing something in a Neiman Marcus catalog or good old fashioned Elle magazine only to go online and search and hunt and scratch the web's surface or comb through 130 pages of Google Links to not find that pretty piece on page 134. The digital world is all about immediate gratification, and Pinterest plays to the needs of marketers and consumers by making what we see easy to buy. Bravo to them. Bravo to folks who get that marketing and advertising is so yesterday and breaking under the strain of the platforms and a digital, social, mobile world. Take us to the cash register or bust, and with one fell swoop, Pinterest landed on the leading edge. Well done for sure. Can't wait to see the results and who follows suit at scale next. Bets anyone?


text:
Pseudagkistrodon rudis is een slang uit de familie toornslangachtigen en de onderfamilie waterslangen (Natricinae).

Naam en indeling
De wetenschappelijke naam van de soort werd voor het eerst voorgesteld door George Albert Boulenger in 1906. Oorspronkelijk werd de wetenschappelijke naam Macropisthodon rudis gebruikt. De soort werd in 1909 door John Van Denburgh aan het geslacht Pseudagkistrodon toegewezen en is tegenwoordig de enige vertegenwoordiger van deze monotypische groep.  De slang werd lange tijd aan het niet langer erkende geslacht Macropisthodon toegekend en veel literatuur gebruikt nog de verouderde naam.

Ondersoorten
De soort telt twee ondersoorten, die onderstaand zijn weergegeven met de auteur en het verspreidingsgebied.

Levenswijze
De vrouwtjes zetten eieren af. De slang staat bekend als erg agressief, maar is niet giftig.

Verspreiding en habitat
De soort komt voor in delen van Azië en leeft in de landen Taiwan en China. De habitat bestaat uit vochtige tropische en subtropische bossen, zowel in bergstreken als in laaglanden, in tropische en subtropische scrublands en in tropische en subtropische graslanden. De soort is aangetroffen op een hoogte van ongeveer 600 tot 2650 meter boven zeeniveau.

Beschermingsstatus
Door de internationale natuurbeschermingsorganisatie IUCN is de beschermingsstatus 'veilig' toegewezen (Least Concern of LC).

Waterslangen

redpajama_set_name: RedPajamaWikipedia


text:
Calvin Chan
Creative Technologist
Building a prototype Javascript engine for MongoDB
This past summer, during my internship at MongoDB, I worked with my partner, Margaret Stephenson, and developed a prototype Javascript engine that significantly improved performance of the $where operator in MongoDB. We also applied certain heuristical optimizations to allow $where to utilize Collection indexes where possible.
MongoDB has a few tricks up its sleeves when it comes to database queries. A unique feature of Mongo is its $where operator. $where lets a user query a database by passing in a custom Javascript function or expression.
db.foo.find({$where: "function() { return this.a == 1; }"})
Essentially, each Document in a particular Collection is binded to the scope of the function or expression (the this variable takes on the value of the Document in question), which is then evaluated for a boolean value. The query succeeds if the evaluation is true, and that particular Document is returned in the response.
This opens up a wide range of possibilities for queries that cannot be expressed simply through Mongo's query language. For example, you cannot perform intra-Document comparisons with query language, but that can easily be achieved through $where.
db.foo.find({$where: "function() { return this.a == this.b; }"})
However, $where has traditionally yielded extremely poor performance compared to Mongo's native query language, often times 2-3 magnitudes slower when performing similar queries.
The chart below shows a few performance tests querying for similar Documents using query language and $where. The simple integer test measured performance in database OPS, performed against an unindexed Collection of 1000 Documents of the form { x : i | 0 < i < 1000 }
// Query Language
db.foo.find({x:1});
// $where with V8
db.foo.find({$where: "function() {
return this.x === 1;
}"})
Before we look at why this performance difference exists, let's go over how data is stored in Mongo.
Data is stored as BSON Documents in MongoDB. BSON stands for Binary JSON. BSON is a binary encoded serialization of JSON like Documents. In short, it is similar to JSON, but contains additional information that allows for the representation of data types that are not part of the JSON specification.
An important thing to note is that Mongo's native query language operates directly on the BSON Documents present in the targeted Collection.
V8 and SpiderMonkey
The underlying magic of $where exists in the Javascript engines that are used by Mongo. Depending on the release version of Mongo that is being used, the engine will either be Google's V8 or Mozilla's SpiderMonkey. These engines evaluate the provided $where Javascript code. For convenience sake, I'll mainly cover V8 (also because V8 was the default engine included with Mongo when we began our internship project), but similar problems exist in both.
One of the main reasons why $where is so slow compared to Mongo's native query language is because V8 and SpiderMonkey do not natively know how to interact with BSON data. Therefore, each Document that is being evaluated in a Collection must first be converted to JSON before being binded to the evaluation scope. Although the overhead of this conversion may not seem like much for a single Document, $where evaluates every single Document in the designated Collection. For large Collections, this BSON to JSON conversion becomes a huge resource hog when taken into consideration that it is done through a Collection scan.
V8 is a highly optimized Javascript "interpreter." However, to call it an interpreter at all is quite the misnomer because V8 utilizes JIT (just-in-time) compilation to perform on-the-fly compilation of Javascript code to machine code. In fact, V8 is composed of not one, but two compilers. The first compiler does a fast pass over the Javascript code. There is very little optimization going on in this first compilation step. However, there is a second compiler, called Crankshaft, that identifies heavily used blocks of code that can be optimized, and recompiles those chunks of code using various optimization methods. While JIT compilation and these optimizations are very well suited for long, web-facing Javascript programs, it is unlikely that they are very useful for short simple Javascript expressions expected by $where. In fact, the overhead of performing these compilations and optimizations may be detrimental, overall.
Here's a diagram of what a $where operation would look like through V8. The red part yields the biggest performance overhead and the yellow parts are also unnecessary performance hogs.
tinyJS
Taking the performance problems behind $where into consideration, Margaret and I created a prototype Javascript engine (which we ended up naming tinyJS) with two main features in mind:
It would include the capability to operate directly on BSON Documents, thus eliminating the performance overhead of the BSON to JSON conversion.
It would omit unnecessary compilation and optimization stages
A short intro to compilers
Seems straightforward enough (right?). Having had zero prior experience with compilers/interpreters between the two of us, we spent the first few weeks of our internship combing through a compilers textbook to learn how to go about starting this project. It became clear that the implementation of this engine would fall into a three distinct parts:
Interpreter/Evaluator
Here's a simple diagram of what our finished implementation would look like:
In writing a Javascript interpreter, the first step was to separate the stream of Javascript code into various tokens. Known as lexing, or tokenization, we used a tool called Ragel that allowed us to define various patterns for each keyword or literal that was part of the Javascript language. Ragel would take these patterns and compile them into fast C state-machine code. Traditionally, compilers textbooks often prescribe a tool called Lex to do the lexing, but Ragel seemed like a cool technology to explore so we used that instead.
After lexing, the parsing stage effectively creates some interpretable representation of the Javascript code. Two particular data structures dominate this phase of compilation/interpretation: parse trees and abstract syntax trees (AST). These two trees are almost the same, with the exception being that parse trees generate a full representation of the provided code, whereas ASTs retain only the necessary information in order for the compiler/interpreter to do its job. In our case, we were only interested in the AST of provided Javascript code.
An important thing to note is the precedence of the tokens. Tokens can be operators or operands, and certain operators will have precedence over other operators. In the context of programming languages such as Javascript, the inclusion of paranthesis in the code can also change normal operation precedence as well. These precedence rules determine the shape and structure of each generated AST. So before we could go on to create an AST generator, we had to figure out how these precedence rules were determined.
Context Free Grammars
In formal language theory, a context free grammar is a set of production rules in the form of
`NT -> RHS, where RHS is a string of terminal, `T, and/or non-terminal, `NT symbols, and RHS can be empty or optional
A language that can be described via a set of context free grammar rules is a language in which each non-terminal symbol ``NT can be replaced with its respective right hand side RHS`. It is considered context free because this replacement can be applied no matter where the non-terminal is in the input.
We created a subset of production rules that covered a significant chunk of the Javascript language. In consideration of time, we did not seek to create a full set of rules that covered all of Javascript (since the purpose of our project was to simply prove that, in the specific case of $where, our engine could be faster than V8 or SpiderMonkey, we did not need to cover the entire set of Javascript production rules).
Back to Parsing
The set of context free grammar rules determines the precedence of tokens when generating the parse tree. At this stage of the compilation/interpretation process, the grammar rules are used by a parser to generate the Abstract Syntax Tree for the provided Javascript input.
Delving deeper into compiler theory, there are several parser generators that take in a set of grammar rules to automatically generate a parser for that particular grammar. Often, the provided grammars are in the form of LL or LR grammars (or some derived form of LL and LR, such as LALR), which (after being passed through the automatic parser generator) lead to a type of bottom-up, table driven parser. A common parser generator that takes in a grammar and generates a LALR parser is YACC.
Although we did toy around with the idea of using table driven parsers, because our set of Javascript grammar rules was but a subset of the full Javascript language, we decided to forego using YACC or other table driven parser generators. Instead, we went wrote our own recursive descent parser based on our subset of the Javascript grammar. Essentially, each non-terminal symbol/token had its right hand sides defined in its own parser method, which recursively calls other non-terminal methods until the entirety of the Javascript input is resolved. These methods attempt to match the provided input tokens with our subset of Javascript grammar rules, constructing an AST with each matched symbol/pattern. Although the resulting parser code was not and never will be as clean or optimized as a table driven parser, it allowed us to easily modify our grammar and parser as the project progressed. At the end of it all, each Javascript function/expression passed through the $where operator would be translated into an AST.
The following function would have an AST as follows:
function() {
return ((this.a < this.b) && (this.c == 1));
After the AST is created, the interpretation stage traverses the tree and evaluates each node. Because the precedence of the tokens were taken into account during the creation of the AST, a simple post-order traversal of the tree would yield the correct results for the evaluation stage.
The generated AST consists of operators and operands. Each operand symbol would simply return its own value, whereas each operator would evaluate its respective operands. Every operator and operand was trivial to implement, with the exception of Document accessors. We made sure to use the native BSON APIs when accessing Document properties, thus eliminating the previously mentioned overhead of BSON to JSON conversion. Each Document in the queried Collection is binded to the scope of the AST and the AST is evaluated for a boolean return value. The boolean value indicates whether or not the Document in question matches the provided $where query.
The following function
evaluated against a Document with the properties {"a" : 2, "b" : 3, "c" : 1}:
So how did our prototype engine fare against V8 and SpiderMonkey? We ran some preliminary tests against the two existing Javascript engines to see whether or not performance improved.
Simple Integer Comparison
Unindexed Collection of 1000 Documents of the form { x : i | 0 < i < 1000 }
db.Collection.find({$where: "function() {
33.6x faster than V8 91.3x faster than SpiderMonkey
Nested Integer Comparison
Unindexed Collection of 13 objects, each with 4 nested levels of 13 fields
return this.d.c.b.a === 1;
Comparison Between Fields
Unindexed Collection of 40,000 Documents of the form { x: i, y: j | 0 < i, j < 2 }
return this.x > this.y;
Unindexed Collection of 1000 Documents of the form { x: i | 0 < i < 1000 }
i = 0; x = 32;
while (i < 1) {
i = i + 1;
x = x + 1;
return this.x == x;
return this.x === (1 + 5) - 2;
Can we do better?
However, Mongo's native query language still outperforms $where queries. A main reason for this is because the native query language takes into account Collection indexes and performs index scans instead of Collection scans wherever possible. This is a simple database query technique that yields huge performance gains.
The last few weeks of our internships were spent trying to implement some type of indexing capability to $where. Since the range of possible $where queries is so large, it is quite a hard problem to tackle (finding all possible optimizations in a provided query is not a trivial task). However, based on a few simple heuristics about the use cases of $where, we were able to identify a few situations which could be optimized.
Mongo's native query language also builds a tree of sorts that determines which operations to perform (let's call this the Mongo tree). $where is actually an operator within that tree. As such, if we could identify parts of the $where AST (the tinyJS tree) that are expressable in Mongo's query language, we could take advantage of potentially indexable queries. By identifying portions of our generated $where AST that performed simple Document property comparisons (i.e. comparisons that can be expressed in query language), we can actually prune our AST and restructure the Mongo tree to include those Document property comparisons. Here's an example:
db.foo.find({$where: function() {return this.a == this.b && this.c < 1;}})
The above query can be restructured to the following:
db.foo.find({$and:[
{c: {$lt:1}},
{$where: function() {return this.a == this.b;}}
]})
The inclusion of the {c: {$lt:1}} comparison in the Mongo tree will allow Mongo's query planner to take advantage of Collection indexes (if foo has a Collection index on the c property).
Here's a diagram of our engine with these optimizations in place:
By implementing this pruning and restructuring optimization, we were able to achieve considerably faster performance with $where when Collections were indexed properly. Here is one test we performed:
Queries run on 5000000 Documents of the form { x: i | 0 < i < 5000000 }
In this particular test, tinyJS yielded performance comparable to Mongo's native query language, in the same order of magnitude (note that the vertical axis of the above chart does not start at zero).
By the conclusion of our internship, we were able to demonstrate that V8 and SpiderMonkey can be improved upon in the very specific use case of MongoDB's $where operator. However, our work is far from complete. At its core, tinyJS is just a prototype project, a proof-of-concept meant to demonstrate the possibilities of running a custom solution. The grammar is incomplete, and without a complete Javascript grammar, it is definitely not production ready. With more time, the lexer and parser can be rewritten to support the full set of Javascript grammars, utilizing better parsers than our naive recursive descent parser. However, in the span of ten weeks, we learned a lot about how compilers and interpreters work, and developed a really fast implementation of a working Javascript engine. And there's just something really cool about that.
Huge shoutout to Margaret for being an amazing internship partner and friend. Big thanks to our mentors, Adam Midvidy and Eliot Horowitz for helping us through this awesome project.

redpajama_set_name: RedPajamaCommonCrawl


text:
Ark schools compete in inaugural Athletics Championship
On Wednesday 8 June schools from across the Ark network came together to compete in the inaugural Ark Athletics Championship.
The day was held at Croydon Sports Arena, where athletes from years 7 and 8 ran, jumped, threw and swung their way through a range of track and field events.
The fixtures included hurdles, high jump, long jump, shot, discus, javelin, and hammer – as well as a number of track events including relay, 100m, 800m and 1500m.
All of the teams involved gave it their best and came away with some great results. At the end of the day when the team scores had been tallied, Ark Globe Academy came away with the overall trophies for both the boys' and girls' events.
Sports are an important part of the extended curriculum at Ark schools and help to build well-rounded young people. Days like our Athletics Championship foster community across our network, but also give students the opportunity to compete against a wider group of young people from across the country.
Jon Bonnett, Assistant Principal at Ark Globe and PE subject lead, said, "Our goal is to ensure that schools offer the same sporting opportunities, and that staff are well-equipped to deliver them. It has been a real motivator for some schools as they can now say they can achieve and compete with others."
Ark Globe only started their Athletics Club 20 months ago. The school invested time and money to ensure that their students had access to athletics on the grounds. Athletics was not part of the curriculum but allowed many students to channel their efforts and frustration as they emerged from the pandemic into something both constructive and good for their wellbeing. The results of their efforts have been tremendous.
Matt Jones, Executive Principal of Ark Globe, explained, "We created the Ark Globe Athletics Team in 2021. Our students had never trained to compete in competitions before and weren't aware of their potential. We didn't even have enough running shoes – 65 athletes had to share 30 pairs of spikes. Despite this, at the English Schools Athletics Cup in June 2021, both boys' teams became London and regional champions, with the juniors coming fifth in the country."
Jon is particularly proud of one student who is thriving. He said: "She's been doing hammer throw training, which she picked up at the start of Year 8. She's now in Year 9 and representing London at the English Schools Athletics Competition against the top 10 best hammer throwers in the country.
"She doesn't compete at a club. She's learnt the hammer from literally picking it up, and now she's going to the English Schools' Final. The biggest change we've seen in her is increased confidence and belief that she can succeed. She's technically as good as the students who compete weekly for their clubs, so we've ensured that she has the right kit and shoes, therefore removing a barrier that her peers might not face. We want her to have the best opportunity and boost her confidence so she can excel."
"We have run five network-wide competitions that culminated with the Athletics Championship, but now we want to ramp it up and have a lot more planned for next year and beyond."
News Archive 2019
Primary schools across England will be supported to adopt an approach to teaching maths that has been shown to improve pupil achievement.


Balanced, elegant and harmonious, offering a beautiful interplay of plum, currant and berry aromas and flavors shaded by sweet vanilla and spice notes. The tannins are smoothly integrated. Finishes lean and muscular, hinting at chocolate and tea.


After watching some of the futile games this last weekend, there seems to be an unsung hero on the Seattle roster. Who? None other than Brandon League.
The theme of the season is OPS. No one has it.
Seattle always loses close games and tie games. Seattle loses almost every game that goes into extra innings, and Seattle loses almost every game where there is a close score. These games are embarrassing and they have been the tone for the season. The fans and the team always find themselves hoping for big hits that will never come.
In these games, Brandon League is usually the man of the hour. He is always leveraged to pitch through the nastiest part of the opponent's lineup, and then he is often forced to pitch extra innings when the score is tied. He does this, without notice, on back to back days, all year long without complaining.
The man is proving respectable numbers when leveraged into these awful situations. The highlights are a 3.64 ERA and a 1.2 WHIP. Now, these aren't the flashiest numbers in the game, but consider how demoralizing it must be to do League's work. The fans will not appreciate him, because the team will lose. He will not get a save or a win. No matter how many innings of perfect baseball he pitches, the Mariners will not score and will lose in extra innings. I have watched too many games where the good part of the Seattle lineup is tamely dealt with by the opposition, and then League is inserted to keep the game going. If he pitches well, then the hitting is given another chance to fail and he has to pitch extra innings. If he pitches poorly, then the night is over, and everyone can go home and forget the game ever happened.
Now, let us talk about League's weaknesses: He throws the sinker ball and the fork ball. If the sinker is being thrown for strikes, he is having a good night. The sinker is a formula for sustained success, but it is not unhittable. He has mediocre control. He is like Felix without the curveball. He makes the best of what he has, and he never psychologically cracks.
We generally think highly of ordinary men who are tough, and are sent to prosecute hopeless positions, against long odds, and without any support. The 300 Spartans, the Alamo, the Japanese stand at Iwo Jima all are remembered as the most heroic kind of event: the last stand. The men who fought these events give us inspiration to lose well. League is the face of the Mariners' last stand, and he is under the lights in close losing games when the rest of the team is allowed to slink into the dugout and eat sunflower seeds and chew tobacco.
If David Aardsma is the D.A., then Brandon League is certainly the Public Defender. He doesn't pick his battles but he always fights them.
Now, consider that Brandon Morrow is still flaky. He still walks everyone, he puts up a bad ERA and in general would not have been the M's fourth best starter on the year. He does put up a mean strikeout total though.
So, the Ms. traded someone who was flashy and ineffective for someone who was less flashy but more effective. However, League still has some sizzle. If you look at the raw pitches, League has some nasty ones. He is doing something right when a 98 mph four seam fastball is his third best pitch.
Since May 16, Brandon Morrow has pitched 72 innings, striking out 73 and walking 23, for a K/9 of 9.13 and a BB/9 of 2.88, numbers that could win a Cy Young. He's walked more than 3 only once in those last 12 games and gone 6 or more innings in 9 of them and 7 or more innings 4 times. His ERA in that span has been a solid 3.75. I think it's safe to say he's figured it out. That's not to say I'm necessarily dissapointed in Brandon League, but I think it's safe to say we lost that trade pretty badly.
I don't think Morrow is going to stay healthy, but that a huge loss right now.
I stand corrected. I hope Morrow does turn into a great player. We could certainly use a guy with those kind of numbers with Cliff Lee gone.
If he was here, we wouldn't have League. We would be stuck with the DA and a bunch of other suspect characters. That might have demoralized the starting pitchers. Further, the M's have started winning extra-inning games as of late, two in a row!!!, which inflates League's importance.
Notice in last night's game, they played the DA after Felix, so they could save League for the long haul. Side note: I don't think Felix has ever pitched better. Were any of his pitches more than 1 inch above the strike zone? Were any below it?


One of the most common causes of vomiting in adults is gastroentiritis. This is an infection of the gut usually caused by bacteria or a virus, which will normally improve within a matter of a few days.
However, vomiting can occasionally be a sign of something more serious, such as appendicitis. If you are feeling very unwell and are worried about your vomiting, we recommend you see a doctor.
you've been vomiting repeatedly for more than a day or two.
you're unable to keep down any fluids because you are vomiting repeatedly.
your vomit is green (this could mean you are bringing up a fluid called bile, which suggests you may have a blockage in your bowel).
you have sign of severe dehydration, such as confusion, a rapid heartbeat, sunken eyes and passing little or no urine.
you've lost a lot of weight since becoming ill.
your experience frequent episodes of vomiting.
You should also see your doctor if you have diabetes and have been vomiting persistently, particularly if you need to take insulin. This is because prolonged vomiting can affect your blood sugar levels.
sudden and severe (sharp) abdominal pain.
blood in your vomit or what looks like coffee granules.
a stiff neck and a high fever.
severe headache and sudden migraines.
or your believe you may have swallowed something toxic or poisonous.
If you have diarrhoea and vomiting, it's likely you have gastro. This is usually one of the most common causes of vomiting.
This is usually because of a virus. Your immune system will usually fight off the infection after a few days. Please read Treating Gastroenteritis to understand what you need to do.
Pregnant women typically experience nausea and vomiting regularly, particularly during the first few months of pregnancy. This is often called "morning sickness", although it can occur throughout the day.
In most cases, morning sickness will develop at some point during the first three months of pregnancy and will pass by about weeks 16-20.
If you have recorring episodes of vomiting along with intense, throbbing headaches that last for a few hours to days at a time, you may be experiencing migraines.
Please read our guide to treating headaches and managing migraines to understand what you can do combat and manage these episodes.
If vomiting is accompanied by dizziness and feelings of vertigo (spinning and disorientation), it may be caused by an inner ear infection - labyrinthitis.
Labyrinthitis will usually improve over a few days, and a doctor can prescribe medication to reduce these symptoms, if required.
Nausea and vomiting ca sometimes occur while travelling. This could be motion sickness.
Symptoms can be improved by using a technique that involves fixing your eyes on the horizon or distracting yourself by listening to music. Medication can also be sought that can improve and treat motion sickness, if required.
Appendicitis can cause vomiting and severe tummy pain. If you experience severe and sharp stomach pain or worse then immediately present at your nearest hospital's emergency room. These may be signs of a burst appendix.
certain medicines, such as antibiotics or opioid painkillers.
a blockage in your bowel, which may be caused by a hernia or gallstones.
In most cases, you won't need any specific treatment and you can easily take care of yourself at home until you feel better.
The most important thing you can do is to keep taking small sips of water frequently so you don't become dehydrated. Mainting fluids is the best way to combat and manage vomiting.
You may also find ginger helps to relieve your nausea and vomiting. And of course rest and taking it easy will help until you feel better.


text:
Justia Patents Network Resource AllocatingUS Patent Application for Method and Apparatus for Allocating a Server in an Ims Network Patent Application (Application #20080215736)
Method and Apparatus for Allocating a Server in an Ims Network
A method, apparatus, and application server for dynamically allocating an application server within an IP Multimedia Subsystem (IMS). A Serving Call/Session Control Function (S-CSCF) receives a user request and queries a central database to determine whether the user is allocated to an application server. If so, the S-CSCF forwards the request to the allocated application server. If the user is not already allocated to a server, the S-CSCF allocates the user to an application server and forwards the request to the newly allocated application server. The S-CSCF or the newly allocated application server sends a request to the central database to record the allocation.
This application claims the benefit of U.S. Provisional Application No. 60/700,683 filed Jul. 19, 2005, the disclosure of which is incorporated herein by reference.
The present invention relates to a method and apparatus for allocating a server in an IP Multimedia Subsystem network and in particular, though not necessarily, to a method and apparatus for dynamically allocating an application server to an IP Multimedia Subsystem user.
BACKGROUND TO THE INVENTION
IP Multimedia services provide a dynamic combination of voice, video, messaging, data, etc. within the same session. By growing the number of basic applications and the media which it is possible to combine, the number of services offered to the end users (e.g. subscribers) will grow, and the inter-personal communication experience will be enriched. This will lead to a new generation of personalised, rich multimedia communication services, including so-called "combinational IP Multimedia" services.
IP Multimedia Subsystem (IMS) is the technology defined by the Third Generation Partnership Project (3GPP) to provide IP Multimedia services over mobile communication networks (3GPP TS 22.228, TS 23.228, TS 24.229, TS 29.228, TS 29.229, TS 29.328 and TS 29.329 Releases 5 to 7). IMS provides key features to enrich the end-subscriber person-to-person communication experience through the use of standardised IMS Service Enablers, which facilitate new rich person-to-person (client-to-client) communication services as well as person-to-content (client-to-server) services over IP-based networks. The IMS makes use of the Session Initiation Protocol (SIP) to set up and control calls or sessions between subscriber terminals (or subscriber terminals and application servers). The Session Description Protocol (SDP), carried by SIP signalling, is used to describe and negotiate the media components of the session. Whilst SIP was created as a subscriber-to-subscriber protocol, IMS allows operators and service providers to control subscriber access to services and to charge subscribers accordingly.
By way of example, FIG. 1 illustrates schematically how the IMS fits into the mobile network architecture in the case of a GPRS/PS access network (IMS can of course operate over other access networks). Call/Session Control Functions (CSCFs) operate as SIP proxies within the IMS. The 3GPP architecture defines three types of CSCFs: the Proxy CSCF (P-CSCF) which is the first point of contact within the IMS for a SIP terminal; the Serving CSCF (S-CSCF) which provides services to the subscriber that the subscriber is subscribed to; and the Interrogating CSCF (I-CSCF) whose role is to identify the correct S-CSCF and to forward to that S-CSCF a request received from a SIP terminal via a P-CSCF.
A subscriber registers with the IMS using the specified SIP REGISTER method. This is a mechanism for attaching to the IMS and announcing to the IMS the address ("contact") at which a SIP subscriber identity can be reached. In 3GPP, when a SIP terminal performs a registration, the IMS authenticates the subscriber, and allocates an S-CSCF to that subscriber from the set of available S-CSCFs. Whilst the criteria for allocating S-CSCFs is not specified by 3GPP, these may include load sharing and service requirements. It is noted that the allocation of an S-CSCF is key to controlling (and charging for) subscriber access to IMS-based services. Operators may provide a mechanism for preventing direct subscriber-to-subscriber SIP sessions which would otherwise bypass the S-CSCF.
During the registration process, it is the responsibility of the I-CSCF to select an S-CSCF if an S-CSCF is not already selected. The I-CSCF receives the required S-CSCF capabilities from the home network's Home Subscriber Server (HSS), and selects an appropriate S-CSCF based on the received capabilities. [It is noted that S-CSCF allocation is also carried out for a subscriber by the I-CSCF in the case where the subscriber is called by another party, and the subscriber is not currently allocated an S-CSCF.] In the case where multiple HSSs are deployed in a network, a Subscription Locator Function (SLF) is used by the I-CSCF to identify the correct HSS for a subscriber. When a registered subscriber subsequently sends a session request to the IMS, the P-CSCF is able to forward the request to the selected S-CSCF based on information received from the S-CSCF during the registration process.
Within the IMS service network, Application Servers (ASs) are provided for implementing IMS service functionality. Application Servers provide services to end-subscribers in an IMS system, and may be connected either as end-points over the 3GPP defined Mr interface, or "linked in" by an S-CSCF over the 3GPP defined ISC interface. In the latter case, Initial Filter Criteria (IFC) are used by an S-CSCF to determine which Applications Servers should be "linked in" during a SIP Session establishment (or indeed for the purpose of any SIP method, session or non-session related). The IFCs are received by the S-CSCF from an HSS during the IMS registration procedure as part of a subscriber's Subscriber Profile.
FIG. 2 illustrates the IMS Service Control (ISC) interface between an AS and an S-CSCF, as well as other interfaces within the IMS. Although the AS in FIG. 2 is shown as having only a single interface to an S-CSCF, it will be appreciated that in practice the ISC interface will extend across a communication network to which many (or all) of the CSCF servers of a given operator's network are connected, allowing an AS to communicate with all of these CSCFs. [Other entities illustrated in FIG. 2 will be well known to those of skill in the art.]
A further interface (Ut) exists between the AS and the subscriber terminal (TS23.002) although this is not shown in the Figure. The Ut interface enables the subscriber to manage information related to his or her services, e.g. creation and assignment of Public Service Identities, management of authorisation policies that are used for example by "presence" services, conference policy management, etc.
In the IMS as defined in 3GPP, whilst subscribers are statically allocated to an HSS, it is the ASs that provide specific value in the case of services provided by the network. A reading of the 3GPP specification in Releases 5 and 6 suggests that subscribers are allocated to particular SIP ASs in a fixed manner. The basic concept is that a subscriber is provisioned to be supported by a specific SIP AS for a given service or services. In order to enable the allocated S-CSCF to reach the allocated AS over the ISC interface, the filter criteria (contained within the IFC sent to the S-CSCF from the HSS) for that subscriber for that service contain either a fully qualified domain name (FQDN) or IP address as the destination address (encoded as a SIP-URI). This implies, for example, that when the S-CSCF identifies that a particular INVITE should be routed to an AS, the S-CSCF is provided with the address of the specific AS over the Cx interface. In order to identify the correct AS for other interfaces, e.g. such as the Ut interface between the subscriber terminals and the SIP-ASs, routing proxies are provisioned with the address of the AS for the particular subscriber. Where subscribers are allocated to specific ASs, then either the terminal is configured with the address of the AS for that interface and service, or the terminal sends the request to an entity that knows how to retrieve the address of the AS for that subscriber. A "front end" could do this and, in such a case, the routing functionality would be configured into the front end.
As will be clear from the above discussion, the existing proposal for the allocation of ASs to subscribers requires the provisioning of a subscriber to a specific SIP application server for a given service or set of services. This requires a high level of availability and persistent storage of data on the ASs as, if a single ASs becomes temporarily unavailable or does not retain the appropriate information, the provisioned service(s) will be unavailable to the subscribers to whom the AS is allocated. Adopting this approach may require the building-in of redundancy to each AS. Furthermore, static subscriber allocation complicates the operational aspects of a network and makes actions such as re-allocation of subscribers to ASs a non-trivial task. Such re-allocation may be required for example when the number of subscribers in a network grows to a point where additional capacity (processing power, memory, etc) is required.
According to a first aspect of the present invention there is provided a method of directing requests to an application server within an IP Multimedia Subsystem, the method comprising:
upon receipt of a request associated with an IP Multimedia Subsystem user at an entity of the IP Multimedia Subsystem, querying a database to determine whether or not the user is allocated to an application server;
if it is determined that the user is not allocated to an application server, allocating the user to an application server at said entity, forwarding the request from said entity to the allocated application server, and sending a request from the application server or said entity to said database to cause the allocation to be recorded there; and
if it is determined that the user is allocated to an application server, forwarding the request from said entity to the allocated application server.
Embodiments of the present invention provide a means to handle the dynamic allocation of users of an IP Multimedia Subsystem to Session Initiation Protocol application servers (SIP-ASs). The advantages of dynamic allocation of users are that the requirement for persistent storage of allocation data is loosened, and that it is easier to change and upgrade the network architecture, e.g. by introducing a new application server.
Said request may be a Session Initiation Protocol request or a request according to any other protocol (e.g. Ut interface) destined for an application server of the user.
Preferably, said step of querying a database to determine whether or not the user is allocated to an application server is carried out in accordance with the Session Initiation Protocol.
In one embodiment of the invention, said IP Multimedia Subsystem entity is a Serving Call Session Control Function. In this case, the query and response to the query are sent to the Home Subscriber Server over the Cx interface.
In an alternative embodiment, said IP Multimedia Subsystem entity is a front end distributor or a "representative" application server which acts as a single logical application server to the rest of the network. For requests received from the user at a Serving Call Session Control Function of the IP Multimedia Subsystem, the Front-End distributor is located between the application servers and the Serving Call Session Control Function, on the ISC interface. Upon receipt of the request at the Serving Call Session Control Function, the Serving Call Session Control Function queries a Home Subscriber Server in order to identify the Front-End distributor to which the request should be sent. The query may return to the Serving Call Session Control Function an identification of a single Front-End distributor, or may identify a group of Front End distributors from which one Front-End distributor is selected.
Alternatively, the Front-End distributor may receive requests from the user over the Ut interface.
The Front-End distributor may be a standalone node within the IP Multimedia Subsystem. Alternatively, it may be a functional entity residing on an application server. In the latter case, the Front-End distributor may forward a request to the application server on which it resides, or to another application server depending upon the application server to which the user is allocated.
Said database may be provided at a Home Subscriber Server. Allocation of users to application servers may be stored in the Home Subscriber Server using the transparent and/or non-transparent ISC interface. Other, alternative centrally maintained databases may include LDAP directories and relational/object databases available over interfaces such as SQL, JDBC, ODBC. It is also possible for the database to be maintained at a plurality of locations within the network. For example, in the case where the entity performing the application server allocations is an FE-DIST, a copy of the database may be provided at each FE-DIST.
Preferably, said request sent from the application server or said entity to said database includes one or more addresses of the application server. An address may be included for each interface to which the application server is connected.
In the event that the user has not previously been allocated to an application server, the application server will obtain subscriber data from the Home Subscriber Server. For previously allocated users, the application server may have retained the subscriber data. Subscriber data may be retained by the application server regardless of whether or not the user has been de-registered/unregistered from the IP Multimedia Subsystem.
In some implementations of the invention, an application server receiving a request from said entity may forward the request to a further application server and/or may cause the allocation of the user to that other server to be recorded at said database.
According to a second aspect of the present invention there is provided apparatus for use in an IP Multimedia Subsystem network, the apparatus comprising:
means for receiving a request associated with an IP Multimedia Subsystem user;
means for querying a database to determine whether or not the user is allocated to an application server;
if it is determined that the user is not allocated to an application server, means for allocating the user to an application server, and for forwarding the request to the allocated application server; and
if it is determined that the user is allocated to an application server, means for forwarding the request to the allocated application server.
Said apparatus may be provided within a Serving Call Session Control Function server. Alternatively, the apparatus may reside at an application server or may be a standalone node within the IP Multimedia Subsystem.
According to a third aspect of the invention there is provided a method of directing Session Initiation Protocol requests to an application server within an IP Multimedia Subsystem, the method comprising:
upon receipt of a Session Initiation Protocol request associated with an IP Multimedia Subsystem user at a Serving Call Session Control Function of the IP Multimedia Subsystem, forwarding the request to a first application server acting as a redirection server;
at the first application server, querying a database to determine whether or not the user is allocated to an application server;
if it is determined that the user is not allocated to an application server, allocating the user to a second application server at said first application server, and returning a redirection request to the Serving Call Session Control Function identifying the second application server; and
forwarding the request from the Serving Call Session Control Function to the second application server.
Said redirection request may comprise one or more of the following SIP messages, sent in response to the Session Initiation Protocol request:
"300 Multiple Choices"
"302 Moved Temporarily".
The Serving Call Session Control Function may cache the identity/location of the second application server such that subsequent requests can be forwarded directly to the second application server. This is facilitated for example using the "301 Moved Permanently" or "302 Moved Temporarily" responses.
According to a fourth aspect of the present invention there is provided an application server for use in an IP Multimedia Subsystem, the server comprising:
means for receiving a request, associated with an IP Multimedia Subsystem user, from a Serving Call Session Control Function;
means for querying a database to determine whether or not the user is allocated to an application server and, if not, for allocating to the user a second application server; and
means for returning a redirection request to the Serving Call Session Control Function identifying the second application server.
FIG. 1 illustrates schematically the integration of an IP Multimedia Subsystem into a 3G mobile communications system;
FIG. 2 illustrates schematically certain entities of the IP Multimedia Subsystem including an Application Server and a Serving Call/State Control Function together with the various interfaces;
FIG. 3 illustrates schematically the use of a FE-DIST to allocate IMS users to application servers at IMS user registration;
FIG. 4 illustrates schematically the use of a FE-DIST to handle originating and terminating calls after user registration;
FIG. 5 illustrates schematically the use of a FE-DIST to handle terminating calls to an unregistered user;
FIG. 6 illustrates schematically the use of a FE-DIST to handle requests received over a non-SIP interface for an IMS registered user;
FIG. 7 illustrates schematically the use of a FE-DIST to handle requests received over a non-SIP interface for an unregistered user;
FIG. 8 illustrates signalling associated with building an application server database a representative application server;
FIG. 9 illustrates signalling and process steps associated with the use of a representative application server to select an application server and cause message redirection to the selected server;
FIG. 10 illustrates signalling and process steps associated with the use of a representative application server in the case of a received INVITE where an already assigned application server is active; and
FIG. 11 illustrates signalling and process steps associated with the use of a representative application server in the case of a received INVITE where an already assigned application server is inactive.
DETAILED DESCRIPTION OF CERTAIN EMBODIMENTS
The 3GPP Technical Standards referenced above describe the use of initial filter criteria (IFC), which are stored in the HSS, and which are sent to a Serving Call/Session Control Function (S-CSCF) node either upon registration of a subscriber or when a terminating call is made to an unregistered subscriber. Conventionally, an IFC for a subscriber contains a specific SIP Application Server (AS) address, e.g. as a Fully Qualified Domain Name (FQDN). This identifies the AS that is allocated to that subscriber for a given service. [It is possible for an IFC to contain two or more AS addresses corresponding to respective IMS services.] If the AS address in the IFC is a SIP-URL, a DNS is used to resolve the SIP-URL to an IP address. The S-CSCF may cache the association between the specific SIP-AS address and the IP address for reasons of efficiency. This caching is typically in the DNS client of the S-CSCF of the system and is cached on a per-node basis, not on a per subscriber basis.
The following discussion assumes, by way of example, that a flexible and dynamic approach to SIP-AS allocation is used. This involves replacing the specific AS address stored in the Initial Filter Criteria (IFC) at the Home Subscriber Server (HSS) with a generic AS identity, e.g. SIP-AS-service.operator.com, in the event that a dynamic SIP-AS allocation has not already been completed. Rather than directly identifying one or a group of ASs, this identity identifies a new functional entity within the IMS, referred to here as a Front End Distributor, or "FE-DIST". The FE-DIST may alternatively be known as a "representative AS". The FE-DIST sits between the S-CSCF and the ASs on the ISC interface. At registration of a subscriber—or upon call termination for an unregistered subscriber—the IFC is downloaded to the S-CSCF across the Cx interface in accordance with the procedures described in 3GPP TS 23.228; 3GPP TS 29.228 and 3GPP TS 29.229. The generic identity of the SIP-AS is resolved to either a specific name, e.g. FE-DIST.operator.com, which is further resolved to an IP address, or the generic identity is resolved directly to an IP address. Existing DNS methods are used for the resolution process. [In the case where the generic identity is resolved to a specific name which is further resolved to an IP address, two round trips between the S-CSCF and the DNS are required.] The IFC triggers the provision of a third party registration message, i.e. a SIP REGISTER message, by the S-CSCF to the FE-DIST function. The S-CSCF does not cache the association between the subscriber and the selected FE-DIST address at this stage.
The FE-DIST functionality may be a functional entity that resides on every SIP-AS that offers the (required) service, or may be deployed as a standalone node. It is of course possible to combine these two approaches when a service is deployed and installed in a network, i.e. equip certain ASs with FE-DIST functional entities that co-exist with standalone FE-DIST nodes. The Figures referred to below and which are used to explain the proposal show the FE-DIST and the ASs (on which the Application Logic resides) as separate functional entities.
FIG. 3 illustrates schematically functional entities within an IP Multimedia Subsystem (IMS) which facilitate the provision of services to a subscriber terminal. FIG. 3 also illustrates, by way of example, procedural steps associated with the dynamic allocation of subscribers to IMS Application Servers (AS1 to ASn) enabled by Front End Distribution entities (FE1 to FEn). It is assumed here that application server allocation occurs at registration, but this may happen at other times.
1a The subscriber terminal initiates a REGISTRATION process by sending a SIP REGISTER message to the IMS network and is allocated to one of the S-CSCFs according to 3GPP defined procedures.
1b During the registration process, the service profile for the subscriber is downloaded from the HSS. This profile contains the IFC.
2a After completing the registration process, the S-CSCF understands that it should send a third party REGISTRATION to the application server name identified in the IFC. The application server name is a generic name. The S-CSCF requests the IP address from a DNS server. The DNS server responds back with the address of one or a number of available FE-DISTs. Note that the S-CSCF interprets the address as an AS address and no change to the functionality of the S-CSCF is required.
2b The S-CSCF selects one of the returned IP addresses as the address to forward the REGISTER message to.
2c The third party REGISTER message is sent to the selected FE-DIST.
2d The FE-DIST checks if the subscriber has already been allocated to an AS by querying a central database stored at the HSS over the Sh interface. If so, the REGISTER message is forwarded to the allocated AS. If the look up operation indicates that the subscriber is not yet allocated to an AS, the FE-DIST chooses an AS and sends the REGISTER message to the chosen AS.
3 Upon receiving the third party registration, the AS performs the following tasks:
It stores a mapping between its address and the subscriber identity in the HSS. The Address that the AS stores is in fact an array of different address for the different interfaces. For example, there may be different address for the reception of SIP messages, HTTP traffic etc.
It retrieves the subscriber data from the central location (e.g. HSS or other central repository). The AS subscribes to the central location so that it will be informed of changes to the subscriber data.
In the short term, the SIP-AS may store the mapping between its address and the subscriber identity in the HSS using transparent data (over the Sh interface: transparent data is not understood by the HSS). In the long term, the mapping may be added to the non-transparent data in the HSS.
It will be appreciated that, rather than store the database referred to at step 2b at a single location, i.e. the HSS, multiple copies may be stored at various locations within the network. For example, each FE-DIST may store its own copy of the database.
Upon completion of the process illustrated in FIG. 3, a SIP-AS has been allocated to the subscriber, and the SIP-AS has retrieved a copy of the required subscriber data and is ready to serve the subscriber
Upon de-registration of a subscriber to the IMS, the subscriber can remain allocated to the SIP-AS and the subscriber data maintained by the FE-DIST/AS/HSS does not have to be cleared. This allows a clear separation of the subscriber/AS allocation procedure from the IMS/SIP Registration procedure, providing the advantage that subscriber data retrieval frequency is lowered as compared to when the allocation procedure is coupled to the SIP/IMS registration procedure.
With reference to FIG. 4, the procedure for handling originating and terminating IMS "calls" for an already registered subscriber will now be described, making reference to the process steps numbered in the Figure.
1a A SIP request (e.g. SIP INVITE) relating to the user is received by the S-CSCF.
2a The S-CSCF analyses the initial SIP request, and the S-CSCF requests the IP address, based upon the SIP-AS name received from the HSS over the Cx interface, from a DNS server. The DNS server responds back with one or a number of addresses to available FE-DISTs. Note that the S-CSCF interprets the address as an AS address and the functionality of the S-CSCF is unchanged.
2b If necessary, the S-CSCF selects one of the returned addresses which will point to a FE-DIST
2c The initial SIP message is sent to the provided or selected FE-DIST address.
2d The receiving FE-DIST identifies the AS allocated to the subscriber by performing a look up in the HSS over the transparent Sh (or by inspecting its own copy of the database if this is provided).
3 The SIP request is sent to the SIP-AS. The SIP-AS has a copy of the data for the subscriber from the (previously carried out) registration process. It proceeds to process the SIP request.
With reference to FIG. 5, the procedure for handling terminating IMS "calls" for an unregistered subscriber will now be described, making reference to the process steps numbered in the Figure.
1a The S-CSCF receives a terminating SIP request (e.g. SIP INVITE).
1b The service profile is downloaded to the S-CSCF from the HSS. This contains the initial filter criteria.
2a The S-CSCF analyses the initial SIP request, and the S-CSCF requests the IP address from a DNS server (based upon the SIP-AS name received from the HSS over the Cx interface). The DNS server responds to the S-CSCF with one or a number of addresses to available FE-DISTs.
2b If necessary, the S-CSCF selects one of the returned addresses to forward the initial SIP message to.
2c The initial SIP message is sent to the selected FE-DIST.
2d The FE-DIST identifies the AS allocated to the subscriber by performing a look up in the HSS over the transparent Sh.
3 The SIP request is sent to the SIP-AS. Assuming that the subscriber has remained allocated to the SIP-AS, even though the subscriber was IMS de-registered/un-registered, the SIP-AS will have a copy of the data for the subscriber from the previous registration process. It proceeds to process the SIP request. [If the AS has lost the subscriber data for some reason. this would have been discovered in step 2d. A new AS would have been allocated, and the chosen AS would have fetched the subscriber data from the central location.]
The procedure proposed here for allocating and routing SIP requests may also be applied in the case where requests arrive at the IP Multimedia Subsystem over the Ut interface.
FIG. 6 illustrates the case where a SIP request is received over the Ut Interface and the user in question has already been allocated to an AS. The illustrated and numbered steps are as follows:
1. A request is received within the IMS over the Ut interface. The request is terminated on a FE-DIST for the service represented by that front end.
2. The FE-DIST requests the AS address from the HSS over the Sh interface.
3. The explicit AS address is returned over the Sh interface to the FE-DIST.
4. The Request is forwarded to the explicit address and, for example, an XML Document Management Server (XDMS) on the serving AS.
FIG. 7 illustrates the case where a SIP request is received over the Ut Interface and the user in question has not already been allocated to an AS. The illustrated and numbered steps are as follows:
1. A request is received over the particular interface. The request is terminated on a FE-DIST for the service represented by that front end.
3. An indication that no AS has been allocated is returned.
4. The FE-DIST selects an AS (it may use other databases to obtain the names of valid ASs).
5. The request is forwarded to the selected AS and the XMDS.
6. The selected AS performs the following:
The SIP-AS may choose to register itself as the serving AS for the subscriber and if it does it will store its explicit address in the HSS. [This may not be required if the transaction is to occur only once and it is not expected that there will be subsequent requests.]
Read the application specific subscriber data from the central data storage (typically the HSS).
Process the request.
Whilst FIGS. 6 and 7 are concerned specifically with the Ut interface, it will be appreciated that the FE-DIST may handle requests received over other interfaces. Whilst other interfaces have yet to be standardised, an example might be where an application server implements both ISC and OSA, and the Parlay protocol is used in OSA.
An alternative mechanism for facilitating the dynamic allocation of users to application servers involves implementing a FE-DIST which is able to allocate users to some service related application server and cause SIP requests to be redirected to that application server. This new FE-DIST acts essentially as an application server working in re-direct mode, and must know beforehand the names or addresses of all the ASs that are going to share the load of users. Hence the FE-DIST must contain a table with the addresses of ASs to which users can be assigned dynamically. The list of AS names or addresses may be set in the FE-DIST in two different ways:
1. Manually configured (by means of an operations and maintenance tool, a command-line interface or any other means).
2. Automatically by the ASs themselves. In this approach, when an AS is brought on-line, it will send a SIP REGISTER message to the FE-DIST with the SIP URI of the AS in the From and To headers and a Contact header holding the name or address of the AS. FIG. 8 illustrates the SIP signalling associated with this automatic configuration process.
Note that in any given network there may be ASs to which users can be dynamically allocated and ASs that do not have this capability and to which users must therefore be statically allocated.
Allocation of a user to an AS will be performed when the user accesses the IMS network, e.g. when he or she registers in the network. When this happens, the S-CSCF receives a SIP REGISTER message. Based on trigger information (IFCs) downloaded from the HSS, the S-CSCF forwards the REGISTER message to the FE-DIST. This procedure is well known and defined in IMS standards. Now, the FE-DIST needs to assign one AS to the registering user. It checks its pre-configured list of ASs and, based on some criteria, it selects an AS and returns its name or address as a Contact header in a "300 Multiple Choices" answer to the S-CSCF. The FE-DIST takes note of the identity and/or address of the selected AS and stores this together with the user identifier received in the REGISTER request in its table of user identifier-AS mappings. An AS can be selected for example based upon its current occupancy level, its use level (in case that the FE-DIST receives load reports from ASs), its state of operation (in case that the FE-DIST is able to obtain information about the working status of ASs).
The S-CSCF, on reception of the FE-DIST answer, forwards the REGISTER request (slightly modified as a 3rd-party registration) to the AS as instructed by the FE-DIST. Eventually the S-CSCF will receive a "200 OK" response from this or another (in case some other redirection takes place) AS, and it will forward the response back to the previous hop in the path of the REGISTER request (normally some I-CSCF).
For further SIP requests related to the now registered user, the S-CSCF forwards each new request to the FE-DIST after matching it against its trigger information, as it did with the REGISTER request before. This however poses the problem that each and every new SIP request has to be resolved via the FE-DIST, worsening the response time of the overall network and increasing the load on the S-CSCF and FE-DIST functions.
A possibly improved approach is for the FE-DIST to answers to the REGISTER with a "301 Moved Permanently" response when it finds out that the user identified in the REGISTER has already been allocated to an AS. This enables the S-CSCF to cache the AS address included in the response so that no further related SIP requests are sent to the FE-DIST.
Another approach is for the FE-DIST to answer to the REGISTER with a "302 Moved Temporarily" response including an Expires header with a pre-defined time. This allows the S-CSCF to cache the AS address for that pre-defined time. When this time expires, the S-CSCF will query the FE-DIST on reception of a further SIP request for the user. The advantage of this approach is that it will reduce the load on the FE-DIST whilst still allowing re-allocation of the user to a new subscriber, for example if a previously allocated AS fails.
One simple way to install the redirection reported by the FE-DIST (in the "300 Multiple Choices" or "302 Moved Temporarily") in S-CSCF is to overwrite the destination AS field in the trigger information of the trigger that fired the forwarding of the request to the FE-DIST. Note that in the "302 Moved Temporarily" case, the S-CSCF must retain the old destination server for the trigger so that it may recover it when the time set by the 302 answer expires.
In the cases where the FE-DIST implements a redirection in the S-CSCF, when the HSS subsequently updates the trigger information stored in S-CSCF for a user, any temporary or permanent redirection installed in the S-CSCF for that user must be removed. If the redirection has been installed by overwriting the trigger information, this will of course happen automatically when storing the new trigger information sent by HSS.
FIG. 9 illustrates how the FE-DIST handles an initial SIP request from a user. The request may be a REGISTER as illustrated, or some other request for which the FE-DIST does not have registered any user id-AS binding.
FIG. 10 illustrates how a further SIP request for an already registered user is handled by the FE-DIST, assuming use of the "302 Moved Temporarily" response.
FIG. 11 illustrates a procedure for handling re-location of a user from a non-working AS to another AS. Note that if the service being provided by the new AS requires registration (i.e. a REGISTER request must have been received prior to using the service), the approach presented will only work as long as the new AS is able to access the pre-existing registration information in some way (e.g. if all the ASs share a common registrations database that keeps working even if individual ASs fail).
It will be appreciated by the person of skill in the art that various modifications may be made to the above described embodiments without departing from the scope of the present invention.
1. A method of directing requests to an application server within an IP Multimedia Subsystem, the method comprising the steps of:
upon receipt of a request associated with an IP Multimedia Subsystem user at an entity of the IP Multimedia Subsystem, querying a centrally maintained database to determine whether or not the user is allocated to an application server:
if it is determined that the user is not allocated to an application-server, allocating the user to a newly allocated application server by said entity, forwarding the request from said entity to the newly allocated application server, and sending a notification from the newly allocated application server or said entity to said database to cause the allocation to be recorded there; and
if it is determined that the user is allocated to a previously allocated application server, forwarding the request from said entity to the previously allocated application server.
2. The method according to claim 1, wherein the step of querying a centrally maintained database to determine whether or not the user is allocated to an application server is carried out in accordance with the Session Initiation Protocol.
3. The method according to claim 1, wherein the IP Multimedia Subsystem entity is a Serving Call Session Control Function.
4. The method according to claim 1, wherein said IP Multimedia Subsystem entity is a Front-End distributor which acts as a single logical application server to the rest of the network.
5. The method according to claim 4, further comprising, upon receipt of the request at a Serving Call Session Control Function, the steps of:
sending a query from the Serving Call Session Control Function to a Home Subscriber Server in order to identify the Front-End distributor to which the request should be sent, and
receiving at the Front-End distributor an identification of the Front-End distributor.
6. The method according to claim 1, wherein said request is a Session Initiation Protocol request.
7. The method according to claim 4, wherein said request is received at said entity over a Ut interface.
8. The method according to claim 1, wherein said database is provided at a Home Subscriber Server.
9. The method according to claim 8, wherein the allocation of users to application servers is stored in the Home Subscriber Server using the transparent and/or non-transparent ISC interface.
10. The method according to claim 4, wherein said database is provided at the Front-End distributor.
11. The method according to claim 4, wherein the Front End distributor caches received application server allocation data and subscribes to changes of this data.
12. The method according to claim 1, wherein the notification sent from the application server to said database includes one or more addresses of the application server.
13. The method according to claim 8, wherein, in the event that the user has not previously been allocated to an application server, the newly allocated application server obtains subscriber data from the Home Subscriber Server.
14. The method according to claim 13, wherein, for previously allocated users, the previously allocated application server retains the subscriber data regardless of whether or not the user has been de-registered/unregistered from the IP Multimedia Subsystem.
15. An apparatus for use in an IP Multimedia Subsystem network, the apparatus comprising:
means for querying a centrally maintained database to determine whether or not the user is allocated to an application server;
if it is determined that the user is not allocated to an application server, means for allocating the user to a newly allocated application server, and for forwarding the request to the newly allocated application server; and
if it is determined that the user is allocated to a previously allocated application server, means for forwarding the request to the previously allocated application server.
16. An apparatus according to claim 15, the apparatus forming part of a Serving Call Session Control Function server.
17. An apparatus according to claim 15, the apparatus residing at an application server or being a standalone node within the IP Multimedia Subsystem.
18. A method of directing Session Initiation Protocol requests to an application server within an IP Multimedia Subsystem, the method comprising the steps of:
upon receipt of a Session Initiation Protocol request associated with an IP Multimedia Subsystem user at by a Serving Call Session Control Function of the IP Multimedia Subsystem, forwarding the request to a first application server acting as a redirection server;
at the first application server, querying a centrally maintained database to determine whether or not the user is allocated to a previously allocated application server;
if it is determined that the user is not allocated to a previously allocated application server, allocating the user to a second application server by said first application server, and returning a redirection request to the Serving Call Session Control Function identifying the second application server; and
19. The method according to claim 18, wherein said redirection request comprises at least one of the following SIP messages, sent in response to the Session Initiation Protocol request: a 301 Moved Permanently message; and a 301 Moved Temporarily message.
a 300 Multiple Choices message;
20. The method according to claim 18, wherein the Serving Call Session Control Function caches the identity/location of the second application server such that subsequent requests can be forwarded directly to the second application server.
21. An application server for use in an IP Multimedia Subsystem, the application server comprising:
means for querying a centrally maintained database to determine whether or not the user is allocated to a previously allocated application server and, if not, for allocating to the user a newly allocated application server; and
means for returning a redirection request to the Serving Call Session Control Function identifying the newly allocated application server.
Publication Date: Sep 4, 2008
Inventors: Bo Astrom (Stockholm), Anders Ryde (Saltsjobaden), Stefan Berg (Bonn), Hubert Przybysz (Hagersten), Stephen Terrill (Madrid), Jesus-Javier Arauz-Rosado (Madrid)
Current U.S. Class: Network Resource Allocating (709/226)
International Classification: G06F 15/173 (20060101);


[CES 2017] Tanvas intends to change the way in which we make use of our touchscreens through their breakthrough technology that is known as the TanvasTouch. TanvasTouch happens to be a kind of programmable surface haptic technology which will allow one to feel what one's sees on the touch display, now how about that for a greater and more immersive level of interactivity?
It does not matter whether the TanvasTouch is used in industries such as retail, consumer electronics and gaming, advertising, automotive, visual impairment and the arts, the potential for it is vast and some say, limitless. Those who adopt it are able to come up with applications that incorporate infinite textures and lifelike effects. Utilizing knowledge in the branch of surface haptics, TanvasTouch offers real-time control of the forces acting between a fingertip and the touch surfaces, making it a truly unique experience that cannot be found on ordinary touchscreen displays, even those with haptic feedback.
Imagine being able to feel what a fabric is like when you are trying to determine your online purchase of clothing. Or how about getting an idea on the wooden grain that runs all over the table which you saw in an online portal? It would be interesting to see how TanvasTouch is implemented in gaming — presumably it would work great in Augmented Reality (AR) situations.
Filed in Gadgets. Read more about CES and CES 2017.


I was doing a MySQL UPDATE operation and obviously it shouldn't create new records. So why would it throw an duplicate entry exception? It can make you scratching your head for a bit of time if you're not aware.
The problem is actually quite simple, you are updating multiple records, having the PRIMARY KEY or UNIQUE KEY included in the input data and the resulting UPDATE operation matches more than one row. Hence one or more rows having a different PRIMARY KEY or UNIQUE KEY is being updated with the input value which already exists in another row and the attempt to update the other rows throws a duplicate error.
Fix this by simply using the UNIQUE KEY or PRIMARY KEY in the WHERE condition.


text:
Active Transportation Subcommittee
Bylaws & Resolutions Committee
Community, Economic and Human Development Committee
Energy and Environment Committee
Executive Administration Committee
FirstNet Subcommittee
Goods Movement Subcommittee
High-Speed Rail and Transit Subcommittee
Joint Meeting
Joint RTP/SCS Subcommittees
Legislative / Communications & Membership Committee
Open Data / Big Data Smart and Connected SCAG Region Committee
Open Space Conservation Working Group
President's Strategic Plan
Public Health Subcommittee
Public Health Working Group
Regional Transportation CEOs Committee
RHNA and Housing Element Reform Subcommittee
Scholarship Committee
Sustainability Subcommittee
Transportation Finance Subcommittee
Note: These meetings will not convene in person. All meetings will be teleconference-only until further notice.
The role of the Community, Economic and Human Development Committee is to study problems, programs and other matters which pertain to the regional issues of community, economic and human development and growth. This committee reviews projects, plans and programs of regional significance for consistency and conformity with applicable regional plans.
The CEHD Committee has oversight of the Growth Visioning and Growth Forecasting processes, as well as the Regional Housing Needs Assessment, the Intergovernmental Review effort and the monitoring and analysis of the Regional Economy.
Agendas and related documents for SCAG Regional Council and Policy Committee Meetings are available here. For agendas older than 24 months, please contact:
Maggie Aguilar
aguilarm@scag.ca.gov
The Energy & Environment Committee considers environmental and energy issues of regional significance, including but not limited to air quality, water quality, solid and hazardous waste, habitat preservation, environmental justice, and environmental impact analysis.
The role of the Transportation Committee is to study problems, programs and other matters which pertain to the regional issues of mobility, air quality, transportation control measures and communications, and make recommendations on such matters to the Regional Council.
Major programs that are under the purview of Transportation Committee are Regional Transportation Plan (RTP), Regional Transportation Improvement Program (RTIP), Aviation, Highway, Transportation Finance and Transportation Conformity.
While each SCAG policy committee is responsible for specific areas related to regional planning, issues sometimes arise within the region that pertain to all of the committees . To address these broad issues of concern, SCAG holds Joint Meetings of the Policy Committees on as as-needed basis several times a year.
Agendas and related documents for Joint Meeting of SCAG Regional Council and Policy Committees are available here. For agendas older than 24 months, please contact:
The Legislative/Communications and Membership Committee provides guidance and recommendations to the Regional Council regarding legislative matters impacting the region, policy direction on SCAG's communications strategy, outreach, issues and materials, SCAG membership benefits and sponsorship opportunities.
Agendas and related documents for Legislative / Communications & Membership Committee meetings are available here. For agendas older than 24 months, please contact:
Staff Contact:
Kevin Gilhooley
gilhooley@scag.ca.gov
Overview October 4, 2020
The Emerging Technologies Committee will research and identify new and emerging technologies that play an important role in the RTP/SCS; and for the three (3) policy committees (CEHD, EEC and TC) to utilize the Emerging Technologies Committee as a resource.
Framework:
Identify technological and societal trends (e.g. Mobility as a Service; Zero Emission, Autonomous and Connected Vehicles; Smart Cities and Intelligent Transportation Systems) that may fundamentally alter the use of the region's transportation system.
Frame potential policy considerations to enable the region to harness the benefits of emerging technologies that reduce sprawl, vehicle miles traveled (VMT), and greenhouse gas (GHG) emissions.
Highlight opportunities for under-represented, disadvantaged communities to utilize emerging technologies.
Explore technologies which, while in a nascent or testing stage, remain relevant to the future of the region's transportation system.
Philip Law
law@scag.ca.gov
The Special Committee on Equity and Social Justice will advise the Regional Council on policies and practices to:
end racial and social disparities internal to the agency
strengthen the way it engages and convenes to protect and expand community voice and power
work in partnership with others to close the gap of racial injustice and better serve our communities of color, and in so doing, serve all the people of the region.
Proposed Activities
Establish an agency‐wide definition of "equity" to build shared understanding.
Provide guidance on the development of SCAG's internal Equity, Diversity, and Inclusion work plan.
Review SCAG's public participation plan and stakeholder engagement strategies.
Develop an Equity Inventory Report, which would catalogue SCAG's existing equity‐related activities.
Establish an Equity Framework containing quantitative and qualitative indicators of existing inequities and disparities that exist in the region.
Prepare a set of policies and recommendations to guide and sustain SCAG's regional leadership in service of equity and social justice.
wagner@scag.ca.gov
Staff Report on Racial and Social Justice and SCAG's Policy Statement
SCAG Regional Council Resolution No. 20-623-2


Although NVIDIA has already launched GeForce GT 640 cards, which were offered for an OEM market, it seems that it will also be released as a retail product . Company is preparing another three variants of this graphics card, which are probably the same as those produced for OEMs.
All three variants will arrive on 5th June at Computex in Taipei. Even though all models of GT 640 will be quite cheap, they differ in price and specs, providing slightly different performance. According to specs provided by KitGuru, those card are likely the same cards offered for OEM market, which are now coming to retail.
One of them is low-profile, other are full width. Card have different memory clocks, types, interfaces and size. They also differ in CUDA cores count. You can check detailed specs in the following table (these are the OEM cards). KitGuru claims that there's a possibility of the card with four display outputs, so some manufacturers may release this card as a dual-slot solution.


text:
Q: How to use PostSharp LoggingAspect in controller? I am trying to execute some logging logic after a method is done executing. So, I used the basic example described here by Postsharp as follows:
[PSerializable]
public class LoggingAspect : OnMethodBoundaryAspect
{
  public override void OnExit(MethodExecutionArgs args)
  {
     Console.WriteLine("The {0} method has exited.", args.Method.Name);
  }
}

Then, I try to use this attribute LoggingAspect on different methods. It works on all methods except those in the controller class like the following:
[ApiController]
    [Route("[controller]/[action]")]
    public class HomeController : ControllerBase
    {
        [LoggingAspect]
        [HttpGet]
        public IEnumerable<Student> Get(string number, int? year)
        {
            ...
        }
    }

I expected the attribute LoggingAspect to work on all methods, however it did not work in the controller. Am I missing something?

A: It turns out I was not referencing Postsharp in the project I was using the LoggingAspect attribute in. It wasn't obvious at first as there were no build or runtime errors in that project.

redpajama_set_name: RedPajamaStackExchange