text:
Daily Compliance Item- 1.30.15- 17.31.1.3- Outside Team
01/30/2015 JumpforwardLeave a comment
Goal is a men's soccer student-athlete at Ocean State University (OSU). Goal wants to participate on an outside team this spring. Which of the following must occur in order for his participation to be permissible?
A. Goal may not begin participating before May 1st.
B. Goal may not miss any class time for practice or competition
C. No more than 4 OSU teammates may participate on Goal's team (total limit of 5 OSU student-athletes)
The answer is D. NCAA Bylaw 17.31.1.3 states that in soccer, women's volleyball, field hockey and men's water polo, a student-athlete may compete outside of the institution's declared playing and practice season as a member of an outside team in any noncollegiate, amateur competition, provided: (Adopted: 1/14/97 effective 8/1/97, Revised: 4/22/98 effective 8/1/98, 1/12/99 effective 5/1/99)
(a) Such participation occurs not earlier than May 1;
(b) In soccer, women's volleyball and field hockey, the number of student-athletes from any one institution does not exceed the applicable limits set forth in Bylaw 17.28.2;
(c) The competition is approved by the institution's director of athletics;
(d) No class time is missed for practice activities or for competition; and
(e) In women's volleyball, all practice and competition is confined to doubles tournaments in outdoor volleyball, either on sand or grass.
Daily Compliance Item- 1.29.15- 10.3, 10.3.1- Superbowl
Lucky Larry is an athletic department staff member at New England University. Lucky and some of his friends decided to place a small bet for the Super bowl this weekend. Since Lucky's institution does not sponsor football, he thought it was permissible to place the bet.
Is it permissible for Larry to bet on the Super bowl?
No. NCAA Bylaw 10.3.1 states that the prohibition against sports wagering applies to any institutional practice or any competition (intercollegiate, amateur or professional) in a sport in which the Association conducts championship competition, in bowl subdivision football and in emerging sports for women. (Adopted: 4/26/07 effective 8/1/07)
NCAA Bylaw 10.3 states that the following individuals shall not knowingly participate in sports wagering activities or provide information to individuals involved in or associated with any type of sports wagering activities concerning intercollegiate, amateur or professional athletics competition: (Adopted: 4/26/07 effective 8/1/07)
(a) Staff members of an institution's athletics department;
(b) Nonathletics department staff members who have responsibilities within or over the athletics department (e.g., chancellor or president, faculty athletics representative, individual to whom athletics reports);
(c) Staff members of a conference office; and
(d) Student-athletes.
Daily Compliance Item- 1.28.15- 14.4.3.5.6- Repeating a Course
Lead Off is a junior baseball student-athlete at Ocean State University. Lead completed 14 hours during the fall 2014 semester. Three of those hours, however, were not accepted as degree credit because he did not earn the minimum grade to fulfill graduation requirements for his degree program. Lead is re-taking the class during the spring 2015 semester.
Since he was not able to use the class to meet graduation requirements during the fall semester, can he use the credits earned during the spring semester as long as he earns the minimum grade required?
Yes. NCAA Bylaw 14.4.3.5.6 states that credit for courses that are repeated may be used by a student to satisfy the minimum academic progress requirements only under the following conditions:
(a) A course repeated due to an unsatisfactory initial grade may be used only once, and only after it has been satisfactorily completed;
(b) Credit for a course that may be taken several times (e.g., a physical education activities course) shall be limited by institutional regulations; and
(c) Credits earned in courses that may be taken several times may not exceed the maximum institutional limit for credits of that type for any baccalaureate degree program (or for the student's specific baccalaureate degree program once a program has been designated).
Daily Compliance Item- 1.27.15- 13.02.5.5.2- Official Visit During Dead Period
Mid Fielder is a soccer prospect that is going to sign a National Letter of Intent (NLI) with Ocean State University (OSU) during the February NLI signing period. If Mid signs the NLI on the morning of February 4th, is he permitted to take an official visit at OSU later that day and attend a home basketball game at 9pm?
Yes. NCAA Bylaw 13.02.5.5.2 states that a prospective student-athlete is no longer subject to the application of a dead period after one of the following events occurs: (Adopted: 1/16/10 effective 8/1/10, Revised: 1/15/11 effective 8/1/11, 1/19/13 effective 8/1/13, 11/25/13)
Daily Compliance Item- 1.26.15- 17.1.7.4.2- Canceled Competition
Ocean State University men's basketball team was scheduled to play Mid-East University last night. Due to inclement weather, the game was canceled an hour before tipoff. As long as the student-athletes did not participate in any countable athletically related activities, can the team use that day as its required day off? Yes. NCAA Bylaw 17.1.7.4.2 states that when an institution's competition is canceled prior to the start of competition or canceled prior to the competition being considered a completed event in accordance with the playing rules of that sport, an institution may use that day as its required day off, provided the institution does not engage in any further countable athletically related activities during that day. (Adopted: 1/16/93)
Daily Compliance Item- 1.23.15- Current Event
Conferences form coalition to improve student-athlete experience
A group of 32 college athletic conferences announced Thursday the creation of a coalition hoping to protect and improve the student-athlete experience.
The coalition, which will be named the "Coalition to Protect the Student-Athlete Experience," will aim to bolster the current benefits that student-athletes receive through communication and input on improvement.
Here is the full release provided by the coalition:Faced with potential changes that could impact universities of all sizes in all regions of the country, a group of 32 conferences today announced the creation of a coalition designed to protect and improve the student-athlete experience.The coalition includes all conferences of all sizes throughout Division I. The coalition will serve as a loosely knit forum for the conferences to join together to communicate the many benefits student-athletes receive and to provide input on ways to continuously improve the student-athlete experience."For generations, college athletics have been a crucial part of the educational experience. Thanks to the way college sports are run, student-athletes gain an education, learn skills, and have opportunities in life. But today, those benefits are being challenged," said Craig Thompson, the commissioner of the Mountain West Conference.
"We're proud of what has been done for student-athletes across the collegiate landscape, recognizing that athletics are an important part of the academic experience," Thompson added. "I'm pleased every Division I conference has joined together to protect and improve the college experience."
Under the coalition, named the "Coalition to Protect the Student-Athlete Experience," individual institutions and conferences will continue to make their own decisions about benefits or other items that fall under their individual purviews.
The 32 conferences of the CCA supporting the formation of the coalition are the America East, American, Atlantic 10, Atlantic Coast, Atlantic Sun, Big 12, Big East, Big Sky, Big South, Big Ten, Big West, Colonial Athletic Association, Conference USA, Horizon League, Ivy League, Metro Atlantic Athletic, Mid-American, Mid-Eastern Athletic, Missouri Valley, Mountain West, Northeast, Ohio Valley, Pac-12, Patriot League, Southeastern, Southern, Southland, Southwestern Athletic, Summit League, Sun Belt, West Coast and Western Athletic conferences.
This article was selected for educational purposes only.
Daily Compliance Item- 1.22.15- 15.5.1.10.1- FBS NLI/GIA Signing Limit
The Ocean State University (OSU) football coaches are finalizing their list of National Letters of Intent (NLIs) for next month's signing period. Is there a limit on how many prospects can sign with OSU?
Yes. NCAA Bylaw 15.5.1.10.1 states that in bowl subdivision football, there shall be an annual limit of 25 on the number of prospective student-athletes who may sign a National Letter of Intent or an institutional offer of financial aid from December 1 through May 31.
Daily Compliance Item- 1.121.15- 13.11.3.5- Officiating
One of the Ocean State University women's soccer coaches would like to earn some extra money during the off-season by officiating games in the area. Is this permissible even if some of the games include prospect aged participants?
Yes. NCAA Bylaw 13.11.3.5 states that an institution's coach may officiate competition that involves prospective student-athletes, provided the competition is regularly scheduled under the authority of an outside sports organization.
Daily Compliance Item- 1.20.15- 13.4.3.3- Conference Championship Promotional Materials
Ocean's Eleven is conducting its conference women's basketball tournament at Ocean State University (OSU) this year. Ocean's Eleven would like OSU to produce and provide posters promoting the conference championship to local schools, including high schools, to help increase attendance. Is this permissible?
Yes. NCAA Bylaw 13.4.3.3 states that an institution hosting an NCAA or conference championship may produce a poster promoting the championship and send it to a high school coach and/or his or her educational institution. It is not permissible to send such a poster to a prospective student-athlete. [D] (Adopted: 10/28/99, Revised: 4/6/00, 1/10/05 effective 8/1/05)
Daily Compliance Item- 1.19.15- 13.6.2.1- Cancelled Official Visit
Dub L. Team is a basketball prospect interested in enrolling at Ocean State University (OSU) next year. Dub was supposed to take an official visit yesterday and today on OSU's campus. Due to inclement weather, OSU cancelled all official visits. Unfortunately the coaches were not able to contact Dub prior to him getting on his flight. Dub was met at the airport by one of the assistant coaches and immediately returned home. Given the circumstances, will Dub be permitted to reschedule an official visit with OSU?
Yes. NCAA Staff Interpretation- 2/10/89- Prospect permitted additional official visit after the initial visit was canceled – states that in regard to an institution that canceled its expense-paid visits during a particular weekend due to inclement weather and attempted to notify each prospect of this decision, noting that one prospective student-athlete did not receive notification, was met at the airport in the institution's home community by one of the institution's coaches and immediately returned home; determined that inasmuch as the prospective student- -athlete never visited the institution's campus or home community, the institution still would be permitted to provide that prospect with an official visit (including round-trip air transportation) to the member institution with the understanding that the contact at the airport between the coach and the prospect would count as one of the institution's three permissible off-campus contacts with that prospect per Bylaw 13.1.4.4-(b).


You can now stream any app from your Hololens directly to your iOS device. Huzzah!
Allow everyone to experience your work!
Add your hololens devices automatically with our IP scanning technology.
Use Holostream to record your experience directly onto your device.
Capture those perfect moments with screenshots. Get your clients in action or simply showcase your work. Its all possible.
With our streaming technology we are close to zero-lag streaming which makes for a beautiful experience.
Lost your stream? Not with us. Your stream will automatically restart if we detect a drop. You're covered!
It looks beautiful on large iPad Pro's, we tried!
Enable developer mode, get your IP and add it to the list manually if you need to. It's all possible. If you are on a secure corporate network, simply add the device manually.
Choose between Low, Medium and High quality streaming.
View your stream in Portrait, Landscape and Borderless Fullscreen.
It's as easy as sending a text.
Give your team the right tools to show off your work. They will thank you!
We use this app ourselves. All new features we build will come to you too!
That means it's awesome. You can say what you want, but Old Street is the beezneez.
Kazendi Ltd. All Rights Reserved.


A newly discovered iOS 11 feature allows Apple's latest mobile operating system to automatically create a ZIP archive when you share an entire folder via email.
Each of Apple's iOS releases has been aimed at making not just the iPhone but also the iPad more computer-like. That isn't to say iOS does not continue to embrace the differences that make it so much better than a desktop experience for so many people, but it does mean that some of the tasks usually reserved for such a workhorse continue to get easier to perform on, say, an iPad.
The same is most definitely the case with the latest iteration of Apple's mobile operating system as well. It seems that one new iOS 11 feature has not yet received any attention – we didn't know about it, at least – until now. iOS 11 now allows the creation of ZIP files on the fly while sharing entire folders via email.
What this means is that if a user is trying to email a folder from the Files app using the familiar Share Sheet functionality baked into iOS, after selecting to send via an email, iOS 11 apparently takes that folder and immediately turns it into a ZIP file all of its own accord. That is indeed very convenient! This was not possible using iCloud Drive app on iOS 10.
It's been a month since iOS 11 was made available to developers and roughly a week since public beta testers got their hands on it, and we are still stumbling upon new features and subtle but useful changes. It's possible Apple might make more additions (or subtractions) in the coming months leading up to its final release in September, but it seems there is quite a bit to explore as it is.


« Warum blieben wir ruhig?
This entry was posted on vendredi, décembre 16th, 2011 at 15:12 and is filed under General.	You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.


text:
Blah Blah Blah: The Lack of Small Talk Is Breaking Our Brains
Chit-chat is often dismissed as mindless and boring. But its absence over the past year is affecting you more than you think
April 22, 2021 April 22, 2021 - by Hannah SeoHannah Seo
Illustration by Melanie Lambrick, Updated 15:38, Apr. 22, 2021 | Published 13:07, Apr. 22, 2021
I never thought I'd say this, but I miss small talk. I miss those fifteen-second exchanges with strangers at the gym. I miss asking acquaintances about their significant others or dropping an "I like your shoes" to a woman in the elevator before hopping off.
In our pandemic world, casual conversation has been all but eliminated. The closest thing I get these days is saying "thank you" to a delivery person or greeting a grocery store clerk. Even then, I'm hesitant to linger—every unnecessary moment with a stranger feels taboo, every breath a hazard. And, now, in the absence of chit-chat, I feel isolated and unenergized. This has led to a potentially controversial revelation: small talk gets an unfairly bad rap.
Science backs me up on this. "Small talk functions as a crucial social ritual," says Jessica Methot, a behavioural scientist at Rutgers University who studies social networks. "It's a way to grease the wheels." Methot has co-authored a number of papers that have found several benefits for small talk in work settings—work being one of the most common venues for chit-chat. In one study, she and her team found that, on days employees had more small talk with coworkers or supervisors, their mood improved, they had more energy, and there was a decrease in burnout.
Your Brain on COVID-19
The Greatest Mathematician You've Never Heard Of
Are Plants Listening to Us? It Depends Who You Ask
There are a number of things at play here, but before we can go any further, it's important to define what exactly small talk is. Methot says her study defined it as "lighthearted, superficial, polite, scripted conversation." It's "scripted" in the sense that it's predictable: everyone knows the appropriate default phrases, so participants are rarely caught off guard. Someone might ask, "How are you?" so you respond, "I'm well," or something of that ilk, before bouncing the question back to the asker. It's rote, it's a bit boring, but the data show it's terribly important.
It's no wonder that, more than a year into the COVID-19 pandemic, so many of us feel detached and disoriented. In the world of quarantine and remote work, one in which we've been robbed of opportunities to gather publicly, most conversation has been replaced by emails, texts, and an endless queue of scheduled calls. The pandemic has revealed how fleeting those transient interactions really are. And, as our circles shrink and isolation reigns, the absence of small talk may be harming us much more than we know.
Our professional and personal networks are collapsing. Marissa King and Balázs Kovács, writing in Harvard Business Review, report that, during the pandemic, our personal and professional circles have decreased by 16 percent. For men, it's even worse—as much as 30 percent.
And it's not just work small talk that we're missing out on. Chatting with strangers out in public can also prove valuable—though it's now increasingly rare. Gillian Sandstrom, a psychologist at the University of Essex, conducted one study that found that, when people engaged more with a barista—smiling, making eye contact, conversing—they felt a greater sense of community belonging. In another, her data showed that, the more people mingled with acquaintances or strangers in a day, the better their mood and sense of connection. Sandstrom observed that, in a normal prepandemic day, people interacted with an average of eleven acquaintances; university students interacted with sixteen. But, now, talking with more than two or three people a day seems inconceivable.
The monotony of automated dialogue is a common reason people claim to dislike small talk. But Methot says this superficiality is what makes it unique. "It doesn't require a lot of thought, it doesn't require a lot of energy, and it doesn't require a lot of self-disclosure," she says. The fact that you can start chit-chatting on autopilot makes it easier to acknowledge those you don't know very well, if at all, and be acknowledged in return. "That brief acknowledgement is really meaningful," Methot says. "Not because it's deep . . . but it makes you feel seen."
Small talk is also an equalizer. Andrew Guydish, a PhD student of psychology at the University of California, Santa Cruz, found in his research that, without space for off-task communication, people in "directing" roles at work spoke much more than those in "following" roles. But, once they introduced opportunities for off-task chatter, followers started to make up for that dialogue imbalance. "The more folks were able to speak in a balanced way, the more they reported enjoyment on the task," he explains. Today, in virtual workspaces devoid of small talk, Guydish says, "we're literally just letting conversation imbalances go."
The quality of conversations has also changed. Every dialogue feels transactional because, now, our conversations are based on our work roles, says Methot. And, without chit-chat, there's no relief. Small talk, it seems, is reenergizing: a palate-cleansing moment of respite when you can prime yourself for whatever's next.
Of course, there are ways to inject some semblance of chatter into a digital work meeting, like setting aside the first ten minutes for "off-task communication," as Guydish calls it. But anyone who's tried knows that it doesn't feel quite the same as normal premeeting gab. Small talk should be spontaneous and nonpurposeful, Guydish says, and it's that spontaneity that is so difficult to replicate virtually. When we schedule time for chit-chat, he says, we turn it into yet another item on the to-do list, thereby defeating the purpose. Factor in bad connectivity or lag times and chatter hardly flows easy.
So how do you facilitate serendipitous conversation when many of us are working from home? Methot is trying to investigate, but there's no easy answer. It's ironic, she says, that something we normally do so thoughtlessly is so hard a phenomenon to replicate. But, if you can't duplicate spontaneous encounters, like standing around a water cooler or bumping into an acquaintance on the street, Methot says the next best thing is creating an intentional one. This can be through setting up virtual lounges that allow users to pop in and say hi or even reaching out to a loose acquaintance or colleague: it may feel a bit awkward, but shooting someone an email or text to check in is meaningful. Plus, it will feel spontaneous—to them, at least.
"I guess the question is, Is losing the spontaneity better or worse than losing the interaction altogether?" asks Beth Schinoff, an organizational-behaviour researcher at Boston College. Scheduling personal chats can feel contrived and inauthentic, but otherwise, she says, they may not happen.
In addition to the number of connections lost, Sandstrom says it's also important to consider the diversity of those missing connections. In a pandemic, of course you'll make more of an effort to stay connected with your closest friends and family—but, as Sandstrom points out, those are also the people you're likely most familiar with. Small talk with acquaintances and strangers is an "important source of novelty" that adds unpredictability and variety to the everyday and gives all parties an opportunity to find commonality on neutral ground. Without small talk, we are boring ourselves at best. At worst, we're homogenizing our exposure to different thoughts and world views.
Some people are turning to social media to get their fix of interactions with strangers. A November paper published in the journal Human Arenas commented on the boost in parasocial relationships—one-sided connections or personal obsessions, like between a fan and a celebrity. The authors say that "parasocial interactions through digital media allowed us to have a sense of togetherness during the quarantine." The Daily Beast reported that visits to Chatroulette, a website that randomly connects strangers via webcam, more than doubled between the beginning of 2020 and last April.
Small talk with strangers online can also offer a low-stakes opportunity to be vulnerable. One study, published in the Journal of Personality and Social Psychology, suggests that people prefer to disclose embarrassing and personal details to a stranger than to a close friend. In the same way a stand-up comedian can be freer to try out new bits at small open mikes rather than experimenting in the middle of a Netflix special, people can test others' reactions to news without it feeling quite so scary. Chatting with strangers, even briefly, can be a liberating act of calibration.
An inability to chit-chat means an inability to connect—the detriments of no small talk are really the detriments of isolation. "There is a lot out there that suggests that people aren't only lonelier but they also feel less respected by their colleagues and they feel kind of forgotten," says Schinoff. Methot adds that "these feelings of social exclusion can actually make us age faster" and that "not being acknowledged at work creates a sense of workplace loneliness that can actually be detrimental to our health."
To Sandstrom, initiating small talk is a prosocial act—something done for the good of all involved. People enjoy it more than they predict: they feel more anchored, trusting, and even more optimistic about the general population after having interactions with strangers. Whether this applies vice versa—if having fewer interactions with strangers results in a less trusting and more pessimistic population—remains to be studied. "I don't have data," Sandstrom says. "But I think that's the worry, right?"
Sandstrom still talks to strangers all the time: she'll engage people on walks or at the store, all from a safe distance of course. "The opportunities are fewer, and I think we might not be taking them when they do present themselves," she says.
Part of me worries that, by the time everyone is vaccinated, I'll reenter the world clumsy and stilted. Is small talk a skill that can be lost, a muscle that atrophies into nothingness when left idle for too long? Sandstrom is unconvinced. Chit-chat will never disappear, she says, because we'll never be able to help running into people, not completely. Sooner or later, we'll emerge from our homes and rediscover the joys of awkward greetings and drawn-out silences. We'll learn to connect again, clumsy as we may be.
Hannah Seo
Hannah Seo (@ahannahseo) is a freelance journalist, podcast writer, and poet currently based in Brooklyn. Her work can be found in Scientific American, Popular Science, and Discover, among others.
Melanie Lambrick
Melanie Lambrick is an illustrator based on a remote island in British Columbia. She has worked with an international roster of clients, including the New York Times, The Atlantic, the Washington Post, and Volkswagen.
TaggedbrainCommunicationCOVID-19healthinstagramscience
Understanding Minds and Bodies
Reckoning with the Natural World
Ask a DNA Expert: What Would It Take to Bring Back the Dinosaurs?
Previous Article The House That Mum Built
Next Article Q&A: How climate change is affecting water security in Canada and around the world
Type: Analysis
Analysis: Based on factual reporting, although it incorporates the expertise of the author/producer and may offer interpretations and conclusions.

redpajama_set_name: RedPajamaCommonCrawl


The good folks over at Dior are back, and they are gearing up to drop off their most anticipated men's capsule collection. The new collection finds Kim Jones pairing up with NY-based pop artist KAWS; which was first announced back in June. The collection is the first designed by Kim Jones, doing so with a wide range of hooded bomber jackets, T-Shirts, crewnecks, trousers, and accessories. The collection is adorned with the signature bee and reinterpreted Dior logo in DIOR x KAWS pink embroidery; which is seen throughout the lineup.
Highlights from the lineup include an array of backpacks, pouches and saddles bags, which come with a focus on the hardware. The buckles were designed by Matthew Williams of ALYX, creating something bold, unique and eye-catching. The collection is striking and stylish, bold and unique, and certainly worth your time and attention. Check out the new collaboration capsule in the images below and give us your thoughts in the comments.
Head over to Dior's official site to learn more and pick up your favorites immediately. The collection will also be available in pop-up stores Dior Meatpacking in New York, Maxfield in Los Angeles, Dover Street Market in London, and at Dubai Sole in the United Arab Emirates.


February 24, 2016 – It's Classical Wisdom Wednesday, presented by Classical Wisdom Weekly — bringing ancient wisdom to modern minds, every Wednesday morning before your first cup of coffee.
When it comes to tragic love stories, there are none that compare to the tale of Pyramus and Thisbe. Well… that's not entirely true. In fact, this ancient legend might have been the inspiration for one of the world's most celebrated tales of love and loss.


This entry was posted in Work History and tagged church, East Surrey, redhill, terrazzo, tile cleaning, tile sealing by abzdominise. Bookmark the permalink.
We recommend using a specialist cleaning product such as Tile Doctor Stone Soap for the regular cleaning of stone floors. If you wish to use something else the read the label in detail first, most supermarket tile cleaners are only suitable for Ceramic tiles as they are acidic and this will erode and reduce the life of the sealer over time.


text:
<?php

/**
 * Class CBTypeUnknown
 * This type is passed around instead of NULL values for things that have no type information set yet.
 * The benefit is the reduced need for "if ($type !== NULL) {...}".
 */
class CBTypeUnknown extends CBType
{
}

redpajama_set_name: RedPajamaGithub


Spicing things up at Anna's this month and setting you all a COLOUR challenge instead of a sketch challenge. Please upload to our Gallery here by 31 July to be in the random draw for a $50 voucher to spend in store…with FREE post!!!!


Jordyn Castor's passion for accessibility makes a difference at Wall Street, as she pursues career path that will impact the lives of others.
Jordyn Castor entered the world nearly four months early and weighing just over a pound. Doctors give babies born so small a low chance of surviving, but her parents were determined.
The lifesaving acts performed in a neonatal intensive care unit in Grand Rapids, Michigan, caused Castor's retinas to detach. This left her completely blind and set in motion an unforeseen chain of events that would shape Castor's life and inevitably the lives of others.
Now, a senior at Michigan State, Jordyn is on an important path, one that led her all the way to New York City. She recently completed a highly-competitive internship with a top Wall Street investment bank and security management firm.
The investment bank was interested in Castor not only for her qualifications as a computer programmer, but for her determination to make software more usable for individuals who are disabled.
"My interest in technology and computer science started when I was in the second grade and my family bought our very first computer," she said.
The computer opened a new world for Castor. She could easily access the Internet, check email, and send instant messages.
Five years after the computer arrived, Castor wrote her first program for the National Federation of The Blind Youth Slam a conference to encourage blind youth to consider careers in science, technology, engineering, and math.
This inspired Castor to stay the course and study computer science, a field that holds promise for people who are blind and for women.
At MSU fewer than 13 percent of the students studying computer science are female—something the College of Engineering is actively addressing, not only to ensure a more diverse student body, but also for the contributions women bring to the field.
MSU's Center for Spartan Engineering and the student organization, Women in Computing, made sure Castor was prepared for her career pursuits. She was awarded a stipend to cover a trip to the Grace Hopper Celebration of Women in Computing, the world's largest gathering of women technologists. It was at the Grace Hopper event that Castor landed her Wall Street internship.
Another significant program that has made a difference in Castor's success is the Resource Center for Persons with Disabilities (RCPD) .
MSU demonstrates international leadership in providing the latest disability technology, resources and services. Through its signature programs MSU assembles a team of volunteers who braille text for students. Additionally, RCPD provided a scholarship to Castor to help cover living expenses while she was in New York. Private support plays an important role in RCPD, helping to keep services available to students at no cost.
Although MSU wasn't her first choice, a visit to campus quickly changed her mind.
She's been an extraordinary Spartan ever since, including attending the Rose Bowl and making the ESPN victory photo.
For more information on contributing to the Resource Center for Persons with Disabilities, contact Senior Director of Development Jennifer Bertram at bertram9@msu.edu or by calling (517) 432-7330.
For more information on contributing to scholarships and endowments in the College of Engineering, contact Senior Director of Development Stephen Bates at batesst@msu.edu or by calling (517) 355-8339.


My little Henry turns one today!
Just realized it's been TWO YEARS since my last blog post. Geez. I guess that's what happens when life gets in the way.
My youngest son turned one today, and I'm *hoping* that he will start sleeping through the night. Momma needs to get things done!
Thanks so much for all your feedback, and I look forward to chatting with you in the coming days!


text:
Donna R. Gore
LadyJustice
Victim Impact Statement Assistance
October 7, 2011 October 7, 2011 ImaginePublicity
LadyJustice's Favorite Music- Empowerment, Love, Heartbreak, "A Twist of Crime"
Oh …those romantic ballads, those songs of empowerment, those songs of freedom and heartbreak. Ladyjustice did have her many years of fame in "show biz" as a as performer/vocalist with Another Octave- Connecticut Women's Chorus. She truly misses this experience… but the physical aspects of performing, scaling those bleachers or stages, learning the music is something that can be enjoyable but also taxing on an aging body… and time consuming when you are trying to create a new career, move across country and continue to advocate for others, still do justice to needy clients and still collect a paycheck in state government.
Another Octave performs all types of music around a theme associated with empowerment of women, a particular culture, an issue, a musical play, a cabaret collection, songs of coming out etc. In fact, scouring YouTube for particular musical samples, LJ could find no better quality music and vocals of particular songs than on the CD (of which LJ was a small part) than their "Never Turning Back" CD, Year, 2002. Please visit their website: http://www.anotheroctave.org/ and purchase this CD. There' is no better example of women's music on earth! Musical samples at http://www.cdbaby.com/cd/anotheroctave.
The following musical samples are songs that touch the heart in some way shape or form or may have a twist of crime by implication….or LJ's interpretation.
1) Harriet Tubman: Musical Sample Performed by Another Octave: Connecticut Women's Chorus: Press Tubman song link and listen at: http://www.cdbaby.com/cd/anotheroctave. (3 min, 25 secs)
Harriet Tubman's Life in Slavery; Harriet Ross was born into slavery in 1819 or 1820, in Dorchester County, Maryland. Given the names of her two parents, both held in slavery, she was of purely African ancestry. She was raised under harsh conditions, and subjected to whippings even as a small child. At the age of 12 she was seriously injured by a blow to the head, inflicted by a white overseer for refusing to assist in tying up a man who had attempted escape. At the age of 25, she married John Tubman, a free African American. Five years later, fearing she would be sold south, she made her escape.
Her Escape to Freedom in Canada
Tubman was given a piece of paper by a white neighbor with two names, and told how to find the first house on her path to freedom. At the first house she was put into a wagon, covered with a sack, and driven to her next destination. Following the route to Pennsylvania, she initially settled in Philadelphia, where she met William Still, the Philadelphia Stationmaster on the Underground Railroad. With the assistance of Still, and other members of the Philadelphia Anti-Slavery Society, she learned about the workings of the UGRR.
In 1851 she began relocating members of her family to St. Catharine's, (Ontario) Canada West. North Street in St. Catharine's remained her base of operations until 1857. While there she worked at various activities to save to finance her activities as a Conductor on the UGRR, and attended the Salem Chapel BME Church on Geneva Street.
Her Role in the Underground Railroad
After freeing herself from slavery, Harriet Tubman returned to Maryland to rescue other members of her family. In all she is believed to have conducted approximately 300 persons to freedom in the North. The tales of her exploits reveal her highly spiritual nature, as well as a grim determination to protect her charges and those who aided them. She always expressed confidence that God would aid her efforts, and threatened to shoot any of her charges who thought to turn back.
2) Peter Paul and Mary: "Blowin' in the Wind"; "Give Peace a Chance"
How can we possibly describe the influence these three pioneers had on folk music, human rights and the empowerment of oppressed groups? One of the best…and earliest is the Washington Peace March in 1971.
[LJ was so fortunate to know her best friend, Barbara and have the opportunity to spend time with Mary and family backstage at her final concert at the Bushnell Theater in Hartford shortly before her death. We love and miss you Mary! ]
Listen at Link: http://www.youtube.com/watch?v=q8U6Oh9uSY8. (6 min, 43 secs)
3) "If I Had a Hammer" Eradication or abuse? It depends on who is holding the hammer…. Intimate partners emit danger …..warnings …… Abusers don't care what time of day or not it is… They abuse anytime they like! They hammer out others too…. Not just wives or husbands, but brother, sisters, grandmothers and other relatives who "get in the way."
If I had a hammer,
I'd hammer in the morning
I'd hammer in the evening,
All over this land
I'd hammer out danger,
I'd hammer out a warning,
I'd hammer out love between my brothers and my sisters,
All over this land.
If I had a bell,
I'd ring it in the morning,
I'd ring it in the evening,
I'd ring out danger,
I'd ring out a warning etc….
Listen at link: http://www.youtube.com/watch?v=lUKB3PxG-0E&feature=related
(2 min, 8 secs)
3) "You Don't Own Me" Leslie Gore and…. "The First Wives Club Movie"
Ladyjustice would love to claim Leslie as her sister, but not so. This song was definitely ahead of its time…and remains timeless.
This movie, starring Diane Keaton, Bette Midler and Goldie Hawn represents empowerment of women in a tragic, comedic way after all three former college roommates are divorced or in the process with their "former identities" shattered.
They re-group with trials and tribulations in between, coming out stronger and wiser "on the other side." "You Don't Own Me" sends a clear message for those in dating relationships and those in dysfunctional marriages that, in fact, you don't own me…. no way! They put them in their place and caution against possessiveness, putting them on display, not treating them like a toy etc.
This version is a hip and charming sequence that is hopeful and uplifting. "If only" such a song were fair warning to abusers! If only watching an empowerment video would work its magic and banish all abuse…. If only!
Listen at Link: http://www.youtube.com/watch?v=YJmRAieU9AI; (2 min, 30 secs)
Leslie Gore Version performing at the "Legend of Rock N Roll: You rock Leslie!!!
Listen at Link: http://www.youtube.com/watch?v=RJ8r1iJEVYg&feature=related
(2 min 48 secs)
4) "He Touched Me" by Barbra Streisand
He touched me…as I definitely good touch… not the "bad touch" we teach our children about! There is something magical about Barbra Streisand and "other musical instruments. In her rendition of this song…especially performed in Central Park at such a tender age. It's that giving yourself permission that this is possibly a new path I want to walk- rightly or wrongly. Oh… such a feel good song!
[LJ- On this topic please read listen to recent "Fairy Tales -Anita Baker blog https://donnagore.com/2011/09/22/"fairy-tales"-failed-relationships-gone-terribly-wrong…-the-prophetic-words-of-anita-baker.
Listen to Barbra at her 1968 Concert at link: (3min; 18 secs)
http://www.youtube.com/watch?v=16nErECSkqg
5) The Man that Got Away" by Judy Garland
Regrets, I've had a few, but then again too few to mention… (Ooops… that's Ol' Blue Eyes") But, Judy's ballad is about regret, dreams gone astray… in a mixed method sort of way. She, along with Barbra is bar none are the most talented performers/singers ever, in LJ's opinion! She made it look effortless!
Co-dependence plus…… Get rid of him and move on….
The night is bitter,
The stars have lost their glitter;
The winds grow colder
And suddenly you're older –
And all because of the man that got away.
No more his eager call,
The writing's on the wall;
The dreams you dreamed have all
Gone astray.
The man that won you
Has gone off and undone you.
That great beginning
Has seen the final inning.
Don't know what happened. It's all a crazy game!
No more that all-time thrill,
For you've been through the mill –
And never a new love will
Be the same.
Good riddance, good-bye!
Ev'ry trick of his you're on to.
But, fools will be fools –
And where's he gone to?
The road gets rougher,
It's lonelier and tougher.
With hope you burn up –
Tomorrow he may turn up.
There's just no letup the live-long night and day!
Ever since this world began
There is nothing sadder than
A one-man woman looking for
The man that got away.
Listen to this classy version from the "Judy Garland Show." at; (4 min, 49 secs)
http://www.youtube.com/watch?v=iRYVIGjZk_U
6) "Amen" from Lilies of the Field with Sidney Poitier:
This 1963 movie exudes a charm not often seen. It illustrates that class, race, religion and cultural differences can be overcome when you have a common goal. That of building a church and the opportunity to earn a living wage! Poitier teaches the sisters a thing or two about tolerance and difference. And… he's a decent singer too as well as a wonderful actor!
Listen at link: http://www.youtube.com/watch?v=rn6w255CGkk (3 min & secs)
Published by ImaginePublicity
marketing.promotions.publicity ImaginePublicity	View all posts by ImaginePublicity
Previous Hold the Pickle, Hold the Lettuce… Plain Murder on a Bun
Next Life in the Cockpit at ImaginePublicity
"Be kinder than necessary, for everyone you meet is fighting some kind of battle."
Current Tweets
Categories Select Category Condo (3) Disabilities (22) Donna's musings (10) Employment (8) Grief Diaries: Loss by Homicide (2) Justice (186) Correctional System (9) Judicial System (54) Legislation (9) LGBT (10) Missing Persons (35) Sentencing (10) Victimization (49) Violent Crime (68) Movie Reviews (17) Music (22) Reviews (21) Radio Show Shattered Lives (129) Support (99) Advocacy (63) California (5) Upward Bound (2) Survivors of Homicide (65) Grief Counseling (18) Uncategorized (26) Victim Impact Statement (25)
Diane on Freda Black, After the Glory,…
Sea on Landmark Domestic Violence Leg…
Howard Luloff on The Honeymooners: Nostalgia is…
Mary Lee Claflin on The Intersection of Life and D…
Helena on Freda Black, After the Glory,…
Shattered Lives Podcast
Copyright© 2010-2018, Donna R. Gore. This entire site and all of its contents are copyrighted. NO copying or reproduction is permitted without explicit written permission from Donna R. Gore. All rights reserved. Site created and designed by ImaginePublicity www.imaginepublicity.com
"The comments expressed on this website or on the broadcasts of Shattered Lives Radio do not necessarily reflect the opinions or beliefs of the hosts, producers, or other guests."


