text:
EMF Compare/Logical Model
Logical Model
What is a logical model?
We name "logical model" a set of physical resources that form a coherent business model. For example, we could say that a given Java class forms a coherent logical model only when it is linked with all of its imported classes.
In the case of EMF, we name a logical resource (or model) the EMF resource loaded in memory, as opposed to a physical resource (or file) that is merely the serialization of this model on disk. A given EMF model can reference a number of other models, and it will be incoherent, or even sometimes corrupted, if these other models are not loaded in memory. In EMF, a given model can be serialized as a single file, fragmented in multiple files on disk, or reference multiple files. The logical model is only coherent when the whole set of its physical files is accessible.
Eclipse Team
The Eclipse Team project (referred as "Team" in this document) provides an API named "model providers". This API allows implementers to define the semantics of what is a "logical model" in his case. In short, it allows us to link any number of physical resources to a given "starting" file.
Technically, this is done through an extension point that can be implemented by anyone and that will adapt a file (a workspace IResource) to a set of files (a Team ResourceTraversal). The model providers can be queried by anyone who calls actions on workspace files in order to determine if this action can be done against a single file or if it should be executed against a set of files.
Team only provides the API to define logical models. It is then the responsibility of its clients to properly query the model provider when calling an action. In the context of EMF Compare, we are interested in the "compare" actions. These actions are contributed by the repository providers (CVS, EGit, Subversive, Subclipse, Clearcase...). It is their responsibility, within the code of these actions, to query the model providers in order to determine if the selected files can be compared alone... or if they need to be compared along with a set of others.
- The CVS plugin does not consistently use it. For example, when using "compare with > latest from HEAD" on a file that is part of a logical model, it will 'see' the logical model and open the "synchronize" perspective instead of a compare editor : this is what's expected. However, when the user, from the synchronization view, asks to see the differences (right-click then select 'open in compare editor')... CVS will not query the logical model, comparing the file alone (see also bug 345415).
- The EGit, Subversive and Subclipse plugins never query the model providers for any comparison action.
EMF Compare
In the case of EMF Compare, the above limitations were a show-stopper. EMF models cannot simply be reduced to single files as that would totally break their consistency when trying to compare them.
Chosen solution
EMF Compare now uses its own implementation aiming at this same goal, that we named synchronization model. In short, instead of expecting the repository providers to query the model providers, EMF Compare will take the file (or set of files) that it is fed and expand it to the full logical model by querying the synchronization model.
This custom implementation also allows us to not only resolve the whole logical model of a given physical file, but also to determine which parts of this model should be included in the comparison scope. Indeed, under the semantics of EMF, if we can determine that two physical files are binary identical in their two distinct revisions, then we also know that the part of the logical model they represent are identical themselves. There would be no need to compare them. This allows to save both time and memory, killing two birds with one stone.
How it works
When the user selects a file A in his workspace and asks to compare it with a remote revision (for example, the "latest from HEAD"), the repository provider (CVS in this case) fetches the remote content of A in the selected revision (we'll call it A'). Once the remote revision fetched, the repository provider considers his work finished and feeds EMF Compare the two files (A and A') and lets it begin his own work. This is fine and dandy when the logical model of A only spans a single file ... but if A references another file B, then the comparison will not be coherent as EMF Compare operates on the logical model, not on its serialized form.
Thus, EMF Compare will not immediately launch the comparison of the files it is fed. Before any further work, it will query the synchronization model with these files in order to expand them to their whole logical model.
- In the case of a local file (A), it will load it as an EMF Resource and resolve all of its cross references. During the resolution process, we'll be able to track all of the "other" files required by the "starting point" A. In the example above, we'll end up with a set containing both A and B.
- In the case of a remote file (A'), it will try and load the streamed revision of the resource, then query the repository provider for the other files needed by A' in the correct revision. A revision is deemed "correct" if it precedes (or is equal to) the revision of A' that we have initially been fed. This will lead us to a set containing A' and B'.
Once the full logical model is resolved, EMF Compare can properly do the comparison work. Since we know of all fiels that compose our model, we'll also be able to safely merge differences without compromising the coherence of the whole.
However, even if we can launch EMF Compare at this point, the synchronization model also offers us one more possibility. EMF models can span thousands of physical files sometimes amounting to such a huge number of elements that it would not fit into the machine's memory if we tried to load it as a whole. The synchronization model knows how to retrieve the content of all of these files; it can also be used to minimize the set to only those which really did change. Indeed, we consider that files that are binary identical wield yield fragments of the logical model that will also be strictly identical. By removing these "identical" fragments, we can drastically limit the size of the logical model we'll load into memory, compacting it to a size that will fit before we launch the comparison on the remaining fragments.
The use of our own implementation effectively allows us to bypass the aforementioned limitations since we no longer rely on the repository providers. However, it has limitations of its own as far as model coherence is concerned.
If we can enforce the coherence of the models during the comparison, this approach still does not take into account the other aspects of collaboration with models. Even if comparing and merging two linked models is fine, it is still the repository provider's responsibility to query Team's model providers in order to "commit", "push", or even "replace" the models as a whole instead of acting on single physical files. Thus, most of the limitations mentioned above still hold, though we fixed those that applied to comparison actions.


text:
Gaucho wrote:LET'S GO PENS!!!
Moderators: Three Stars, dagny, pfim, netwolf
Gaucho wrote:LET'S GO PENS!!!
DelPen wrote:At least call the dive too. I have no idea what sully did to cause Doan to spin around like that.
SteelCityFan wrote:Nice set up by Sully.
Shakes wrote:SteelCityFan wrote:Nice set up by Sully.
Great speed and effort to win the icing too. Looks so dangerous on the puck lately. It's been talked up a lot, but can't remember seeing a guy so much better as a season progressed. Let alone an older guy like him.
profpolisci wrote:then again strait just went in the back door
Users browsing this forum: longtimefan, Steve Dave and 16 guests

subset: commoncrawl


text:
Study the art of Patisserie at William Angliss Institute
This short video will give you an idea of what studying patisserie at Angliss involves and is just oh so delicious.
This short video will give you an idea of what studying patisserie at Angliss involves and is just oh so delicious.
Each year, HTN selects a winner of the prestigious HTN Peter Howard AM Future Chef Scholarship.
Why settle for walking the red carpet when you can run the whole show? With our Event Management courses you can learn how to plan, fund, market and manage successful events.
TAFE Queensland's Hotel and Hospitality School (QHHS) is training the next generation of five and six-star workers and invites outstanding applicants to join their flagship program,
How does a guaranteed placement into some of Australia's best kitchens sound to you? Then this could be the perfect opportunity for you!
Now open, ICC Sydney is Australia's premier fully-integrated convention, exhibition and entertainment precinct.
The William Angliss Institute is an industry leader when it comes to developing world-class travel and tourism graduates, and its resort training is no exception.
Star Sydney are currently taking expressions of interest for enrollment in The Star Culinary Institution to start in early December.
The International Hospitality Service Program is an exclusive program designed to develop frontline food and beverage service skills for work in luxury, five and six star properties


text:
Powered by vBadvanced CMPS v3.2.3
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
AJOR © 2002 - 2019 AUSJEEPOFFROAD.COM. All corporate trademarked names and logos are property of their respective owners. Ausjeepoffroad is in no way associated with DaimlerChrysler Corporation or Fiat Jeep.
www.ausjeep.com www.ausjeep.com.au www.midlifemate.com ausjeepforum.com Jeep Wrangler JL Australia release
vB Ad Management by =RedTyger=


text:
This group is for bloggers who would like to review books from New Leaf Publishing Group. All reviewers must sign up to be members of Creation Conversations in order to post your reviews, questions, and comments.
Website: http://nlpg.com
Members: 280
Latest Activity: Feb 24, 2016
New Book for Review TBA Soon!
Are you a blogger who loves to share books? Do you share your blog posts using social media platforms including Facebook, Twitter, Goodreads, bookmarking sites and more?
Required for your Review:
1. Requesting digital review copies indicates that you will post your review on the book product page on your blog, Amazon.com, Christianbook.com, and Goodreads.com. We are SUPER thankful when you also post on BN.com, iTunes, and others.
2. You must provide the links to your reviews so that we can share them with the author, bookmark them for social sharing, and perhaps use some of your feedback in marketing materials. Below you will see a description of our current review title along with a linkup at the bottom. Be sure to add the link to your review there.
3. Include in your review the following:
We recently moved back to Michigan and I've missed the wonderful books made available for review. I noticed that the "latest activity" was around May of this year with other posts referencing October 2013. Did I miss an email announcement somewhere…Continue
Started by Heather Hurley Sep 1, 2014.
In an attempt to make review posts easier to locate, we're going to try something new this month. Instead of commenting on the general wall for the group, Please share your review links here inside the designated discussion before going to…Continue
Started by April Keown. Last reply by Daniel Greegor Jun 24, 2014.
When will the next book we available to review?Continue
Started by Ginger Barber. Last reply by valerie belley Apr 10, 2014.
Is there a link up for this one?Continue
Started by Anne Campbell. Last reply by April Keown Dec 3, 2013.


text:
Every morning, the fine folks at Sports Radio Interviews sift through the a.m. drive-time chatter to bring you the best interviews with coaches, players, and personalities across the sports landscape. Today: GQ writer and LeBron James chronicler J.R. Moehringer.
J.R. Moehringer's LeBron James profile in the September issue of GQ was one of the most highly anticipated magazine stories in quite some time. James became a villain this summer when he left the Cavaliers for the Heat, but the shouting seemed to dissipate until it leaked that in an upcoming GQ profile, James would claim to have always hated Cleveland. Moehringer stopped by 790 the Ticket with Jorge Sedano and discussed what he thinks of LeBron and what he thinks LeBron thinks of LeBron.
On whether or not he feels LeBron was trying to recreate his time in high school by joining the Heat:
"I actually think it's the overriding factor. I do think he wants to win, but I think this is more than just a factor. I think his desire to recreate this golden moment in his life, the happiest four years of his life, this time when he felt safe, confident, indomitable, I think this decision to go to Miami is a clear attempt to recreate that time. It's more than a factor. It's one of the driving forces in the decision."
On how he feels about people saying LeBron is immature:
"I disagree. I think that wanting to be happy, if that's immature than maybe immaturity is healthy. I think some of the older players who've criticized him can't understand putting personal relationships and friendships that high on your list of priorities. Do we really think that (Charles) Barkley cared about playing with friends or (Michael) Jordan? That wasn't their priority. They were maybe a little more ruthless. Their priorities were ordered differently. That didn't mean that LeBron was immature. It just means he views life a little differently and I think this emphasis that he puts on personal relationships like trust, loyalty, and friendship, it makes him likeable on a one to one level. It feels kinda crazy to call LeBron likeable right now since the whole country is trashing him and rolling their eyes at him. But he is. When you're sitting with him he's a very warm guy, and he's a very engaging, likeable fellow. I think part of that comes from the emphasis he puts on people. Who he surrounds himself with is paramount to him. I don't think it's immature and I don't think he's trying to revert to high school. I just think that he's just trying to recreate a winning formula that was so successful for him in high school and he's trying to recapture a feeling. This is just a guy that says basketball used to be fun. What can I do to make it fun again? Maybe I will play with guys who I trust, that have my back and whose talents compliment mine. If that's immature than I don't see it."
On whether or not he thinks LeBron needs to think more on his own:
"That's my theory. This seems to me to be a case where he let the people around him whom he trusts, he let them put him in a very bad situation and he just didn't think it through. Going forward he's going to have to think of things on his own. He's gonna have to separate himself a little bit from the people around him and not just take what they tell him at face value. I think he's a smart guy and I think if he had taken a few moments quietly by himself in a room sitting in a chair and thought an hour long special devoted to me, live television, announcing to millions of fans that I'm not going to be playing for their team, maybe that's not the best idea. I think he would've seen it. I like to think that. In the future he's going to have other decisions to make, I hope he realizes he needs a different decision making process."
Photo via GQ
This post, written by Chris Fedor, appears courtesy of Sports Radio Interviews. For the complete highlights of the interview, as well as audio, click here.
More From Sports Radio Interviews


text:
Steve Stephens, the man wanted for killing a 74-year-old man and uploading the video to Facebook Easter Sunday, has been found dead inside a car in Erie, Pennsylvania.
Stephens was spotted by an "alert citizen" around 11 a.m. Tuesday, Pennslyvania State Police Troopers troopers said in a Facebook post.
WICU reports that Stephens went to a McDonald's drive-thru and ordered chicken McNuggets and French fries.
A McDonald's employee recognized him and told Stephens the fries were not ready in order to stall for time as another employee called 911.
RELATED | Alert McDonald's worker helps police find Steve Stephens
When Stephens saw police approaching from behind, he drove off.
Troopers initiated a chase that lasted for roughly two miles and then attempted a move to try to disable the white Ford Fusion he was driving, officials said.
Speeds did not exceed 50 miles per hour.
"As the vehicle was spinning out of control from the PIT maneuver, Stephens pulled a pistol and shot himself in the head," troopers wrote.
Stephens' vehicle sustained minor damage after a trooper couldn't stop in time and hit the car, but no injuries to law enforcement were reported.
Listen to police dispatch audio when Stephens' car was first spotted below:
On Sunday, Stephens allegedly shot and killed 74-year-old Robert Godwin, Sr., on E. 93rd Street and posted video of the killing to his Facebook account. Stephens also went live on Facebook to confess to the murder. His account has since been disabled and the videos are no longer public.
Stephens also claimed he had killed more people, but Cleveland Police say they have no known additional victims linked to him.
Cleveland Police issued an aggravated murder warrant for Stephens and a $50,000 reward was offered for information leading to his capture.
Rumors that Stephens' phone pinged in the Erie, Pennsylvania area surfaced Monday, but Pennsylvania State Police said in a news conference Tuesday that they "had no direct knowledge" of that.
Press Conferences
Cleveland Mayor Frank Jackson, Chief of Police Calvin Williams, and other authorities addressed the media following the confirmation of Stephens' death early Tuesday afternoon:
Officials from the Pennsylvania State Police held a press conference in Erie, PA later on Tuesday afternoon to answer questions about how Steve Stephens was tracked down and more:


text:
2012-2013 Coach of the Year
Talk about anything general in the NBA here.
Moderators: Mr. Crackerz, JREED, Guybrush, 32
George Karl has won the COTY award which I think is fair enough. The Nuggets had a great season. But I don't understand how Erik Spoelstra polled 24 first round votes and Greg Popovich polled 11 first round votes. Now I'm a massive fan of Popovich. I think he's a great coach but I could probably coach the Spurs or Heat to the playoffs with the rosters that they have. I know people are critical of Mark Jackson's coaching but the guy got this team to play defence and he got this team to the playoffs, exceeding most analysts expectations.
This was well-deserved. I'm sure part of it was a lifetime achievement award because Karl DESERVES to have a coach-of-the-year on his resume, but a strong argument can be made for him as the best coach this year, especially considering he got 57 wins out of a team without a bona fide #1 option.


text:
Rowing Her Way to the Olympics
February 05, 2009
Oars poised for the pinnacle moment of her rowing career, Amy Clay Ives (at far left in photo) waited expectantly at the starting line at Beijing's Shunyi Olympic Rowing-Canoeing Park on August 17. With the Women's Final Sculling Quads mere seconds away, waves of adrenaline surged through her body.
"It's a feeling like I've never had before and can't imagine ever having again," says Ives, a member of the Australian rowing team, which finished the competition sixth in the world. "Excitement heightened my senses and mingled with a deep sense of knowing and inner calm."
Rowers engage in two main styles of rowing: sweep rowing and sculling. In sweep rowing, each rower plies one oar, using both hands. It's usually done in pairs, fours, and eights. In sculling, each rower works two oars, one with each hand. It's most often done in singles, doubles, and quads.
Ives had never touched an oar until she took up rowing in her first year at Lewis & Clark. An injury had previously ended her 12-year gymnastics career, so she was seeking an outlet for her athletic talents. At the college she participated in sweep rowing in four- and eight-person teams while pursuing an English major.
"I'd heard that rowing was a sport you could pick up at a later age–and one where my height would give me an advantage," she says. Ives is five feet nine inches tall.
During Ives' first year as a rower, Lewis & Clark's coach was Hilary Gehman, who went on to compete in the 2000 Sydney and 2004 Athens Summer Games. "She was my inspiration for wanting to someday go to the Olympics," says Ives.
Two years after graduation, Ives moved to Sydney, Australia, and joined a competitive rowing club. "I started sculling using two oars in a single scull," she says. "A single is much heavier than rowing an eight. But I slowly got used to it and grew stronger."
Under the guidance of Nick Garratt, a renowned Australian coach with an impressive international and Olympic coaching history, Ives took the leap from intermediate to elite-level rowing.
In the months leading up to the Beijing games, she and her teammates trained every day except Sunday: two intense rowing sessions in the morning, topped off by weight training or 90 minutes of cross training–biking or running–in the afternoon.
Ives held the "stroke" seat, closest to the bow. With her back to her teammates, she was primarily responsible for setting up and maintaining a good rhythm.
"Rowing is the ultimate team sport," she says. "It's extremely physical and requires endless hours of endurance training to prepare for a six- or seven-minute race that pushes you to your absolute limits. However, I find these limits are often more mental than physical."
On a purely aesthetic level, Ives loves the movement of rowing.
"It's fluid and explosive all in one stroke," she says. "And the natural beauty we observe out on the water is breathtaking."
Now that the rigors of the Olympics are behind her, Ives plans to take a few months off from rowing. "Regardless of whether I continue to row internationally, I will stick with the sport for fun and exercise," says Ives. "I hope it's something I'll do for many years to come."
–by Pattie Pace


text:
Central Nervous System Disease in HIV-infected Children on HAART
|The safety and scientific validity of this study is the responsibility of the study sponsor and investigators. Listing a study does not mean it has been evaluated by the U.S. Federal Government. Read our disclaimer for details.
|ClinicalTrials.gov Identifier: NCT00110331
Recruitment Status : Completed
First Posted : May 6, 2005
Last Update Posted : April 10, 2019
- Study Details
- Tabular View
- No Results Posted
- Disclaimer
- How to Read a Study Record
This study will examine how HIV affects the brain and nervous system, learning, and behavior in children on highly active antiretroviral therapy (HAART). Although HAART has resulted in fewer HIV-infected children getting sick and even fewer dying from AIDS, many children on this treatment regimen develop significant brain or nervous system problems, such as learning difficulties, attention problems, hyperactivity, and depression.
People who acquired HIV disease in the first decade of life and who have evidence of central nervous system (CNS) disease (e.g., encephalopathy, CNS compromise, ADHD, bipolar disease, major depression or psychosis) may be eligible for this study. Candidates are screened with a medical history, physical examination, neuropsychological testing and a CT scan of the head, if one has not been done within 12 months of entering the study.
Participants undergo the following tests and procedures:
- MRI and MRS scan of the head: These tests use a magnetic field and radio waves to obtain images of the brain and detect changes in certain brain chemicals that may be affected by HIV infection. Both procedures are done at the same time. The patient lies on a table that is moved into the scanner (a narrow cylinder), wearing earplugs to muffle loud knocking and thumping sounds that occur during the scanning process. The procedure lasts about 50 to 60 minutes, during which time the patient can communicate with the staff.
- Neuropsychological testing: Patients' thinking and behavior are evaluated with tests to measure their memory, attention, language, problem-solving, academic, and motor skills and questionnaires to assess behavioral and emotional functioning, quality of life, and adherence to HIV medication. Parents are also asked to complete questionnaires assessing their child's behavioral and emotional functioning, quality of life, important life events, and adherence to HIV medication.
- Lumbar puncture (spinal tap): Cerebrospinal fluid (CSF) is collected for analysis. For this procedure, a local anesthetic is given and a needle is inserted in the space between the bones in the lower back where the CSF circulates below the spinal cord. Some fluid is collected through the needle. Blood tests and a physical examination are done before the procedure to make sure it can be done as safely as possible. Patients may also be sedated to prevent any discomfort.
- Follow-up: The blood tests, MRI and MRS scans and spinal tap are repeated 1 and 2 years after the initial evaluation.
Some blood and spinal fluid samples from participants are stored for possible future studies related to HIV research
|Condition or disease
|HIV Infections Central Nervous System Diseases
Highly active antiretroviral therapy (HAART) has altered the natural history of HIV disease in children.
A significant minority of HIV-infected children has evidence of ongoing CNS disease.
Specific markers for CNS disease, factors predictive of risk for neurological decline, and pathophysiologic mechanisms have not yet been identified in HIV-infected children.
To explore the clinical features (neurological and psychiatric exams, neuropsychological evaluation, and neuroimaging), viral and neuroinflammatory factors, anatomic changes (brain MRI) and patterns of brain metabolites (1H-MRS) associated with HIV-related CNS disease in HIV-infected children in the HAART era.
HIV disease acquired in the first decade of life.
Evidence of CNS disease (classification of encephalopathy or CNS compromise or diagnosis of ADHD, bipolar disease, major depression, or psychosis).
Serial neurologic and psychiatric examinations, neuropsychologic test, neuroimaging, and CSF sampling will be performed once a year for a total of 3 evaluations.
|Study Type :
|Actual Enrollment :
|21 participants
|Study Start Date :
|May 3, 2005
|Study Completion Date :
|September 9, 2014
Choosing to participate in a study is an important personal decision. Talk with your doctor and family members or friends about deciding to join a study. To learn more about this study, you or your doctor may contact the study research staff using the contacts provided below. For general information, Learn About Clinical Studies.
|Ages Eligible for Study:
|Child, Adult, Older Adult
|Sexes Eligible for Study:
|Accepts Healthy Volunteers:
- HIV disease acquired in the first decade of life.
Evidence of CNS disease (at least one of the following):
- Classification of encephalopathy or CNS compromise.
- Diagnosis of ADHD, bipolar disease, major depression, or psychosis
- For children greater than 7 years, ability to give assent if developmentally appropriate.
- Inability or unwillingness to provide informed consent for subjects greater than 18 years, and inability or unwillingness of one parent / legal guardian to provide consent for subjects less than 18 years.
- Clinically significant, unrelated systemic illness (serious infections or significant cardiac, pulmonary, hepatic or other organ dysfunction) which in the judgment of the Principal Investigator or Chairpersons would compromise the patient's ability to tolerate this study or is likely to interfere with the study procedures or results
Lumbar Puncture Exclusion Criteria:
- Increased intracranial pressure (head imaging and neurologic examination to be performed prior to LP)
- Spinal cord lesion (to be screened by neurologic examination; spine imaging if clinically indicated)
- Platelet count less than 75,000/mm(3)
- Abnormal PT/PTT
- Focal suppuration at puncture site
To learn more about this study, you or your doctor may contact the study research staff using the contact information provided by the sponsor.
Please refer to this study by its ClinicalTrials.gov identifier (NCT number): NCT00110331
|United States, Maryland
|National Institutes of Health Clinical Center, 9000 Rockville Pike
|Bethesda, Maryland, United States, 20892
|Principal Investigator:
|Rohan Hazra, M.D.
|National Cancer Institute (NCI)
|ClinicalTrials.gov Identifier:
|NCT00110331 History of Changes
|Other Study ID Numbers:
|First Posted:
|May 6, 2005 Key Record Dates
|Last Update Posted:
|April 10, 2019
|Last Verified:
|September 9, 2014
Keywords provided by National Institutes of Health Clinical Center (CC):
Opportunistic Infections
Central Nervous System Disease
Bipolar Disorder
Attention Deficit Hyperactivity Disorder
Major Depression
Additional relevant MeSH terms:
HIV Infections
Nervous System Diseases
Central Nervous System Diseases
Lentivirus Infections
Retroviridae Infections
RNA Virus Infections
Virus Diseases
Sexually Transmitted Diseases, Viral
Immunologic Deficiency Syndromes
Immune System Diseases


text:
It's hard to look more unprepared as a defense than the Green Bay Packers last week.
Led by Colin Kaepernick, the San Francisco 49ers shredded Dom Capers' unit for 579 total yards in a 45-31 win that advanced the Niners to their second consecutive NFC Championship Game.
In the latest Shutdown Corner podcast with Doug Farrar, NFL Films guru Greg Cosell provided a compelling breakdown of just how successful the 49ers were in their most extensive use of the pistol formation yet.
The Niners worked out of the pistol on 34 of 75 plays from scrimmage (45 percent), a season-high. Kaepernick ran wild out of the formation, carrying the ball eight times for 102 yards. Frank Gore also found success in the pistol, carrying it 16 times for 87 yards.
The Packers' defenders on the outside seemed blindsided time and time again, but don't expect to see the same from the Atlanta Falcons, who spent the week studying this game.
So how will the Falcons attempt to slow Kaepernick? In their narrow division-round win over the Seattle Seahawks, the Falcons sat in a zone, rushed four and blitzed just seven times, according to Cosell. They essentially dared Russell Wilson to find the open receiver, which he did with regularity in the second half.
A similar scheme could keep help minimize Kaepernick as a running threat, but will he eventually pick away at the voids in the zone the same way Wilson did? Cosell believes the Falcons will play more aggressively to lead Kaepernick down a more uncertain path.
"I think they'll want Kaepernick to get frenetic," Cosell said. "They may live with one or two runs that burn them, but I think Kaepernick has a tendency to get a little frenetic, a little chaotic, and is not as consistent and efficient as Wilson when he gets like that."
How the Falcons choose to play Kaepernick -- and how he reacts to that strategy -- will go a long way in deciding who represents the NFC in the Super Bowl.
Follow Dan Hanzus on Twitter @DanHanzus.


text:
State Colleges
Jacksonville Jaguars draft FIU star safety Johnathan Cyprien
Four years ago, Johnathan Cyprien went to FIU just wanting a degree. Four months ago, Cyprien would have been happy just to be taken anywhere in the NFL Draft.
So waiting until the second day of the draft to be taken didn't bother Cyprien. Especially when he got taken with the first pick in the second round by Jacksonville, No.33 overall, a team just five hours from his North Miami Beach home.
"[Thursday night] was really mellow," Cyprien said Friday. "My agent, Drew Rosenhaus, told me we're expected to go in the second round, so we'll watch the first round because there's a chance. I watched it. I'm happy for everybody who went in the first round. I'm happy for myself to be going [Friday]."
After getting off the line with ESPN, Cyprien bounced and let out a joyful noise before grabbing his mother, Roselaure, in a giant hug first, then a hug for his father, Kenel.
Roselaure Cyprien was so excited, she stopped when talking about her son and said, "There's a lot of good things about Johnathan I can't remember right now.
"He always has been the greatest kid I ever had. Johnathan was always a special kid, ever since I was carrying him, he was different. Even the first day he was born, I knew he would be shining through."
Cyprien rocketed up the draft boards over the past three months in what Rosenhaus called "the greatest draft rise that I've seen of any of my clients in my 25-year career" to be the first player selected in this draft from Miami-Dade or Broward counties (North Miami Beach High) and the first player from the University of Miami, FIU or FAU.
"Those things don't mean anything right now," he said. "I'm happy I've been chosen and playing for the Jacksonville Jaguars. I thank God for it because without Him I wouldn't be able to do this. I'm ready to show all the abilities God blessed me with. I'm ready to show Jacksonville, and I can't wait to get there."
Thursday night's first round saw three safeties taken, Texas' Kenny Vaccaro (New Orleans, No. 15 overall), Florida's Matt Elam (Baltimore, No. 32 overall) and LSU's Eric Reid (San Francisco jumping up to No. 18 overall).
Reid going ahead of Cyprien was a surprise to draft experts. Most mock drafts had Vaccaro, Elam and Cyprien, usually in that order, but definitely a trio set apart in a draft that is thick with safety talent.
Cyprien also is the earliest pick of the five players ever drafted from FIU, where he's the career leader in tackles.
Last year, Indianapolis drafted wide receiver T.Y. Hilton at the end of the third round.
The highest drafted player in FIU history will wind up facing the greatest player in FIU history twice a season as AFC South rivals.
"I have talked to his dad, and he wished me luck," Cyprien said of Hilton. "I'll see him two times each year. It's going to be great."
Hilton and Cyprien were the faces of the FIU program in 2011 and 2012, respectively, the players former FIU coach Mario Cristobal always approved for interviews.
Both are extremely polite, deeply religious and confident but in an understated way (off the field) compared with the stereotypical South Florida brashness. Neither player has had any on-field or off-field issues.
"When I first catalogued teams [in December], the initial sense that I got was that most people had him in the middle of the draft," Rosenhaus said. "And Johnathan and I set a goal for him to be drafted in the second round."
It's no surprise that Cyprien's stock rose after the NFL Scouting Combine, though he did only the vertical jump and defensive back drills.
Much of the real opinion-swaying at the Combine comes in the individual team interviews.
Interestingly, Cyprien said he never worked out for Jacksonville, but interviewed with the Jaguars at the Senior Bowl, the Combine and visited them.
"Jacksonville's a great place," he said. "I had a great visit there. The coaches are ready to win. And I'm ready to win, too."
Roselaure Cyprien said: "Johnathan's always a confident child. It's his hard work, God's hard work and my hard work. God is good. I'm so happy for him. I can't wait to see him play."


text:
Home >> Course Descriptions >> College of Education
Classroom Diagnosis and Remediation of Reading Difficulties
Three semester hours. (FL)
This course addresses the characteristics and learning patterns of all children. The focus will be on developing a knowledge of formal and informal classroom reading diagnosis procedures and the design of appropriate remediation techniques. Prerequisite: Admission to the College of Education and 2.7 overall grade point average, 2.7 overall grade point average, EDRD 3303, EDRD 3309 and EDRD 4305 or equivalent course, or permission of instructor. (Formerly EDRD 3311)
Home - General Information - Student Services -
Academic Undergraduate Regulations -
Undergraduate Degrees - Academic Graduate Regulations -
Graduate Degrees - Course Descriptions - Faculty -
Appendix A - Appendix B - Appendix C - Appendix D


text:
[unable to retrieve full-text content]
Attached Files
|RM-781_CareDP_2.00_NDT_07.03.exe (177.15 MB)
Related Posts:
- Nokia Firmware Asha 300 RM-781 CareDP 1.00 NDT 06.97
- Nokia Firmware Asha 300 RM-781_CareDP_1.10_OperatorDP
- Nokia Asha
Download Apk Duke says: No ads. We listened - here is a new version with no ads - update now! Controls are fully customizable - move buttons, sticks, where you want it! Episode 1 included, episodes 2 and 3 can be purchased for 99c each THE ORIGINAL KING OF ACTION RETURNS! Los Angeles. Under attack by aliens intent on stealing our chicks for breeding. Duke Nukem apk springs into action dealing damage like only he can, making his insightful comments along the way.
One of the best-looking mobile games ever created This version of ShadowGun is optimized for Tegra 2 device The year is 2350, and corrupt intergalactic corporations are the rule of law, hiring bounty hunters and mercs to do their bidding. The best of the best are known as SHADOWGUNS. Download Apk SHADOWGUN puts you into the role of John Slade, the galaxys most infamous bounty hunter. Your mission: hunt down Dr. Edgar Simon, maniacal genius and leader of his own mutant army.
Download Apk For BackStab HD Gameloft apk When revenge is coming, watch your back My name is Henry Blake, once a proud officer in Englands Royal Navy. Now I stand a shattered man. Betrayed, imprisoned, my fianceacute taken away, I have now found my freedom - and soon I shall find my revenge. Take on the role of Henry Blake, a broken man whose life was stripped away, and help in his quest for justice and revenge. Climb, jump and sneak your way through diverse settings to reach your target and strike down adversaries.


text:
Kindly do this for DP also! It might get that cursed game run on my PC at last.
WOW!! This is a good new indeed!!
Kindly do this for DP also! It might get that cursed game run on my PC at last.
This is indeed good news! I could have used it last week.
BTW, I like the name too. Very descriptive.
Well, DJ Riff, this looks very, very helpfull !!
Any time that something happens and I have to reinstall the game, I have to check again and again at the forums to be sure I did not forgot some step in order to make it work together with all the goodies this community is providing for the players all these years.
So, the fewer the steps, the faster you get in Garrett's tap-dancing shoes!
And what is wrong with sometimes being a little silly with a name?
Sounds funny and it is a game after all !
I run a 23" monitor off my laptop and move back and forth between it and the laptop screen, so I run DarkWidescreen.bat once, twice a day and actually have a shortcut to it.
Could you set this up to load different profiles?
Jermi, as he's the one who posted it. though from what I know, I think it just patches the .mis files, but there's also the possibility that it's useless without Si02's DDFIX.
Jeez people, who cares what the name of the bloody thing is? It's the function that matters, not the name!!!
Let the poor guy work and stop nit picking over completely irrelevant issues.
It's not irrelevant when it has an impact on the likelihood of the (vast majority of) non-TTLG-going Thief players using it. If you have no idea what it is and only see a link with its title, one might or might not look at the thing based on the name.
I believe the unofficial System Shock 2 patch had just that issue because of a rather poorly conceived name. "Anomalies, Discrepancies and Outright Bugs." Few outside of the Stange Bedfellows forum discovered it because the title didn't properly explain what it was.
Finally someone is at least trying to do this. Regarding the name, I'd go with something descriptive like "Complete Patch Collection". Or "Essential" if it's not going to be a complete collection.
Even if it's just "Essential", not "Complete", I'd still rate EP as a must-have addition, regardless of the size.
I do wonder how this going to be maintained etc. When DJ Riff's interest in this runs out, will the rest of us have the possibility to continue development, or will we have to start again from scratch? How are the various mods/patches updated? How are new mods included?
My recent mods:
- Proper Stars (t2stars) - FAM/skyhw/STARS.BIN replacement and mis file patches, no dependencies
- Proper Moon (t2moon) - mis file patches and ddfix textures, requires ddfix, has adverse effects without ddfix
- t2fogskies - mis file patches, requires ddfix, may have adverse effects without ddfix
All of the above will soon be obsoleted by t2skies (= t2stars + t2moon + t2fogskies + ddfix clouds + ddfix distant art).
One issue I see with including things like the Thief EP is... what happens if there's an update? Not that I currently have plans for one, but the same applies to other mods that may be more likely to be updated.
Let's hope Dj Riff uploads the source code. Let's hope he doesn't make the same mistake like LG did when they never thought to release the Dark Engine source.
The original problem was that .net code will always run according to the cpu architecture if not specifically told otherwise. Since the gui calls 32bit code in the ddfixgui.dll it will crash when it's run as 64bit since you can't mix the two.
The fix only forced the gui to run at 32 bit for this reason.
Yes, you're right - I just wanted to check the TafferPatcher author knew not to call the generic 32-bit GUI without checking the OS version first. I have DDFix working fine on my XP x64 but I needed to install it manually (a 64-bit GUI for DDFix has been subsequently created though).
So you'll use something like Qt or GTK, then?
Either way, this project should be handled correctly. It has taken this long for a patch like this to be made, when the more consumer popular SS2 has had a only-patch-you'll-ever-need patch since forever.
Inno Setup with script written in Object Pascal. I know it's far unoptimised and clunky but it just works and I'm not a programmer.
Ok, here it is.
Not all features are implemented but it looks like a stable version so I'd like to share it for testing.
Currently included:
Thief2 installer (full installation only so far). Just specify an empty folder or create one in Browse dialog and follow the instructions.
Patch 1.18. Applied only on first install. To re-run this patch (e.g. if you taffed around with dark.gam and need it to be restored), choose COMPLETE uninstall on Tasks page, proceed with uninstall, then start the Patcher again.
all general compatibility fixes: dual-core, texture memory, free space error, etc.
ddfix beta 1.4.4 with optional fog fix for Vista. Thorough testing needed, is if there be any side-effects even with fog fix turned off, I'll have to include older version of ddfix too. Note that the patch won't turn on the fog automatically, so check the game options if you still have no fog.
object fixes: gas / wine arrow, ferns model, gas lamp etc.
mission fixes: dialogs in Shipping and Masks, loot location, fog in LoTP. With fixed LoTP mission there's no need to turn on "LoTP fix" in ddfix.ini with all its side-effects.
Thorough testing needed for object and mission fixes. If there will be no negative side-effects, I consider adding them to Patch 1.18 content to save the package size, install time and have shorter patches list.
currently WIP:
Partial install
Enhancement Pack
Jermi's fixes for fogged missions, moon and stars
Last edited by DJ Riff; 27th Feb 2010 at 05:37. Reason: some weird word-wrap issue, dunno what's the problem
Did anyone mention the infamous German SAT1 version of TMA? I believe it needs a different patch but I'm not too much into these technical issues. I've tried to catch Sinister Shadow for two days now, maybe he knows more about it.
How are you handling the installation of the official v1.18 patch?
By default, that patch installs .crf files to the root of your Thief installation, which are, of course, overridden by any custom content (which is why you can get white wedges instead of gates in Blackmail if you have an Obj folder, for example).
There are two solutions for this:
a) Move those .crf files to another folder, e.g. \Res\Patch\, and adjust the DarkInst.cfg to include them before the main .crfs (e.g. resname_base .\Res\Patch+.\Res)
b) Merge the .crfs. Add all the files from the patch .crfs to the main game .crfs.
Yeah, there is a special Sat1 patch for the German Thief: The Metal Age edition. I've got this edition and allways used this special patch.
There is an unofficial German TMA translation corrections patch by von.Eins too.