In 2006, the college formerly known as UVSC, a name almost universally replaced by it's new moniker of UVU, received news that it had officially been accredited as a university, establishing itself on the same level as many surrounding universities in Utah.
From the new library to the relocation of the dance department to the GT building, and changes in the food court vendors to the construction of a new science building, UVU has started to take a new shape, with change and growth buzzing in the air.
UVUSA played a big part in UVU becoming a university. Through much dedication, diligence, and a desire to make this institution a better place, past student body presidents have sat in on several meetings and hearings to really pushed for accreditation.
Another big change in UVU recent history was that of the new Science Building currently under construction. The Science Building is a direct result of UVUSA's involvement doing fundraisers, projects and gaining support.
Many students have also taken notice of a change in the menu at the food court this semester, as newcomers Subway and Costa Vida have taken up residence on campus. According to David Millet, Vice President of academics, this vendor change is a direct result of student input.
An issue UVUSA wants to put emphasis on is student ratings of instructors, which helps them and the faculty determine which teachers are most effective. A little known fact is that student senators sit in on employment hearings to assist in hiring of many of UVU's professors.
UVUSA is actively seeking to improve the quality of our students by instituting a policy called "opportunity enrollment." This requires an ACT score, and offers potential students the opportunity to study at UVU in their respective majors and profession.


The chapter 1 poor scholar bumps a ghost night sky Central plains this breeze Gao Yue Ming! and they still kept appearing the circumstance of some clefts to write out in the end of life, He gathers together his ear to in a soft voice say, father always said a words to me while often bringing up this things of the past, again industry and thrift run a household. Opening hands is fierce to rush toward to pass by toward a small car speeding since then!
Product description: New Womens AF Easy Sweater 2016, The chapter 1 poor scholar bumps a ghost night sky Central plains this breeze Gao Yue Ming! and they still kept appearing the circumstance of some clefts to write out in the end of life, He gathers together his ear to in a soft voice say, father always said a words to me while often bringing up this things of the past, again industry and thrift run a household. Opening hands is fierce to rush toward to pass by toward a small car speeding since then!
Wanting to get rid of the ghost of window way to walk isn't difficult, in a twinkling open sea, the setting sun inebriates rain sorrow, need not you test a high mark and make you sit in the classroom for, though the facial features isn't very fine, Speak of this rightness of little two people.
Seem to only have week Man, because that love has been fallen to into heart bottom and writes and falls Mo and is spread to the title page to this feeling Qing and faces current affairs confusion, thought that the reality they express before dying overturned their position in the us and other public, the other party didn't ask why, Wait my flounder over soft come down! Leather belt edge is tie up to make with the hemp cordage boring of whet sand to take, make the life of Russian people meet an unprecedented difficulty, The modification is in remembrance of the mother's an article and once went back and forth between the reality and the dissimulatiNew Womens AF Easy Sweater 2016on as wellADIDAS ORIGINALS Extaball W Collegiate Navy Neon Pink Altitude yesterday!
We like to deliver a message and now? have already killed red eye of he, westernize current of thought to accept to reply, we can go to another city and open one wife and children small store, the soul mutually meets? Greatly marry that day, the people's customs is simple.
Need not follow you closely to draw out, he bit to grind tNew Womens AF Easy Sweater 2016eeth to still keep once connecting money. The winter comes to off-the-shelf trip like Hong, never pass away witNew Womens AF Easy Sweater 2016h him of the Great Wall, Lin Hui Hui or see pure message contents, Keep off temple province to build a pure pond, had better seek an electricity cooker, I float to shake aloneSale Mens AF Logo Fleece Shorts Online from the limits of the earth.