text:
In this tutorial I am going to be describing how to build a basic web server application. To be more presise, an application that listens on a TCP/IP port, authenticates incoming connections and serves data to authenticated clients. The code examples given below were written in VB6. I have tried to pick a simple case study for this article, but with a little work you can add all sorts of whistles and bells once you have the basic theory.
The 'Log Server' case study.
I have a control called TRON. TRON sits beneath all the other controls in my toolkit with the sole purpose of accepting debugging data from controls above it and outputting that data in some way so I can view it. That might be direct to screen or console, or appended to a text file for later examination.
I also wanted my TRON control to provide data to a basic web server. This basic web server would serve debugging information to developers working on any software that includes the TRON control. My web server app would then allow me (and other developers) to telnet into the box and see debug information in real time. I also wanted multiple clients to be able to connect similtainiously and for connecting clients to be authenticated prior to recieving any debug information.
You can download the source files for this program at the end of the document (11k) - DON'T try to complie the code below as I've changed the line endings for pagination.
How does it work.
I used 2 MSWinsock controls, one called WSock to handle incoming requests on port 255 from clients wishing to view debug information and one called PLink for TRON to send debug informatin to on port 1. The PLink winsock control accepts data sent to it on port 1 from my TRON control and relays that information to each of the connected and authenticated clients. Of course your firewall should be set to disallow incoming connections on port 1, because the connections to PLINK are not authenticated. Data sent to a PLink socket simply adds itself to the buffer value in the Log Server, which is then relayed to authenticated clients.
For the internal communications on the local machine between TRON controls and the Log Server I could have used DDE (I'm showing my age here) or Dynamic(?) Data Exchange that provides an async methodology for communication between running programs. However my TRON control is in fact an ActiveX component and DDE does not work from within ActiveX
Creating the project
In VB6 you will need:
1 Form
1 Module
Under the components menu add a reference to MS Winsock. Place 2 Winsock controls on the form and call them WSock and PLink.
Set the index of both the Winsock controls as 0 (so that they are instantiated as an array and we can load new instances of them at runtime).
Now add a timer control called timer to the form and set the interval to 250 and enabled to false. When we receive incoming data from a PLink socket (ie from TRON) the timer is activated. The code for the timer event distributes the incoming data from the buffer to authenticated clients. A DoEvents command in the timer code allows new data to be added to the buffer as it arrives.
In the module add the following code:
Our tState type allows us to set the mode for our connection and deal with incoming/outgoing data accordingly - we dont want to send log data to a client unless their connection state is authenticated. We also need to know what information we expect next from the client. We also want to have a command set for authenticated and unauthenticated connections. Because our connection has a state we would refer to this a 'Stated Service'. FTP,SMTP and POP3 all fall into the category of Stated services. HTTP on the other hand is a stateless service, in that it records no information about the user from connection to connection and closes the connection when it finishes sending the requested data. Therefore all client data has to be stored on the client, which is why we need to use cookies (or variant thereof) with HTTP.Code:Option Explicit 'Connection states Public Enum tState tUsername = 0 'Waiting for username tPassword = 1 'Waiting for passsword tAuthenticated = 3 'Connection is authenticated tGone = 4 'Connection is closed End Enum 'Connection Type Public Type tConnection Index As Integer 'Holds index of Socket State As tState 'Holds connection state 'SEE: Enum tState username As String 'Holds connection username password As String 'Holds connection password ReTries As Integer 'Number login attempts 'used to disconnect after '3 retries. End Type
This Type Connection declares the properties of a connection, and includes a value for the connection state, as defined by the tState type. In our web server we are going to assign a connection to each client that logs into port 255. In our main code the CN array holds an array of connections that we can use to access the properties for each connection at runtime.
The Log Server Code
Add the following code to your form. The internal documentation is (for me) quite good so the code should be quite readable.
Running the code.Code:'*************** 'Log Server By NTSA 'October 2002 'www.ntsa.org.uk '*************** 'Array of connections Dim CN() As tConnection 'Message buffer Dim buffer As String Option Explicit Private Sub Form_Load() 'Accept incoming Clients on port 255 'This allows external clients to view 'log server Log Server data ReDim CN(0) Wsock(0).LocalPort = 255 Wsock(0).Listen 'Accept incoming notifications on Port 1 'This allows other applications to send 'data to be proxied to viewers. PLink(0).LocalPort = 1 PLink(0).Listen End Sub Private Sub Timer_Timer() Dim n As Integer Dim flds 'Loop while there is data in the buffer Do While Len(buffer) <> 0 'The flds variant is used to hold the 'array of messages in the buffer flds = Split(buffer, ":|:") 'Iterate through the connections For n = 1 To UBound(CN) 'If the connection has been autenticated 'AND the socket is ok (7) If CN(n).State = tAuthenticated And Wsock(n).State = 7 Then 'Send the left most item from the buffer 'to connection n Wsock(n).SendData flds(0) & vbCrLf 'Doesn't actually send data until 'DoEvents called DoEvents End If Next n 'This DoEvents allows the DataArrival event to 'continue adding newly received information 'to the buffer DoEvents 'Remove the left most item from the buffer buffer = Right(buffer, Len(buffer) - (Len(flds(0)) + 3)) Loop Timer.Enabled = False End Sub Private Sub Wsock_ConnectionRequest(Index As Integer, _ ByVal requestID As Long) 'New incoming external connection Dim n As Long 'Get the index of the next 'WSock object n = Wsock.UBound + 1 'Load the WSock Object Load Wsock(n) 'Create value of type tConnection 'for this WSock object ReDim Preserve CN(n) 'Set the Connection index to that of the 'WSock control. CN(n).Index = Index 'Set the state of the connection CN(n).State = tUsername 'Accept the connection Wsock(n).Accept (requestID) 'Display the connection message Wsock(n).SendData ConnectionMessage(n) End Sub Private Sub Wsock_DataArrival(Index As Integer, _ ByVal bytesTotal As Long) 'String Value to hold incoming data Dim StrVal As String 'Get the incoming data Wsock(Index).GetData StrVal, vbString 'Remove crlf characters StrVal = Replace(StrVal, Chr(10), "") StrVal = Replace(StrVal, Chr(13), "") 'Commands to be run regardless of 'connection state. Select Case LCase(StrVal) Case "quit" 'Send a disconnection Message Wsock(Index).SendData DisConnectionMessage DoEvents 'Set connection state as tGone CN(Index).State = tGone 'Close the WSock object Wsock(Index).Close End Select 'Process the incoming data dependant 'upon the connection state Select Case CN(Index).State 'Getting username Case tUsername 'If the left hand side of the command is "user " If LCase(Left(StrVal, Len("user "))) = "user " Then 'If the bit after user is not blank If Len(Right(StrVal, Len(StrVal) - Len("user "))) > 0 Then 'Set the username for this connection CN(Index).username = Right(StrVal, Len(StrVal) - Len("user ")) 'Change connection state to accept password CN(Index).State = tPassword Else 'No user name Wsock(Index).SendData "No Username supplied." & vbCrLf DoEvents CN(Index).State = tUsername End If Else 'Any other input while connection 'is in the tUsername state Wsock(Index).SendData "Not logged in." & vbCrLf DoEvents CN(Index).State = tUsername End If 'Getting password Case tPassword 'If left hand side of command is "pass " If LCase(Left(StrVal, Len("pass "))) = "pass " Then 'If value is not blank If Len(Right(StrVal, Len(StrVal) - Len("pass "))) > 0 Then 'set the connection password CN(Index).password = Right(StrVal, Len(StrVal) - Len("pass ")) 'Is the username/password valid? If ValidPassword(CN(Index).username, CN(Index).password) Then 'Set the connection stsate to authenticated CN(Index).State = tAuthenticated 'Send a message to the client to tell them 'that they authenticated ok Wsock(Index).SendData "Authenticated." & vbCrLf DoEvents Else 'Invalid user/pass Wsock(Index).SendData "Invalid username/password. Login fails." & vbCrLf DoEvents 'Increment the connection retry value CN(Index).ReTries = CN(Index).ReTries + 1 'On 3 retries If CN(Index).ReTries = 3 Then 'Send quitting message Wsock(Index).SendData "3 failed logins. Disconnecting." & vbCrLf DoEvents 'Set the connection state as gone CN(Index).State = tGone 'Close the socket Wsock(Index).Close Else 'If connection not @ max retries 'set the connection state back to tUsername CN(Index).State = tUsername End If End If Else 'Password is blank Wsock(Index).SendData "No Password Supplied. Login fails." & vbCrLf DoEvents CN(Index).State = tUsername End If Else 'Command is not pass *** Wsock(Index).SendData "Expecting password. Login fails." & vbCrLf DoEvents 'Set the connection stats back to tUsername CN(Index).State = tUsername End If 'Commands to accept if the connection 'has been authenticated Case tAuthenticated Select Case LCase(StrVal) Case "quit" Wsock(Index).SendData DisConnectionMessage DoEvents CN(Index).State = tGone Wsock(Index).Close Case Else 'Unrecognised command Wsock(Index).SendData "Command not recognised." & vbCrLf DoEvents End Select End Select End Sub Private Sub PLink_ConnectionRequest(Index As Integer, _ ByVal requestID As Long) Dim n As Long 'Incoming connection from 'an application n = PLink.UBound + 1 'load the next PLink socket Load PLink(n) 'Accept the connection PLink(n).Accept (requestID) End Sub Private Sub PLink_DataArrival(Index As Integer, _ ByVal bytesTotal As Long) 'When data arrives from application Dim StrVal, sp, s As String Dim n, x As Integer Dim strvals() 'Get the incoming data PLink(Index).GetData StrVal, vbString 'Remove crlf characters StrVal = Replace(StrVal, Chr(10), "") StrVal = Replace(StrVal, Chr(13), "") 'Add the incoming message to the 'message buffer buffer = buffer & StrVal & ":|:" 'Enable the timer to read data from 'the buffer and send it to connected, 'authenticated clients Timer.Enabled = True End Sub Private Function ConnectionMessage(cid As Long) As String 'A connection message 'This could be loaded from a file, 'the registry, or a database Dim cm As String cm = "" & vbCrLf cm = cm & "===================================================" & vbCrLf cm = cm & " Log Server v1.0 by Simon Barnett." & vbCrLf cm = cm & " Connected to Log Server at " & Now() & vbCrLf cm = cm & " Your Connection ID is: " & CStr(cid) & vbCrLf cm = cm & " There are currently : " & CStr(UserCount) & " sessions open." & vbCrLf cm = cm & "===================================================" & vbCrLf cm = cm & vbCrLf ConnectionMessage = cm End Function Private Function DisConnectionMessage() As String 'A DISconnection message 'This could be loaded from a file, 'the registry, or a database Dim dm As String dm = vbCrLf & "Bye then!" & vbCrLf DisConnectionMessage = dm End Function Private Function UserCount() As Integer 'Get a count of active 'external sockets Dim n As Integer UserCount = 0 'Iterate through sockets For n = 1 To Wsock.UBound 'If the socted is ok (7) If Wsock(n).State = 7 Then 'Increment UserCount value UserCount = UserCount + 1 DoEvents End If Next End Function Private Sub Wsock_Error(Index As Integer, _ ByVal Number As Integer, _ Description As String, _ ByVal Scode As Long, _ ByVal Source As String, _ ByVal HelpFile As String, _ ByVal HelpContext As Long, _ CancelDisplay As Boolean) 'If the client disconnent is not clean then this event 'will fire to handle socket/connection cleanup If Number = 10053 Then 'Set the connection stat as tGone CN(Index).State = tGone 'Close the socket Wsock(Index).Close End If End Sub Private Function ValidPassword(username As String, _ password As String) 'Validation for passed username and 'password combination. 'Usernames/Password should NOT be hard coded If username = "username And password = "password" Then ValidPassword = True Else ValidPassword = False End If End Function
Once you have a complied version of the above up and running you will want to log into your new web server. to do that we telnet to the IP of the machine the log server is running on (eg 127.0.0.1) with netcat or similar telnet app. We get a log in screen that should look something like this:
Now we log in (in the same format as a pop3 login) using the format:===================================================
Log Server v1.0 by Simon Barnett.
Connected to Log Server at 03/10/2002 10:14:34 AM
Your Connection ID is: 4
There are currently : 3 sessions open.
If our login validates (in the code above the ValidPassword function should be linked to a password list) then the client sees:user username
pass password
Now that the connection has been authenticated any information sent to the log server by a TRON control will be relayed to the client. For example when a program references an c:\test.ini file to find the value of colour for the fruit.apple key the following debugging messages are relayed to TRON. TRON send the messages on port 1 to the Log Server and the Log Server distributes the following data to the clients on port 255:Authenticated.
To test the Log Server you can telnet into port 1 and poke data into the log buffer. It will be relayed to authenticated clients connected on port 255.03/10/2002 10:19:57 AM|INIFile|Loading INI File: c:\test.ini
03/10/2002 10:19:57 AM|Filesys|The file c:\test.ini already exists.
03/10/2002 10:19:57 AM|Filesys|Opening file c:\test.ini with fHandle 0
03/10/2002 10:19:57 AM|Strings|Looking for '=' in 'apple=green'
03/10/2002 10:19:57 AM|Strings|Found 1 occurence(s).
03/10/2002 10:19:57 AM|Strings|Looking for '=' in 'orange=orange'
03/10/2002 10:19:57 AM|Strings|Found 1 occurence(s).
03/10/2002 10:19:57 AM|Strings|Looking for '=' in 'banana=yellow'
03/10/2002 10:19:57 AM|Strings|Found 1 occurence(s).
03/10/2002 10:19:57 AM|Strings|Looking for '=' in 'carrot=orange'
03/10/2002 10:19:57 AM|Strings|Found 1 occurence(s).
03/10/2002 10:19:57 AM|Strings|Looking for '=' in 'potato=brown'
03/10/2002 10:19:57 AM|Strings|Found 1 occurence(s).
03/10/2002 10:19:57 AM|Strings|Looking for '=' in 'peas=green'
03/10/2002 10:19:57 AM|Strings|Found 1 occurence(s).
03/10/2002 10:19:57 AM|Strings|Looking for '=' in 'listitem1'
03/10/2002 10:19:57 AM|Strings|Found 0 occurence(s).
03/10/2002 10:19:57 AM|Strings|Looking for '=' in 'listitem2'
03/10/2002 10:19:57 AM|Strings|Found 0 occurence(s).
03/10/2002 10:19:57 AM|Strings|Looking for '=' in 'listitem3'
03/10/2002 10:19:57 AM|Strings|Found 0 occurence(s).
03/10/2002 10:19:57 AM|INIFile|Getting KeyData: fruit.apple.
03/10/2002 10:19:57 AM|INIFile|Found key matching 'fruit.apple.': Fruit.apple.green
03/10/2002 10:19:58 AM|INIFile|Right hand side of key is: green
03/10/2002 10:19:58 AM|Strings|Looking for '.' in 'green'
03/10/2002 10:19:58 AM|Strings|Found 0 occurence(s).
03/10/2002 10:19:58 AM|INIFile|GetKey(0) Returns green
Maybe it's just me - but I thought that was kinda neat Till next time - look both ways and don't talk to strangers.


text:
Air Conditioning (Central AC) not working? Call 781-348-6814 The Appliance Repair Men to schedule a same day or emergency 5 star rated appointment. For peace of mind and 24 hr fast service, please call The Appliance Repairmen to get your central AC unit running again. If you are located near Abington or inside of Plymouth. Friendly, professional air conditioning repair technicians that are experienced on all ac unit brands including, Carrier, Goodman, Rheem, Amana, Trane Lennox, Ruud, York, Maytag, Arcoaire, Tempstar, Luxaire, Frigidaire, Janitrol, Weatherking, Armstrong, Coleman, American Standard, Bryant, Pane, Ducane, Comfortmaker, Heil, Gibson, Sears and many more. Some symptoms to check before calling The Appliance Repair Men would be to make sure you check the thermostat that it is set correctly and has power. Also check your fuses and circuit breakers and make sure they don't need to be present. Make sure the thermostat is set to the right temperature and settings.
Do you need Central Air Conditioning Repair? Are you located near Abington or in Plymouth? Pick up the phone 781-348-6814 and call The Appliance Repairmen. They will send a trained and qualified ac repair technician for same day service. Technicians that are sent out are trained on all air conditioning (central ac) brands including Carrier, Goodman, Rheem, Amana, Trane Lennox, Ruud, York, Maytag, Arcoaire, Tempstar, Luxaire, Frigidaire, Janitrol, Weatherking, Armstrong, Coleman, American Standard, Bryant, Pane, Ducane, Comfortmaker, Heil, Gibson, Sears.
Call today, 781-348-6814, Carrier repair to schedule a same day or next day appointment for a small diagnostic fee, cheaper than the industry average (Appliance Blue Book pricing) which goes toward the repair price. Have an experienced Carrier technician service your appliance today 781-348-6814. All Carrier appliance technicians have extensive experience servicing all types of appliances including Carrier Refrigerator, Carrier Oven, Carrier Stove, Carrier Washer, Carrier Dryer, Carrier Dishwasher, Carrier Microwave, Carrier Cooktop, Carrier Freezer and Carrier Ice Maker. Carrier commercial appliance repair service as well. Same day appliance repair, Carrier appliance installation, ac repair, offering best pricing, affordable pricing, emergency appliance repair and weekend repair. Call now 781-348-6814.
Do not try troubleshooting your Carrier appliance at home by yourself as you can damage or harm your appliance. The technician will not be able to work on your Carrier appliance if it has been tampered with or taken apart by another technician. The Carrier technicians are extremely experienced and affordable, so they will be able to give you a reasonable price for the efficient service they provide.
Carrier AC Repair Abington, Goodman AC Repair Abington, Rheem AC Repair Abington, Amana AC Repair Abington, Trane AC Repair Abington, Lennox AC Repair Abington, Ruud AC Repair Abington, York AC Repair Abington, Maytag AC Repair Abington, Arcoaire AC Repair Abington, Tempstar AC Repair Abington, Luxaire AC Repair Abington, Frigidaire AC Repair Abington, Janitrol AC Repair Abington, Weatherking AC Repair Abington, Armstrong AC Repair Abington, Coleman AC Repair Abington, American Standard AC Repair Abington, Bryant AC Repair Abington, Pane AC Repair Abington, Ducane AC Repair Abington, Comfortmaker AC Repair Abington, Heil AC Repair Abington, Gibson AC Repair Abington, Sears AC Repair Abington Admiral Air Conditioning Repair Abington, Adobe Aire, Air Temp Air Conditioning Repair Abington, Ambahci, Bdp, Black & Decker, Bonaire, Bosch, Breeze Air, Bryant, Bryant, Careco, Carrier, Chambers, Champion, Climatrol, Climette, Comfort Maker, Comfort-aire, Coolerator, Crosley Air Conditioning Repair Abington, Daewoo, Danby, Delonghi, Dynasty, E.q.k, Electrolux, Emerson, Energy Knight Air Conditioning Repair Abington, Essick, Estate, Everstar, Fast, Fedders, Friedrich Air Conditioning Repair Abington, Ge, Goldstar, Goodman, Haier, Hampton Bay, Heat Controller, Heil, Holmes, Honeywell, Hotpoint, Icp, International Comfort Products, Jordon, Kelvinator, Kenmore, Lakewood, Lennox, Lg, Mastercool, Maytag Air Conditioning Repair Abington, Midea, Montgomery Ward, Oem, Panasonic, Pelonis, Quasar, Rheem, Roper, Royal Sovereign, Ruud, Samsung, Sharp, Skuttle, Srs-us, Sunbeam, Tempstar, Texas Furnaces, Tfc, Thermalzone, Turbo Air, Weber, Westinghouse, Whirlpool, Whisper Cool, White Westinghouse, Wilshire, Zenith
Other Communities serviced: ACCORD, BRANT ROCK, GREENBUSH, GREEN HARBOR, HINGHAM, HULL, HUMAROCK, MARSHFIELD, MARSHFIELD HILLS, MINOT, NORTH MARSHFIELD, NORTH SCITUATE, NORWELL, OCEAN BLUFF, SCITUATE, BROCKTON, BRIDGEWATER, BRYANTVILLE, CARVER, DUXBURY, EAST BRIDGEWATER, ELMWOOD, HALIFAX, HANOVER, HANSON, MIDDLEBORO, MANOMET, LAKEVILLE, MONPONSETT, ABINGTON, NORTH CARVER, NORTH PEMBROKE, PEMBROKE, PLYMOUTH, KINGSTON, SOUTH CARVER, PLYMPTON, ROCKLAND, WEST BRIDGEWATER, WHITE HORSE BEACH, WHITMAN, EAST WAREHAM, ONSET, WAREHAM, WEST WAREHAM, MARION, MATTAPOISETT, ROCHESTER


text:
The College of St. Monica is a medieval and renaissance recreation club at Monash University. It is affiliated with the Society for Creative Anachronism (SCA), a worldwide medieval reenactment group that started as a backyard costume party and never stopped. The College has strong ties to the Barony of Krae Glas, a branch of the SCA covering the south-east of Melbourne, which derives much of its membership from graduates of Monash University. If you want to find out more about us, join our Yahoo group » and say hello or turn up to one of our weekly activities and see what we do.
Members of the SCA have diverse interests, you will be able to find people who can teach you medieval and renaissance costuming, armour making, brewing, cooking, tablet weaving, braiding and other decorative arts, tent and pavilion making and camping in medieval style, music and instrument making, calligraphy and illumination.
Current activities held on campus>>
Arts and Sciences Activities (embroidery, silk painting, dancing, heraldry, brewing etc)
Rapier Activities (armoured and un-armoured medieval fencing)
Armoured combat (Heavy combat)
Archery (target)
(all held on Fridays, Lemon Scented Lawns from 6pm)
Check the calendar for notices about upcoming activities, and to find out about other medieval reenactment events near Monash University. (Compatible with Monash's Google-mail!) This page has calendars for all of the SCA groups in Melbourne.
A facebook group has been setup for general chit-chat, project questions and last minute driving directions before attending an event. This is the perfect place to check if you can grab a lift with someone or borrow some feasting gear. This is an open group so please join! Some event notifications will be sent to this group.
Yahoo Group>>
The yahoo email group is our mail method of disseminating information about upcoming events. General chit-chat is low however all events in Melbourne get posted to this email list. Each group in Melbourne hosts their own email list and some people find it useful to sign up to them all.
The Cunnan>>
The Cunnan is a medieval wiki started by alumni of St Monicas. It is a medieval wiki which covers a very broad range of topics. It has SCA leanings. It contains articles from historical battles, research by Peers of the society as well as recipes for medieval foods.
A practice bout with sword/shield and great axe.


text:
Spring Break Stompin: College Kids Whoop On Teens Tryin Jump A Guy That Takes On A SUV Full Of People!
Hella people coming out
Please click the "Report" button below if the video on this page is not working properly.
Comments will only be displayed by verified emails. No Spamming or Racism.


text: {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE OverloadedStrings #-} module Snap.Extension ( -- * Introduction -- $introduction -- ** Using Snap Extensions -- $using -- *** Define Application State and Monad -- $definingtypes -- *** Provide Instances For \"HasState\" Classes -- $hasstateclasses -- *** Define The Initializer -- $initializer -- *** Simplified Snap Extension Server -- $httpserve SnapExtend , Initializer , InitializerState(..) , runInitializer , runInitializerWithReloadAction , runInitializerWithoutReloadAction , mkInitializer , defaultReloadHandler , nullReloadHandler ) where import Blaze.ByteString.Builder import Control.Applicative import Control.Exception (SomeException) import Control.Monad import Control.Monad.CatchIO import Control.Monad.Reader import Data.ByteString (ByteString) import qualified Data.ByteString.Char8 as B import Data.Monoid import qualified Data.Text as T import qualified Data.Text.Encoding as T import Prelude hiding (catch, init) import Snap.Iteratee (enumBuilder, (>==>)) import Snap.Types import System.IO {- $introduction Snap Extensions is a library which makes it easy to create reusable plugins that extend your Snap application with modular chunks of functionality such as session management, user authentication, templating, or database connection pooling. We achieve this by requiring that you create a datatype that holds an environment for your application and wrap it around the Snap monad. This new construct becomes your application's handler monad and gives you access to your application state throughout your handlers. Warning: this interface is still EXPERIMENTAL and has a very high likelihood of changing substantially in coming versions of Snap. -} {- $using Every extension has an interface and at least one implementation of that interface. For some extensions, like Heist, there is only ever going to be one implementation of the interface. In these cases, both the interface and the implementation are exported from the same module, Snap.Extension.Heist.Impl. Hypothetically, for something like session management though, there could be multiple implementations, one using a HDBC backend, one using a MongoDB backend and one just using an encrypted cookie as backend. In these cases, the interface is exported from Snap.Extension.Session, and the implementations live in Snap.Extension.Session.HDBC, Snap.Extension.Session.MongoDB and Snap.Extension.Session.CookieStore. Keeping this in mind, there are a number of things you need to do to use Snap extensions in your application. Let's walk through how to set up a simple application with the Heist extension turned on. -} {- $definingtypes First, we define a record type AppState for holding our application's state, including the state needed by the extensions we're using. At the same time, we also define the monad for our application, App, as a type alias to @SnapExtend AppState@. 'SnapExtend' is a 'MonadSnap' and a 'MonadReader', whose environment is a given type; in our case, AppState. @ module App where import Database.HDBC import Database.HDBC.ODBC import Snap.Extension import Snap.Extension.Heist import Snap.Types type App = SnapExtend AppState data AppState = AppState { heistState :: HeistState App } @ An important thing to note is that the -State types that we use in the fields of AppState are specific to each implementation of a extension's interface. That is, Snap.Extension.Session.HDBC will export a different SessionState to Snap.Extension.Session.CookieStore, whose internal representation might be completely different. This state is what the extension's implementation needs to be able to do its job. -} {- $hasstateclasses Now we have a datatype that contains all the internal state needed by our application and the extensions it uses. That's a great start! But when do we actually get to use this interface and all the functionality that these extensions export? What is actually being extended? We use the interface provided by an extension inside our application's monad, App. Snap extensions extend our App with new functionality by allowing us to user their exported functions inside of our handlers. For example, the Heist extension provides the function: @render :: MonadHeist m => ByteString -> m ()@ that renders a template by its name. Is App a 'MonadHeist'? Well, not quite yet. Any 'MonadReader' which is also a 'MonadSnap' whose environment contains a 'HeistState' is a 'MonadHeist'. That sounds a lot like our App, doesn't it? We just have to tell the Heist extension how to find the 'HeistState' in our AppState: @ instance HasHeistState AppState where getHeistState = heistState setHeistState hs as = as { heistState = hs } @ Stated another way, if we give our AppState the ability to hold a HeistState and let the HasHeistState typeclass know how to get/set this state, we are /automagically/ given the ability to render heist templates in our handlers. With these instances, our application's monad App is now a MonadHeist giving it access to operations like: @render :: MonadHeist m => ByteString -> m ()@ and @heistLocal :: (TemplateState n -> TemplateState n) -> m a -> m a@ -} {- $initializer So, our monad is now a 'MonadHeist', but how do we actually construct our AppState and turn an App () into a 'Snap' ()? We need to do this upfront, once and right before our web server starts listening for connections. Snap extensions have a thing called an 'Initializer' that does these things. Each implementation of a Snap extension interface provides an 'Initializer' for its -State type. We must construct an initializer type for our -State type, AppState. An 'Initializer' monad is provided in this library to make it easy to do this. For your convenience, 'Initializer' is an instance of 'MonadIO'. @ appInitializer :: Initializer AppState appInitializer = do hs <- heistInitializer \"resources/templates\" return $ AppState hs @ In addition to constructing the AppState, the Initializer monad also constructs the init, destroy and reload functions for our application from the init, reload and destroy functions for the extensions. Although it won't cause a compile-time error, it is important to get the order of the initializers correct as much as possible, otherwise they may be reloaded and destroyed in the wrong order. The "right" order is an order where every extension's dependencies are initialised before that extension. For example, Snap.Extension.Session.HDBC would depend on something which would extend the monad with MonadConnectionPool, i.e., Snap.Extension.ConnectionPool. If you had this configuration it would be important that you put the connectionPoolInitializer before the sessionInitializer in your appInitializer. This Initializer AppState can then be passed to 'runInitializer', which combines our initializer action with our application's handler to produce a 'Snap' handler (which can be passed to 'httpServe'), a cleanup action (which you can run after 'httpServe' finishes), and a reload action (which, for example, you may want to use in your handler for the path \"admin/reload\". The following is an example of how you might use this in main: @ main :: IO () main = do (snap,cleanup,reload) <- runInitializer appInitializer appSite let site = snap <|> path "admin/reload" $ defaultReloadHandler reload cleanup quickHttpServe site `finally` cleanup @ You'll notice we're using 'defaultReloadHandler'. This is a function exported by "Snap.Extension" with the type signature @MonadSnap m => IO [(ByteString, Maybe ByteString)] -> m ()@ It takes the reload action returned by 'runInitializer' and returns a 'Snap' action which renders a simple page showing how the reload went. To avoid denial of service attacks, the reload handler only works for requests made from the local host. -} {- $httpserve This is, of course, a lot of avoidable boilerplate. Snap extensions framework comes with another module "Snap.Extension.Server", which provides an interface mimicking that of "Snap.Http.Server". Their function names clash, so if you need to use both of them in the same module, use a qualified import. Using this module, the example above becomes: @ import Snap.Extension.Server main :: IO () main = quickHttpServe appRunner site @ All it needs is a Initializer AppState and an App () and it is ready to go. You might be wondering what happened to all the reload handler bits we had before: That stuff has been absorbed into the config for the server. One quick note: 'quickHttpServe' doesn't take a config, instead it uses the defaults augmented with any options specified on the command-line. The default reload handler path in this case is "admin/reload". If you wanted to change this to nullReloadHandler, you would do this: @ import Snap.Extension.Server main :: IO () main = do config <- commandLineConfig emptyConfig httpServe (setReloadHandler nullReloadHandler config) appRunner site @ This behaves exactly as the above example apart from the reload handler. With this, we now have a fully functional base application that makes use of the Snap Extensions mechanism. To initialize a directory with all of this setup provided as a starting point, simply @cd@ into the desired location and type: @snap init@. An example \"Timer\" extension will also be included for your convenience. -} ------------------------------------------------------------------------------ -- | A 'SnapExtend' is a 'MonadReader' and a 'MonadSnap' whose environment is -- the application state for a given progam. You would usually type alias -- @SnapExtend AppState@ to something like @App@ to form the monad in which -- you write your application. newtype SnapExtend s a = SnapExtend (ReaderT s Snap a) deriving ( Functor , Applicative , Alternative , Monad , MonadPlus , MonadIO , MonadCatchIO , MonadSnap , MonadReader s ) ------------------------------------------------------------------------------ -- | The 'SCR' datatype is used internally by the 'Initializer' monad to store -- the application's state, cleanup actions and reload actions. data SCR s = SCR { _state :: s -- ^ The internal state of the application's Snap Extensions. , _cleanup :: IO () -- ^ IO action which when run will cleanup the application's state, -- e.g., closing open connections. , _reload :: IO [(ByteString, Maybe ByteString)] -- ^ IO action which when run will reload the application's state, e.g., -- refreshing any cached values stored in the state. -- -- It returns a list of tuples whose \"keys\" are the names of the Snap -- Extensions which were reloaded and whose \"values\" are @Nothing@ -- when run successfully and @Just x@ on failure, where @x@ is an error -- message. } ------------------------------------------------------------------------------ -- | The 'Initializer' monad. The code that initialises your application's -- state is written in the 'Initializer' monad. It's used for constructing -- values which have cleanup\/destroy and reload actions associated with them. newtype Initializer s = Initializer (Bool -> IO (Either s (SCR s))) ------------------------------------------------------------------------------ -- | Values of types which are instances of 'InitializerState' have -- cleanup\/destroy and reload actions associated with them. class InitializerState s where extensionId :: s -> ByteString mkCleanup :: s -> IO () mkReload :: s -> IO () ------------------------------------------------------------------------------ -- | Although it has the same type signature, this is not the same as 'return' -- in the 'Initializer' monad. Return simply lifts a value into the -- 'Initializer' monad, but this lifts the value and its destroy\/reload -- actions. Use this when making your own 'Initializer' actions. mkInitializer :: InitializerState s => s -> Initializer s mkInitializer s = Initializer $ \v -> setup v $ Right $ mkSCR v where handler :: SomeException -> IO (Maybe ByteString) handler e = return $ Just $ toUTF8 $ show e maybeCatch m = (m >> return Nothing) `catch` handler maybeToMsg = maybe " done." $ const " failed." name = fromUTF8 $ extensionId s mkSCR v = SCR s (cleanup v) (reload v) cleanup v = do when v $ hPutStr stderr $ "Cleaning up " ++ name ++ "..." m <- maybeCatch $ mkCleanup s when v $ hPutStrLn stderr $ maybeToMsg m reload v = do when v $ hPutStr stderr $ "Reloading " ++ name ++ "..." m <- maybeCatch $ mkReload s when v $ hPutStrLn stderr $ maybeToMsg m return [(extensionId s, m)] setup v r = do when v $ hPutStrLn stderr $ "Initializing " ++ name ++ "... done." return r ------------------------------------------------------------------------------ -- | Given the Initializer for your application's state, and a value in the -- monad formed by 'SnapExtend' wrapped it, this returns a 'Snap' action, a -- cleanup action and a reload action. runInitializer :: Bool -- ^ Verbosity; info is printed to 'stderr' when this is 'True' -> Initializer s -- ^ The Initializer value -> SnapExtend s () -- ^ A web handler in your application's monad -> IO (Snap (), IO (), IO [(ByteString, Maybe ByteString)]) -- ^ Returns a 'Snap' handler, a cleanup action, and a reload action. The -- list returned by the reload action is for error reporting. There is -- one tuple in the list for each Snap extension; the first element of -- the tuple is the name of the Snap extension, and the second is a Maybe -- which contains Nothing if there was no error reloading that extension -- and a Just with the ByteString containing the error message if there -- was. runInitializer v (Initializer r) (SnapExtend m) = r v >>= \e -> case e of Left s -> return (runReaderT m s, return (), return []) Right (SCR s a b) -> return (runReaderT m s, a, b) ------------------------------------------------------------------------------ -- | Serves the same purpose as 'runInitializer', but combines the -- application's web handler with a user-supplied action to be run to reload -- the application's state. runInitializerWithReloadAction :: Bool -- ^ Verbosity; info is printed to 'stderr' when this is 'True' -> Initializer s -- ^ The Initializer value -> SnapExtend s () -- ^ A web handler in your application's monad. -> (IO [(ByteString, Maybe ByteString)] -> SnapExtend s ()) -- ^ Your desired \"reload\" handler; it gets passed the reload -- action. This handler is always run, so you have to guard the path -- yourself (with. -> IO (Snap (), IO ()) -- ^ Your 'Snap' handler and a cleanup action. runInitializerWithReloadAction v (Initializer r) se f = do (state, cleanup, reload) <- runInit let (SnapExtend m') = f reload <|> se return (runReaderT m' state, cleanup) where runInit = r v >>= \e -> case e of Left s -> return (s, return (), return []) Right (SCR s a b) -> return (s, a, b) ------------------------------------------------------------------------------ -- | A cut-down version of 'runInitializer', for use by the hint -- loading code runInitializerWithoutReloadAction :: Initializer s -- ^ The Initializer value -> SnapExtend s () -- ^ An action in your application's monad. -> IO (Snap (), IO ()) runInitializerWithoutReloadAction i se = do (action, cleanup, _) <- runInitializer True i se return (action, cleanup) ------------------------------------------------------------------------------ instance Functor Initializer where fmap f (Initializer r) = Initializer $ \v -> r v >>= \e -> return $ case e of Left s -> Left $ f s Right (SCR s a b) -> Right $ SCR (f s) a b ------------------------------------------------------------------------------ instance Applicative Initializer where pure = return (<*>) = ap ------------------------------------------------------------------------------ instance Monad Initializer where return = Initializer . const . return . Left a >>= f = join' $ fmap f a ------------------------------------------------------------------------------ instance MonadIO Initializer where liftIO = Initializer . const . fmap Left ------------------------------------------------------------------------------ -- | Join for the 'Initializer' monad. This is used in the definition of bind -- for the 'Initializer' monad. join' :: Initializer (Initializer s) -> Initializer s join' (Initializer r) = Initializer $ \v -> r v >>= \e -> case e of Left (Initializer r') -> r' v Right (SCR (Initializer r') a b) -> r' v >>= \e' -> return $ Right $ case e' of Left s -> SCR s a b Right (SCR s a' b') -> SCR s (a' >> a) (liftM2 (++) b b') ------------------------------------------------------------------------------ -- | This takes the last value of the tuple returned by 'runInitializer', -- which is a list representing the results of an attempt to reload the -- application's Snap Extensions, and turns it into a Snap action which -- displays the these results. defaultReloadHandler :: MonadSnap m => IO [(ByteString, Maybe ByteString)] -> m () defaultReloadHandler ioms = failIfNotLocal $ do ms <- liftIO $ ioms let showE e = mappend "Error: " $ toUTF8 $ show e format (n, m) = mconcat [n, ": ", maybe "Success" showE m, "\n"] msg = mconcat $ map format ms finishWith $ setContentType "text/plain; charset=utf-8" $ setContentLength (fromIntegral $ B.length msg) $ modifyResponseBody (>==> enumBuilder (fromByteString msg)) emptyResponse where failIfNotLocal m = do rip <- liftM rqRemoteAddr getRequest if not $ elem rip [ "127.0.0.1" , "localhost" , "::1" ] then pass else m ------------------------------------------------------------------------------ -- | Use this reload handler to disable the ability to have a web handler -- which reloads Snap extensions. nullReloadHandler :: MonadSnap m => IO [(ByteString, Maybe ByteString)] -> m () nullReloadHandler = const pass ------------------------------------------------------------------------------ fromUTF8 :: ByteString -> String fromUTF8 = T.unpack . T.decodeUtf8 toUTF8 :: String -> ByteString toUTF8 = T.encodeUtf8 . T.pack


text:
Portrait of a Lion
Every one of our images is available to buy as either a print (framed or unframed) or a stretched canvas.
Unframed Prints
Unframed prints are just that - high quality prints on archival paper but supplied unframed and unmounted. This brings you the advantage and flexibility of being able to enjoy our range of stunning images in a frame of your choosing.
Framed Prints
The QTImages range of designer frames are made to order are available in five colours: Black, Bronze, Gold, Pewter and Silver. Every framed image is supplied with a matching mount and is hand finished, ready for you to hang on the wall of your home or office.
Stretched Canvas
Stretched canvases are very popular amongst our clients. Offering the ultimate in luxury, they are a superb way to showcase your chosen picture. Each one is manufactured by hand using traditional techniques: a carefully prepared photographic print is bonded onto an artist's canvas before being sealed with a protective laminate coating, hand-stretched over a wooden frame and secured firmly in place. The finished product does not need a frame and will look stunning when mounted on the wall in your home.


text:
The Obama Administration now believes the attack and hostage-taking at a natural gas plant in Algeria last week is the work of al Qaeda operatives based out of northern Mali.
U.S. officials say al Qaeda in the Islamic Maghreb (AQIM) was behind the attack and may also have operated a communications network from northern Mali. Despite the recent French intervention, large areas of Mali remain in the hands of jihadist groups.
One senior U.S. official said "elements of AQIM" may have carried out the offensive in tandem with fighters loyal to Moktar Belmoktar, a veteran militant based in northern Mali who has claimed responsibility for the assault.
Last year, Belmoktar was said to have been demoted by the Emir of AQIM, Abdel Malek Droukdel, but is thought to have retained links to the organization.
One U.S. official told CNN that American intelligence gatherers are trying to determine if the two factions had reunited for the attack. If so, that would indicate greater communications among North African elements of al Qaeda affiliates and splinter groups than previously thought.
U.S. intelligence believes some of the attackers came into Algeria from training camps in Libya, whose border is about 40 miles (60 kilometers) from the In Amenas site.
One of the officials emphasized that the United States is now relying on intelligence it has gathered "by other means" because of the lack of information coming from the Algerian government. It has long been privately acknowledged that the U.S. intelligence community has the ability to gather imagery and intercept communications using a variety of military and CIA platforms such as satellites and aircraft.
"We have other ways of assessing who the perpetrators were," he said, but warned the information on Mali could change as more information emerges.
That official said that intelligence gathered so far indicates "this was a relatively sophisticated attack."
"It took planning to select and case the facility, and coordinate to attack it. They had to penetrate the perimeter security and take hostages. That doesn't just happen," he said.
The officials declined to be identified because of the sensitive intelligence matters involved.
Defense Secretary Leon Panetta said Thursday that AQIM was responsible for the attack, but offered no details how the United States reached that conclusion. Panetta was also critical of Algerian cooperation.
"I have to tell you, we still, as of this moment, have not been able to look at the specifics of who was involved, who took -- who took place. We understand the Algerians are questioning two individuals that they were able to capture during this operation. So we're hoping that we'll get better information from them specifically as to who was involved," Panetta said.
Extremist groups in North Africa have fluid affiliations, and members may be associated with different groups. That loose nature makes it difficult to pinpoint culpability after attacks like that in Algeria and on the U.S. consulate there in Benghazi.
General Martin Dempsey, chairman of the Joint Chiefs of Staff, underscored the concern about diverse al Qaeda elements in North Africa.
"The way to think about North Africa and West Africa is (as) a syndicate of groups who come together episodically, when it's convenient to them, in order to advance their cause. Sometimes their cause is terrorism. Sometimes it's criminal. Sometimes it's arms trafficking," he said.
Dempsey described what he called "connective tissue" between the al Qaeda groups - saying "they work together when it's convenient to them. And what we have to be alert to is that."
Panetta renewed a vow to go after perpetrators of both the Algerian attack and the one on the U.S. compound in Benghazi.
"If we find out who the perpetrators were, we're going to go after them," Panetta said. "And so that's -- you know, that will be the first challenge, is to determine precisely who was involved here. Americans were killed, and we don't stand by when Americans are killed and not take action."
Panetta would not say whether he thought action would come from the U.S. military or the FBI.
The senior official said the United States still hopes governments in the region will take the lead, but acknowledged that seems unlikely where central governments are weak.
These assessments come as the top U.S. commander for Africa told a Washington audience that "our highest priority is countering a growing network of extremist organizations in Africa."
General Carter Ham, commanding general of U.S. Africa Command, said Thursday he sees "synchronization" of terror operations across Africa, including more collaboration, closer ideology, and the sharing of funds, weapons and explosives.
Ham expressed doubt that al Qaeda in Mali could be defeated.
"Realistically, we would all like to see the elimination of al Qaeda and others from northern Mali. Realistically, probably the best you can get is containment and disruption so that al Qaeda is no longer able to control territory as they do today," Ham said.
Some current troubles in Mali were not helped by past U.S. military training programs there before the military coup, Ham acknowledged.
"We didn't spend probably ... the requisite time focusing on values, ethics and a military ethos that says when you put on a uniform of your nation then you accept the responsibility to defend and protect that nation, to abide by the legitimate civilian authority that has been established, to conduct yourselves according to the rule of law and too see yourselves really as servants of the people of the nation," Ham said.
"I believe we focused exclusively on tactical and technical. So, we have learned from that," he added.


text:
Magda Seron, who signs her work with her first name, started out doing commercial art, but began her career in comics at the Studio Édouard Aidans in 1977. There she did the artwork on 'Tumak', written by Linsenn, for the newspaper Vers l'Avenir. In the following year, she teamed up with Chris Lamquet, with whom she made 'François Silence et Louise Saint-Louis' in Tremplin and the ecoligical comic 'Marie Meuse et Gilles Roux' for Tintin.
In 1990, she moved to Spirou magazine and the publishing house Dupuis, where she and writer Denis Lapière began the adventure series about the paranormal boy 'Charly'. After a first cycle dealing with Charly and his living toy, Cap'tain Foudre, the authors began a new series, starring an older Charly who has to deal with his paranormal gift.


text:
Microsoft adds clustering and VSS to Virtual Server
SLES 10 and Solaris welcomed too
Viridian remains Microsoft's virtualization priority, but that hasn't stopped the software maker from refining the existing Virtual Server package. Microsoft this week dumped a number of new virtualization tools in the final version of Service Pack 1 for Virtual Server 2005 R2.
First off, Virtual Server 2005 R2 SP1 boasts host operating system clustering support, which Microsoft rightly pitches as a system uptime win for virtual servers. "Host clustering is storage agnostic, comes with Windows Server 2003 Enterprise or Datacenter editions, and is a high-availability solution for both planned and unplanned downtime," a Microsoftee noted on his blog. "And with System Center Virtual Machine Manager, downloadable today as a beta 2 version, customers will have tools for high availability migration."
In addition, the fresh service pack brings the popular Volume Shadow Services to Virtual Server. This lets customers take snapshots of physical servers on-the-fly rather than suffering through downtime to perform full backups of individual virtual machines.
Customers will also find guest OS support for Novell SLES 10 and Solaris 10.
Virtual Server exists as a stopgap before Microsoft releases its real VMware competitor code-named Viridian via an update to Windows Server 2008 - or the OS formerly known as Longhorn. In May, Microsoft confessed that feature-ripping had started with Viridian.
The new service pack is available at no charge here. ®
Sponsored: Becoming a Pragmatic Security Leader


text:
It looks like your browser is out of date.
To use all features of KLM.com safely, we recommend that you update your browser, or that you choose a different one. Continuing with this version may result in parts of the website not being displayed properly, if at all. Also, the security of your personal information is better safeguarded with an updated browser.
A stroll around Bukchon Hanok Village lets you experience a traditional Korean village. The village, with its 6 centuries of history, is located between the 2 most beautiful palaces in the city, Gyeongbokgung and Changdeokgung. Unlike other traditional villages, Bukchon was not built for tourists. This is where the ruling class lived during the Joseon Dynasty and a few descendants of the aristocracy still reside here.
The Joseon Dynasty (1392-1910) was the longest-lasting imperial dynasty in world history, and continues to largely determine the face of contemporary Korea. This is clearly apparent in such everyday matters as authority, respect for elders, etiquette and language use.
Bukchon Village is home to around 900 traditional Hanok houses. These homes are made of stone, wood, soil and rice paper, and have sloping roofs. You can visit some of these homes, which still have a classic interior with thin mattresses on the floor and a low dining table with cushions as seats. In other residences, it is possible to attend traditional crafts workshops. Thanks to these workshops and numerous museums, including the Bukchon Asian Art Museum and Museum of Korean Art, Bukchon is taking on a greater importance as a centre for art and culture.
"Visit a Hanok house and relive the Joseon Dynasty"
On the edge of Bukchon Hanok Village is Gyeongbokgung, the largest and most important palace from the Joseon Dynasty. It is exquisite, from the living quarters with bedrooms for the king and queen, to the banquet hall where royal feasts were once held. The charming pavilion on the island in the lake can also be visited. The showpiece is the throne room, with its gracious roof and decoratively painted eaves, walls and shutters. There are 300 buildings in total, with nearly 6,000 rooms. A tour of the entire palace would take at least 8 hours.
The first king of the Joseon Dynasty ordered the construction of the palace in 1394. A fire destroyed the building in the 17th century but it was rebuilt from the ground up. During the Japanese invasion of Korea (1592-1598), the palace was burned to the ground once more, this time at the behest of the Japanese emperor. The reconstruction of the complex did not begin until 1865. Gyeongbokgung can therefore be called a new development, yet it continues to be one of the most impressive palaces in all of Asia.