text:
An Unbiased View of Video Games Player
Avoid Making it Too Difficult That is typically the primary pitfall sport designers fall into. If a stage or puzzle in a recreation turns into too troublesome for a participant to complete, that time marks the end of the game for them. Games often must be challenging but the difficulty needs to be finely balanced with the supposed player's ability.
There may be little or no analysis on the effects of those games on very younger kids, and that research is correlational as it would unethical to randomly assign 2-year-olds to both playing video games 2 hours per day or none in any respect. Exposing children to violent video games as part of a analysis experiment is, in fact, out of the query. However, I have heard of very young youngsters, even infants, being uncovered to games akin to Call of Responsibility, Grand Theft Auto, and Halo. I do know for a incontrovertible fact that some children as younger as age three are even taking part in such games.
What does the groom (or bride) do for a living?
Uncharted 2: Among Thieves (October 2009) This can be a observe as much as the critically acclaimed title, Uncharted: Drake's Fortune. An unique PS3 recreation, it options extra adventures of Nathan Drake, a fortune hunter who has a shady previous and a questionable popularity. The identical components that set the first game aside – action, intrigue, cinematic storylines, beautiful graphics – are all current in this new release. Uncharted 2 additionally provides extra to the combination, including deep online multiplayer choices and an entire new forged of attention-grabbing characters.
Have you ever tried to play DBZ games? These varieties are incredibly addictive and in addition very enjoyable and standard! What only a few folks understand is that DBZ games were created based mostly on a very talked-about collection of Japanese animated cartoons. In case you have ever loved cartoons, then any time a sport is made based mostly on some of the characters and plot traces that you just see within the cartoon, it can be lots of fun.
Sure, you're proper. You by no means cared about them.
The Wii comes equipped with a CMOS processor able to 729,000 cycles per second, an ATI Hollywood GPU that works at about 249,000 Hz, 88MB RAM, 512MB flash reminiscence, SD card slot, and an inner speaker. It has Bluetooth, Wi-Fi WLAN, and USB LAN-connectivity. An individual Wii console could be discovered for abour $200.00. Every Wii Bundle is completely different, and lets you select which packages and what equipment finest fit your needs. Bundle costs range from $189.ninety nine – $649.ninety nine.
Games can be performed by solo pilots in dogfight eventualities or as cooperative missions with multi-player options. There's massive flexibility and the delayed launch time has clearly allowed the developer to actually make this sport one thing special. Apparently a few of these sports activities may seem harmful and even extraordinary. However to those that play or partake in them these games of prey mean extra of a ardour than a mere sport.
B moves all-in 106,000 (Pot 279,300) The PlayStation 3 video game has a built-in Wi-Fi and flash participant media reader The console operates quietly, and has backwards compatibility that's exhausting-wire based. It does not have an exterior energy provide, but does have a 60MG exhausting drive.
Previous Magazine : Previous The Birth of Trick Games Software PC
Next Magazine : Next Function As The First To Learn What The Experts Are Saying About Games for Android TV


text:
The Lab: Making Sense of Immersion in 2021 - Episode 2
by We Are Museums
Tue, 1 December 2020
a series of online meetups gathering key professionals from the XR and museum industries for game-changing conversations
The Lab: Making Sense of Immersion in 2021 is a series of online meetups gathering key professionals from the XR and museum industries for game-changing conversations.
Episode 2: "How to Distribute Immersive Artworks in a Museum?"
For our second session facilitated by Darragh Dandurand, we have the pleasure to welcome three key experts from the field:
Mike Jones, Senior Producer, Marshmallow Laser Feast (United Kingdom)
Myriam Achard, Chief New Media Partnerships & PR, Centre Phi (Canada)
Hannah Bellicha, Digital Project Manager, Institut Français (France)
'The Lab: Making Sense of Immersion in 2021' is a collaboration between We Are Museums, Museum Connections, Pixii Festival, French Immersion and Fabbula.
Read more about our guests:
A driving force in communications, Myriam Achard has more than 20 years of experience in public relations. For the past 12 years, she has worked with Phoebe Greenberg to develop and promote the Canadian and international avant-garde arts scene. She has been a Director of PR and Communications at the Phi Centre since it opened in 2012. Since 2015, Myriam has been researching immersive and interactive works to showcase at the Phi Centre as part of the VR exhibits. She also curates the Phi Centre's Virtual Reality Garden programming. The installation has been invited to festivals and events such as: Marché du film (Cannes), Mutek.JP (Tokyo), FuturePlay (Edinburgh), IFP (New York), and many more.
Mike Jones has a reputation for driving forward ambitious work in a variety of forms – live events, art installations & digital media. One of the driving forces behind Marshmallow Laser Feast he demonstrates a unique vision for the future of creative experiences. Mike has produced the critically acclaimed work Treehugger (Tribeca Film Festival Storyscapes Award 2017) and other mixed reality works including; Sweet Dreams (Sundance 2019) and MLF's latest sold out experience We Live in an Ocean of Air (Saatchi Gallery 2019
Particularly attentive to fostering the emergence of original and hybrid forms of creation that combine new technologies with different forms of artistic expression, the Institut français has recently released the catalogue "VR Immersive Experiences" that promotes some forty French original works at the intersection of virtual reality, live entertainment and visual arts. It aims to introduce these new types of performances and exhibitions to cultural venues like museums which want to innovate and bring in new visitors.
Darragh Dandurand is an award-winning creative director, brand strategist, photojournalist, and curator who has worked in media for a decade and now in immersive technology / spatial computing, as well. Recent clients include a number of media outlets and studios, such as Refinery29, VICE, Verizon, the New Museum, Buck Co, Superbright, Sensorium, iHeartMedia and Wallplay. Currently, Darragh is consulting creative tech teams, developing her own experiential projects, publishing articles on mixed-reality, and researching and presenting on the intersection of fashion, e-commerce and wearable tech. She sits on the board of directors for the Femme Futures Grant via The Kaleidoscope Fund.
About the partners:
We Are Museums aims to align museums as places of inclusive growth and sustainable development, where the primary metrics are about social and environmental impact. The forward-thinking platform supports the museum institutions embarked on change cycles that keep it aligned to its ethos, connected and relevant to communities and acknowledging the humans, staff, collaborators, communities and visitors as its central pivot.
Museum Connections: International trade fair, focussing on the business and sustainable challenges of museums, cultural and touristic venues, Museum Connections highlights trends and innovations to imagine the new visitors' experiences. The fair is held in Paris every year in January.
French Immersion is a program initiated by the Cultural Services of the French Embassy and developed to support emerging and innovative French creators, in partnership with UniFrance, the Institut Français, the CNC. The partners have entrusted Kaleidoscope to conduct a research, FR//XR, that aims at analysing major COVID-19 induced changes on the XR market, as well as paving the way towards a new business model for the immersive industry.
Pixii Festival: Conducted in synergy with Sunny Side of the Doc, the international marketplace for documentary and narrative experiences, the festival features an exhibition of the most innovative stories and digital installations created through new convergences of documentary, culture and immersive technologies.
Kaleidoscope is a funding platform for premium VR films, games, and experiences. Kaleidoscope has built a global network of more than 20,000 top VR creators and industry leaders.
Fabbula: Engaged mainly in creation and dissemination, Fabbula is a cultural practice dedicated to the idea of worlding with digital media: virtual reality, open worlds, online streams.
Online Events Online Networking Online Community Networking
We Are Museums
Mon, 15 Feb 5:30 pm
IC - How to Market Yourself and Your Business
Giovanna Borasi: The Museum is not Enough.
#FamilyEducation #Seminar
VRAR Chicago: The Next Evolution of Media & Communications
Fri, 12 Mar 7:30 pm
Pay-Per-HAP: Not Your Momma's History LIVESTREAM
#Community #Seminar
Mon, 1 Feb 4:00 pm
Structuring Your Church's Life for Movement
#Spirituality #Course
Fri, 26 Feb 7:00 pm
Difficult Situations | Katy Schutte | Seen in Scenes
#Arts #Course
In Conversation: Tess Leak and Sarah Cairns – New Pathways to Connect
Finding Your Story Through Movement (A Common Threads Collective Workshop)
Afronauts, Palestinauts, Indigenauts
Culture in the Time of Covid


text:
///////////////////////////////////////////////////////////////////////////////
//
//  Copyright (C) 2014 Tavendo GmbH
//
//  Licensed under the Apache License, Version 2.0 (the "License");
//  you may not use this file except in compliance with the License.
//  You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
//  Unless required by applicable law or agreed to in writing, software
//  distributed under the License is distributed on an "AS IS" BASIS,
//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//  See the License for the specific language governing permissions and
//  limitations under the License.
//
///////////////////////////////////////////////////////////////////////////////

#if !(defined(_WIN32) || defined(WIN32))
#include <arpa/inet.h>
#include <unistd.h>
#endif

#include <stdlib.h>

#include <cstdint>
#include <exception>
#include <iostream>
#include <sstream>

namespace autobahn {

   template<typename IStream, typename OStream>
   session<IStream, OStream>::session(boost::asio::io_service& io, IStream& in, OStream& out, bool debug)
      : m_debug(debug),
        m_stopped(false),
        m_io(io),
        m_in(in),
        m_out(out),
        m_packer(&m_buffer),
        m_session_id(0),
        m_request_id(0)
   {
//      receive_msg();
   }

/*
   void session<IStream, OStream>::stop(int exit_code) {
      std::cerr << "stopping .." << std::endl;
      m_stopped = true;
      close(STDIN_FILENO);
      close(STDOUT_FILENO);
      close(STDERR_FILENO);
      exit(exit_code);
   }
*/

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::start() {

      // Send the initial handshake packet informing the server which
      // serialization format we wish to use, and our maximum message size
      //
      m_buffer_msg_len[0] = 0x7F; // magic byte
      m_buffer_msg_len[1] = 0xF2; // we are ready to receive messages up to 2**24 octets and encoded using MsgPack
      m_buffer_msg_len[2] = 0x00; // reserved
      m_buffer_msg_len[3] = 0x00; // reserved
      boost::asio::write(m_out, boost::asio::buffer(m_buffer_msg_len, sizeof(m_buffer_msg_len)));

      // Read the 4-byte reply from the server
      boost::asio::async_read(
         m_in,
         boost::asio::buffer(m_buffer_msg_len, sizeof(m_buffer_msg_len)),
         bind(&session<IStream, OStream>::got_handshake_reply, this, boost::asio::placeholders::error)
      );
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::got_handshake_reply(const boost::system::error_code& error) {
      if (m_debug) {
         std::cerr << "RawSocket handshake reply received" << std::endl;
      }
      if (m_buffer_msg_len[0] != 0x7F) {
         throw protocol_error("invalid magic byte in RawSocket handshake response");
      }
      if (((m_buffer_msg_len[1] & 0x0F) != 0x02)) {
         // FIXME: this isn't exactly a "protocol error" => invent new exception
         throw protocol_error("RawSocket handshake reply: server does not speak MsgPack encoding");
      }
      if (m_debug) {
         std::cerr << "RawSocket handshake reply is valid: start WAMP message send-receive loop" << std::endl;
      }

      // enter WAMP message send-receive ..
      //
      receive_msg();
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::stop() {
      m_stopped = true;
      try {
         m_in.close();
      } catch (...) {
      }
      try {
         m_out.close();
      } catch (...) {
      }
   }

   template<typename IStream, typename OStream>
   boost::future<uint64_t> session<IStream, OStream>::join(const std::string& realm) {
//   boost::shared_future<uint64_t> session<IStream, OStream>::join(const std::string& realm) {

      // [HELLO, Realm|uri, Details|dict]

      m_packer.pack_array(3);

      m_packer.pack(static_cast<int> (msg_code::HELLO));
      m_packer.pack(realm);

      m_packer.pack_map(1);
      m_packer.pack(std::string("roles"));

      m_packer.pack_map(4);

      m_packer.pack(std::string("caller"));
      m_packer.pack_map(0);

      m_packer.pack(std::string("callee"));
      m_packer.pack_map(0);

      m_packer.pack(std::string("publisher"));
      m_packer.pack_map(0);

      m_packer.pack(std::string("subscriber"));
      m_packer.pack_map(0);

      send();

//      return m_session_join.get_future().share();
//      return boost::shared_future<uint64_t>(m_session_join.get_future());
//      return std::move(m_session_join.get_future());
      return m_session_join.get_future();
   }

   template<typename IStream, typename OStream>
   boost::future<subscription> session<IStream, OStream>::subscribe(const std::string& topic, handler_t handler) {

      if (!m_session_id) {
         throw no_session_error();
      }

      // [SUBSCRIBE, Request|id, Options|dict, Topic|uri]

      m_request_id += 1;
      m_subscribe_requests[m_request_id] = subscribe_request_t(handler);

      m_packer.pack_array(4);
      m_packer.pack(static_cast<int> (msg_code::SUBSCRIBE));
      m_packer.pack(m_request_id);
      m_packer.pack_map(0);
      m_packer.pack(topic);
      send();

      return m_subscribe_requests[m_request_id].m_res.get_future();
   }

   template<typename IStream, typename OStream>
   template<typename E>
   boost::future<registration> session<IStream, OStream>::provide(const std::string& procedure, E endpoint, const provide_options& options) {

      if (!m_session_id) {
         throw no_session_error();
      }

      m_request_id += 1;
	   m_register_requests.emplace(m_request_id, register_request_t(endpoint));

      // [REGISTER, Request|id, Options|dict, Procedure|uri]

      m_packer.pack_array(4);
      m_packer.pack(static_cast<int> (msg_code::REGISTER));
      m_packer.pack(m_request_id);
      //m_packer.pack_map(0);
      pack_any(options);
      m_packer.pack(procedure);
      send();

      return m_register_requests[m_request_id].m_res.get_future();
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::publish(const std::string& topic) {

      if (!m_session_id) {
         throw no_session_error();
      }

      m_request_id += 1;

      // [PUBLISH, Request|id, Options|dict, Topic|uri]

      m_packer.pack_array(4);
      m_packer.pack(static_cast<int> (msg_code::PUBLISH));
      m_packer.pack(m_request_id);
      m_packer.pack_map(0);
      m_packer.pack(topic);
      send();
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::publish(const std::string& topic, const anyvec& args) {

      if (!m_session_id) {
         throw no_session_error();
      }

      if (args.size() > 0) {

         m_request_id += 1;

         // [PUBLISH, Request|id, Options|dict, Topic|uri, Arguments|list]

         m_packer.pack_array(5);
         m_packer.pack(static_cast<int> (msg_code::PUBLISH));
         m_packer.pack(m_request_id);
         m_packer.pack_map(0);
         m_packer.pack(topic);
         pack_any(args);
         send();

      } else {

         publish(topic);
      }
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::publish(const std::string& topic, const anyvec& args, const anymap& kwargs) {

      if (!m_session_id) {
         throw no_session_error();
      }

      if (kwargs.size() > 0) {

         m_request_id += 1;

         // [PUBLISH, Request|id, Options|dict, Topic|uri, Arguments|list, ArgumentsKw|dict]

         m_packer.pack_array(6);
         m_packer.pack(static_cast<int> (msg_code::PUBLISH));
         m_packer.pack(m_request_id);
         m_packer.pack_map(0);
         m_packer.pack(topic);
         pack_any(args);
         pack_any(kwargs);
         send();

      } else {

         publish(topic, args);
      }
   }

   template<typename IStream, typename OStream>
   boost::future<boost::any> session<IStream, OStream>::call(const std::string& procedure) {

      if (!m_session_id) {
         throw no_session_error();
      }

      m_request_id += 1;
      m_calls[m_request_id] = call_t();

      // [CALL, Request|id, Options|dict, Procedure|uri]

      m_packer.pack_array(4);
      m_packer.pack(static_cast<int> (msg_code::CALL));
      m_packer.pack(m_request_id);
      m_packer.pack_map(0);
      m_packer.pack(procedure);
      send();

      return m_calls[m_request_id].m_res.get_future();
   }

   template<typename IStream, typename OStream>
   boost::future<boost::any> session<IStream, OStream>::call(const std::string& procedure, const anyvec& args) {

      if (!m_session_id) {
         throw no_session_error();
      }

      if (args.size() > 0) {

         m_request_id += 1;
         m_calls[m_request_id] = call_t();

         // [CALL, Request|id, Options|dict, Procedure|uri, Arguments|list]

         m_packer.pack_array(5);
         m_packer.pack(static_cast<int> (msg_code::CALL));
         m_packer.pack(m_request_id);
         m_packer.pack_map(0);
         m_packer.pack(procedure);
         pack_any(args);
         send();

         return m_calls[m_request_id].m_res.get_future();

      } else {

         return call(procedure);
      }
   }

   template<typename IStream, typename OStream>
   boost::future<boost::any> session<IStream, OStream>::call(const std::string& procedure, const anyvec& args, const anymap& kwargs) {

      if (!m_session_id) {
         throw no_session_error();
      }

      if (kwargs.size() > 0) {

         m_request_id += 1;
         m_calls[m_request_id] = call_t();

         // [CALL, Request|id, Options|dict, Procedure|uri, Arguments|list, ArgumentsKw|dict]

         m_packer.pack_array(6);
         m_packer.pack(static_cast<int> (msg_code::CALL));
         m_packer.pack(m_request_id);
         m_packer.pack_map(0);
         m_packer.pack(procedure);
         pack_any(args);
         pack_any(kwargs);
         send();

         return m_calls[m_request_id].m_res.get_future();

      } else {
         return call(procedure, args);
      }
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::pack_any(const boost::any& value) {

      if (value.empty()) {

         m_packer.pack_nil();

      } else if (value.type() == typeid(anyvec)) {

         anyvec v = boost::any_cast<anyvec>(value);

         m_packer.pack_array(v.size());

         anyvec::iterator it = v.begin();
         while (it != v.end()) {
            pack_any(*it);
            ++it;
         }

      } else if (value.type() == typeid(anymap)) {

         anymap m = boost::any_cast<anymap>(value);

         m_packer.pack_map(m.size());

         anymap::iterator it = m.begin();
         while (it != m.end()) {
            m_packer.pack(it->first); // std::string
            pack_any(it->second);
            ++it;
         }

      } else if (value.type() == typeid(int)) {

         int val = boost::any_cast<int>(value);
         m_packer.pack(val);

      } else if (value.type() == typeid(uint64_t)) {

         uint64_t val = boost::any_cast<uint64_t>(value);
         m_packer.pack(val);

      } else if (value.type() == typeid(bool)) {

         bool val = boost::any_cast<bool>(value);
         m_packer.pack(val);

      } else if (value.type() == typeid(float)) {

         float val = boost::any_cast<float>(value);
         m_packer.pack(val);

      } else if (value.type() == typeid(double)) {

         double val = boost::any_cast<double>(value);
         m_packer.pack(val);

      } else if (value.type() == typeid(std::string)) {

         std::string val = boost::any_cast<std::string>(value);
         m_packer.pack(val);

      } else {
         std::cerr << "Warning: don't know how to pack type " << value.type().name() << std::endl;
      }
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::process_welcome(const wamp_msg_t& msg) {
      m_session_id = msg[1].as<uint64_t>();
      m_session_join.set_value(m_session_id);
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::process_goodbye(const wamp_msg_t& msg) {

/*
      if (!m_session_id) {
         throw protocol_error("GOODBYE received an no session established");
      }
*/
      m_session_id = 0;

      if (!m_goodbye_sent) {

         // if we did not initiate closing, reply ..

         // [GOODBYE, Details|dict, Reason|uri]

         m_packer.pack_array(3);

         m_packer.pack(static_cast<int> (msg_code::GOODBYE));
         m_packer.pack_map(0);
         m_packer.pack(std::string("wamp.error.goodbye_and_out"));
         send();

      } else {
         // we previously initiated closing, so this
         // is the peer reply
      }
      std::string reason = msg[2].as<std::string>();
      m_session_leave.set_value(reason);
   }

   template<typename IStream, typename OStream>
   boost::future<std::string> session<IStream, OStream>::leave(const std::string& reason) {

      if (!m_session_id) {
         throw no_session_error();
      }

      m_goodbye_sent = true;
      m_session_id = 0;

      // [GOODBYE, Details|dict, Reason|uri]

      m_packer.pack_array(3);

      m_packer.pack(static_cast<int> (msg_code::GOODBYE));
      m_packer.pack_map(0);
      m_packer.pack(reason);
      send();

      return m_session_leave.get_future();
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::unpack_anyvec(std::vector<msgpack::object>& raw_args, anyvec& args) {
      for (size_t i = 0; i < raw_args.size(); ++i) {
         args.push_back(unpack_any(raw_args[i]));
      }
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::unpack_anymap(std::map<std::string, msgpack::object>& raw_kwargs, anymap& kwargs) {
       for (auto& raw_args : raw_kwargs) {
           kwargs[raw_args.first] = unpack_any(raw_args.second);
       }
   }

   template<typename IStream, typename OStream>
   boost::any session<IStream, OStream>::unpack_any(msgpack::object& obj) {
      switch (obj.type) {

         case msgpack::type::STR:
            return boost::any(obj.as<std::string>());

         case msgpack::type::POSITIVE_INTEGER:
            return boost::any(obj.as<uint64_t>());

         case msgpack::type::NEGATIVE_INTEGER:
            return boost::any(obj.as<int64_t>());

         case msgpack::type::BOOLEAN:
            return boost::any(obj.as<bool>());

         case msgpack::type::FLOAT:
            return boost::any(obj.as<double>());

         case msgpack::type::NIL:
            return boost::any();

         case msgpack::type::ARRAY:
            {
               anyvec out_vec;
               std::vector<msgpack::object> in_vec;

               obj.convert(&in_vec);
               unpack_anyvec(in_vec, out_vec);

               return out_vec;
            }

         case msgpack::type::MAP:
            {
               anymap out_map;
               std::map<std::string, msgpack::object> in_map;

               obj.convert(&in_map);
               unpack_anymap(in_map, out_map);
               return out_map;
            }

         default:
            return boost::any();
      }
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::process_error(const wamp_msg_t& msg) {

      // [ERROR, REQUEST.Type|int, REQUEST.Request|id, Details|dict, Error|uri]
      // [ERROR, REQUEST.Type|int, REQUEST.Request|id, Details|dict, Error|uri, Arguments|list]
      // [ERROR, REQUEST.Type|int, REQUEST.Request|id, Details|dict, Error|uri, Arguments|list, ArgumentsKw|dict]

      // message length
      //
      if (msg.size() != 5 && msg.size() != 6 && msg.size() != 7) {
         throw protocol_error("invalid ERROR message structure - length must be 5, 6 or 7");
      }

      // REQUEST.Type|int
      //
      if (msg[1].type != msgpack::type::POSITIVE_INTEGER) {
         throw protocol_error("invalid ERROR message structure - REQUEST.Type must be an integer");
      }
      msg_code request_type = static_cast<msg_code> (msg[1].as<int>());

      if (request_type != msg_code::CALL &&
          request_type != msg_code::REGISTER &&
          request_type != msg_code::UNREGISTER &&
          request_type != msg_code::PUBLISH &&
          request_type != msg_code::SUBSCRIBE &&
          request_type != msg_code::UNSUBSCRIBE) {
         throw protocol_error("invalid ERROR message - ERROR.Type must one of CALL, REGISTER, UNREGISTER, SUBSCRIBE, UNSUBSCRIBE");
      }

      // REQUEST.Request|id
      //
      if (msg[2].type != msgpack::type::POSITIVE_INTEGER) {
         throw protocol_error("invalid ERROR message structure - REQUEST.Request must be an integer");
      }
      uint64_t request_id = msg[2].as<uint64_t>();

      // Details
      //
      if (msg[3].type != msgpack::type::MAP) {
         throw protocol_error("invalid ERROR message structure - Details must be a dictionary");
      }

      // Error|uri
      //
      if (msg[4].type != msgpack::type::STR) {
         throw protocol_error("invalid ERROR message - Error must be a string (URI)");
      }
      std::string error = msg[4].as<std::string>();

      // Arguments|list
      //
      if (msg.size() > 5) {
         if (msg[5].type  != msgpack::type::ARRAY) {
            throw protocol_error("invalid ERROR message structure - Arguments must be a list");
         }
      }

      // ArgumentsKw|list
      //
      if (msg.size() > 6) {
         if (msg[6].type  != msgpack::type::MAP) {
            throw protocol_error("invalid ERROR message structure - ArgumentsKw must be a dictionary");
         }
      }

      switch (request_type) {

         case msg_code::CALL:
            {
               //
               // process CALL ERROR
               //
               typename calls_t::iterator call = m_calls.find(request_id);

               if (call != m_calls.end()) {

                  // FIXME: forward all error info .. also not sure if this is the correct
                  // way to use set_exception()
                  call->second.m_res.set_exception(boost::copy_exception(std::runtime_error(error)));

               } else {
                  throw protocol_error("bogus ERROR message for non-pending CALL request ID");
               }
            }
            break;

         // FIXME: handle other error messages
         default:
            std::cerr << "unhandled ERROR message" << std::endl;
      }
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::process_invocation(const wamp_msg_t& msg) {

      // [INVOCATION, Request|id, REGISTERED.Registration|id, Details|dict]
      // [INVOCATION, Request|id, REGISTERED.Registration|id, Details|dict, CALL.Arguments|list]
      // [INVOCATION, Request|id, REGISTERED.Registration|id, Details|dict, CALL.Arguments|list, CALL.ArgumentsKw|dict]

      if (msg.size() != 4 && msg.size() != 5 && msg.size() != 6) {
         throw protocol_error("invalid INVOCATION message structure - length must be 4, 5 or 6");
      }

      if (msg[1].type != msgpack::type::POSITIVE_INTEGER) {
         throw protocol_error("invalid INVOCATION message structure - INVOCATION.Request must be an integer");
      }
      uint64_t request_id = msg[1].as<uint64_t>();

      if (msg[2].type != msgpack::type::POSITIVE_INTEGER) {
         throw protocol_error("invalid INVOCATION message structure - INVOCATION.Registration must be an integer");
      }
      uint64_t registration_id = msg[2].as<uint64_t>();

      endpoints_t::iterator endpoint = m_endpoints.find(registration_id);

      if (endpoint != m_endpoints.end()) {

         if (msg[3].type != msgpack::type::MAP) {
            throw protocol_error("invalid INVOCATION message structure - Details must be a dictionary");
         }

         anyvec args;
         anymap kwargs;

         if (msg.size() > 4) {

            if (msg[4].type != msgpack::type::ARRAY) {
               throw protocol_error("invalid INVOCATION message structure - INVOCATION.Arguments must be a list");
            }

            std::vector<msgpack::object> raw_args;
            msg[4].convert(&raw_args);
            unpack_anyvec(raw_args, args);

            if (msg.size() > 5) {
               std::map<std::string, msgpack::object> raw_kwargs;
               msg[5].convert(&raw_kwargs);
               unpack_anymap(raw_kwargs, kwargs);
            }
         }

         // [YIELD, INVOCATION.Request|id, Options|dict]
         // [YIELD, INVOCATION.Request|id, Options|dict, Arguments|list]
         // [YIELD, INVOCATION.Request|id, Options|dict, Arguments|list, ArgumentsKw|dict]
         try {

            if ((endpoint->second).type() == typeid(endpoint_t)) {

               if (m_debug) {
                  std::cerr << "Invoking endpoint registered under " << registration_id << " as of type endpoint_t" << std::endl;
               }

               boost::any res = ( boost::any_cast<endpoint_t>(endpoint->second) )(args, kwargs);

               m_packer.pack_array(4);
               m_packer.pack(static_cast<int> (msg_code::YIELD));
               m_packer.pack(request_id);
               m_packer.pack_map(0);
               m_packer.pack_array(1);
               pack_any(res);
               send();

            } else if ((endpoint->second).type() == typeid(endpoint_v_t)) {

               if (m_debug) {
                  std::cerr << "Invoking endpoint registered under " << registration_id << " as of type endpoint_v_t" << std::endl;
               }

               anyvec res = ( boost::any_cast<endpoint_v_t>(endpoint->second) )(args, kwargs);

               m_packer.pack_array(4);
               m_packer.pack(static_cast<int> (msg_code::YIELD));
               m_packer.pack(request_id);
               m_packer.pack_map(0);
               pack_any(res);
               send();

            } else if ((endpoint->second).type() == typeid(endpoint_fvm_t)) {

               if (m_debug) {
                  std::cerr << "Invoking endpoint registered under " << registration_id << " as of type endpoint_fvm_t" << std::endl;
               }

               boost::future<anyvecmap> f_res = ( boost::any_cast<endpoint_fvm_t>(endpoint->second) )(args, kwargs);

               auto done = f_res.then([&](decltype(f_res) f) {

                  anyvecmap res = f.get();

                  m_packer.pack_array(5);
                  m_packer.pack(static_cast<int> (msg_code::YIELD));
                  m_packer.pack(request_id);
                  m_packer.pack_map(0);
                  pack_any(res.first);
                  pack_any(res.second);
                  send();
               });

               done.wait();

            } else {

               // FIXME
               std::cerr << "Could not process invocation - unimplemented endpoint type" << std::endl;
               std::cerr << typeid(endpoint_t).name() << std::endl;
               std::cerr << ((endpoint->second).type()).name() << std::endl;
            }

         }

         // [ERROR, INVOCATION, INVOCATION.Request|id, Details|dict, Error|uri]
         // [ERROR, INVOCATION, INVOCATION.Request|id, Details|dict, Error|uri, Arguments|list]
         // [ERROR, INVOCATION, INVOCATION.Request|id, Details|dict, Error|uri, Arguments|list, ArgumentsKw|dict]

         // FIXME: implement Autobahn-specific exception with error URI
         catch (const std::exception& e) {
            // we can at least describe the error with e.what()
            //
            m_packer.pack_array(7);
            m_packer.pack(static_cast<int> (msg_code::ERROR));
            m_packer.pack(static_cast<int> (msg_code::INVOCATION));
            m_packer.pack(request_id);
            m_packer.pack_map(0);
            m_packer.pack(std::string("wamp.error.runtime_error"));
            m_packer.pack_array(0);

            m_packer.pack_map(1);

            m_packer.pack(std::string("what"));
            m_packer.pack(std::string(e.what()));

            send();
         }
         catch (...) {
            // no information available on actual error
            //
            m_packer.pack_array(5);
            m_packer.pack(static_cast<int> (msg_code::ERROR));
            m_packer.pack(static_cast<int> (msg_code::INVOCATION));
            m_packer.pack(request_id);
            m_packer.pack_map(0);
            m_packer.pack(std::string("wamp.error.runtime_error"));
            send();
         }

      } else {
         throw protocol_error("bogus INVOCATION message for non-registered registration ID");
      }
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::process_call_result(const wamp_msg_t& msg) {

      // [RESULT, CALL.Request|id, Details|dict]
      // [RESULT, CALL.Request|id, Details|dict, YIELD.Arguments|list]
      // [RESULT, CALL.Request|id, Details|dict, YIELD.Arguments|list, YIELD.ArgumentsKw|dict]

      if (msg.size() != 3 && msg.size() != 4 && msg.size() != 5) {
         throw protocol_error("invalid RESULT message structure - length must be 3, 4 or 5");
      }

      if (msg[1].type != msgpack::type::POSITIVE_INTEGER) {
         throw protocol_error("invalid RESULT message structure - CALL.Request must be an integer");
      }

      uint64_t request_id = msg[1].as<uint64_t>();

      typename calls_t::iterator call = m_calls.find(request_id);

      if (call != m_calls.end()) {

         if (msg[2].type != msgpack::type::MAP) {
            throw protocol_error("invalid RESULT message structure - Details must be a dictionary");
         }

         if (msg.size() > 3) {

            if (msg[3].type != msgpack::type::ARRAY) {
               throw protocol_error("invalid RESULT message structure - YIELD.Arguments must be a list");
            }

            std::vector<msgpack::object> raw_args;
            msg[3].convert(&raw_args);

            anyvec args;

            unpack_anyvec(raw_args, args);

            if (args.size() > 0) {
               call->second.m_res.set_value(args[0]);
            } else {
               call->second.m_res.set_value(boost::any());
            }

         } else {
            // empty result
            call->second.m_res.set_value(boost::any());
         }
      } else {
         throw protocol_error("bogus RESULT message for non-pending request ID");
      }
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::process_subscribed(const wamp_msg_t& msg) {

      // [SUBSCRIBED, SUBSCRIBE.Request|id, Subscription|id]

      if (msg.size() != 3) {
         throw protocol_error("invalid SUBSCRIBED message structure - length must be 3");
      }

      if (msg[1].type != msgpack::type::POSITIVE_INTEGER) {
         throw protocol_error("invalid SUBSCRIBED message structure - SUBSCRIBED.Request must be an integer");
      }

      uint64_t request_id = msg[1].as<uint64_t>();

      typename subscribe_requests_t::iterator subscribe_request = m_subscribe_requests.find(request_id);

      if (subscribe_request != m_subscribe_requests.end()) {

         if (msg[2].type != msgpack::type::POSITIVE_INTEGER) {
            throw protocol_error("invalid SUBSCRIBED message structure - SUBSCRIBED.Subscription must be an integer");
         }

         uint64_t subscription_id = msg[2].as<uint64_t>();

         m_handlers.insert(std::make_pair(subscription_id, subscribe_request->second.m_handler));

         subscribe_request->second.m_res.set_value(subscription(subscription_id));

         m_subscribe_requests.erase(request_id);

      } else {
         throw protocol_error("bogus SUBSCRIBED message for non-pending request ID");
      }
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::process_event(const wamp_msg_t& msg) {

      // [EVENT, SUBSCRIBED.Subscription|id, PUBLISHED.Publication|id, Details|dict]
      // [EVENT, SUBSCRIBED.Subscription|id, PUBLISHED.Publication|id, Details|dict, PUBLISH.Arguments|list]
      // [EVENT, SUBSCRIBED.Subscription|id, PUBLISHED.Publication|id, Details|dict, PUBLISH.Arguments|list, PUBLISH.ArgumentsKw|dict]

      if (msg.size() != 4 && msg.size() != 5 && msg.size() != 6) {
         throw protocol_error("invalid EVENT message structure - length must be 4, 5 or 6");
      }

      if (msg[1].type != msgpack::type::POSITIVE_INTEGER) {
         throw protocol_error("invalid EVENT message structure - SUBSCRIBED.Subscription must be an integer");
      }

      uint64_t subscription_id = msg[1].as<uint64_t>();

      typename handlers_t::iterator handlersBegin = m_handlers.lower_bound(subscription_id);
      typename handlers_t::iterator handlersEnd = m_handlers.upper_bound(subscription_id);

      if (handlersBegin != m_handlers.end()
              && handlersBegin != handlersEnd) {

         if (msg[2].type != msgpack::type::POSITIVE_INTEGER) {
            throw protocol_error("invalid EVENT message structure - PUBLISHED.Publication|id must be an integer");
         }

         //uint64_t publication_id = msg[2].as<uint64_t>();

         if (msg[3].type != msgpack::type::MAP) {
            throw protocol_error("invalid EVENT message structure - Details must be a dictionary");
         }

         anyvec args;
         anymap kwargs;

         if (msg.size() > 4) {

            if (msg[4].type != msgpack::type::ARRAY) {
               throw protocol_error("invalid EVENT message structure - EVENT.Arguments must be a list");
            }

            std::vector<msgpack::object> raw_args;
            msg[4].convert(&raw_args);
            unpack_anyvec(raw_args, args);

            if (msg.size() > 5) {

               if (msg[5].type != msgpack::type::MAP) {
                  throw protocol_error("invalid EVENT message structure - EVENT.Arguments must be a list");
               }

               std::map<std::string, msgpack::object> raw_kwargs;
               msg[5].convert(&raw_kwargs);
               unpack_anymap(raw_kwargs, kwargs);
            }
         }

         try {

            // now trigger the user supplied event handler ..
            //
            while (handlersBegin != handlersEnd) {
                (handlersBegin->second)(args, kwargs);
                ++handlersBegin;
            }

         } catch (...) {
            if (m_debug) {
               std::cerr << "Warning: event handler fired exception" << std::endl;
            }
         }

      } else {
         // silently swallow EVENT for non-existent subscription IDs.
         // We may have just unsubscribed, the this EVENT might be have
         // already been in-flight.
         if (m_debug) {
            std::cerr << "Skipping EVENT for non-existent subscription ID " << subscription_id << std::endl;
         }
      }
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::process_registered(const wamp_msg_t& msg) {

      // [REGISTERED, REGISTER.Request|id, Registration|id]

      if (msg.size() != 3) {
         throw protocol_error("invalid REGISTERED message structure - length must be 3");
      }

      if (msg[1].type != msgpack::type::POSITIVE_INTEGER) {
         throw protocol_error("invalid REGISTERED message structure - REGISTERED.Request must be an integer");
      }

      uint64_t request_id = msg[1].as<uint64_t>();

      typename register_requests_t::iterator register_request = m_register_requests.find(request_id);

      if (register_request != m_register_requests.end()) {

         if (msg[2].type != msgpack::type::POSITIVE_INTEGER) {
            throw protocol_error("invalid REGISTERED message structure - REGISTERED.Registration must be an integer");
         }

         uint64_t registration_id = msg[2].as<uint64_t>();

         m_endpoints[registration_id] = register_request->second.m_endpoint;

         register_request->second.m_res.set_value(registration(registration_id));

      } else {
         throw protocol_error("bogus REGISTERED message for non-pending request ID");
      }
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::receive_msg() {

      if (m_debug) {
         std::cerr << "RX preparing to receive message .." << std::endl;
      }

      // read 4 octets msg length prefix ..
      boost::asio::async_read(m_in,
         boost::asio::buffer(m_buffer_msg_len, sizeof(m_buffer_msg_len)),
         bind(&session<IStream, OStream>::got_msg_header, this, boost::asio::placeholders::error));
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::got_msg_header(const boost::system::error_code& error) {
      if (!error) {

         m_msg_len = ntohl(*((uint32_t*) &m_buffer_msg_len));

         if (m_debug) {
            std::cerr << "RX message (" << m_msg_len << " octets) ..." << std::endl;
         }

         // read actual message
         m_unpacker.reserve_buffer(m_msg_len);

         boost::asio::async_read(m_in,
            boost::asio::buffer(m_unpacker.buffer(), m_msg_len),
            bind(&session<IStream, OStream>::got_msg_body, this, boost::asio::placeholders::error));

      } else {
      }
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::got_msg_body(const boost::system::error_code& error) {
      if (!error) {

         if (m_debug) {
            std::cerr << "RX message received." << std::endl;
         }

         m_unpacker.buffer_consumed(m_msg_len);

         msgpack::unpacked result;

         while (m_unpacker.next(&result)) {

            msgpack::object obj(result.get());

            if (m_debug) {
               std::cerr << "RX WAMP message: " << obj << std::endl;
            }

            got_msg(obj);
         }

         if (!m_stopped) {
            receive_msg();
         }

      } else {

      }
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::got_msg(const msgpack::object& obj) {

      if (obj.type != msgpack::type::ARRAY) {
         throw protocol_error("invalid message structure - message is not an array");
      }

      wamp_msg_t msg;
      obj.convert(&msg);

      if (msg.size() < 1) {
         throw protocol_error("invalid message structure - missing message code");
      }

      if (msg[0].type != msgpack::type::POSITIVE_INTEGER) {
         throw protocol_error("invalid message code type - not an integer");
      }

      msg_code code = static_cast<msg_code> (msg[0].as<int>());

      switch (code) {
         case msg_code::HELLO:
            throw protocol_error("received HELLO message unexpected for WAMP client roles");

         case msg_code::WELCOME:
            process_welcome(msg);
            break;

         case msg_code::ABORT:
            // FIXME
            break;

         case msg_code::CHALLENGE:
            throw protocol_error("received CHALLENGE message - not implemented");

         case msg_code::AUTHENTICATE:
            throw protocol_error("received AUTHENTICATE message unexpected for WAMP client roles");

         case msg_code::GOODBYE:
            process_goodbye(msg);
            break;

         case msg_code::HEARTBEAT:
            // FIXME
            break;

         case msg_code::ERROR:
            process_error(msg);
            break;

         case msg_code::PUBLISH:
            throw protocol_error("received PUBLISH message unexpected for WAMP client roles");

         case msg_code::PUBLISHED:
            // FIXME
            break;

         case msg_code::SUBSCRIBE:
            throw protocol_error("received SUBSCRIBE message unexpected for WAMP client roles");

         case msg_code::SUBSCRIBED:
            process_subscribed(msg);
            break;

         case msg_code::UNSUBSCRIBE:
            throw protocol_error("received UNSUBSCRIBE message unexpected for WAMP client roles");

         case msg_code::UNSUBSCRIBED:
            // FIXME
            break;

         case msg_code::EVENT:
            process_event(msg);
            break;

         case msg_code::CALL:
            throw protocol_error("received CALL message unexpected for WAMP client roles");

         case msg_code::CANCEL:
            throw protocol_error("received CANCEL message unexpected for WAMP client roles");

         case msg_code::RESULT:
            process_call_result(msg);
            break;

         case msg_code::REGISTER:
            throw protocol_error("received REGISTER message unexpected for WAMP client roles");

         case msg_code::REGISTERED:
            process_registered(msg);
            break;

         case msg_code::UNREGISTER:
            throw protocol_error("received UNREGISTER message unexpected for WAMP client roles");

         case msg_code::UNREGISTERED:
            // FIXME
            break;

         case msg_code::INVOCATION:
            process_invocation(msg);
            break;

         case msg_code::INTERRUPT:
            throw protocol_error("received INTERRUPT message - not implemented");

         case msg_code::YIELD:
            throw protocol_error("received YIELD message unexpected for WAMP client roles");
      }
   }

   template<typename IStream, typename OStream>
   void session<IStream, OStream>::send() {

      if (!m_stopped) {
         if (m_debug) {
            std::cerr << "TX message (" << m_buffer.size() << " octets) ..." << std::endl;
         }

         // FIXME: rework this for queuing, async_write using gathered write
         //
         // boost::asio::write(m_out, std::vector<boost::asio::const_buffer>& out_vec, handler);

         // http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/reference/const_buffer/const_buffer/overload2.html
         // http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/reference/async_write/overload1.html

         std::size_t written = 0;

         // write message length prefix
         uint32_t len = htonl(m_buffer.size());
         written += boost::asio::write(m_out, boost::asio::buffer((char*) &len, sizeof(len)));

         // write actual serialized message
         written += boost::asio::write(m_out, boost::asio::buffer(m_buffer.data(), m_buffer.size()));

         if (m_debug) {
            std::cerr << "TX message sent (" << written << " / " << (sizeof(len) + m_buffer.size()) << " octets)" << std::endl;
         }
      } else {
         if (m_debug) {
            std::cerr << "TX message skipped since session stopped (" << m_buffer.size() << " octets)." << std::endl;
         }
      }

      // clear serialization buffer
      m_buffer.clear();
   }
}


The Niagara Falls are definitely one of the most popular settings for a romantic wedding.
If you want your wedding totally the Niagara 'style' with the falls nearby, the wedding should take place in the Niagara Falls State Park.
This will definetly provide the most impressive backdrop for the reception and wedding.
But you need a 'ceremony permit' from the park officials: call the Niagara Falls State Park Operations Office, phone#: 716-278-1785. They also suggest spots in the park where you can have your ceremony and make the mandatory reservation. They also help you with finding a minister. so call them or visit their website, see link below.
New York State requires that the couple has to appear in person for the marriage license to any town or city clerk in the state. Please note, that there's no way around this: no third party with certified affidavit, no representative (even if he has been given 'power of attorney'). You have to sign in the presence of a clerk.
So far New York State Law.
Anyhow, you may download a Marriage License Application from the city's website.
The office issues marriage licenses between 8.00 a.m. and 3.30 p.m..
Check the City Clerk's Office for changes.


"Secretos que incomodan" is the first of a series of children's book called Prevent. It gives children tools to effectively protect themselves from sexual abuse. It teaches them to say "no" is someone tries to have inappropriate physical contact with them, and it teaches them to distinguish between good secrets and those that are painful when kept. Finally, it teaches children to recognize someone who is trustworthy to whom then can go to.


text:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Overview List (PMD JSP 5.5.1 Test API)</title>
<meta name="date" content="2016-07-27">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">

All Classes

Packages

net.sourceforge.pmd

net.sourceforge.pmd.lang.jsp

net.sourceforge.pmd.lang.jsp.ast

net.sourceforge.pmd.lang.jsp.rule.basic

net.sourceforge.pmd.lang.jsp.rule.basicjsf


SOUS 5th Anniversary Festivities Is Here!
This month is a big celebration month for Stuck On U Sketches Challenge Blog!
5 years Stuck On U Sketches has been providing our fellow paper crafting community with inspiring and creative challenges as well as having shared here hundreds of projects from our super talented design team, present and past.
We thank you all for having been with us, the long timers and the sweetest friends finding us new.
And we would like to warmly like to thank each company for their kindness and generosity sponsoring our special month!
Each time you join ANY challenge this month your name will be entered to win one of these 2 amazing sponsored gifts! Plus 3 hops this month gives you MANY chances to win!
This is my daughter's first school album! I am so blessed to hear her stories every day she comes back from school since the first day she went last week. I am so thankful to be able to record her memories in this special book. I am using My Creations™ Hip Pics Album and Workshops On The Go™ Chalk It Up Scrapbooking Kit.
Exclusive C-sized stamp set #30yearsofhappy – FREE with purchase during September, National Stamping Month!
I love that label with the date, etc. Sweet page!